Changeset 28115
- Timestamp:
- 02/29/24 15:22:20 (13 months ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
r28093 r28115 354 354 /*Intermediaries*/ 355 355 int domaintype,dim,stabilization; 356 IssmDouble Jdet,dt ;357 IssmDouble gmb,fmb,mb,bed,vx,vy,vz,tau ;356 IssmDouble Jdet,dt,intrusiondist; 357 IssmDouble gmb,fmb,mb,bed,vx,vy,vz,tau,gldistance; 358 358 Element* basalelement = NULL; 359 359 IssmDouble *xyz_list = NULL; … … 361 361 /*Get basal element*/ 362 362 element->FindParam(&domaintype,DomainTypeEnum); 363 363 364 switch(domaintype){ 364 365 case Domain2DhorizontalEnum: … … 394 395 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 395 396 basalelement->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 397 basalelement->FindParam(&intrusiondist,GroundinglineIntrusionDistanceEnum); 398 396 399 Input* groundedice_input = basalelement->GetInput(MaskOceanLevelsetEnum); _assert_(groundedice_input); 397 400 Input* gmb_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); … … 424 427 gauss = basalelement->NewGauss(point1,fraction1,fraction2,3); 425 428 } 429 if(melt_style==IntrusionMeltEnum){ 430 basalelement->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 431 gauss = basalelement->NewGauss(point1,fraction1,fraction2,3); 432 } 426 433 else{ 427 434 gauss = basalelement->NewGauss(3); … … 459 466 else mb=gmb; 460 467 } 468 else if(melt_style==IntrusionMeltEnum){ 469 Input* gldistance_input = basalelement->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 470 gldistance_input->GetInputValue(&gldistance,gauss); 471 if (intrusiondist==0) 472 if(gllevelset>0.) mb=gmb; 473 else mb=fmb; 474 else if(gldistance>intrusiondist) 475 mb=gmb; 476 else if(gldistance<=intrusiondist && gldistance>0) 477 mb=fmb*(1-gldistance/intrusiondist); 478 else 479 mb=fmb; 480 } 461 481 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 462 482 -
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r27869 r28115 156 156 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum); 157 157 iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum); 158 158 159 if(isgroundingline) iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum); 159 160 /*Initialize ThicknessResidual input*/ … … 272 273 parameters->AddObject(iomodel->CopyConstantObject("md.masstransport.min_thickness",MasstransportMinThicknessEnum)); 273 274 parameters->AddObject(iomodel->CopyConstantObject("md.masstransport.penalty_factor",MasstransportPenaltyFactorEnum)); 275 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.intrusion_distance",GroundinglineIntrusionDistanceEnum)); 274 276 275 277 iomodel->FindConstant(&requestedoutputs,&numoutputs,"md.masstransport.requested_outputs"); … … 622 624 bool mainlyfloating; 623 625 IssmDouble fraction1,fraction2; 624 IssmDouble Jdet,dt ;625 IssmDouble ms,mb,gmb,fmb,thickness,fmb_pert ;626 IssmDouble Jdet,dt,intrusiondist; 627 IssmDouble ms,mb,gmb,fmb,thickness,fmb_pert,gldistance; 626 628 IssmDouble vx,vy,vel,dvxdx,dvydy,xi,h,tau; 627 629 IssmDouble dvx[2],dvy[2]; … … 652 654 element->FindParam(&dt,TimesteppingTimeStepEnum); 653 655 element->FindParam(&stabilization,MasstransportStabilizationEnum); 656 element->FindParam(&intrusiondist,GroundinglineIntrusionDistanceEnum); 657 654 658 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 655 659 Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); … … 660 664 Input* vxaverage_input = element->GetInput(VxAverageEnum); _assert_(vxaverage_input); 661 665 Input* vyaverage_input = element->GetInput(VyAverageEnum); _assert_(vyaverage_input); 662 666 //Input* gldistance_input = element->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 663 667 h=element->CharacteristicLength(); 664 668 … … 667 671 if(melt_style==SubelementMelt2Enum){ 668 672 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 669 gauss = element->NewGauss(point1,fraction1,fraction2,3); 673 gauss = element->NewGauss(point1,fraction1,fraction2,3); 674 } 675 else if(melt_style==IntrusionMeltEnum){ 676 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 677 gauss = element->NewGauss(point1,fraction1,fraction2,3); 670 678 } 671 679 else{ … … 704 712 else mb=gmb; 705 713 } 714 else if(melt_style==IntrusionMeltEnum){ 715 Input* gldistance_input = element->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 716 gldistance_input->GetInputValue(&gldistance,gauss); 717 if (intrusiondist==0) 718 if(gllevelset>0.) mb=gmb; 719 else mb=fmb; 720 else if(gldistance>intrusiondist) 721 mb=gmb; 722 else if(gldistance<=intrusiondist && gldistance>0) 723 mb=fmb*(1-gldistance/intrusiondist); 724 else 725 mb=fmb; 726 } 706 727 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 707 728 … … 750 771 bool mainlyfloating; 751 772 IssmDouble fraction1,fraction2,gllevelset; 752 IssmDouble Jdet,dt ;753 IssmDouble ms,mb,gmb,fmb,thickness,phi=1. ;773 IssmDouble Jdet,dt,intrusiondist; 774 IssmDouble ms,mb,gmb,fmb,thickness,phi=1.,gldistance; 754 775 IssmDouble* xyz_list = NULL; 755 776 … … 765 786 element->FindParam(&dt,TimesteppingTimeStepEnum); 766 787 element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 788 element->FindParam(&intrusiondist,GroundinglineIntrusionDistanceEnum); 789 767 790 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 768 791 Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); … … 778 801 gauss = element->NewGauss(point1,fraction1,fraction2,3); 779 802 } 803 else if(melt_style==IntrusionMeltEnum){ 804 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 805 gauss = element->NewGauss(point1,fraction1,fraction2,3); 806 } 780 807 else{ 781 808 gauss = element->NewGauss(3); … … 798 825 else mb=(1-phi)*fmb+phi*gmb; // phi is the fraction of grounded ice so (1-phi) is floating 799 826 } 800 else if(melt_style==SubelementMelt2Enum){827 else if(melt_style==SubelementMelt2Enum){ 801 828 if(gllevelset>0.) mb=gmb; 802 829 else mb=fmb; 803 830 } 804 else if(melt_style==NoMeltOnPartiallyFloatingEnum){831 else if(melt_style==NoMeltOnPartiallyFloatingEnum){ 805 832 if (phi<0.00000001) mb=fmb; 806 833 else mb=gmb; 807 834 } 808 else if(melt_style==FullMeltOnPartiallyFloatingEnum){835 else if(melt_style==FullMeltOnPartiallyFloatingEnum){ 809 836 if (phi<0.99999999) mb=fmb; 810 837 else mb=gmb; 811 } 812 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 838 } 839 else if(melt_style==IntrusionMeltEnum){ 840 Input* gldistance_input = element->GetInput(DistanceToGroundinglineEnum); _assert_(gldistance_input); 841 gldistance_input->GetInputValue(&gldistance,gauss); 842 if (intrusiondist==0) 843 if(gllevelset>0.) mb=gmb; 844 else mb=fmb; 845 else if(gldistance>intrusiondist) 846 mb=gmb; 847 else if(gldistance<=intrusiondist && gldistance>0) 848 mb=fmb*(1-gldistance/intrusiondist); 849 else 850 mb=fmb; 851 } 852 else _error_("melt interpolation "<<EnumToStringx(melt_style)<<" not implemented yet"); 813 853 814 854 for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(thickness+dt*(ms-mb))*basis[i]; -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
r27320 r28115 7 7 #include "../../toolkits/toolkits.h" 8 8 #include "./../../classes/Inputs/DatasetInput.h" 9 #include "../InputDuplicatex/InputDuplicatex.h" 10 9 11 10 12 void FloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/ 11 13 12 14 /*Intermediaties*/ 13 int basalforcing_model; 15 int basalforcing_model; 16 int melt_style; 17 18 /*First, get melt_interpolation model from parameters*/ 19 femmodel->parameters->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 20 21 switch(melt_style){ 22 case IntrusionMeltEnum: 23 if(VerboseSolution())_printf0_(" call Intrusion melting module\n"); 24 DistanceToGroundingline(femmodel); 25 break; 26 default: 27 /*Nothing to be done*/ 28 break; 29 } 14 30 15 31 /*First, get BMB model from parameters*/ … … 288 304 xDelete<IssmDouble>(perturbation); 289 305 }/*}}}*/ 306 307 void DistanceToGroundingline(FemModel* femmodel){/*{{{*/ 308 309 int numvertices; 310 IssmDouble* distances=NULL; 311 312 InputDuplicatex(femmodel,MaskOceanLevelsetEnum,DistanceToGroundinglineEnum); 313 femmodel->DistanceToFieldValue(MaskOceanLevelsetEnum,0.,DistanceToGroundinglineEnum); 314 } 315 /*}}}*/ -
issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h
r27250 r28115 11 11 /* local prototypes: */ 12 12 void FloatingiceMeltingRatex(FemModel* femmodel); 13 13 14 void LinearFloatingiceMeltingRatex(FemModel* femmodel); 14 15 void SpatialLinearFloatingiceMeltingRatex(FemModel* femmodel); … … 17 18 void BeckmannGoosseFloatingiceMeltingRatex(FemModel* femmodel); 18 19 void LinearFloatingiceMeltingRatearmax(FemModel* femmodel); 20 void DistanceToGroundingline(FemModel* femmodel); 19 21 20 22 #endif /* _FloatingiceMeltingRatex_H*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r27856 r28115 76 76 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.friction_interpolation",GroundinglineFrictionInterpolationEnum)); 77 77 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.melt_interpolation",GroundinglineMeltInterpolationEnum)); 78 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.intrusion_distance",GroundinglineIntrusionDistanceEnum)); 78 79 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isstressbalance",TransientIsstressbalanceEnum)); 79 80 parameters->AddObject(iomodel->CopyConstantObject("md.transient.ismasstransport",TransientIsmasstransportEnum)); -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r28067 r28115 868 868 syn keyword cConstant FrontalForcingsSubglacialDischargeEnum 869 869 syn keyword cConstant GeometryHydrostaticRatioEnum 870 syn keyword cConstant GroundinglineIntrusionDistanceEnum 870 871 syn keyword cConstant NGiaEnum 871 872 syn keyword cConstant NGiaRateEnum … … 925 926 syn keyword cConstant InversionVxObsEnum 926 927 syn keyword cConstant InversionVyObsEnum 928 syn keyword cConstant IntrusionMeltEnum 927 929 syn keyword cConstant LevelsetfunctionSlopeXEnum 928 930 syn keyword cConstant LevelsetfunctionSlopeYEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r28067 r28115 240 240 GrdModelEnum, 241 241 GroundinglineFrictionInterpolationEnum, 242 GroundinglineIntrusionDistanceEnum, 242 243 GroundinglineMeltInterpolationEnum, 243 244 GroundinglineMigrationEnum, … … 1739 1740 SubelementFriction1Enum, 1740 1741 SubelementFriction2Enum, 1742 IntrusionMeltEnum, 1741 1743 SubelementMelt1Enum, 1742 1744 SubelementMelt2Enum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r28067 r28115 870 870 case FrontalForcingsSubglacialDischargeEnum : return "FrontalForcingsSubglacialDischarge"; 871 871 case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio"; 872 case GroundinglineIntrusionDistanceEnum : return "GroundinglineIntrusionDistance"; 872 873 case NGiaEnum : return "NGia"; 873 874 case NGiaRateEnum : return "NGiaRate"; … … 927 928 case InversionVxObsEnum : return "InversionVxObs"; 928 929 case InversionVyObsEnum : return "InversionVyObs"; 930 case IntrusionMeltEnum : return "IntrusionMelt"; 929 931 case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX"; 930 932 case LevelsetfunctionSlopeYEnum : return "LevelsetfunctionSlopeY"; -
issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
r28067 r28115 861 861 syn keyword juliaConstC FrontalForcingsSubglacialDischargeEnum 862 862 syn keyword juliaConstC GeometryHydrostaticRatioEnum 863 syn keyword juliaConstC GroundinglineIntrusionDistanceEnum 863 864 syn keyword juliaConstC NGiaEnum 864 865 syn keyword juliaConstC NGiaRateEnum … … 918 919 syn keyword juliaConstC InversionVxObsEnum 919 920 syn keyword juliaConstC InversionVyObsEnum 921 syn keyword juliaConstC IntrusionMeltEnum 920 922 syn keyword juliaConstC LevelsetfunctionSlopeXEnum 921 923 syn keyword juliaConstC LevelsetfunctionSlopeYEnum -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r28067 r28115 891 891 else if (strcmp(name,"FrontalForcingsSubglacialDischarge")==0) return FrontalForcingsSubglacialDischargeEnum; 892 892 else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum; 893 else if (strcmp(name,"GroundinglineIntrusionDistance")==0) return GroundinglineIntrusionDistanceEnum; 893 894 else if (strcmp(name,"NGia")==0) return NGiaEnum; 894 895 else if (strcmp(name,"NGiaRate")==0) return NGiaRateEnum; … … 948 949 else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 949 950 else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum; 951 else if (strcmp(name,"IntrusionMelt")==0) return IntrusionMeltEnum; 950 952 else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum; 951 953 else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum; … … 996 998 else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum; 997 999 else if (strcmp(name,"Sample")==0) return SampleEnum; 998 else if (strcmp(name,"SampleOld")==0) return SampleOldEnum;999 else if (strcmp(name,"SampleNoise")==0) return SampleNoiseEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"SamplingBeta")==0) return SamplingBetaEnum; 1003 if (strcmp(name,"SampleOld")==0) return SampleOldEnum; 1004 else if (strcmp(name,"SampleNoise")==0) return SampleNoiseEnum; 1005 else if (strcmp(name,"SamplingBeta")==0) return SamplingBetaEnum; 1004 1006 else if (strcmp(name,"SamplingKappa")==0) return SamplingKappaEnum; 1005 1007 else if (strcmp(name,"SamplingPhi")==0) return SamplingPhiEnum; … … 1119 1121 else if (strcmp(name,"SmbDzAdd")==0) return SmbDzAddEnum; 1120 1122 else if (strcmp(name,"SmbDz")==0) return SmbDzEnum; 1121 else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;1122 else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum; 1126 if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum; 1127 else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum; 1128 else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum; 1127 1129 else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 1128 1130 else if (strcmp(name,"SmbEC")==0) return SmbECEnum; … … 1242 1244 else if (strcmp(name,"SubglacialdischargeValuesMovingaverage")==0) return SubglacialdischargeValuesMovingaverageEnum; 1243 1245 else if (strcmp(name,"SurfaceAbsMisfit")==0) return SurfaceAbsMisfitEnum; 1244 else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;1245 else if (strcmp(name,"Area")==0) return AreaEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"SealevelArea")==0) return SealevelAreaEnum; 1249 if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum; 1250 else if (strcmp(name,"Area")==0) return AreaEnum; 1251 else if (strcmp(name,"SealevelArea")==0) return SealevelAreaEnum; 1250 1252 else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum; 1251 1253 else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum; … … 1365 1367 else if (strcmp(name,"Outputdefinition53")==0) return Outputdefinition53Enum; 1366 1368 else if (strcmp(name,"Outputdefinition54")==0) return Outputdefinition54Enum; 1367 else if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum;1368 else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;1369 1369 else stage=12; 1370 1370 } 1371 1371 if(stage==12){ 1372 if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum; 1372 if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum; 1373 else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum; 1374 else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum; 1373 1375 else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum; 1374 1376 else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum; … … 1488 1490 else if (strcmp(name,"Cuffey")==0) return CuffeyEnum; 1489 1491 else if (strcmp(name,"CuffeyTemperate")==0) return CuffeyTemperateEnum; 1490 else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;1491 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;1492 1492 else stage=13; 1493 1493 } 1494 1494 if(stage==13){ 1495 if (strcmp(name,"DataSet")==0) return DataSetEnum; 1495 if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum; 1496 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 1497 else if (strcmp(name,"DataSet")==0) return DataSetEnum; 1496 1498 else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum; 1497 1499 else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum; … … 1611 1613 else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum; 1612 1614 else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum; 1613 else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;1614 else if (strcmp(name,"LinearFloatingMeltRatearma")==0) return LinearFloatingMeltRatearmaEnum;1615 1615 else stage=14; 1616 1616 } 1617 1617 if(stage==14){ 1618 if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum; 1618 if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum; 1619 else if (strcmp(name,"LinearFloatingMeltRatearma")==0) return LinearFloatingMeltRatearmaEnum; 1620 else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum; 1619 1621 else if (strcmp(name,"Loads")==0) return LoadsEnum; 1620 1622 else if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum; … … 1734 1736 else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum; 1735 1737 else if (strcmp(name,"SMBgradientscomponents")==0) return SMBgradientscomponentsEnum; 1736 else if (strcmp(name,"SMBgradientsela")==0) return SMBgradientselaEnum;1737 else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;1738 1738 else stage=15; 1739 1739 } 1740 1740 if(stage==15){ 1741 if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum; 1741 if (strcmp(name,"SMBgradientsela")==0) return SMBgradientselaEnum; 1742 else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum; 1743 else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum; 1742 1744 else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum; 1743 1745 else if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum; -
issm/trunk-jpl/src/m/classes/groundingline.m
r26826 r28115 9 9 friction_interpolation = ''; 10 10 melt_interpolation = ''; 11 intrusion_distance = 0; 11 12 requested_outputs = {}; 12 13 end … … 26 27 self.friction_interpolation= 'SubelementFriction1'; 27 28 self.melt_interpolation = 'NoMeltOnPartiallyFloating'; 29 self.intrusion_distance = 0; 28 30 %default output 29 self.requested_outputs = {'default'};31 self.requested_outputs = {'default'}; 30 32 31 33 end % }}} … … 34 36 md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'SubelementMigration' 'AggressiveMigration' 'SoftMigration' 'Contact' 'GroundingOnly'}); 35 37 md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',{'NoFrictionOnPartiallyFloating' 'SubelementFriction1' 'SubelementFriction2'}); 36 md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',{'NoMeltOnPartiallyFloating' 'SubelementMelt1' 'SubelementMelt2' 'FullMeltOnPartiallyFloating'}); 38 md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',{'NoMeltOnPartiallyFloating' 'SubelementMelt1' 'SubelementMelt2' 'IntrusionMelt' 'FullMeltOnPartiallyFloating'}); 39 md = checkfield(md,'fieldname','groundingline.intrusion_distance','>=',0); 37 40 md = checkfield(md,'fieldname','groundingline.requested_outputs','stringrow',1); 38 41 … … 61 64 fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'' or ''None'''); 62 65 fielddisplay(self,'friction_interpolation','type of friction interpolation for partially floating elements: ''NoFrictionOnPartiallyFloating'',''SubelementFriction1'', or ''SubelementFriction2'''); 63 fielddisplay(self,'melt_interpolation','type of melt interpolation for partially floating elements: ''NoMeltOnPartiallyFloating'',''SubelementMelt1'',''SubelementMelt2'', or ''FullMeltOnPartiallyFloating'''); 66 fielddisplay(self,'melt_interpolation','type of melt interpolation for partially floating elements: ''NoMeltOnPartiallyFloating'',''SubelementMelt1'',''SubelementMelt2'',''IntrusionMelt'' or ''FullMeltOnPartiallyFloating'''); 67 fielddisplay(self,'intrusion_distance','distance of seawater intrusion from grounding line [m]'); 64 68 fielddisplay(self,'requested_outputs','additional outputs requested'); 65 69 … … 69 73 WriteData(fid,prefix,'data',self.friction_interpolation,'name','md.groundingline.friction_interpolation','format','String'); 70 74 WriteData(fid,prefix,'data',self.melt_interpolation,'name','md.groundingline.melt_interpolation','format','String'); 75 WriteData(fid,prefix,'object',self,'fieldname','intrusion_distance','format','Double'); 71 76 72 77 %process requested outputs
Note:
See TracChangeset
for help on using the changeset viewer.