Changeset 27652


Ignore:
Timestamp:
03/22/23 21:34:59 (2 years ago)
Author:
inwoo
Message:

CHG: fix SEMIC run - enable to export SMB from ice, snow, ice+snow from SEMIC.

Location:
issm/trunk-jpl/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27646 r27652  
    44784478                        // water equivalent SMB ice to ice equivalent.
    44794479                        this->AddInput(SmbMassBalanceEnum,    &smbi_out[0],P1DGEnum);
     4480                        this->AddInput(SmbMassBalanceIceEnum, &smbi_out[0],P1DGEnum);
    44804481                        this->AddInput(SmbMassBalanceSnowEnum,&smbs_out[0],P1DGEnum);
     4482                        this->AddInput(SmbMassBalanceSemicEnum,&smb_out[0],P1DGEnum);
    44814483                        //this->AddInput(SmbMassBalanceSnowEnum,&smbs_out[0],P1DGEnum);
    44824484                        // saccu - accumulation of snow.
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27646 r27652  
    10881088syn keyword cConstant SmbMassBalanceEnum
    10891089syn keyword cConstant SmbMassBalanceSnowEnum
     1090syn keyword cConstant SmbMassBalanceIceEnum
     1091syn keyword cConstant SmbMassBalanceSemicEnum
    10901092syn keyword cConstant SmbMassBalanceSubstepEnum
    10911093syn keyword cConstant SmbMassBalanceTransientEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27646 r27652  
    10841084        SmbMassBalanceEnum,
    10851085        SmbMassBalanceSnowEnum,
     1086        SmbMassBalanceIceEnum,
     1087        SmbMassBalanceSemicEnum,
    10861088   SmbMassBalanceSubstepEnum,
    10871089   SmbMassBalanceTransientEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27646 r27652  
    10901090                case SmbMassBalanceEnum : return "SmbMassBalance";
    10911091                case SmbMassBalanceSnowEnum : return "SmbMassBalanceSnow";
     1092                case SmbMassBalanceIceEnum : return "SmbMassBalanceIce";
     1093                case SmbMassBalanceSemicEnum : return "SmbMassBalanceSemic";
    10921094                case SmbMassBalanceSubstepEnum : return "SmbMassBalanceSubstep";
    10931095                case SmbMassBalanceTransientEnum : return "SmbMassBalanceTransient";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27646 r27652  
    10811081syn keyword juliaConstC SmbMassBalanceEnum
    10821082syn keyword juliaConstC SmbMassBalanceSnowEnum
     1083syn keyword juliaConstC SmbMassBalanceIceEnum
     1084syn keyword juliaConstC SmbMassBalanceSemicEnum
    10831085syn keyword juliaConstC SmbMassBalanceSubstepEnum
    10841086syn keyword juliaConstC SmbMassBalanceTransientEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27646 r27652  
    11141114              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
    11151115              else if (strcmp(name,"SmbMassBalanceSnow")==0) return SmbMassBalanceSnowEnum;
     1116              else if (strcmp(name,"SmbMassBalanceIce")==0) return SmbMassBalanceIceEnum;
     1117              else if (strcmp(name,"SmbMassBalanceSemic")==0) return SmbMassBalanceSemicEnum;
    11161118              else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
    11171119              else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
     
    11191121              else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
    11201122              else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
    1121               else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
    1122               else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
     1126              if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
     1127              else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum;
     1128              else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
    11271129              else if (strcmp(name,"SmbMSurf")==0) return SmbMSurfEnum;
    11281130              else if (strcmp(name,"SmbNetLW")==0) return SmbNetLWEnum;
     
    12421244              else if (strcmp(name,"VxShear")==0) return VxShearEnum;
    12431245              else if (strcmp(name,"VxSurface")==0) return VxSurfaceEnum;
    1244               else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
    1245               else if (strcmp(name,"VyBase")==0) return VyBaseEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"VyDebris")==0) return VyDebrisEnum;
     1249              if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
     1250              else if (strcmp(name,"VyBase")==0) return VyBaseEnum;
     1251              else if (strcmp(name,"VyDebris")==0) return VyDebrisEnum;
    12501252              else if (strcmp(name,"Vy")==0) return VyEnum;
    12511253              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     
    13651367              else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;
    13661368              else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum;
    1367               else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
    1368               else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
     1372              if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
     1373              else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
     1374              else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
    13731375              else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
    13741376              else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
     
    14881490              else if (strcmp(name,"FrontalForcingsRignot")==0) return FrontalForcingsRignotEnum;
    14891491              else if (strcmp(name,"FrontalForcingsRignotarma")==0) return FrontalForcingsRignotarmaEnum;
    1490               else if (strcmp(name,"Fset")==0) return FsetEnum;
    1491               else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
    14921492         else stage=13;
    14931493   }
    14941494   if(stage==13){
    1495               if (strcmp(name,"GLheightadvectionAnalysis")==0) return GLheightadvectionAnalysisEnum;
     1495              if (strcmp(name,"Fset")==0) return FsetEnum;
     1496              else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
     1497              else if (strcmp(name,"GLheightadvectionAnalysis")==0) return GLheightadvectionAnalysisEnum;
    14961498              else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
    14971499              else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
     
    16111613              else if (strcmp(name,"MeshX")==0) return MeshXEnum;
    16121614              else if (strcmp(name,"MeshY")==0) return MeshYEnum;
    1613               else if (strcmp(name,"MinVel")==0) return MinVelEnum;
    1614               else if (strcmp(name,"MinVx")==0) return MinVxEnum;
    16151615         else stage=14;
    16161616   }
    16171617   if(stage==14){
    1618               if (strcmp(name,"MinVy")==0) return MinVyEnum;
     1618              if (strcmp(name,"MinVel")==0) return MinVelEnum;
     1619              else if (strcmp(name,"MinVx")==0) return MinVxEnum;
     1620              else if (strcmp(name,"MinVy")==0) return MinVyEnum;
    16191621              else if (strcmp(name,"MinVz")==0) return MinVzEnum;
    16201622              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
     
    17341736              else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
    17351737              else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
    1736               else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
    1737               else if (strcmp(name,"Tetra")==0) return TetraEnum;
    17381738         else stage=15;
    17391739   }
    17401740   if(stage==15){
    1741               if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
     1741              if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
     1742              else if (strcmp(name,"Tetra")==0) return TetraEnum;
     1743              else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
    17421744              else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum;
    17431745              else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
  • issm/trunk-jpl/src/m/classes/SMBsemic.m

    r27647 r27652  
    8888                function list = outputlists(self,md) % {{{
    8989                        if self.ismethod == 1
    90                                 list = {'SmbMassBalance','SmbMassBalanceSnow','SmbMelt','SmbAccumulation',...
    91                                         'SmbHIce','SmbHSnow','SmbAlbedo','SmbAlbedoSnow','TemperatureSEMIC'};
     90                                list = {'SmbMassBalance','SmbMassBalanceSnow','SmbMassBalanceIce',...
     91                                        'SmbMassBalanceSemic','SmbMelt','SmbAccumulation',...
     92                                        'SmbHIce','SmbHSnow','SmbAlbedo','SmbAlbedoSnow','TemperatureSEMIC',...
     93                                        'SmbSemicQmr'};
    9294                        else
    9395                                list = {'SmbMassBalance'};
     
    204206                        md = checkfield(md,'fieldname','smb.averaging','numel',[1],'values',[0 1 2]);
    205207                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    206 
     208                        % check requested_outputs
     209                        if self.ismethod==1
     210                                for i = 1:length(self.requested_outputs)
     211                                        if ~any(strcmpi(self.requested_outputs{i},self.outputlists))
     212                                                error(sprintf('ERROR: %s requested_output is not available',self.requested_outputs{i}));
     213                                        end
     214                                end
     215                        end
    207216                end % }}}
    208217                function disp(self) % {{{
     
    226235                        fielddisplay(self,'rdl','longwave downward radiation decrease (default is 0.29 [W/m^2/km]; Marty et al. 2002)');
    227236                        fielddisplay(self,'s0gcm','GCM reference elevation; (default is 0) [m]');
     237                        fielddisplay(self,'albedo_scheme','albedom scheme. 0: none, 1: (default is 0)');
    228238
    229239                        fielddisplay(self,'ismethod','method for calculating SMB with SEMIC. Default version of SEMIC is really slow. 0: steady, 1: transient (default: 0)');
Note: See TracChangeset for help on using the changeset viewer.