Changeset 24259


Ignore:
Timestamp:
10/18/19 10:53:54 (5 years ago)
Author:
Eric.Larour
Message:

CHG: introducing hydro_rate (similar to steric_rate) for hydrological fingerprints.

Location:
issm/trunk-jpl/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp

    r23585 r24259  
    5353        iomodel->FetchDataToInput(elements,"md.slr.Ugia",SealevelUGiaRateEnum);
    5454        iomodel->FetchDataToInput(elements,"md.slr.steric_rate",SealevelriseStericRateEnum);
     55        iomodel->FetchDataToInput(elements,"md.slr.hydro_rate",SealevelriseHydroRateEnum);
    5556
    5657        /*Initialize cumdeltalthickness and sealevel rise rate input*/
  • issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp

    r23587 r24259  
    225225        Vector<IssmDouble> *SL  = NULL;
    226226        Vector<IssmDouble> *steric_rate_g  = NULL;
     227        Vector<IssmDouble> *hydro_rate_g  = NULL;
    227228        Vector<IssmDouble> *U_esa_rate= NULL;
    228229        Vector<IssmDouble> *N_esa_rate= NULL;
     
    255256        GetVectorFromInputsx(&SL,femmodel,SealevelEnum,VertexSIdEnum);
    256257        GetVectorFromInputsx(&steric_rate_g,femmodel,SealevelriseStericRateEnum,VertexSIdEnum);
     258        GetVectorFromInputsx(&hydro_rate_g,femmodel,SealevelriseHydroRateEnum,VertexSIdEnum);
    257259        if(geodetic){
    258260                GetVectorFromInputsx(&U_esa_rate,femmodel,SealevelUEsaRateEnum,VertexSIdEnum);
     
    262264        }
    263265
    264         /*compute: sea level change = initial sea level + (N_gia_rate+N_esa_rate)  * dt + steric_rate * dt*/
     266        /*compute: sea level change = initial sea level + (N_gia_rate+N_esa_rate)  * dt + steric_rate + hydro_rate* dt*/
    265267        if(geodetic){
    266268                SL->AXPY(N_gia_rate,dt);
     
    268270        }
    269271        SL->AXPY(steric_rate_g,dt);
     272        SL->AXPY(hydro_rate_g,dt);
    270273
    271274        /*compute new bedrock position: */
     
    283286        delete SL;
    284287        delete steric_rate_g;
     288        delete hydro_rate_g;
    285289        if(geodetic){
    286290                delete U_esa_rate;
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24241 r24259  
    663663syn keyword cConstant SealevelriseSpcthicknessEnum
    664664syn keyword cConstant SealevelriseStericRateEnum
     665syn keyword cConstant SealevelriseHydroRateEnum
    665666syn keyword cConstant SedimentHeadEnum
    666667syn keyword cConstant SedimentHeadOldEnum
     
    13031304syn keyword cType Cfsurfacesquare
    13041305syn keyword cType Channel
    1305 syn keyword cType classes
    13061306syn keyword cType Constraint
    13071307syn keyword cType Constraints
     
    13101310syn keyword cType ControlInput
    13111311syn keyword cType Covertree
     1312syn keyword cType DataSetParam
    13121313syn keyword cType DatasetInput
    1313 syn keyword cType DataSetParam
    13141314syn keyword cType Definition
    13151315syn keyword cType DependentObject
     
    13241324syn keyword cType ElementHook
    13251325syn keyword cType ElementMatrix
     1326syn keyword cType ElementVector
    13261327syn keyword cType Elements
    1327 syn keyword cType ElementVector
    13281328syn keyword cType ExponentialVariogram
    13291329syn keyword cType ExternalResult
     
    13321332syn keyword cType Friction
    13331333syn keyword cType Gauss
    1334 syn keyword cType GaussianVariogram
    1335 syn keyword cType gaussobjects
    13361334syn keyword cType GaussPenta
    13371335syn keyword cType GaussSeg
    13381336syn keyword cType GaussTetra
    13391337syn keyword cType GaussTria
     1338syn keyword cType GaussianVariogram
    13401339syn keyword cType GenericExternalResult
    13411340syn keyword cType GenericOption
     
    13521351syn keyword cType IssmDirectApplicInterface
    13531352syn keyword cType IssmParallelDirectApplicInterface
    1354 syn keyword cType krigingobjects
    13551353syn keyword cType Load
    13561354syn keyword cType Loads
     
    13631361syn keyword cType Matice
    13641362syn keyword cType Matlitho
    1365 syn keyword cType matrixobjects
    13661363syn keyword cType MatrixParam
    13671364syn keyword cType Misfit
     
    13761373syn keyword cType Observations
    13771374syn keyword cType Option
     1375syn keyword cType OptionUtilities
    13781376syn keyword cType Options
    1379 syn keyword cType OptionUtilities
    13801377syn keyword cType Param
    13811378syn keyword cType Parameters
     
    13911388syn keyword cType Regionaloutput
    13921389syn keyword cType Results
     1390syn keyword cType RiftStruct
    13931391syn keyword cType Riftfront
    1394 syn keyword cType RiftStruct
    13951392syn keyword cType Seg
    13961393syn keyword cType SegInput
     1394syn keyword cType SegRef
    13971395syn keyword cType Segment
    1398 syn keyword cType SegRef
    13991396syn keyword cType SpcDynamic
    14001397syn keyword cType SpcStatic
     
    14031400syn keyword cType StringArrayParam
    14041401syn keyword cType StringParam
    1405 syn keyword cType temp
    14061402syn keyword cType Tetra
    14071403syn keyword cType TetraInput
     
    14171413syn keyword cType Vertex
    14181414syn keyword cType Vertices
     1415syn keyword cType classes
     1416syn keyword cType gaussobjects
     1417syn keyword cType krigingobjects
     1418syn keyword cType matrixobjects
    14191419syn keyword cType AdjointBalancethickness2Analysis
    14201420syn keyword cType AdjointBalancethicknessAnalysis
     
    14351435syn keyword cType FreeSurfaceBaseAnalysis
    14361436syn keyword cType FreeSurfaceTopAnalysis
     1437syn keyword cType GLheightadvectionAnalysis
    14371438syn keyword cType GiaIvinsAnalysis
    1438 syn keyword cType GLheightadvectionAnalysis
    14391439syn keyword cType HydrologyDCEfficientAnalysis
    14401440syn keyword cType HydrologyDCInefficientAnalysis
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24240 r24259  
    659659        SealevelriseSpcthicknessEnum,
    660660        SealevelriseStericRateEnum,
     661        SealevelriseHydroRateEnum,
    661662   SedimentHeadEnum,
    662663   SedimentHeadOldEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24240 r24259  
    665665                case SealevelriseSpcthicknessEnum : return "SealevelriseSpcthickness";
    666666                case SealevelriseStericRateEnum : return "SealevelriseStericRate";
     667                case SealevelriseHydroRateEnum : return "SealevelriseHydroRate";
    667668                case SedimentHeadEnum : return "SedimentHead";
    668669                case SedimentHeadOldEnum : return "SedimentHeadOld";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24240 r24259  
    680680              else if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum;
    681681              else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum;
     682              else if (strcmp(name,"SealevelriseHydroRate")==0) return SealevelriseHydroRateEnum;
    682683              else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum;
    683684              else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum;
     
    751752              else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
    752753              else if (strcmp(name,"SmbReini")==0) return SmbReiniEnum;
    753               else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"SmbRunoffSubstep")==0) return SmbRunoffSubstepEnum;
     757              if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
     758              else if (strcmp(name,"SmbRunoffSubstep")==0) return SmbRunoffSubstepEnum;
    758759              else if (strcmp(name,"SmbRunoffTransient")==0) return SmbRunoffTransientEnum;
    759760              else if (strcmp(name,"SmbS0gcm")==0) return SmbS0gcmEnum;
     
    874875              else if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum;
    875876              else if (strcmp(name,"Outputdefinition37")==0) return Outputdefinition37Enum;
    876               else if (strcmp(name,"Outputdefinition38")==0) return Outputdefinition38Enum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Outputdefinition39")==0) return Outputdefinition39Enum;
     880              if (strcmp(name,"Outputdefinition38")==0) return Outputdefinition38Enum;
     881              else if (strcmp(name,"Outputdefinition39")==0) return Outputdefinition39Enum;
    881882              else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
    882883              else if (strcmp(name,"Outputdefinition40")==0) return Outputdefinition40Enum;
     
    997998              else if (strcmp(name,"ControlInputGrad")==0) return ControlInputGradEnum;
    998999              else if (strcmp(name,"ControlInputMaxs")==0) return ControlInputMaxsEnum;
    999               else if (strcmp(name,"ControlInputMins")==0) return ControlInputMinsEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"ControlInputValues")==0) return ControlInputValuesEnum;
     1003              if (strcmp(name,"ControlInputMins")==0) return ControlInputMinsEnum;
     1004              else if (strcmp(name,"ControlInputValues")==0) return ControlInputValuesEnum;
    10041005              else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
    10051006              else if (strcmp(name,"Cuffey")==0) return CuffeyEnum;
     
    11201121              else if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum;
    11211122              else if (strcmp(name,"LoveHi")==0) return LoveHiEnum;
    1122               else if (strcmp(name,"LoveHr")==0) return LoveHrEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"LoveKernelsImag")==0) return LoveKernelsImagEnum;
     1126              if (strcmp(name,"LoveHr")==0) return LoveHrEnum;
     1127              else if (strcmp(name,"LoveKernelsImag")==0) return LoveKernelsImagEnum;
    11271128              else if (strcmp(name,"LoveKernelsReal")==0) return LoveKernelsRealEnum;
    11281129              else if (strcmp(name,"LoveKi")==0) return LoveKiEnum;
     
    12431244              else if (strcmp(name,"SegInput")==0) return SegInputEnum;
    12441245              else if (strcmp(name,"Segment")==0) return SegmentEnum;
    1245               else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"Separate")==0) return SeparateEnum;
     1249              if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
     1250              else if (strcmp(name,"Separate")==0) return SeparateEnum;
    12501251              else if (strcmp(name,"Seq")==0) return SeqEnum;
    12511252              else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
  • issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp

    r24177 r24259  
    173173                fieldname=xNew<char>((strlen(field)+1)); xMemCpy<char>(fieldname,field,(strlen(field)+1));
    174174        }
     175        else if(strcmp(string_in,"SealevelriseStericRate")==0){
     176                const char* field = "md.slr.steric_rate";
     177                input_enum        = SealevelriseStericRateEnum;
     178                fieldname=xNew<char>((strlen(field)+1)); xMemCpy<char>(fieldname,field,(strlen(field)+1));
     179        }
     180        else if(strcmp(string_in,"SealevelriseHydroRate")==0){
     181                const char* field = "md.slr.hydro_rate";
     182                input_enum        = SealevelriseHydroRateEnum;
     183                fieldname=xNew<char>((strlen(field)+1)); xMemCpy<char>(fieldname,field,(strlen(field)+1));
     184        }
    175185        else if(strcmp(string_in,"SealevelUGiaRate")==0){
    176186                const char* field = "md.slr.Ugia";
  • issm/trunk-jpl/src/m/classes/slr.m

    r22970 r24259  
    2626                ocean_area_scaling     = 0;
    2727                steric_rate            = 0; %rate of ocean expansion from steric effects.
     28                hydro_rate             = 0; %rate of steric expansion from hydrological effects.
    2829                geodetic_run_frequency = 1; %how many time steps we skip before we run the geodetic part of the solver during transient
    2930                geodetic               = 0; %compute geodetic SLR? (in addition to steric?)
     
    8182                %steric:
    8283                self.steric_rate=0;
     84                self.hydro_rate=0;
    8385       
    8486                %how many time steps we skip before we run SLR solver during transient
     
    115117                        md = checkfield(md,'fieldname','slr.geodetic_run_frequency','size',[1 1],'>=',1);
    116118                        md = checkfield(md,'fieldname','slr.steric_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
     119                        md = checkfield(md,'fieldname','slr.hydro_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
    117120                        md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10);
    118121                        md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1);
     
    174177                        fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]');
    175178                        fielddisplay(self,'steric_rate','rate of steric ocean expansion (in mm/yr)');
     179                        fielddisplay(self,'hydro_rate','rate of hydrological expansion (in mm/yr)');
    176180                        fielddisplay(self,'Ngia','rate of viscous (GIA) geoid expansion (in mm/yr)');
    177181                        fielddisplay(self,'Ugia','rate of viscous (GIA) bedrock uplift (in mm/yr)');
     
    210214                        WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','format','Boolean');
    211215                        WriteData(fid,prefix,'object',self,'fieldname','geodetic_run_frequency','format','Integer');
    212                         WriteData(fid,prefix,'object',self,'fieldname','steric_rate','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts);
     216                        WriteData(fid,prefix,'object',self,'fieldname','steric_rate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts);
     217                        WriteData(fid,prefix,'object',self,'fieldname','hydro_rate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts);
    213218                        WriteData(fid,prefix,'object',self,'fieldname','Ngia','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts);
    214219                        WriteData(fid,prefix,'object',self,'fieldname','Ugia','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts);
     
    252257                        writejsdouble(fid,[modelname '.slr.geodetic_run_frequency'],self.geodetic_run_frequency);
    253258                        writejs1Darray(fid,[modelname '.slr.steric_rate'],self.steric_rate);
     259                        writejs1Darray(fid,[modelname '.slr.hydro_rate'],self.hydro_rate);
    254260                        writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
    255261                        writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
Note: See TracChangeset for help on using the changeset viewer.