Changeset 24061
- Timestamp:
- 07/03/19 15:55:56 (6 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp
r24057 r24061 115 115 iomodel->FetchDataToInput(elements,"md.geometry.bed",BedEnum); 116 116 iomodel->FetchDataToInput(elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); 117 iomodel->FetchDataToInput(elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 117 118 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 118 119 iomodel->FetchDataToInput(elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); … … 161 162 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.cavity_spacing",HydrologyCavitySpacingEnum)); 162 163 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.ischannels",HydrologyIschannelsEnum)); 164 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.melt_flag",HydrologyMeltFlagEnum)); 163 165 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.channel_conductivity",HydrologyChannelConductivityEnum)); 164 166 parameters->AddObject(iomodel->CopyConstantObject("md.hydrology.channel_sheet_width",HydrologyChannelSheetWidthEnum)); … … 315 317 316 318 /*Retrieve all inputs and parameters*/ 319 bool meltflag; 320 element->FindParam(&meltflag,HydrologyMeltFlagEnum); 317 321 element->GetVerticesCoordinates(&xyz_list); 318 322 IssmDouble L = element->FindParam(MaterialsLatentheatEnum); … … 330 334 Input* b_input = element->GetInput(BedEnum); _assert_(b_input); 331 335 Input* G_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(G_input); 336 Input* m_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(G_input); 332 337 Input* B_input = element->GetInput(MaterialsRheologyBEnum); _assert_(B_input); 333 338 Input* n_input = element->GetInput(MaterialsRheologyNEnum); _assert_(n_input); … … 357 362 b_input->GetInputValue(&b,gauss); 358 363 H_input->GetInputValue(&H,gauss); 364 m_input->GetInputValue(&m,gauss); 359 365 360 366 /*Get basal velocity*/ … … 370 376 371 377 /*Compute melt*/ 372 m = (G + frictionheat)/(rho_ice*L); 378 if(!meltflag){ 379 m = (G + frictionheat)/(rho_ice*L); 380 } 373 381 374 382 /*Compute closing rate*/ -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24060 r24061 162 162 syn keyword cConstant HydrologyEnglacialVoidRatioEnum 163 163 syn keyword cConstant HydrologyIschannelsEnum 164 syn keyword cConstant HydrologyMeltFlagEnum 164 165 syn keyword cConstant HydrologyModelEnum 165 166 syn keyword cConstant HydrologyNumRequestedOutputsEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24060 r24061 156 156 HydrologyEnglacialVoidRatioEnum, 157 157 HydrologyIschannelsEnum, 158 HydrologyMeltFlagEnum, 158 159 HydrologyModelEnum, 159 160 HydrologyNumRequestedOutputsEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24060 r24061 164 164 case HydrologyEnglacialVoidRatioEnum : return "HydrologyEnglacialVoidRatio"; 165 165 case HydrologyIschannelsEnum : return "HydrologyIschannels"; 166 case HydrologyMeltFlagEnum : return "HydrologyMeltFlag"; 166 167 case HydrologyModelEnum : return "HydrologyModel"; 167 168 case HydrologyNumRequestedOutputsEnum : return "HydrologyNumRequestedOutputs"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24060 r24061 167 167 else if (strcmp(name,"HydrologyEnglacialVoidRatio")==0) return HydrologyEnglacialVoidRatioEnum; 168 168 else if (strcmp(name,"HydrologyIschannels")==0) return HydrologyIschannelsEnum; 169 else if (strcmp(name,"HydrologyMeltFlag")==0) return HydrologyMeltFlagEnum; 169 170 else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum; 170 171 else if (strcmp(name,"HydrologyNumRequestedOutputs")==0) return HydrologyNumRequestedOutputsEnum; … … 259 260 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum; 260 261 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 261 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; 265 if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum; 266 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; 266 267 else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum; 267 268 else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum; … … 382 383 else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum; 383 384 else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum; 384 else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbThermoDeltaTScaling")==0) return SmbThermoDeltaTScalingEnum; 388 if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum; 389 else if (strcmp(name,"SmbThermoDeltaTScaling")==0) return SmbThermoDeltaTScalingEnum; 389 390 else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum; 390 391 else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum; … … 505 506 else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum; 506 507 else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum; 507 else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum; 511 if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum; 512 else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum; 512 513 else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum; 513 514 else if (strcmp(name,"DeviatoricStress1")==0) return DeviatoricStress1Enum; … … 628 629 else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum; 629 630 else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum; 630 else if (strcmp(name,"Misfit")==0) return MisfitEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; 634 if (strcmp(name,"Misfit")==0) return MisfitEnum; 635 else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; 635 636 else if (strcmp(name,"NewDamage")==0) return NewDamageEnum; 636 637 else if (strcmp(name,"Node")==0) return NodeEnum; … … 751 752 else if (strcmp(name,"SmbV")==0) return SmbVEnum; 752 753 else if (strcmp(name,"SmbVmean")==0) return SmbVmeanEnum; 753 else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbW")==0) return SmbWEnum; 757 if (strcmp(name,"SmbVz")==0) return SmbVzEnum; 758 else if (strcmp(name,"SmbW")==0) return SmbWEnum; 758 759 else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum; 759 760 else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum; … … 874 875 else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum; 875 876 else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum; 876 else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum; 880 if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum; 881 else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum; 881 882 else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum; 882 883 else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum; … … 997 998 else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum; 998 999 else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum; 999 else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Element")==0) return ElementEnum; 1003 if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum; 1004 else if (strcmp(name,"Element")==0) return ElementEnum; 1004 1005 else if (strcmp(name,"ElementHook")==0) return ElementHookEnum; 1005 1006 else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum; … … 1120 1121 else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum; 1121 1122 else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; 1122 else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum; 1126 if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum; 1127 else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum; 1127 1128 else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum; 1128 1129 else if (strcmp(name,"MaxVel")==0) return MaxVelEnum; … … 1243 1244 else if (strcmp(name,"SubelementMelt2")==0) return SubelementMelt2Enum; 1244 1245 else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum; 1245 else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum; 1249 if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum; 1250 else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum; 1250 1251 else if (strcmp(name,"Tetra")==0) return TetraEnum; 1251 1252 else if (strcmp(name,"TetraInput")==0) return TetraInputEnum; -
issm/trunk-jpl/src/m/classes/hydrologyglads.m
r23973 r24061 23 23 englacial_void_ratio = 0.; 24 24 requested_outputs = {}; 25 melt_flag = 0; 25 26 end 26 27 methods … … 53 54 self.englacial_void_ratio = 1.e-5;% Dow's default, Table from Werder et al. uses 1e-3; 54 55 self.requested_outputs={'default'}; 56 self.melt_flag=false; 55 57 end % }}} 56 58 function md = checkconsistency(self,md,solution,analyses) % {{{ … … 78 80 md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1,'Inf',1); 79 81 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1); 82 md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1]); 83 if self.melt_flag 84 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1); 85 end 80 86 end % }}} 81 87 function disp(self) % {{{ … … 95 101 fielddisplay(self,'englacial_void_ratio','englacial void ratio (e_v)'); 96 102 fielddisplay(self,'requested_outputs','additional outputs requested'); 103 fielddisplay(self,'melt_flag','User specified basal melt? 0: no (default), 1: use md.basalforcings.groundedice_melting_rate'); 97 104 end % }}} 98 105 function marshall(self,prefix,md,fid) % {{{ … … 119 126 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1); 120 127 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','englacial_void_ratio','format','Double'); 128 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','melt_flag','format','Boolean'); 121 129 outputs = self.requested_outputs; 122 130 pos = find(ismember(outputs,'default'));
Note:
See TracChangeset
for help on using the changeset viewer.