source:
issm/oecreview/Archive/23390-24306/ISSM-23990-23991.diff
Last change on this file was 24307, checked in by , 5 years ago | |
---|---|
File size: 20.7 KB |
-
../trunk-jpl/src/c/classes/FemModel.h
126 126 void StrainRateeffectivex(); 127 127 void StressIntensityFactorx(); 128 128 void RignotMeltParameterizationx(); 129 void TotalCalvingFluxx(IssmDouble* pFbmb, bool scaled); 130 void TotalCalvingFluxLevelsetx(IssmDouble* pGbmb, bool scaled); 129 131 void TotalFloatingBmbx(IssmDouble* pFbmb, bool scaled); 130 132 void TotalGroundedBmbx(IssmDouble* pGbmb, bool scaled); 131 133 void TotalSmbx(IssmDouble* pSmb, bool scaled); -
../trunk-jpl/src/c/classes/FemModel.cpp
2201 2201 case MaxVzEnum: this->MaxVzx(&double_result); break; 2202 2202 case MaxAbsVzEnum: this->MaxAbsVzx(&double_result); break; 2203 2203 case MassFluxEnum: this->MassFluxx(&double_result); break; 2204 case TotalCalvingFluxEnum: this->TotalCalvingFluxx(&double_result,false); break; 2205 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(&double_result,false); break; 2204 2206 case TotalFloatingBmbEnum: this->TotalFloatingBmbx(&double_result,false); break; 2205 2207 case TotalFloatingBmbScaledEnum: this->TotalFloatingBmbx(&double_result,true); break; 2206 2208 case TotalGroundedBmbEnum: this->TotalGroundedBmbx(&double_result,false); break; … … 2445 2447 case RheologyBbarAbsGradientEnum: RheologyBbarAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 2446 2448 case DragCoefficientAbsGradientEnum: DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 2447 2449 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(responses); break; 2450 case TotalCalvingFluxEnum: this->TotalCalvingFluxx(responses, false); break; 2451 case TotalCalvingFluxLevelsetEnum: this->TotalCalvingFluxLevelsetx(responses, false); break; 2448 2452 case TotalFloatingBmbEnum: this->TotalFloatingBmbx(responses, false); break; 2449 2453 case TotalFloatingBmbScaledEnum: this->TotalFloatingBmbx(responses, true); break; 2450 2454 case TotalGroundedBmbEnum: this->TotalGroundedBmbx(responses, false); break; … … 2709 2713 *pdt=min_dt; 2710 2714 } 2711 2715 /*}}}*/ 2716 void FemModel::TotalCalvingFluxx(IssmDouble* pM, bool scaled){/*{{{*/ 2717 2718 IssmDouble local_calving_flux = 0; 2719 IssmDouble total_calving_flux; 2720 2721 for(int i=0;i<this->elements->Size();i++){ 2722 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2723 local_calving_flux+=element->TotalCalvingFlux(scaled); 2724 } 2725 ISSM_MPI_Reduce(&local_calving_flux,&total_calving_flux,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 2726 ISSM_MPI_Bcast(&total_calving_flux,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 2727 2728 /*Assign output pointers: */ 2729 *pM=total_calving_flux; 2730 2731 }/*}}}*/ 2732 void FemModel::TotalCalvingFluxLevelsetx(IssmDouble* pM, bool scaled){/*{{{*/ 2733 2734 IssmDouble local_calving_flux = 0; 2735 IssmDouble total_calving_flux; 2736 2737 for(int i=0;i<this->elements->Size();i++){ 2738 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 2739 local_calving_flux+=element->TotalCalvingFluxLevelset(scaled); 2740 } 2741 ISSM_MPI_Reduce(&local_calving_flux,&total_calving_flux,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); 2742 ISSM_MPI_Bcast(&total_calving_flux,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); 2743 2744 /*Assign output pointers: */ 2745 *pM=total_calving_flux; 2746 2747 }/*}}}*/ 2712 2748 void FemModel::TotalFloatingBmbx(IssmDouble* pFbmb, bool scaled){/*{{{*/ 2713 2749 2714 2750 IssmDouble local_fbmb = 0; -
../trunk-jpl/src/c/classes/Elements/Element.h
319 319 virtual IssmDouble SurfaceArea(void)=0; 320 320 virtual int TensorInterpolation()=0; 321 321 virtual IssmDouble TimeAdapt()=0; 322 virtual IssmDouble TotalCalvingFlux(bool scaled){_error_("not implemented");}; 323 virtual IssmDouble TotalCalvingFluxLevelset(bool scaled){_error_("not implemented");}; 322 324 virtual IssmDouble TotalFloatingBmb(bool scaled)=0; 323 325 virtual IssmDouble TotalGroundedBmb(bool scaled)=0; 324 326 virtual IssmDouble TotalSmb(bool scaled)=0; -
../trunk-jpl/src/c/classes/Elements/Tria.cpp
4059 4059 return dt; 4060 4060 } 4061 4061 /*}}}*/ 4062 IssmDouble Tria::TotalCalvingFlux(bool scaled){/*{{{*/ 4063 4064 /*Make sure there is an ice front here*/ 4065 if(!IsIceInElement() || !IsIcefront()) return 0; 4066 4067 /*Scaled not implemented yet...*/ 4068 _assert_(!scaled); 4069 4070 /*Get domain type*/ 4071 int domaintype; 4072 parameters->FindParam(&domaintype,DomainTypeEnum); 4073 4074 /*Get ice front coordinates*/ 4075 IssmDouble *xyz_list = NULL; 4076 IssmDouble* xyz_front = NULL; 4077 this->GetVerticesCoordinates(&xyz_list); 4078 this->GetIcefrontCoordinates(&xyz_front,xyz_list,MaskIceLevelsetEnum); 4079 4080 /*Get normal vector*/ 4081 IssmDouble normal[3]; 4082 this->NormalSection(&normal[0],xyz_front); 4083 //normal[0] = -normal[0]; 4084 //normal[1] = -normal[1]; 4085 4086 /*Get inputs*/ 4087 IssmDouble flux = 0.; 4088 IssmDouble calvingratex,calvingratey,thickness,Jdet; 4089 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4090 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 4091 Input* calvingratex_input=NULL; 4092 Input* calvingratey_input=NULL; 4093 if(domaintype==Domain2DhorizontalEnum){ 4094 calvingratex_input=inputs->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4095 calvingratey_input=inputs->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4096 } 4097 else{ 4098 calvingratex_input=inputs->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 4099 calvingratey_input=inputs->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 4100 } 4101 4102 /*Start looping on Gaussian points*/ 4103 Gauss* gauss=this->NewGauss(xyz_list,xyz_front,3); 4104 for(int ig=gauss->begin();ig<gauss->end();ig++){ 4105 4106 gauss->GaussPoint(ig); 4107 thickness_input->GetInputValue(&thickness,gauss); 4108 calvingratex_input->GetInputValue(&calvingratex,gauss); 4109 calvingratey_input->GetInputValue(&calvingratey,gauss); 4110 this->JacobianDeterminantSurface(&Jdet,xyz_front,gauss); 4111 4112 flux += rho_ice*Jdet*gauss->weight*thickness*(calvingratex*normal[0] + calvingratey*normal[1]); 4113 } 4114 4115 return flux; 4116 } 4117 /*}}}*/ 4118 IssmDouble Tria::TotalCalvingFluxLevelset(bool scaled){/*{{{*/ 4119 4120 /*Make sure there is an ice front here*/ 4121 if(!IsIceInElement() || !IsZeroLevelset(MaskIceLevelsetEnum)) return 0; 4122 4123 /*Scaled not implemented yet...*/ 4124 _assert_(!scaled); 4125 4126 int domaintype,index1,index2; 4127 const IssmPDouble epsilon = 1.e-15; 4128 IssmDouble s1,s2; 4129 IssmDouble gl[NUMVERTICES]; 4130 IssmDouble xyz_front[2][3]; 4131 4132 4133 IssmDouble *xyz_list = NULL; 4134 this->GetVerticesCoordinates(&xyz_list); 4135 4136 /*Recover parameters and values*/ 4137 parameters->FindParam(&domaintype,DomainTypeEnum); 4138 GetInputListOnVertices(&gl[0],MaskIceLevelsetEnum); 4139 4140 /*Be sure that values are not zero*/ 4141 if(gl[0]==0.) gl[0]=gl[0]+epsilon; 4142 if(gl[1]==0.) gl[1]=gl[1]+epsilon; 4143 if(gl[2]==0.) gl[2]=gl[2]+epsilon; 4144 4145 if(domaintype==Domain2DverticalEnum){ 4146 _error_("not implemented"); 4147 } 4148 else if(domaintype==Domain2DhorizontalEnum || domaintype==Domain3DEnum || domaintype==Domain3DsurfaceEnum){ 4149 int pt1 = 0; 4150 int pt2 = 1; 4151 if(gl[0]*gl[1]>0){ //Nodes 0 and 1 are similar, so points must be found on segment 0-2 and 1-2 4152 4153 /*Portion of the segments*/ 4154 s1=gl[2]/(gl[2]-gl[1]); 4155 s2=gl[2]/(gl[2]-gl[0]); 4156 if(gl[2]<0.){ 4157 pt1 = 1; pt2 = 0; 4158 } 4159 xyz_front[pt2][0]=xyz_list[3*2+0]+s1*(xyz_list[3*1+0]-xyz_list[3*2+0]); 4160 xyz_front[pt2][1]=xyz_list[3*2+1]+s1*(xyz_list[3*1+1]-xyz_list[3*2+1]); 4161 xyz_front[pt2][2]=xyz_list[3*2+2]+s1*(xyz_list[3*1+2]-xyz_list[3*2+2]); 4162 xyz_front[pt1][0]=xyz_list[3*2+0]+s2*(xyz_list[3*0+0]-xyz_list[3*2+0]); 4163 xyz_front[pt1][1]=xyz_list[3*2+1]+s2*(xyz_list[3*0+1]-xyz_list[3*2+1]); 4164 xyz_front[pt1][2]=xyz_list[3*2+2]+s2*(xyz_list[3*0+2]-xyz_list[3*2+2]); 4165 } 4166 else if(gl[1]*gl[2]>0){ //Nodes 1 and 2 are similar, so points must be found on segment 0-1 and 0-2 4167 4168 /*Portion of the segments*/ 4169 s1=gl[0]/(gl[0]-gl[1]); 4170 s2=gl[0]/(gl[0]-gl[2]); 4171 if(gl[0]<0.){ 4172 pt1 = 1; pt2 = 0; 4173 } 4174 4175 xyz_front[pt1][0]=xyz_list[3*0+0]+s1*(xyz_list[3*1+0]-xyz_list[3*0+0]); 4176 xyz_front[pt1][1]=xyz_list[3*0+1]+s1*(xyz_list[3*1+1]-xyz_list[3*0+1]); 4177 xyz_front[pt1][2]=xyz_list[3*0+2]+s1*(xyz_list[3*1+2]-xyz_list[3*0+2]); 4178 xyz_front[pt2][0]=xyz_list[3*0+0]+s2*(xyz_list[3*2+0]-xyz_list[3*0+0]); 4179 xyz_front[pt2][1]=xyz_list[3*0+1]+s2*(xyz_list[3*2+1]-xyz_list[3*0+1]); 4180 xyz_front[pt2][2]=xyz_list[3*0+2]+s2*(xyz_list[3*2+2]-xyz_list[3*0+2]); 4181 } 4182 else if(gl[0]*gl[2]>0){ //Nodes 0 and 2 are similar, so points must be found on segment 1-0 and 1-2 4183 4184 /*Portion of the segments*/ 4185 s1=gl[1]/(gl[1]-gl[0]); 4186 s2=gl[1]/(gl[1]-gl[2]); 4187 if(gl[1]<0.){ 4188 pt1 = 1; pt2 = 0; 4189 } 4190 4191 xyz_front[pt2][0]=xyz_list[3*1+0]+s1*(xyz_list[3*0+0]-xyz_list[3*1+0]); 4192 xyz_front[pt2][1]=xyz_list[3*1+1]+s1*(xyz_list[3*0+1]-xyz_list[3*1+1]); 4193 xyz_front[pt2][2]=xyz_list[3*1+2]+s1*(xyz_list[3*0+2]-xyz_list[3*1+2]); 4194 xyz_front[pt1][0]=xyz_list[3*1+0]+s2*(xyz_list[3*2+0]-xyz_list[3*1+0]); 4195 xyz_front[pt1][1]=xyz_list[3*1+1]+s2*(xyz_list[3*2+1]-xyz_list[3*1+1]); 4196 xyz_front[pt1][2]=xyz_list[3*1+2]+s2*(xyz_list[3*2+2]-xyz_list[3*1+2]); 4197 } 4198 else{ 4199 _error_("case not possible"); 4200 } 4201 4202 } 4203 else _error_("mesh type "<<EnumToStringx(domaintype)<<"not supported yet "); 4204 4205 /*Some checks in debugging mode*/ 4206 _assert_(s1>=0 && s1<=1.); 4207 _assert_(s2>=0 && s2<=1.); 4208 4209 /*Get normal vector*/ 4210 IssmDouble normal[3]; 4211 this->NormalSection(&normal[0],&xyz_front[0][0]); 4212 normal[0] = -normal[0]; 4213 normal[1] = -normal[1]; 4214 4215 /*Get inputs*/ 4216 IssmDouble flux = 0.; 4217 IssmDouble calvingratex,calvingratey,thickness,Jdet; 4218 IssmDouble rho_ice=FindParam(MaterialsRhoIceEnum); 4219 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 4220 Input* calvingratex_input=NULL; 4221 Input* calvingratey_input=NULL; 4222 if(domaintype==Domain2DhorizontalEnum){ 4223 calvingratex_input=inputs->GetInput(CalvingratexEnum); _assert_(calvingratex_input); 4224 calvingratey_input=inputs->GetInput(CalvingrateyEnum); _assert_(calvingratey_input); 4225 } 4226 else{ 4227 calvingratex_input=inputs->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input); 4228 calvingratey_input=inputs->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input); 4229 } 4230 4231 /*Start looping on Gaussian points*/ 4232 Gauss* gauss=this->NewGauss(xyz_list,&xyz_front[0][0],3); 4233 for(int ig=gauss->begin();ig<gauss->end();ig++){ 4234 4235 gauss->GaussPoint(ig); 4236 thickness_input->GetInputValue(&thickness,gauss); 4237 calvingratex_input->GetInputValue(&calvingratex,gauss); 4238 calvingratey_input->GetInputValue(&calvingratey,gauss); 4239 this->JacobianDeterminantSurface(&Jdet,&xyz_front[0][0],gauss); 4240 4241 flux += rho_ice*Jdet*gauss->weight*thickness*(calvingratex*normal[0] + calvingratey*normal[1]); 4242 } 4243 4244 return flux; 4245 } 4246 /*}}}*/ 4062 4247 IssmDouble Tria::TotalFloatingBmb(bool scaled){/*{{{*/ 4063 4248 4064 4249 /*The fbmb[kg yr-1] of one element is area[m2] * melting_rate [kg m^-2 yr^-1]*/ -
../trunk-jpl/src/c/classes/Elements/Tria.h
136 136 IssmDouble SurfaceArea(void); 137 137 int TensorInterpolation(); 138 138 IssmDouble TimeAdapt(); 139 IssmDouble TotalCalvingFlux(bool scaled); 140 IssmDouble TotalCalvingFluxLevelset(bool scaled); 139 141 IssmDouble TotalFloatingBmb(bool scaled); 140 142 IssmDouble TotalGroundedBmb(bool scaled); 141 143 IssmDouble TotalSmb(bool scaled); -
../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
144 144 FrictionThresholdSpeedEnum, 145 145 FrictionVoidRatioEnum, 146 146 FrontalForcingsBasinIcefrontAreaEnum, 147 FrontalForcingsBasinIdEnum,148 147 FrontalForcingsNumberofBasinsEnum, 149 148 FrontalForcingsParamEnum, 150 149 GiaCrossSectionShapeEnum, … … 531 530 FrictionTillFrictionAngleEnum, 532 531 FrictionWaterLayerEnum, 533 532 FrictionfEnum, 533 FrontalForcingsBasinIdEnum, 534 534 FrontalForcingsSubglacialDischargeEnum, 535 535 FrontalForcingsThermalForcingEnum, 536 536 GeometryHydrostaticRatioEnum, … … 1207 1207 ThermalAnalysisEnum, 1208 1208 ThermalSolutionEnum, 1209 1209 ThicknessErrorEstimatorEnum, 1210 TotalCalvingFluxEnum, 1211 TotalCalvingFluxLevelsetEnum, 1210 1212 TotalFloatingBmbEnum, 1211 1213 TotalFloatingBmbScaledEnum, 1212 1214 TotalGroundedBmbEnum, -
../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
152 152 case FrictionThresholdSpeedEnum : return "FrictionThresholdSpeed"; 153 153 case FrictionVoidRatioEnum : return "FrictionVoidRatio"; 154 154 case FrontalForcingsBasinIcefrontAreaEnum : return "FrontalForcingsBasinIcefrontArea"; 155 case FrontalForcingsBasinIdEnum : return "FrontalForcingsBasinId";156 155 case FrontalForcingsNumberofBasinsEnum : return "FrontalForcingsNumberofBasins"; 157 156 case FrontalForcingsParamEnum : return "FrontalForcingsParam"; 158 157 case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape"; … … 537 536 case FrictionTillFrictionAngleEnum : return "FrictionTillFrictionAngle"; 538 537 case FrictionWaterLayerEnum : return "FrictionWaterLayer"; 539 538 case FrictionfEnum : return "Frictionf"; 539 case FrontalForcingsBasinIdEnum : return "FrontalForcingsBasinId"; 540 540 case FrontalForcingsSubglacialDischargeEnum : return "FrontalForcingsSubglacialDischarge"; 541 541 case FrontalForcingsThermalForcingEnum : return "FrontalForcingsThermalForcing"; 542 542 case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio"; … … 1211 1211 case ThermalAnalysisEnum : return "ThermalAnalysis"; 1212 1212 case ThermalSolutionEnum : return "ThermalSolution"; 1213 1213 case ThicknessErrorEstimatorEnum : return "ThicknessErrorEstimator"; 1214 case TotalCalvingFluxEnum : return "TotalCalvingFlux"; 1215 case TotalCalvingFluxLevelsetEnum : return "TotalCalvingFluxLevelset"; 1214 1216 case TotalFloatingBmbEnum : return "TotalFloatingBmb"; 1215 1217 case TotalFloatingBmbScaledEnum : return "TotalFloatingBmbScaled"; 1216 1218 case TotalGroundedBmbEnum : return "TotalGroundedBmb"; -
../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
155 155 else if (strcmp(name,"FrictionThresholdSpeed")==0) return FrictionThresholdSpeedEnum; 156 156 else if (strcmp(name,"FrictionVoidRatio")==0) return FrictionVoidRatioEnum; 157 157 else if (strcmp(name,"FrontalForcingsBasinIcefrontArea")==0) return FrontalForcingsBasinIcefrontAreaEnum; 158 else if (strcmp(name,"FrontalForcingsBasinId")==0) return FrontalForcingsBasinIdEnum;159 158 else if (strcmp(name,"FrontalForcingsNumberofBasins")==0) return FrontalForcingsNumberofBasinsEnum; 160 159 else if (strcmp(name,"FrontalForcingsParam")==0) return FrontalForcingsParamEnum; 161 160 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; … … 259 258 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum; 260 259 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 261 260 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum; 261 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; 262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; 266 else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum; 265 if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum; 267 266 else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum; 268 267 else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum; 269 268 else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum; … … 382 381 else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum; 383 382 else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum; 384 383 else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum; 384 else if (strcmp(name,"SmbThermoDeltaTScaling")==0) return SmbThermoDeltaTScalingEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbThermoDeltaTScaling")==0) return SmbThermoDeltaTScalingEnum; 389 else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum; 388 if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum; 390 389 else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum; 391 390 else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum; 392 391 else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum; … … 505 504 else if (strcmp(name,"DistanceToGroundingline")==0) return DistanceToGroundinglineEnum; 506 505 else if (strcmp(name,"Domain2Dhorizontal")==0) return Domain2DhorizontalEnum; 507 506 else if (strcmp(name,"Domain2Dvertical")==0) return Domain2DverticalEnum; 507 else if (strcmp(name,"Domain3D")==0) return Domain3DEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"Domain3D")==0) return Domain3DEnum; 512 else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 511 if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 513 512 else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum; 514 513 else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum; 515 514 else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum; … … 549 548 else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum; 550 549 else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum; 551 550 else if (strcmp(name,"Frictionf")==0) return FrictionfEnum; 551 else if (strcmp(name,"FrontalForcingsBasinId")==0) return FrontalForcingsBasinIdEnum; 552 552 else if (strcmp(name,"FrontalForcingsSubglacialDischarge")==0) return FrontalForcingsSubglacialDischargeEnum; 553 553 else if (strcmp(name,"FrontalForcingsThermalForcing")==0) return FrontalForcingsThermalForcingEnum; 554 554 else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum; … … 1238 1238 else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 1239 1239 else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum; 1240 1240 else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum; 1241 else if (strcmp(name,"TotalCalvingFlux")==0) return TotalCalvingFluxEnum; 1242 else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum; 1241 1243 else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum; 1242 1244 else if (strcmp(name,"TotalFloatingBmbScaled")==0) return TotalFloatingBmbScaledEnum; 1243 1245 else if (strcmp(name,"TotalGroundedBmb")==0) return TotalGroundedBmbEnum; 1244 else if (strcmp(name,"TotalGroundedBmbScaled")==0) return TotalGroundedBmbScaledEnum;1245 else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum; 1249 if (strcmp(name,"TotalGroundedBmbScaled")==0) return TotalGroundedBmbScaledEnum; 1250 else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum; 1251 else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum; 1250 1252 else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum; 1251 1253 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 1252 1254 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
Note:
See TracBrowser
for help on using the repository browser.