Changeset 27075


Ignore:
Timestamp:
06/17/22 15:53:57 (3 years ago)
Author:
Eric.Larour
Message:

CHG: MmeToInputFromIdx was not configuring the transients.

Location:
issm/branches/trunk-larour-SLPS2022/src/c
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-SLPS2022/src/c/analyses/SealevelchangeAnalysis.cpp

    r27071 r27075  
    4242        /*external solidearthsolution: solid-Earth model*/
    4343        iomodel->FetchData(&isexternal,"md.solidearth.isexternal");
    44 
    4544        if(isexternal){
    4645
     
    632631        /*Resolve Mmes using the modelid, if necessary: meaning if we are running a transient model and that UQ computations have not been triggered:*/
    633632        femmodel->parameters->FindParam(&isuq,QmuIsdakotaEnum);
    634         _printf_("hello0\n");
    635633        if (!isuq && femmodel->inputs->GetInputObjectEnum(SolidearthExternalDisplacementEastRateEnum)==DatasetInputEnum){
    636                 _printf_("hello1\n");
    637                
    638634                femmodel->parameters->FindParam(&modelid,SolidearthExternalModelidEnum);
    639635
    640636                /*replace dataset of forcings with only one, the modelid'th:*/
    641                 MmeToInputFromIdx(femmodel->inputs,femmodel->elements,modelid-1,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
    642                 MmeToInputFromIdx(femmodel->inputs,femmodel->elements,modelid-1,SolidearthExternalDisplacementEastRateEnum, P1Enum);
    643                 MmeToInputFromIdx(femmodel->inputs,femmodel->elements,modelid-1,SolidearthExternalDisplacementUpRateEnum, P1Enum);
    644                 MmeToInputFromIdx(femmodel->inputs,femmodel->elements,modelid-1,SolidearthExternalGeoidRateEnum, P1Enum);
     637                MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters, modelid-1,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
     638                MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementEastRateEnum, P1Enum);
     639                MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementUpRateEnum, P1Enum);
     640                MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalGeoidRateEnum, P1Enum);
    645641
    646642        }               
  • issm/branches/trunk-larour-SLPS2022/src/c/classes/FemModel.cpp

    r26890 r27075  
    21122112void FemModel::MmeToInputFromId(int id, int rootenum, int interpolationenum){ /*{{{*/
    21132113
    2114         MmeToInputFromIdx(this->inputs,this->elements,id,rootenum,interpolationenum);
     2114        MmeToInputFromIdx(this->inputs,this->elements,this->parameters,id,rootenum,interpolationenum);
    21152115
    21162116}       //}}}
  • issm/branches/trunk-larour-SLPS2022/src/c/cores/sealevelchange_core.cpp

    r27066 r27075  
    205205                TransferForcing(femmodel,DeltaTwsEnum);
    206206
    207                 /*transfer external forcings back to Earth:*/
    208                 /*TransferSealevel(femmodel,BedEnum);
    209                 TransferSealevel(femmodel,SealevelEnum);
    210                 if(horiz){
    211                         TransferSealevel(femmodel,BedEastEnum);
    212                         TransferSealevel(femmodel,BedNorthEnum);
    213                 }*/
    214207        }
    215208
     
    272265        /*only run if grd was requested, if we are the earth, and we have reached
    273266         * the necessary number of time steps dictated by :*/
    274         if(!grd)            return;
     267        if(!grd)return;
    275268        if(count!=frequency)return;
    276269        femmodel->parameters->FindParam(&iscoupling,IsSlcCouplingEnum);
     
    606599        femmodel->results->AddResult(new GenericExternalResult<IssmDouble*>(femmodel->results->Size()+1,AreaeEnum,areae,nel,1,1,1));
    607600        #endif
     601
     602        //Specialty code: {{{
     603        bool isuq=0;
     604        IssmDouble modelid=0;
     605                 
     606        /*Resolve Mmes using the modelid, if necessary: meaning if we are running a transient model and that UQ computations have not been triggered:*/
     607        femmodel->parameters->FindParam(&isuq,QmuIsdakotaEnum);
     608        if(!isuq){
     609
     610                /*Deal with solid earth: */
     611                if (femmodel->inputs->Exist(SolidearthExternalDisplacementEastRateEnum) && femmodel->inputs->GetInputObjectEnum(SolidearthExternalDisplacementEastRateEnum)==DatasetInputEnum){
     612                        femmodel->parameters->FindParam(&modelid,SolidearthExternalModelidEnum);
     613
     614                        /*replace dataset of forcings with only one, the modelid'th:*/
     615                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
     616                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementEastRateEnum, P1Enum);
     617                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementUpRateEnum, P1Enum);
     618                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalGeoidRateEnum, P1Enum);
     619
     620                }
     621                /*Deal with ocean: */
     622                if (femmodel->inputs->Exist(OceantransportSpcbottompressureEnum) && femmodel->inputs->GetInputObjectEnum(OceantransportSpcbottompressureEnum)==DatasetInputEnum){
     623                        femmodel->parameters->FindParam(&modelid,DslModelidEnum);
     624
     625                        /*replace dataset of forcings with only one, the modelid'th:*/
     626                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcbottompressureEnum, P1Enum);
     627                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcdslEnum, P1Enum);
     628                        MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcstrEnum, P0Enum);
     629                }
     630        } /*}}}*/
    608631
    609632        return;
  • issm/branches/trunk-larour-SLPS2022/src/c/modules/MmeToInputFromIdx/MmeToInputFromIdx.cpp

    r26468 r27075  
    1616#include "./MmeToInputFromIdx.h"
    1717
    18 void MmeToInputFromIdx(Inputs* inputs, Elements* elements, int id, int rootenum, int interpolationenum){
     18void MmeToInputFromIdx(Inputs* inputs, Elements* elements, Parameters* parameters, int id, int rootenum, int interpolationenum){
    1919
    2020        TransientInput* transientinput  = NULL;
     
    3333        transientinput->GetAllTimes(&times,&N);
    3434        inputs->SetTransientInput(DummyEnum,times,N);
    35         transientinput2 = inputs->GetTransientInput(DummyEnum);
     35        transientinput2 = inputs->GetTransientInput(DummyEnum); transientinput2->Configure(parameters);
    3636
    3737        for(Object* & object : elements->objects){
  • issm/branches/trunk-larour-SLPS2022/src/c/modules/MmeToInputFromIdx/MmeToInputFromIdx.h

    r26047 r27075  
    77
    88/* local prototypes: */
    9 void  MmeToInputFromIdx(Inputs* inputs, Elements* elements, int id, int rootenum, int interpolationenum);
     9void  MmeToInputFromIdx(Inputs* inputs, Elements* elements, Parameters* parameters, int id, int rootenum, int interpolationenum);
    1010
    1111#endif
Note: See TracChangeset for help on using the changeset viewer.