Changeset 23843
- Timestamp:
- 04/12/19 09:33:28 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r23819 r23843 2148 2148 2149 2149 int numvertices = this->GetNumberOfVertices(); 2150 IssmDouble deepwaterel,upperwaterel,deepwatermelt ;2150 IssmDouble deepwaterel,upperwaterel,deepwatermelt,upperwatermelt; 2151 2151 IssmDouble* base = xNew<IssmDouble>(numvertices); 2152 2152 IssmDouble* values = xNew<IssmDouble>(numvertices); … … 2155 2155 parameters->FindParam(&time,TimeEnum); 2156 2156 parameters->FindParam(&deepwaterel,BasalforcingsDeepwaterElevationEnum,time); 2157 parameters->FindParam(&deepwatermelt,BasalforcingsDeepwaterMeltingRateEnum,time); 2157 2158 parameters->FindParam(&upperwaterel,BasalforcingsUpperwaterElevationEnum,time); 2158 parameters->FindParam(&deepwatermelt,BasalforcingsDeepwaterMeltingRateEnum,time); 2159 parameters->FindParam(&upperwatermelt,BasalforcingsUpperwaterMeltingRateEnum,time); 2160 _assert_(upperwaterel>deepwaterel); 2159 2161 2160 2162 this->GetInputListOnVertices(base,BaseEnum); 2161 2163 for(int i=0;i<numvertices;i++){ 2162 if(base[i]>upperwaterel) values[i]=0; 2163 else if (base[i]<deepwaterel) values[i]=deepwatermelt; 2164 else values[i]=deepwatermelt*(base[i]-upperwaterel)/(deepwaterel-upperwaterel); 2164 if(base[i]>=upperwaterel){ 2165 values[i]=upperwaterel; 2166 } 2167 else if (base[i]<deepwaterel){ 2168 values[i]=deepwatermelt; 2169 } 2170 else{ 2171 values[i]=deepwatermelt*(base[i]-upperwaterel)/(deepwaterel-upperwaterel); 2172 } 2165 2173 } 2166 2174 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r23799 r23843 164 164 _assert_(N==2); 165 165 parameters->AddObject(new TransientParam(BasalforcingsDeepwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M)); 166 } 167 xDelete<IssmDouble>(transparam); 168 iomodel->FetchData(&transparam,&N,&M,"md.basalforcings.upperwater_melting_rate"); 169 if(N==1){ 170 _assert_(M==1); 171 parameters->AddObject(new DoubleParam(BasalforcingsUpperwaterMeltingRateEnum,transparam[0])); 172 } 173 else{ 174 _assert_(N==2); 175 parameters->AddObject(new TransientParam(BasalforcingsUpperwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M)); 166 176 } 167 177 xDelete<IssmDouble>(transparam); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23839 r23843 61 61 BasalforcingsDeepwaterElevationEnum, 62 62 BasalforcingsDeepwaterMeltingRateEnum, 63 BasalforcingsUpperwaterMeltingRateEnum, 63 64 BasalforcingsDtbgEnum, 64 65 BasalforcingsEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23839 r23843 69 69 case BasalforcingsDeepwaterElevationEnum : return "BasalforcingsDeepwaterElevation"; 70 70 case BasalforcingsDeepwaterMeltingRateEnum : return "BasalforcingsDeepwaterMeltingRate"; 71 case BasalforcingsUpperwaterMeltingRateEnum : return "BasalforcingsUpperwaterMeltingRate"; 71 72 case BasalforcingsDtbgEnum : return "BasalforcingsDtbg"; 72 73 case BasalforcingsEnum : return "Basalforcings"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23839 r23843 69 69 else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum; 70 70 else if (strcmp(name,"BasalforcingsDeepwaterMeltingRate")==0) return BasalforcingsDeepwaterMeltingRateEnum; 71 else if (strcmp(name,"BasalforcingsUpperwaterMeltingRate")==0) return BasalforcingsUpperwaterMeltingRateEnum; 71 72 else if (strcmp(name,"BasalforcingsDtbg")==0) return BasalforcingsDtbgEnum; 72 73 else if (strcmp(name,"Basalforcings")==0) return BasalforcingsEnum; … … 136 137 else if (strcmp(name,"FlowequationFeFS")==0) return FlowequationFeFSEnum; 137 138 else if (strcmp(name,"FlowequationIsFS")==0) return FlowequationIsFSEnum; 138 else if (strcmp(name,"FlowequationIsHO")==0) return FlowequationIsHOEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum; 142 if (strcmp(name,"FlowequationIsHO")==0) return FlowequationIsHOEnum; 143 else if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum; 143 144 else if (strcmp(name,"FlowequationIsSIA")==0) return FlowequationIsSIAEnum; 144 145 else if (strcmp(name,"FlowequationIsSSA")==0) return FlowequationIsSSAEnum; … … 259 260 else if (strcmp(name,"MaterialsEffectiveconductivityAveraging")==0) return MaterialsEffectiveconductivityAveragingEnum; 260 261 else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum; 261 else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum; 265 if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum; 266 else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum; 266 267 else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum; 267 268 else if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum; … … 382 383 else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum; 383 384 else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum; 384 else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum; 388 if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum; 389 else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum; 389 390 else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum; 390 391 else if (strcmp(name,"Step")==0) return StepEnum; … … 505 506 else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum; 506 507 else if (strcmp(name,"EplHeadHydrostep")==0) return EplHeadHydrostepEnum; 507 else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum; 511 if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum; 512 else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum; 512 513 else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum; 513 514 else if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum; … … 628 629 else if (strcmp(name,"SmbBMin")==0) return SmbBMinEnum; 629 630 else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum; 630 else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"SmbC")==0) return SmbCEnum; 634 if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum; 635 else if (strcmp(name,"SmbC")==0) return SmbCEnum; 635 636 else if (strcmp(name,"SmbDailysnowfall")==0) return SmbDailysnowfallEnum; 636 637 else if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum; … … 751 752 else if (strcmp(name,"VzHO")==0) return VzHOEnum; 752 753 else if (strcmp(name,"VzMesh")==0) return VzMeshEnum; 753 else if (strcmp(name,"VzSSA")==0) return VzSSAEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; 757 if (strcmp(name,"VzSSA")==0) return VzSSAEnum; 758 else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; 758 759 else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; 759 760 else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum; … … 874 875 else if (strcmp(name,"FSSolver")==0) return FSSolverEnum; 875 876 else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum; 876 else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum; 880 if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum; 881 else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum; 881 882 else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum; 882 883 else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum; … … 997 998 else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum; 998 999 else if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum; 999 else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 1003 if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum; 1004 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 1004 1005 else if (strcmp(name,"None")==0) return NoneEnum; 1005 1006 else if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum; … … 1120 1121 else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum; 1121 1122 else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum; 1122 else if (strcmp(name,"P2")==0) return P2Enum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 1126 if (strcmp(name,"P2")==0) return P2Enum; 1127 else if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 1127 1128 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 1128 1129 else if (strcmp(name,"Paterson")==0) return PatersonEnum; … … 1243 1244 else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum; 1244 1245 else if (strcmp(name,"MeshZ")==0) return MeshZEnum; 1245 else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum; 1249 if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum; 1250 else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum; 1250 1251 else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum; 1251 1252 else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum; -
issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh
r23059 r23843 13 13 14 14 #Deal with Analyses 15 if true ; then15 if false ; then 16 16 #Build EnumToAnalysis.cpp {{{ 17 17 #Header
Note:
See TracChangeset
for help on using the changeset viewer.