Changeset 27083


Ignore:
Timestamp:
06/19/22 15:39:47 (3 years ago)
Author:
Eric.Larour
Message:

CHG: push update of Mmes into UpdateMmesx module. Make sure initial geometry is only
ran once.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-SLPS2022/src/c/cores/sealevelchange_core.cpp

    r27075 r27083  
    568568        int  nel;
    569569        int  grdmodel=0;
    570 
    571         /*retrieve parameters:*/
     570        bool geometrydone;
     571
     572        /*did we already do this? if so, skip :*/
     573        femmodel->parameters->FindParam(&geometrydone,SealevelchangeGeometryDoneEnum);
     574        if (geometrydone){
     575                if(VerboseSolution()) _printf0_("         initial sea level geometrical already computed, skipping.\n");
     576                return;
     577        }
     578
     579        /*early return?:*/
    572580        femmodel->parameters->FindParam(&grdmodel,GrdModelEnum);
     581        if(grdmodel==IvinsEnum) return;
     582       
    573583        nel=femmodel->elements->NumberOfElements();
    574 
    575         /*early return?:*/
    576         if(grdmodel==IvinsEnum) return;
    577584
    578585        /*Verbose: */
     
    600607        #endif
    601608
    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         } /*}}}*/
     609        /*Indicate we won't do this twice: */
     610        femmodel->parameters->AddObject(new BoolParam(SealevelchangeGeometryDoneEnum,true));
    631611
    632612        return;
Note: See TracChangeset for help on using the changeset viewer.