Changeset 27462
- Timestamp:
- 12/20/22 05:28:05 (2 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/m4/analyses.m4
r27299 r27462 374 374 AC_MSG_RESULT($HAVE_HYDROLOGYSHREVE) 375 375 dnl }}} 376 dnl with-HydrologyArmapw{{{ 377 AC_ARG_WITH([HydrologyArmapw], 378 AS_HELP_STRING([--with-HydrologyArmapw = YES], [compile with HydrologyArmapw capabilities (default is yes)]), 379 [HYDROLOGYARMAPW=$withval],[HYDROLOGYARMAPW=yes]) 380 AC_MSG_CHECKING(for HydrologyArmapw capability compilation) 381 382 HAVE_HYDROLOGYARMAPW=no 383 if test "x$HYDROLOGYARMAPW" = "xyes"; then 384 HAVE_HYDROLOGYARMAPW=yes 385 AC_DEFINE([_HAVE_HYDROLOGYARMAPW_],[1],[with HydrologyArmapw capability]) 386 fi 387 AM_CONDITIONAL([HYDROLOGYARMAPW], [test x$HAVE_HYDROLOGYARMAPW = xyes]) 388 AC_MSG_RESULT($HAVE_HYDROLOGYARMAPW) 389 dnl }}} 376 390 dnl with-L2ProjectionBase{{{ 377 391 AC_ARG_WITH([L2ProjectionBase], -
issm/trunk-jpl/src/c/Makefile.am
r27399 r27462 487 487 issm_sources += ./analyses/HydrologyDCEfficientAnalysis.cpp 488 488 endif 489 if HYDROLOGYARMAPW 490 issm_sources += ./analyses/HydrologyArmapwAnalysis.cpp 491 endif 489 492 if L2PROJECTIONEPL 490 493 issm_sources += ./analyses/L2ProjectionEPLAnalysis.cpp -
issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
r27299 r27462 74 74 case GLheightadvectionAnalysisEnum : return new GLheightadvectionAnalysis(); 75 75 #endif 76 #ifdef _HAVE_HYDROLOGYARMAPW_ 77 case HydrologyArmapwAnalysisEnum : return new HydrologyArmapwAnalysis(); 78 #endif 76 79 #ifdef _HAVE_HYDROLOGYDCEFFICIENT_ 77 80 case HydrologyDCEfficientAnalysisEnum : return new HydrologyDCEfficientAnalysis(); -
issm/trunk-jpl/src/c/analyses/analyses.h
r27298 r27462 28 28 #include "./LoveAnalysis.h" 29 29 #include "./EsaAnalysis.h" 30 #include "./HydrologyArmapwAnalysis.h" 30 31 #include "./HydrologyDCEfficientAnalysis.h" 31 32 #include "./HydrologyDCInefficientAnalysis.h" -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r27449 r27462 105 105 noiseenum_type = SubglacialdischargeARMANoiseEnum; 106 106 outenum_type = FrontalForcingsSubglacialDischargeEnum; 107 break; 108 case(HydrologyarmapwEnum): 109 arenum_type = WaterPressureValuesAutoregressionEnum; 110 maenum_type = WaterPressureValuesMovingaverageEnum; 111 basinenum_type = HydrologyBasinsIdEnum; 112 noiseenum_type = FrictionWaterPressureNoiseEnum; 113 outenum_type = WaterPressureArmaPerturbationEnum; 107 114 break; 108 115 } … … 2733 2740 2734 2741 /*Variable declaration*/ 2742 bool ratevariable; 2735 2743 const int numvertices = this->GetNumberOfVertices(); 2736 2744 int basinid,mindex,mindexnext,basinenum_type,varenum_type,indperiod; … … 2749 2757 basinenum_type = FrontalForcingsBasinIdEnum; 2750 2758 varenum_type = FrontalForcingsSubglacialDischargeEnum; 2751 break; 2759 ratevariable = true; 2760 break; 2761 case(HydrologyarmapwEnum): 2762 basinenum_type = HydrologyBasinsIdEnum; 2763 varenum_type = FrictionWaterPressureEnum; 2764 ratevariable = false; 2765 break; 2752 2766 } 2753 2767 … … 2787 2801 for(int v=0;v<numvertices;v++){ 2788 2802 for(int i=0;i<12;i++){ 2789 rateinmonth[v*12+i] = varlistinput[v]*monthlyfac_b[i]*12; 2790 varlist[v] = varlist[v]+fracdtinmonth[i]*rateinmonth[v*12+i]; 2803 if(ratevariable){ 2804 rateinmonth[v*12+i] = varlistinput[v]*monthlyfac_b[i]*12; 2805 varlist[v] = varlist[v]+fracdtinmonth[i]*rateinmonth[v*12+i]; 2806 } 2807 else varlist[v] = varlist[v]+fracdtinmonth[i]*monthlyfac_b[i]*varlistinput[v]; 2791 2808 } 2792 2809 } 2793 2810 /*Update input*/ 2794 this->AddInput(varenum_type,varlist,P1 Enum);2811 this->AddInput(varenum_type,varlist,P1DGEnum); 2795 2812 2796 2813 /*Clean-up*/ … … 4713 4730 void Element::SubglacialWaterPressure(int output_enum){/*{{{*/ 4714 4731 4715 int numvertices = this->GetNumberOfVertices(); 4716 IssmDouble p_water[numvertices]; 4717 Gauss* gauss=this->NewGauss(); 4732 bool ispwHydroArma; 4733 int M; 4734 int numvertices = this->GetNumberOfVertices(); 4735 IssmDouble p_water[numvertices]; 4736 IssmDouble* perturbationvalues = xNew<IssmDouble>(numvertices); 4737 Gauss* gauss=this->NewGauss(); 4718 4738 Friction* friction = new Friction(this); 4739 /*Calculate subglacial water pressure*/ 4719 4740 for(int i=0;i<numvertices;i++){ 4720 4741 gauss->GaussVertex(i); 4721 4742 p_water[i] = friction->SubglacialWaterPressure(gauss); 4722 } 4723 this->AddInput(output_enum,p_water,P1DGEnum); 4724 delete gauss; 4743 } 4744 /*Add perturbation in water pressure if HydrologyIsWaterPressureArmaEnum is true*/ 4745 this->parameters->FindParam(&ispwHydroArma,HydrologyIsWaterPressureArmaEnum); 4746 if(ispwHydroArma){ 4747 this->GetInputListOnVertices(perturbationvalues,WaterPressureArmaPerturbationEnum); 4748 for(int i=0;i<numvertices;i++) p_water[i] = p_water[i]+perturbationvalues[i]; 4749 } 4750 /*Save*/ 4751 this->AddInput(output_enum,p_water,P1DGEnum); 4752 /*Clean-up*/ 4753 delete gauss; 4725 4754 delete friction; 4755 xDelete<IssmDouble>(perturbationvalues); 4726 4756 4727 4757 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r27459 r27462 796 796 analyses_temp[numanalyses++]=L2ProjectionEPLAnalysisEnum; 797 797 analyses_temp[numanalyses++]=L2ProjectionBaseAnalysisEnum; 798 } 799 if(hydrology_model==HydrologyarmapwEnum){ 800 analyses_temp[numanalyses++]=HydrologyArmapwAnalysisEnum; 798 801 } 799 802 } -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r27450 r27462 344 344 345 345 /*Get effective pressure*/ 346 bool ispwStochastic; 347 IssmDouble Neff; 348 element->parameters->FindParam(&ispwStochastic,StochasticForcingIsWaterPressureEnum); 349 if(ispwStochastic){ 350 /*Retrieve stochastic water pressure and compute ice pressure*/ 351 IssmDouble p_ice,p_water,Neff_limit; 352 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 353 element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum); 354 p_ice = IcePressure(gauss); 355 Neff = max(Neff_limit*p_ice, p_ice - p_water); 356 } 357 else{ 358 /*Compute effective pressure directly*/ 359 Neff = EffectivePressure(gauss); 360 } 346 bool ispwHydro,ispwStochastic; 347 IssmDouble Neff; 348 element->parameters->FindParam(&ispwStochastic,StochasticForcingIsWaterPressureEnum); 349 element->parameters->FindParam(&ispwHydro,HydrologyIsWaterPressureArmaEnum); 350 if(ispwStochastic || ispwHydro){ 351 /*Retrieve pre-computed water pressure and compute ice pressure*/ 352 IssmDouble p_ice,p_water,Neff_limit; 353 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 354 element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum); 355 p_ice = IcePressure(gauss); 356 Neff = max(Neff_limit*p_ice, p_ice - p_water); 357 } 358 else{ 359 /*Compute effective pressure directly*/ 360 Neff = EffectivePressure(gauss); 361 } 361 362 362 363 /*Get velocity magnitude*/ … … 559 560 IssmDouble vmag = VelMag(gauss); 560 561 561 bool ispwStochastic; 562 IssmDouble Neff; 563 element->parameters->FindParam(&ispwStochastic,StochasticForcingIsWaterPressureEnum); 564 if(ispwStochastic){ 565 /*Retrieve stochastic water pressure and compute ice pressure*/ 566 IssmDouble p_ice,p_water,Neff_limit; 567 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 562 bool ispwHydro,ispwStochastic; 563 IssmDouble Neff; 564 element->parameters->FindParam(&ispwStochastic,StochasticForcingIsWaterPressureEnum); 565 element->parameters->FindParam(&ispwHydro,HydrologyIsWaterPressureArmaEnum); 566 if(ispwStochastic || ispwHydro){ 567 /*Retrieve pre-computed water pressure and compute ice pressure*/ 568 IssmDouble p_ice,p_water,Neff_limit; 569 element->GetInputValue(&p_water,gauss,FrictionWaterPressureEnum); 568 570 element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum); 569 570 571 571 p_ice = IcePressure(gauss); 572 Neff = max(Neff_limit*p_ice, p_ice - p_water); 573 } 572 574 else{ 573 575 /*Compute effective pressure directly*/ -
issm/trunk-jpl/src/c/cores/hydrology_core.cpp
r27186 r27462 261 261 delete analysis; 262 262 } 263 264 /*Using the armaPw hydrology model*/ 265 else if (hydrology_model==HydrologyarmapwEnum){ 266 femmodel->SetCurrentConfiguration(HydrologyArmapwAnalysisEnum); 267 if(VerboseSolution()) _printf0_(" updating subglacial water pressure\n"); 268 HydrologyArmapwAnalysis* analysis = new HydrologyArmapwAnalysis(); 269 analysis->UpdateSubglacialWaterPressure(femmodel); 270 delete analysis; 271 } 263 272 else{ 264 273 _error_("Hydrology model "<< EnumToStringx(hydrology_model) <<" not supported yet"); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r27318 r27462 496 496 int hydrology_model; 497 497 iomodel->FindConstant(&hydrology_model,"md.hydrology.model"); 498 parameters->AddObject(new BoolParam(HydrologyIsWaterPressureArmaEnum,false)); 498 499 if(hydrology_model==HydrologydcEnum){ 499 500 IssmDouble sedcomp, sedporo, watcomp, rhofresh, g; … … 533 534 /*Nothing to add*/ 534 535 } 536 else if(hydrology_model==HydrologyarmapwEnum){ 537 parameters->SetParam(true,HydrologyIsWaterPressureArmaEnum); 538 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.num_basins",HydrologyNumBasinsEnum)); 539 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.num_breaks",HydrologyarmaNumBreaksEnum)); 540 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.num_params",HydrologyarmaNumParamsEnum)); 541 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.ar_order",HydrologyarmaarOrderEnum)); 542 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.ma_order",HydrologyarmamaOrderEnum)); 543 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.arma_timestep",HydrologyarmaTimestepEnum)); 544 iomodel->FetchData(&transparam,&M,&N,"md.hydrology.datebreaks"); 545 parameters->AddObject(new DoubleMatParam(HydrologyarmadatebreaksEnum,transparam,M,N)); 546 xDelete<IssmDouble>(transparam); 547 iomodel->FetchData(&transparam,&M,&N,"md.hydrology.polynomialparams"); 548 parameters->AddObject(new DoubleMatParam(HydrologyarmapolyparamsEnum,transparam,M,N)); 549 xDelete<IssmDouble>(transparam); 550 iomodel->FetchData(&transparam,&M,&N,"md.hydrology.arlag_coefs"); 551 parameters->AddObject(new DoubleMatParam(HydrologyarmaarlagcoefsEnum,transparam,M,N)); 552 xDelete<IssmDouble>(transparam); 553 iomodel->FetchData(&transparam,&M,&N,"md.hydrology.malag_coefs"); 554 parameters->AddObject(new DoubleMatParam(HydrologyarmamalagcoefsEnum,transparam,M,N)); 555 xDelete<IssmDouble>(transparam); 556 iomodel->FetchData(&transparam,&M,&N,"md.hydrology.monthlyfactors"); 557 parameters->AddObject(new DoubleMatParam(HydrologyarmaMonthlyFactorsEnum,transparam,M,N)); 558 xDelete<IssmDouble>(transparam); 559 } 535 560 else{ 536 561 _error_("Hydrology model "<<EnumToStringx(hydrology_model)<<" not supported yet"); -
issm/trunk-jpl/src/c/modules/StochasticForcingx/StochasticForcingx.cpp
r27450 r27462 33 33 femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum); 34 34 femmodel->parameters->FindParam(&tstep_stoch,StochasticForcingTimestepEnum); 35 35 36 /*Check if we use HydroarmaPw*/ 37 bool ispwHydro; 38 femmodel->parameters->FindParam(&ispwHydro,HydrologyIsWaterPressureArmaEnum); 39 36 40 #ifndef _HAVE_AD_ 37 41 if((fmod(time,tstep_stoch)<fmod((time-dt),tstep_stoch)) || (time<=starttime+dt) || tstep_stoch==dt) isstepforstoch = true; … … 76 80 77 81 /*Deal with the ARMA models*/ 78 if(fields[j]==SMBarmaEnum || fields[j]==FrontalForcingsRignotarmaEnum || fields[j]==BasalforcingsDeepwaterMeltingRatearmaEnum || fields[j]==FrontalForcingsSubglacialDischargearmaEnum ){82 if(fields[j]==SMBarmaEnum || fields[j]==FrontalForcingsRignotarmaEnum || fields[j]==BasalforcingsDeepwaterMeltingRatearmaEnum || fields[j]==FrontalForcingsSubglacialDischargearmaEnum || (fields[j]==FrictionWaterPressureEnum && ispwHydro)){ 79 83 switch(fields[j]){ 80 84 case SMBarmaEnum: … … 93 97 dimenum_type = FrontalForcingsBasinIdEnum; 94 98 noiseenum_type = SubglacialdischargeARMANoiseEnum; 99 break; 100 case FrictionWaterPressureEnum: 101 dimenum_type = HydrologyBasinsIdEnum; 102 noiseenum_type = FrictionWaterPressureNoiseEnum; 95 103 break; 96 104 } -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r27450 r27462 245 245 syn keyword cConstant GroundinglineNumRequestedOutputsEnum 246 246 syn keyword cConstant GroundinglineRequestedOutputsEnum 247 syn keyword cConstant HydrologyarmaarOrderEnum 248 syn keyword cConstant HydrologyarmaarlagcoefsEnum 249 syn keyword cConstant HydrologyarmadatebreaksEnum 250 syn keyword cConstant HydrologyarmamalagcoefsEnum 251 syn keyword cConstant HydrologyarmamaOrderEnum 252 syn keyword cConstant HydrologyarmaMonthlyFactorsEnum 253 syn keyword cConstant HydrologyarmaNumBreaksEnum 254 syn keyword cConstant HydrologyarmaNumParamsEnum 255 syn keyword cConstant HydrologyarmapolyparamsEnum 256 syn keyword cConstant HydrologyarmaTimestepEnum 247 257 syn keyword cConstant HydrologyAveragingEnum 248 258 syn keyword cConstant HydrologyCavitySpacingEnum … … 250 260 syn keyword cConstant HydrologyEnglacialVoidRatioEnum 251 261 syn keyword cConstant HydrologyIschannelsEnum 262 syn keyword cConstant HydrologyIsWaterPressureArmaEnum 252 263 syn keyword cConstant HydrologyMeltFlagEnum 253 264 syn keyword cConstant HydrologyModelEnum 265 syn keyword cConstant HydrologyNumBasinsEnum 254 266 syn keyword cConstant HydrologyNumRequestedOutputsEnum 255 267 syn keyword cConstant HydrologyPressureMeltCoefficientEnum … … 804 816 syn keyword cConstant FrictionWaterLayerEnum 805 817 syn keyword cConstant FrictionWaterPressureEnum 818 syn keyword cConstant FrictionWaterPressureNoiseEnum 806 819 syn keyword cConstant FrictionfEnum 807 820 syn keyword cConstant FrontalForcingsBasinIdEnum … … 818 831 syn keyword cConstant HydraulicPotentialOldEnum 819 832 syn keyword cConstant HydrologyBasalFluxEnum 833 syn keyword cConstant HydrologyBasinsIdEnum 820 834 syn keyword cConstant HydrologyBumpHeightEnum 821 835 syn keyword cConstant HydrologyBumpSpacingEnum … … 1184 1198 syn keyword cConstant WaterfractionEnum 1185 1199 syn keyword cConstant WaterheightEnum 1200 syn keyword cConstant WaterPressureArmaPerturbationEnum 1201 syn keyword cConstant WaterPressureValuesAutoregressionEnum 1202 syn keyword cConstant WaterPressureValuesMovingaverageEnum 1186 1203 syn keyword cConstant WeightsLevelsetObservationEnum 1187 1204 syn keyword cConstant WeightsSurfaceObservationEnum … … 1425 1442 syn keyword cConstant HOFSApproximationEnum 1426 1443 syn keyword cConstant HookEnum 1444 syn keyword cConstant HydrologyArmapwAnalysisEnum 1445 syn keyword cConstant HydrologyarmapwEnum 1427 1446 syn keyword cConstant HydrologyDCEfficientAnalysisEnum 1428 1447 syn keyword cConstant HydrologyDCInefficientAnalysisEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r27450 r27462 239 239 GroundinglineNumRequestedOutputsEnum, 240 240 GroundinglineRequestedOutputsEnum, 241 HydrologyarmaarOrderEnum, 242 HydrologyarmaarlagcoefsEnum, 243 HydrologyarmadatebreaksEnum, 244 HydrologyarmamalagcoefsEnum, 245 HydrologyarmamaOrderEnum, 246 HydrologyarmaMonthlyFactorsEnum, 247 HydrologyarmaNumBreaksEnum, 248 HydrologyarmaNumParamsEnum, 249 HydrologyarmapolyparamsEnum, 250 HydrologyarmaTimestepEnum, 241 251 HydrologyAveragingEnum, 242 252 HydrologyCavitySpacingEnum, … … 244 254 HydrologyEnglacialVoidRatioEnum, 245 255 HydrologyIschannelsEnum, 256 HydrologyIsWaterPressureArmaEnum, 246 257 HydrologyMeltFlagEnum, 247 258 HydrologyModelEnum, 259 HydrologyNumBasinsEnum, 248 260 HydrologyNumRequestedOutputsEnum, 249 261 HydrologyPressureMeltCoefficientEnum, … … 800 812 FrictionWaterLayerEnum, 801 813 FrictionWaterPressureEnum, 814 FrictionWaterPressureNoiseEnum, 802 815 FrictionfEnum, 803 816 FrontalForcingsBasinIdEnum, … … 814 827 HydraulicPotentialOldEnum, 815 828 HydrologyBasalFluxEnum, 829 HydrologyBasinsIdEnum, 816 830 HydrologyBumpHeightEnum, 817 831 HydrologyBumpSpacingEnum, … … 1181 1195 WaterfractionEnum, 1182 1196 WaterheightEnum, 1197 WaterPressureArmaPerturbationEnum, 1198 WaterPressureValuesAutoregressionEnum, 1199 WaterPressureValuesMovingaverageEnum, 1183 1200 WeightsLevelsetObservationEnum, 1184 1201 WeightsSurfaceObservationEnum, … … 1424 1441 HOFSApproximationEnum, 1425 1442 HookEnum, 1443 HydrologyArmapwAnalysisEnum, 1444 HydrologyarmapwEnum, 1426 1445 HydrologyDCEfficientAnalysisEnum, 1427 1446 HydrologyDCInefficientAnalysisEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r27450 r27462 247 247 case GroundinglineNumRequestedOutputsEnum : return "GroundinglineNumRequestedOutputs"; 248 248 case GroundinglineRequestedOutputsEnum : return "GroundinglineRequestedOutputs"; 249 case HydrologyarmaarOrderEnum : return "HydrologyarmaarOrder"; 250 case HydrologyarmaarlagcoefsEnum : return "Hydrologyarmaarlagcoefs"; 251 case HydrologyarmadatebreaksEnum : return "Hydrologyarmadatebreaks"; 252 case HydrologyarmamalagcoefsEnum : return "Hydrologyarmamalagcoefs"; 253 case HydrologyarmamaOrderEnum : return "HydrologyarmamaOrder"; 254 case HydrologyarmaMonthlyFactorsEnum : return "HydrologyarmaMonthlyFactors"; 255 case HydrologyarmaNumBreaksEnum : return "HydrologyarmaNumBreaks"; 256 case HydrologyarmaNumParamsEnum : return "HydrologyarmaNumParams"; 257 case HydrologyarmapolyparamsEnum : return "Hydrologyarmapolyparams"; 258 case HydrologyarmaTimestepEnum : return "HydrologyarmaTimestep"; 249 259 case HydrologyAveragingEnum : return "HydrologyAveraging"; 250 260 case HydrologyCavitySpacingEnum : return "HydrologyCavitySpacing"; … … 252 262 case HydrologyEnglacialVoidRatioEnum : return "HydrologyEnglacialVoidRatio"; 253 263 case HydrologyIschannelsEnum : return "HydrologyIschannels"; 264 case HydrologyIsWaterPressureArmaEnum : return "HydrologyIsWaterPressureArma"; 254 265 case HydrologyMeltFlagEnum : return "HydrologyMeltFlag"; 255 266 case HydrologyModelEnum : return "HydrologyModel"; 267 case HydrologyNumBasinsEnum : return "HydrologyNumBasins"; 256 268 case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs"; 257 269 case HydrologyPressureMeltCoefficientEnum : return "HydrologyPressureMeltCoefficient"; … … 806 818 case FrictionWaterLayerEnum : return "FrictionWaterLayer"; 807 819 case FrictionWaterPressureEnum : return "FrictionWaterPressure"; 820 case FrictionWaterPressureNoiseEnum : return "FrictionWaterPressureNoise"; 808 821 case FrictionfEnum : return "Frictionf"; 809 822 case FrontalForcingsBasinIdEnum : return "FrontalForcingsBasinId"; … … 820 833 case HydraulicPotentialOldEnum : return "HydraulicPotentialOld"; 821 834 case HydrologyBasalFluxEnum : return "HydrologyBasalFlux"; 835 case HydrologyBasinsIdEnum : return "HydrologyBasinsId"; 822 836 case HydrologyBumpHeightEnum : return "HydrologyBumpHeight"; 823 837 case HydrologyBumpSpacingEnum : return "HydrologyBumpSpacing"; … … 1186 1200 case WaterfractionEnum : return "Waterfraction"; 1187 1201 case WaterheightEnum : return "Waterheight"; 1202 case WaterPressureArmaPerturbationEnum : return "WaterPressureArmaPerturbation"; 1203 case WaterPressureValuesAutoregressionEnum : return "WaterPressureValuesAutoregression"; 1204 case WaterPressureValuesMovingaverageEnum : return "WaterPressureValuesMovingaverage"; 1188 1205 case WeightsLevelsetObservationEnum : return "WeightsLevelsetObservation"; 1189 1206 case WeightsSurfaceObservationEnum : return "WeightsSurfaceObservation"; … … 1427 1444 case HOFSApproximationEnum : return "HOFSApproximation"; 1428 1445 case HookEnum : return "Hook"; 1446 case HydrologyArmapwAnalysisEnum : return "HydrologyArmapwAnalysis"; 1447 case HydrologyarmapwEnum : return "Hydrologyarmapw"; 1429 1448 case HydrologyDCEfficientAnalysisEnum : return "HydrologyDCEfficientAnalysis"; 1430 1449 case HydrologyDCInefficientAnalysisEnum : return "HydrologyDCInefficientAnalysis"; -
issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
r27450 r27462 238 238 syn keyword juliaConstC GroundinglineNumRequestedOutputsEnum 239 239 syn keyword juliaConstC GroundinglineRequestedOutputsEnum 240 syn keyword juliaConstC HydrologyarmaarOrderEnum 241 syn keyword juliaConstC HydrologyarmaarlagcoefsEnum 242 syn keyword juliaConstC HydrologyarmadatebreaksEnum 243 syn keyword juliaConstC HydrologyarmamalagcoefsEnum 244 syn keyword juliaConstC HydrologyarmamaOrderEnum 245 syn keyword juliaConstC HydrologyarmaMonthlyFactorsEnum 246 syn keyword juliaConstC HydrologyarmaNumBreaksEnum 247 syn keyword juliaConstC HydrologyarmaNumParamsEnum 248 syn keyword juliaConstC HydrologyarmapolyparamsEnum 249 syn keyword juliaConstC HydrologyarmaTimestepEnum 240 250 syn keyword juliaConstC HydrologyAveragingEnum 241 251 syn keyword juliaConstC HydrologyCavitySpacingEnum … … 243 253 syn keyword juliaConstC HydrologyEnglacialVoidRatioEnum 244 254 syn keyword juliaConstC HydrologyIschannelsEnum 255 syn keyword juliaConstC HydrologyIsWaterPressureArmaEnum 245 256 syn keyword juliaConstC HydrologyMeltFlagEnum 246 257 syn keyword juliaConstC HydrologyModelEnum 258 syn keyword juliaConstC HydrologyNumBasinsEnum 247 259 syn keyword juliaConstC HydrologyNumRequestedOutputsEnum 248 260 syn keyword juliaConstC HydrologyPressureMeltCoefficientEnum … … 797 809 syn keyword juliaConstC FrictionWaterLayerEnum 798 810 syn keyword juliaConstC FrictionWaterPressureEnum 811 syn keyword juliaConstC FrictionWaterPressureNoiseEnum 799 812 syn keyword juliaConstC FrictionfEnum 800 813 syn keyword juliaConstC FrontalForcingsBasinIdEnum … … 811 824 syn keyword juliaConstC HydraulicPotentialOldEnum 812 825 syn keyword juliaConstC HydrologyBasalFluxEnum 826 syn keyword juliaConstC HydrologyBasinsIdEnum 813 827 syn keyword juliaConstC HydrologyBumpHeightEnum 814 828 syn keyword juliaConstC HydrologyBumpSpacingEnum … … 1177 1191 syn keyword juliaConstC WaterfractionEnum 1178 1192 syn keyword juliaConstC WaterheightEnum 1193 syn keyword juliaConstC WaterPressureArmaPerturbationEnum 1194 syn keyword juliaConstC WaterPressureValuesAutoregressionEnum 1195 syn keyword juliaConstC WaterPressureValuesMovingaverageEnum 1179 1196 syn keyword juliaConstC WeightsLevelsetObservationEnum 1180 1197 syn keyword juliaConstC WeightsSurfaceObservationEnum … … 1418 1435 syn keyword juliaConstC HOFSApproximationEnum 1419 1436 syn keyword juliaConstC HookEnum 1437 syn keyword juliaConstC HydrologyArmapwAnalysisEnum 1438 syn keyword juliaConstC HydrologyarmapwEnum 1420 1439 syn keyword juliaConstC HydrologyDCEfficientAnalysisEnum 1421 1440 syn keyword juliaConstC HydrologyDCInefficientAnalysisEnum -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r27450 r27462 250 250 else if (strcmp(name,"GroundinglineNumRequestedOutputs")==0) return GroundinglineNumRequestedOutputsEnum; 251 251 else if (strcmp(name,"GroundinglineRequestedOutputs")==0) return GroundinglineRequestedOutputsEnum; 252 else if (strcmp(name,"HydrologyAveraging")==0) return HydrologyAveragingEnum; 252 else if (strcmp(name,"HydrologyarmaarOrder")==0) return HydrologyarmaarOrderEnum; 253 else if (strcmp(name,"Hydrologyarmaarlagcoefs")==0) return HydrologyarmaarlagcoefsEnum; 254 else if (strcmp(name,"Hydrologyarmadatebreaks")==0) return HydrologyarmadatebreaksEnum; 255 else if (strcmp(name,"Hydrologyarmamalagcoefs")==0) return HydrologyarmamalagcoefsEnum; 256 else if (strcmp(name,"HydrologyarmamaOrder")==0) return HydrologyarmamaOrderEnum; 257 else if (strcmp(name,"HydrologyarmaMonthlyFactors")==0) return HydrologyarmaMonthlyFactorsEnum; 258 else if (strcmp(name,"HydrologyarmaNumBreaks")==0) return HydrologyarmaNumBreaksEnum; 259 else if (strcmp(name,"HydrologyarmaNumParams")==0) return HydrologyarmaNumParamsEnum; 260 else if (strcmp(name,"Hydrologyarmapolyparams")==0) return HydrologyarmapolyparamsEnum; 261 else if (strcmp(name,"HydrologyarmaTimestep")==0) return HydrologyarmaTimestepEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"HydrologyAveraging")==0) return HydrologyAveragingEnum; 253 266 else if (strcmp(name,"HydrologyCavitySpacing")==0) return HydrologyCavitySpacingEnum; 254 267 else if (strcmp(name,"HydrologyChannelSheetWidth")==0) return HydrologyChannelSheetWidthEnum; 255 268 else if (strcmp(name,"HydrologyEnglacialVoidRatio")==0) return HydrologyEnglacialVoidRatioEnum; 256 269 else if (strcmp(name,"HydrologyIschannels")==0) return HydrologyIschannelsEnum; 270 else if (strcmp(name,"HydrologyIsWaterPressureArma")==0) return HydrologyIsWaterPressureArmaEnum; 257 271 else if (strcmp(name,"HydrologyMeltFlag")==0) return HydrologyMeltFlagEnum; 258 272 else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum; 273 else if (strcmp(name,"HydrologyNumBasins")==0) return HydrologyNumBasinsEnum; 259 274 else if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum; 260 275 else if (strcmp(name,"HydrologyPressureMeltCoefficient")==0) return HydrologyPressureMeltCoefficientEnum; 261 276 else if (strcmp(name,"HydrologyRelaxation")==0) return HydrologyRelaxationEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum; 277 else if (strcmp(name,"HydrologyRequestedOutputs")==0) return HydrologyRequestedOutputsEnum; 266 278 else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum; 267 279 else if (strcmp(name,"HydrologyStepsPerStep")==0) return HydrologyStepsPerStepEnum; … … 371 383 else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum; 372 384 else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum; 373 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 374 389 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum; 375 390 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; … … 383 398 else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum; 384 399 else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum; 400 else if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum; 389 401 else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum; 390 402 else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum; … … 494 506 else if (strcmp(name,"StochasticForcingDefaultDimension")==0) return StochasticForcingDefaultDimensionEnum; 495 507 else if (strcmp(name,"StochasticForcingDimensions")==0) return StochasticForcingDimensionsEnum; 496 else if (strcmp(name,"StochasticForcingFields")==0) return StochasticForcingFieldsEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"StochasticForcingFields")==0) return StochasticForcingFieldsEnum; 497 512 else if (strcmp(name,"StochasticForcingIsEffectivePressure")==0) return StochasticForcingIsEffectivePressureEnum; 498 513 else if (strcmp(name,"StochasticForcingIsStochasticForcing")==0) return StochasticForcingIsStochasticForcingEnum; … … 506 521 else if (strcmp(name,"SolidearthSettingsRotation")==0) return SolidearthSettingsRotationEnum; 507 522 else if (strcmp(name,"SolidearthSettingsMaxSHCoeff")==0) return SolidearthSettingsMaxSHCoeffEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum; 523 else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum; 512 524 else if (strcmp(name,"SettingsNumResultsOnNodes")==0) return SettingsNumResultsOnNodesEnum; 513 525 else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum; … … 617 629 else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum; 618 630 else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum; 619 else if (strcmp(name,"ThermalReltol")==0) return ThermalReltolEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"ThermalReltol")==0) return ThermalReltolEnum; 620 635 else if (strcmp(name,"ThermalRequestedOutputs")==0) return ThermalRequestedOutputsEnum; 621 636 else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum; … … 629 644 else if (strcmp(name,"TimesteppingCycleForcing")==0) return TimesteppingCycleForcingEnum; 630 645 else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum; 646 else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum; 635 647 else if (strcmp(name,"TimesteppingTimeStepMax")==0) return TimesteppingTimeStepMaxEnum; 636 648 else if (strcmp(name,"TimesteppingTimeStepMin")==0) return TimesteppingTimeStepMinEnum; … … 740 752 else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; 741 753 else if (strcmp(name,"CalvingAblationrate")==0) return CalvingAblationrateEnum; 742 else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum; 743 758 else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum; 744 759 else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum; … … 752 767 else if (strcmp(name,"DamageD")==0) return DamageDEnum; 753 768 else if (strcmp(name,"DamageDOld")==0) return DamageDOldEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"DamageDbar")==0) return DamageDbarEnum; 769 else if (strcmp(name,"DamageDbar")==0) return DamageDbarEnum; 758 770 else if (strcmp(name,"DamageDbarOld")==0) return DamageDbarOldEnum; 759 771 else if (strcmp(name,"DamageF")==0) return DamageFEnum; … … 824 836 else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum; 825 837 else if (strcmp(name,"FrictionWaterPressure")==0) return FrictionWaterPressureEnum; 838 else if (strcmp(name,"FrictionWaterPressureNoise")==0) return FrictionWaterPressureNoiseEnum; 826 839 else if (strcmp(name,"Frictionf")==0) return FrictionfEnum; 827 840 else if (strcmp(name,"FrontalForcingsBasinId")==0) return FrontalForcingsBasinIdEnum; … … 838 851 else if (strcmp(name,"HydraulicPotentialOld")==0) return HydraulicPotentialOldEnum; 839 852 else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum; 853 else if (strcmp(name,"HydrologyBasinsId")==0) return HydrologyBasinsIdEnum; 840 854 else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum; 841 855 else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum; … … 861 875 else if (strcmp(name,"HydrologyHeadOld")==0) return HydrologyHeadOldEnum; 862 876 else if (strcmp(name,"HydrologyMoulinInput")==0) return HydrologyMoulinInputEnum; 863 else if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum; 864 881 else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum; 865 882 else if (strcmp(name,"HydrologySheetConductivity")==0) return HydrologySheetConductivityEnum; … … 875 892 else if (strcmp(name,"Ice")==0) return IceEnum; 876 893 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"Input")==0) return InputEnum; 894 else if (strcmp(name,"Input")==0) return InputEnum; 881 895 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 882 896 else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum; … … 984 998 else if (strcmp(name,"SealevelchangeAlphaIndex")==0) return SealevelchangeAlphaIndexEnum; 985 999 else if (strcmp(name,"SealevelchangeAzimuthIndex")==0) return SealevelchangeAzimuthIndexEnum; 986 else if (strcmp(name,"SealevelchangeGrot")==0) return SealevelchangeGrotEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"SealevelchangeGrot")==0) return SealevelchangeGrotEnum; 987 1004 else if (strcmp(name,"SealevelchangeGSatGravirot")==0) return SealevelchangeGSatGravirotEnum; 988 1005 else if (strcmp(name,"SealevelchangeGUrot")==0) return SealevelchangeGUrotEnum; … … 998 1015 else if (strcmp(name,"SealevelchangeViscousSG")==0) return SealevelchangeViscousSGEnum; 999 1016 else if (strcmp(name,"SealevelchangeViscousU")==0) return SealevelchangeViscousUEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"SealevelchangeViscousN")==0) return SealevelchangeViscousNEnum; 1017 else if (strcmp(name,"SealevelchangeViscousN")==0) return SealevelchangeViscousNEnum; 1004 1018 else if (strcmp(name,"SealevelchangeViscousE")==0) return SealevelchangeViscousEEnum; 1005 1019 else if (strcmp(name,"CouplingTransferCount")==0) return CouplingTransferCountEnum; … … 1107 1121 else if (strcmp(name,"SmbTeValue")==0) return SmbTeValueEnum; 1108 1122 else if (strcmp(name,"SmbTemperaturesAnomaly")==0) return SmbTemperaturesAnomalyEnum; 1109 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 1110 1127 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; 1111 1128 else if (strcmp(name,"SmbTemperaturesReconstructed")==0) return SmbTemperaturesReconstructedEnum; … … 1121 1138 else if (strcmp(name,"SmbWAdd")==0) return SmbWAddEnum; 1122 1139 else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; 1140 else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; 1127 1141 else if (strcmp(name,"SmbZMin")==0) return SmbZMinEnum; 1128 1142 else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum; … … 1213 1227 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; 1214 1228 else if (strcmp(name,"Waterheight")==0) return WaterheightEnum; 1229 else if (strcmp(name,"WaterPressureArmaPerturbation")==0) return WaterPressureArmaPerturbationEnum; 1230 else if (strcmp(name,"WaterPressureValuesAutoregression")==0) return WaterPressureValuesAutoregressionEnum; 1231 else if (strcmp(name,"WaterPressureValuesMovingaverage")==0) return WaterPressureValuesMovingaverageEnum; 1215 1232 else if (strcmp(name,"WeightsLevelsetObservation")==0) return WeightsLevelsetObservationEnum; 1216 1233 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; … … 1227 1244 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; 1228 1245 else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum; 1229 else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum; 1230 1250 else if (strcmp(name,"Outputdefinition19")==0) return Outputdefinition19Enum; 1231 1251 else if (strcmp(name,"Outputdefinition20")==0) return Outputdefinition20Enum; … … 1244 1264 else if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum; 1245 1265 else if (strcmp(name,"Outputdefinition33")==0) return Outputdefinition33Enum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum; 1266 else if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum; 1250 1267 else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum; 1251 1268 else if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum; … … 1350 1367 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 1351 1368 else if (strcmp(name,"IntInput")==0) return IntInputEnum; 1352 else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum; 1353 1373 else if (strcmp(name,"BoolParam")==0) return BoolParamEnum; 1354 1374 else if (strcmp(name,"Boundary")==0) return BoundaryEnum; … … 1367 1387 else if (strcmp(name,"Channel")==0) return ChannelEnum; 1368 1388 else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"ChannelAreaOld")==0) return ChannelAreaOldEnum; 1389 else if (strcmp(name,"ChannelAreaOld")==0) return ChannelAreaOldEnum; 1373 1390 else if (strcmp(name,"ChannelDischarge")==0) return ChannelDischargeEnum; 1374 1391 else if (strcmp(name,"Closed")==0) return ClosedEnum; … … 1460 1477 else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum; 1461 1478 else if (strcmp(name,"Hook")==0) return HookEnum; 1479 else if (strcmp(name,"HydrologyArmapwAnalysis")==0) return HydrologyArmapwAnalysisEnum; 1480 else if (strcmp(name,"Hydrologyarmapw")==0) return HydrologyarmapwEnum; 1462 1481 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 1463 1482 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; … … 1471 1490 else if (strcmp(name,"HydrologySubTime")==0) return HydrologySubTimeEnum; 1472 1491 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 1473 else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum; 1492 else stage=13; 1493 } 1494 if(stage==13){ 1495 if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum; 1474 1496 else if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum; 1475 1497 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum; … … 1490 1512 else if (strcmp(name,"IntParam")==0) return IntParamEnum; 1491 1513 else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum; 1492 else stage=13; 1493 } 1494 if(stage==13){ 1495 if (strcmp(name,"Inputs")==0) return InputsEnum; 1514 else if (strcmp(name,"Inputs")==0) return InputsEnum; 1496 1515 else if (strcmp(name,"Internal")==0) return InternalEnum; 1497 1516 else if (strcmp(name,"Intersect")==0) return IntersectEnum; … … 1594 1613 else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum; 1595 1614 else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum; 1596 else if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 1615 else stage=14; 1616 } 1617 if(stage==14){ 1618 if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 1597 1619 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 1598 1620 else if (strcmp(name,"P1xP4")==0) return P1xP4Enum; … … 1613 1635 else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; 1614 1636 else if (strcmp(name,"Regular")==0) return RegularEnum; 1615 else stage=14; 1616 } 1617 if(stage==14){ 1618 if (strcmp(name,"RecoveryAnalysis")==0) return RecoveryAnalysisEnum; 1637 else if (strcmp(name,"RecoveryAnalysis")==0) return RecoveryAnalysisEnum; 1619 1638 else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum; 1620 1639 else if (strcmp(name,"SamplingAnalysis")==0) return SamplingAnalysisEnum; … … 1717 1736 else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum; 1718 1737 else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum; 1719 else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum; 1738 else stage=15; 1739 } 1740 if(stage==15){ 1741 if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum; 1720 1742 else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum; 1721 1743 else if (strcmp(name,"MeshZ")==0) return MeshZEnum; … … 1731 1753 else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum; 1732 1754 else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum; 1733 else stage=1 5;1755 else stage=16; 1734 1756 } 1735 1757 /*If we reach this point, the string provided has not been found*/ -
issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp
r27297 r27462 291 291 case 5: return HydrologyGlaDSEnum; 292 292 case 6: return HydrologyTwsEnum; 293 case 7: return HydrologyarmapwEnum; 293 294 default: _error_("Marshalled hydrology code \""<<enum_in<<"\" not supported yet"); 294 295 } -
issm/trunk-jpl/src/m/classes/stochasticforcing.m
r27450 r27462 50 50 checkdefaults = false; %need to check defaults only if one of the fields does not have its own dimensionality 51 51 structstoch = structstochforcing(); 52 % Check if hydrolgyarmapw is used 53 if(strcmp(class(md.hydrology),'hydrologyarmapw') && md.transient.ishydrology==1) 54 ispwHydroarma = 1; 55 else 56 ispwHydroarma = 0; 57 end 52 58 for field=self.fields 53 59 %Checking agreement of classes … … 116 122 end 117 123 %Checking for specific dimensions 118 if ~(strcmp(field,'SMBarma') || strcmp(field,'FrontalForcingsRignotarma') || strcmp(field,'BasalforcingsDeepwaterMeltingRatearma') )124 if ~(strcmp(field,'SMBarma') || strcmp(field,'FrontalForcingsRignotarma') || strcmp(field,'BasalforcingsDeepwaterMeltingRatearma') || strcmp(field,'FrontalForcingsSubglacialDischargearma') || ((strcmp(field,'FrictionWaterPressure') && ispwHydroarma))) 119 125 checkdefaults = true; %field with non-specific dimensionality 120 126 end 121 127 end 122 123 128 %Retrieve all the field dimensionalities 124 129 dimensions = self.defaultdimension*ones(1,num_fields); … … 126 131 indTFarma = -1; %about to check for index of FrontalForcingsRignotarma 127 132 indSdarma = -1; %about to check for index of SubglacialDischargearma 128 indBDWarma = -1; %about to check for index of BasalforcingsDeepwaterMeltingRatearma 133 indBDWarma = -1; %about to check for index of BasalforcingsDeepwaterMeltingRatearma 134 indPwarma = -1; %about to check for index of hydrologyarmapw 135 136 129 137 if any(contains(self.fields,'SMBarma')) 130 138 indSMBarma = find(contains(self.fields,'SMBarma')); %index of SMBarma, now check for consistency with other arma timesteps … … 155 163 end 156 164 end 165 if (any(contains(self.fields,'FrictionWaterPressure')) && ispwHydroarma) 166 indPwarma = find(contains(self.fields,'FrictionWaterPressure')); %index of Pwarma, now check for consistency with other arma timesteps 167 dimensions(indPwarma) = md.hydrology.num_basins; 168 if(md.hydrology.arma_timestep<self.stochastictimestep) 169 error('hydrologyarmapw cannot have a timestep shorter than stochastictimestep'); 170 end 171 end 157 172 size_tot = sum(dimensions); 158 173 174 %%% Check consistency between ARMA models %%% 159 175 if(indSMBarma~=-1 && indTFarma~=-1) %both ARMA models are used: check ARMA time step consistency 160 176 if(md.smb.arma_timestep~=md.frontalforcings.arma_timestep) … … 189 205 end 190 206 end 207 if(indSMBarma~=-1 && indPwarma~=-1) %both ARMA models are used: check ARMA time step consistency 208 if(md.smb.arma_timestep~=md.hydrology.arma_timestep) 209 crossentries = reshape(self.covariance(1+sum(dimensions(1:indSMBarma-1)):sum(dimensions(1:indSMBarma)),1+sum(dimensions(1:indPwarma-1)):sum(dimensions(1:indPwarma))),1,[]); 210 if any(crossentries~=0) 211 error('SMBarma and hydrologyarmapw have different arma_timestep and non-zero covariance'); 212 end 213 end 214 end 191 215 if(indSdarma~=-1 && indBDWarma~=-1) %both ARMA models are used: check ARMA time step consistency 192 216 if(md.frontalforcings.sd_arma_timestep~=md.basalforcings.arma_timestep) … … 205 229 end 206 230 end 231 if(indTFarma~=-1 && indPwarma~=-1) %both ARMA models are used: check ARMA time step consistency 232 if(md.frontalforcings.arma_timestep~=md.hydrology.arma_timestep) 233 crossentries = reshape(self.covariance(1+sum(dimensions(1:indTFarma-1)):sum(dimensions(1:indTFarma)),1+sum(dimensions(1:indPwarma-1)):sum(dimensions(1:indPwarma))),1,[]); 234 if any(crossentries~=0) 235 error('FrontalForcingsRignotarma and hydrologyarmapw have different arma_timestep and non-zero covariance'); 236 end 237 end 238 end 239 if(indSdarma~=-1 && indPwarma~=-1) %both ARMA models are used: check ARMA time step consistency 240 if(md.frontalforcings.sd_arma_timestep~=md.hydrology.arma_timestep) 241 crossentries = reshape(self.covariance(1+sum(dimensions(1:indSdarma-1)):sum(dimensions(1:indSdarma)),1+sum(dimensions(1:indPwarma-1)):sum(dimensions(1:indPwarma))),1,[]); 242 if any(crossentries~=0) 243 error('FrontalForcingsSubglacialDischargearma and hydrologyarmapw have different arma_timestep and non-zero covariance'); 244 end 245 end 246 end 247 if(indBDWarma~=-1 && indPwarma~=-1) %both ARMA models are used: check ARMA time step consistency 248 if(md.basalforcings.arma_timestep~=md.hydrology.arma_timestep) 249 crossentries = reshape(self.covariance(1+sum(dimensions(1:indBDWarma-1)):sum(dimensions(1:indBDWarma)),1+sum(dimensions(1:indPwarma-1)):sum(dimensions(1:indPwarma))),1,[]); 250 if any(crossentries~=0) 251 error('BasalforcingsDeepwaterMeltingRatearma and hydrologyarmapw have different arma_timestep and non-zero covariance'); 252 end 253 end 254 end 255 %%% End of consistency checks between ARMA models %%% 256 207 257 md = checkfield(md,'fieldname','stochasticforcing.isstochasticforcing','values',[0 1]); 208 258 md = checkfield(md,'fieldname','stochasticforcing.fields','numel',num_fields,'cell',1,'values',supportedstochforcings()); … … 244 294 end 245 295 296 % Check if hydrolgyarmapw is used 297 if(strcmp(class(md.hydrology),'hydrologyarmapw') && md.transient.ishydrology==1) 298 ispwHydroarma = 1; 299 else 300 ispwHydroarma = 0; 301 end 246 302 %Retrieve dimensionality of each field 247 303 dimensions = self.defaultdimension*ones(1,num_fields); … … 261 317 dimensions(ind) = md.basalforcings.num_basins; 262 318 end 319 if(strcmp(field,'BasalforcingsDeepwaterMeltingRatearma')) 320 dimensions(ind) = md.basalforcings.num_basins; 321 end 322 if(strcmp(field,'FrictionWaterPressure') && ispwHydroarma) 323 dimensions(ind) = md.hydrology.num_basins; 324 end 263 325 ind = ind+1; 264 326 end -
issm/trunk-jpl/src/m/classes/stochasticforcing.py
r27458 r27462 78 78 checkdefaults = False # Need to check defaults only if one of the fields does not have its own dimensionality 79 79 structstoch = self.structstochforcing() 80 # Check if hydrologyarmapw is used 81 if((type(md.hydrology).__name__ == 'hydrologyarmapw') and md.transient.hydrology==1): 82 ispwHydroarma = 1 83 else: 84 ispwHydroarma = 0 80 85 for field in self.fields: 81 86 # Checking agreement of classes … … 127 132 128 133 # Checking for specific dimensions 129 if field not in['SMBarma', 'FrontalForcingsRignotarma','BasalforcingsDeepwaterMeltingRatearma']:134 if ((field not in['SMBarma', 'FrontalForcingsRignotarma','BasalforcingsDeepwaterMeltingRatearma']) and ((field=='FrictionWaterPressure' and ispwHydroarma==True)==False)): 130 135 checkdefaults = True # field with non-specific dimensionality 131 136 … … 136 141 indSdarma = -1 # About to check for index of FrontalForcingsSubglacialDischargearma 137 142 indBDWarma = -1 # About to check for index of BasalforcingsDeepwaterMeltingRatearma 143 indPwarma = -1 # About to check for index of hydrologyarmapw 138 144 if ('SMBarma' in self.fields): 139 145 indSMBarma = self.fields.index('SMBarma') # Index of SMBarma, now check for consistency with other timesteps … … 156 162 if(md.basalforcings.arma_timestep<self.stochastictimestep): 157 163 raise TypeError('BasalforcingsDeepwaterMeltingRatearma cannot have a timestep shorter than stochastictimestep') 164 if (('FrictionWaterPressure' in self.fields) and ispwHydroarma): 165 indPwarma = self.fields.index('FrictionWaterPressure') # Index of Pwarma, now check for consistency with other timesteps 166 dimensions[indPwarma] = md.hydrology.num_basins 167 if(md.hydrology.arma_timestep<self.stochastictimestep): 168 raise TypeError('hydrologyarmapw cannot have a timestep shorter than stochastictimestep') 158 169 size_tot = np.sum(dimensions) 159 170 … … 182 193 if((md.frontalforcings.sd_arma_timestep != md.frontalforcings.arma_timestep) and np.any(covsum != 0)): 183 194 raise IOError('FrontalForcingsSubglacialDischargearma and FrontalForcingsRignotarma have different arma_timestep and non-zero covariance') 184 195 if (indSMBarma != -1 and indPwarma != -1): # Both ARMA models are used: check ARMA time step consistency 196 covsum = self.covariance[np.sum(dimensions[0:indSMBarma]).astype(int):np.sum(dimensions[0:indSMBarma + 1]).astype(int), np.sum(dimensions[0:indPwarma]).astype(int):np.sum(dimensions[0:indPwarma + 1]).astype(int)] 197 if((md.smb.arma_timestep != md.hydrology.arma_timestep) and np.any(covsum != 0)): 198 raise IOError('SMBarma and hydrologyarmapw have different arma_timestep and non-zero covariance') 199 if (indTFarma != -1 and indPwarma != -1): # Both ARMA models are used: check ARMA time step consistency 200 covsum = self.covariance[np.sum(dimensions[0:indTFarma]).astype(int):np.sum(dimensions[0:indTFarma + 1]).astype(int), np.sum(dimensions[0:indPwarma]).astype(int):np.sum(dimensions[0:indPwarma + 1]).astype(int)] 201 if((md.frontalforcings.arma_timestep != md.hydrology.arma_timestep) and np.any(covsum != 0)): 202 raise IOError('FrontalForcingsRignotarma and hydrologyarmapw have different arma_timestep and non-zero covariance') 203 if (indSdarma != -1 and indPwarma != -1): # Both ARMA models are used: check ARMA time step consistency 204 covsum = self.covariance[np.sum(dimensions[0:indSdarma]).astype(int):np.sum(dimensions[0:indSdarma + 1]).astype(int), np.sum(dimensions[0:indPwarma]).astype(int):np.sum(dimensions[0:indPwarma + 1]).astype(int)] 205 if((md.frontalforcings.sd_arma_timestep != md.hydrology.arma_timestep) and np.any(covsum != 0)): 206 raise IOError('FrontalForingsSubglacialDischargearma and hydrologyarmapw have different arma_timestep and non-zero covariance') 207 if (indBDWarma != -1 and indPwarma != -1): # Both ARMA models are used: check ARMA time step consistency 208 covsum = self.covariance[np.sum(dimensions[0:indBDWarma]).astype(int):np.sum(dimensions[0:indBDWarma + 1]).astype(int), np.sum(dimensions[0:indPwarma]).astype(int):np.sum(dimensions[0:indPwarma + 1]).astype(int)] 209 if((md.smb.arma_timestep != md.hydrology.arma_timestep) and np.any(covsum != 0)): 210 raise IOError('BasalforcingsDeepwaterMeltingRatarma and hydrologyarmapw have different arma_timestep and non-zero covariance') 211 185 212 186 213 md = checkfield(md, 'fieldname', 'stochasticforcing.isstochasticforcing', 'values', [0, 1]) … … 206 233 if not self.isstochasticforcing: 207 234 return md 208 209 235 else: 210 236 num_fields = len(self.fields) 211 237 if(self.stochastictimestep==0): 212 238 md.stochasticforcing.stochastictimestep = md.timestepping.time_step #by default: stochastictimestep set to ISSM time step 239 # Check if hydroarmapw is used 240 if((type(md.hydrology).__name__ == 'hydrologyarmapw') and md.transient.hydrology==1): 241 ispwHydroarma = 1 242 else: 243 ispwHydroarma = 0 244 213 245 # Retrieve dimensionality of each field 214 246 dimensions = self.defaultdimension * np.ones((num_fields)) … … 223 255 if (field == 'BasalforcingsDeepwaterMeltingRatearma'): 224 256 dimensions[ind] = md.basalforcings.num_basins 257 if (field == 'FrictionWaterPressure' and ispwHydroarma): 258 dimensions[ind] = md.hydrology.num_basins 225 259 226 260 # Scaling covariance matrix (scale column-by-column and row-by-row) -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m
r27461 r27462 73 73 analyses={'EsaAnalysis'}; 74 74 elseif strcmp(solutiontype,'TransientSolution') 75 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','OceantransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis','HydrologyShreveAnalysis','HydrologyTwsAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','SealevelchangeAnalysis', 'AgeAnalysis'};75 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','OceantransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis','HydrologyShreveAnalysis','HydrologyTwsAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','SealevelchangeAnalysis','AgeAnalysis','HydrologyArmapwAnalysis'}; 76 76 elseif strcmp(solutiontype,'SealevelchangeSolution') 77 77 analyses={'SealevelchangeAnalysis'}; 78 78 elseif strcmp(solutiontype,'HydrologySolution') 79 analyses={'L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','HydrologyGladsAnalysis','HydrologyShaktiAnalysis','HydrologyTwsAnalysis' };79 analyses={'L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','HydrologyGladsAnalysis','HydrologyShaktiAnalysis','HydrologyTwsAnalysis','HydrologyArmapwAnalysis'}; 80 80 elseif strcmp(solutiontype,'DamageEvolutionSolution') 81 81 analyses={'DamageEvolutionAnalysis'};
Note:
See TracChangeset
for help on using the changeset viewer.