Ignore:
Timestamp:
04/16/21 10:47:27 (4 years ago)
Author:
Mathieu Morlighem
Message:

CHG: preparing for cycling forcing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r26097 r26196  
    3030        bool         autodiff_mass_flux_present = false;
    3131        bool         mass_flux_present          = false;
    32         bool         interp;
     32        bool         interp,cycle;
    3333        IssmDouble **array                      = NULL;
    3434        int         *mdims_array                = NULL;
     
    160160                case LinearFloatingMeltRateEnum:
    161161                        iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
     162                        iomodel->FindConstant(&cycle,"md.timestepping.cycle_forcing");
    162163                        iomodel->FetchData(&transparam,&N,&M,"md.basalforcings.deepwater_melting_rate");
    163164                        if(N==1){
     
    167168                        else{
    168169                                _assert_(N==2);
    169                                 parameters->AddObject(new TransientParam(BasalforcingsDeepwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M));
     170                                parameters->AddObject(new TransientParam(BasalforcingsDeepwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,cycle,M));
    170171                        }
    171172                        xDelete<IssmDouble>(transparam);
     
    177178                        else{
    178179                                _assert_(N==2);
    179                                 parameters->AddObject(new TransientParam(BasalforcingsUpperwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M));
     180                                parameters->AddObject(new TransientParam(BasalforcingsUpperwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,cycle,M));
    180181                        }
    181182                        xDelete<IssmDouble>(transparam);
     
    187188                        else{
    188189                                _assert_(N==2);
    189                                 parameters->AddObject(new TransientParam(BasalforcingsDeepwaterElevationEnum,&transparam[0],&transparam[M],interp,M));
     190                                parameters->AddObject(new TransientParam(BasalforcingsDeepwaterElevationEnum,&transparam[0],&transparam[M],interp,cycle,M));
    190191                        }
    191192                        xDelete<IssmDouble>(transparam);
     
    197198                        else{
    198199                                _assert_(N==2);
    199                                 parameters->AddObject(new TransientParam(BasalforcingsUpperwaterElevationEnum,&transparam[0],&transparam[M],interp,M));
     200                                parameters->AddObject(new TransientParam(BasalforcingsUpperwaterElevationEnum,&transparam[0],&transparam[M],interp,cycle,M));
    200201                        }
    201202                        xDelete<IssmDouble>(transparam);
     
    224225                case BasalforcingsPicoEnum:
    225226                        iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
     227                        iomodel->FindConstant(&cycle,"md.timestepping.cycle_forcing");
    226228                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.num_basins",BasalforcingsPicoNumBasinsEnum));
    227229                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.maxboxcount",BasalforcingsPicoMaxboxcountEnum));
     
    230232                        iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_temperature");
    231233                        _assert_(M>=1 && N>=1);
    232                         parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceantemperatureEnum,transparam,&transparam[N*(M-1)],interp,N,M));
     234                        parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceantemperatureEnum,transparam,&transparam[N*(M-1)],interp,cycle,N,M));
    233235                        xDelete<IssmDouble>(transparam);
    234236                        iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_salinity");
    235237                        _assert_(M>=1 && N>=1);
    236                         parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceansalinityEnum,transparam,&transparam[N*(M-1)],interp,N,M));
     238                        parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceansalinityEnum,transparam,&transparam[N*(M-1)],interp,cycle,N,M));
    237239                        xDelete<IssmDouble>(transparam);
    238240                        break;
     
    266268                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.time_step",TimesteppingTimeStepEnum));
    267269                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.interp_forcings",TimesteppingInterpForcingsEnum));
     270                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.cycle_forcing",TimesteppingCycleForcingEnum));
    268271                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.coupling_time",TimesteppingCouplingTimeEnum));
    269272                        break;
     
    275278                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.cfl_coefficient",TimesteppingCflCoefficientEnum));
    276279                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.interp_forcings",TimesteppingInterpForcingsEnum));
     280                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.cycle_forcing",TimesteppingCycleForcingEnum));
    277281                        parameters->AddObject(iomodel->CopyConstantObject("md.timestepping.coupling_time",TimesteppingCouplingTimeEnum));
    278282                        break;
Note: See TracChangeset for help on using the changeset viewer.