Changeset 24735
- Timestamp:
- 04/24/20 17:52:40 (5 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 3 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp
r24626 r24735 245 245 parameters->AddObject(iomodel->CopyConstantObject("md.smb.isturbulentflux",SmbIsturbulentfluxEnum)); 246 246 parameters->AddObject(iomodel->CopyConstantObject("md.smb.isclimatology",SmbIsclimatologyEnum)); 247 parameters->AddObject(iomodel->CopyConstantObject("md.smb.isconstrainsurfaceT",SmbIsconstrainsurfaceTEnum)); 247 248 parameters->AddObject(iomodel->CopyConstantObject("md.smb.InitDensityScaling",SmbInitDensityScalingEnum)); 248 249 parameters->AddObject(iomodel->CopyConstantObject("md.smb.ThermoDeltaTScaling",SmbThermoDeltaTScalingEnum)); -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r24716 r24735 3631 3631 bool isgraingrowth,isalbedo,isshortwave,isthermal,isaccumulation,ismelt,isdensification,isturbulentflux; 3632 3632 bool isclimatology=false; 3633 bool isconstrainsurfaceT=false; 3633 3634 IssmDouble init_scaling=0.0; 3634 3635 IssmDouble thermo_scaling=1.0; … … 3694 3695 parameters->FindParam(&isdensification,SmbIsdensificationEnum); 3695 3696 parameters->FindParam(&isturbulentflux,SmbIsturbulentfluxEnum); 3697 parameters->FindParam(&isconstrainsurfaceT,SmbIsconstrainsurfaceTEnum); 3696 3698 parameters->FindParam(&init_scaling,SmbInitDensityScalingEnum); 3697 3699 parameters->FindParam(&thermo_scaling,SmbThermoDeltaTScalingEnum); … … 3893 3895 netSW = netSW + cellsum(swf,m)*smb_dt/dt; 3894 3896 3897 if(isconstrainsurfaceT){ 3898 if (m>0) T[0]=Ta; 3899 if (m>1) T[1]=Ta; 3900 } 3895 3901 /*Thermal profile computation:*/ 3896 if(isthermal)thermo(&EC, &T, &ulw, dz, d, swf, dlw, Ta, V, eAir, pAir, teValue, W[0], smb_dt, m, Vz, Tz, thermo_scaling,rho_ice,this->Sid() );3902 if(isthermal)thermo(&EC, &T, &ulw, dz, d, swf, dlw, Ta, V, eAir, pAir, teValue, W[0], smb_dt, m, Vz, Tz, thermo_scaling,rho_ice,this->Sid(),isconstrainsurfaceT); 3897 3903 3898 3904 /*Change in thickness of top cell due to evaporation/condensation assuming same density as top cell. … … 3905 3911 /*Calculate water production, M [kg m-2] resulting from snow/ice temperature exceeding 273.15 deg K 3906 3912 * (> 0 deg C), runoff R [kg m-2] and resulting changes in density and determine wet compaction [m]*/ 3907 if(ismelt)melt(&M, &Msurf, &R, &mAdd, &dz_add, &T, &d, &dz, &W, &a, &re, &gdn, &gsp, &m, dzMin, zMax, zMin, zTop, rho_ice,this->Sid());3913 if(ismelt)melt(&M, &Msurf, &R, &mAdd, &dz_add, &T, &d, &dz, &W, &a, &re, &gdn, &gsp, &m, dzMin, zMax, zMin, zTop, zY, rho_ice,this->Sid()); 3908 3914 3909 3915 /*Allow non-melt densification and determine compaction [m]*/ … … 3956 3962 for(int i=0;i<m;i++){ 3957 3963 sumMass += dz[i]*d[i]; 3958 fac += dz[i]*(rho_ice - fmin(d[i],rho_ice));3964 if (d[i] > 0) fac += dz[i]*(rho_ice - fmin(d[i],rho_ice)); 3959 3965 } 3960 3966 -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
r24705 r24735 615 615 616 616 } /*}}}*/ 617 void thermo(IssmDouble* pEC, IssmDouble** pT, IssmDouble* pulwrf, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble teValue, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, IssmDouble thermo_scaling, IssmDouble dIce, int sid ) { /*{{{*/617 void thermo(IssmDouble* pEC, IssmDouble** pT, IssmDouble* pulwrf, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble teValue, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, IssmDouble thermo_scaling, IssmDouble dIce, int sid, bool isconstrainsurfaceT) { /*{{{*/ 618 618 619 619 /* ENGLACIAL THERMODYNAMICS*/ … … 1372 1372 *pm=m; 1373 1373 } /*}}}*/ 1374 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble dIce, int sid){ /*{{{*/1374 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid){ /*{{{*/ 1375 1375 1376 1376 //// MELT ROUTINE … … 1423 1423 IssmDouble* Zcum=NULL; 1424 1424 IssmDouble* dzMin2=NULL; 1425 IssmDouble zY2= 1.025;1425 IssmDouble zY2=zY; 1426 1426 bool lastCellFlag = false; 1427 1427 int X1=0; … … 1591 1591 depthice=0.0; 1592 1592 if (d[i] >= dPHC-Dtol){ 1593 for(int l=i;(l<n & d[l]>=dPHC-Dtol);l++) depthice=depthice+dz[l];1593 for(int l=i;(l<n && d[l]>=dPHC-Dtol);l++) depthice=depthice+dz[l]; 1594 1594 } 1595 1595 … … 1718 1718 1719 1719 for (int i=0;i<n;i++){ 1720 if (Zcum[i]<=zTop+Dtol ){1720 if (Zcum[i]<=zTop+Dtol || i<1){ 1721 1721 dzMin2[i]=dzMin; 1722 1722 } … … 1745 1745 1746 1746 for (int i = 0; i<=X;i++){ 1747 if (dz[i] < dzMin2[i]-Dtol ){ // merge top cells1747 if (dz[i] < dzMin2[i]-Dtol && d[i+1]<dIce-Dtol){ // merge top cells, don't merge with ice 1748 1748 // _printf_("dz > dzMin * 2') 1749 1749 // adjust variables as a linearly weighted function of mass -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
r24691 r24735 31 31 void albedo(IssmDouble** a,int aIdx, IssmDouble* re, IssmDouble* dz, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble aValue, IssmDouble adThresh, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble Msurf, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt, IssmDouble dIce, int m, int sid); 32 32 void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, IssmDouble dIce, int m, int sid); 33 void thermo(IssmDouble* pEC, IssmDouble** T, IssmDouble* pulwrf, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble teValue, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, IssmDouble thermo_scaling, IssmDouble dIce, int sid );33 void thermo(IssmDouble* pEC, IssmDouble** T, IssmDouble* pulwrf, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble teValue, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, IssmDouble thermo_scaling, IssmDouble dIce, int sid, bool isconstrainsurfaceT); 34 34 void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, int aIdx, int dsnowIdx, IssmDouble Tmean, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble C, IssmDouble V, IssmDouble Vmean, IssmDouble dIce, int sid); 35 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble dIce, int sid);35 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid); 36 36 void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean, IssmDouble dIce, int m, int sid); 37 37 void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz, IssmDouble dIce, int sid); -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24691 r24735 354 354 syn keyword cConstant SmbIsalbedoEnum 355 355 syn keyword cConstant SmbIsclimatologyEnum 356 syn keyword cConstant SmbIsconstrainsurfaceTEnum 356 357 syn keyword cConstant SmbIsd18opdEnum 357 358 syn keyword cConstant SmbIsdelta18oEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24691 r24735 348 348 SmbIsalbedoEnum, 349 349 SmbIsclimatologyEnum, 350 SmbIsconstrainsurfaceTEnum, 350 351 SmbIsd18opdEnum, 351 352 SmbIsdelta18oEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24691 r24735 356 356 case SmbIsalbedoEnum : return "SmbIsalbedo"; 357 357 case SmbIsclimatologyEnum : return "SmbIsclimatology"; 358 case SmbIsconstrainsurfaceTEnum : return "SmbIsconstrainsurfaceT"; 358 359 case SmbIsd18opdEnum : return "SmbIsd18opd"; 359 360 case SmbIsdelta18oEnum : return "SmbIsdelta18o"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24691 r24735 362 362 else if (strcmp(name,"SmbIsalbedo")==0) return SmbIsalbedoEnum; 363 363 else if (strcmp(name,"SmbIsclimatology")==0) return SmbIsclimatologyEnum; 364 else if (strcmp(name,"SmbIsconstrainsurfaceT")==0) return SmbIsconstrainsurfaceTEnum; 364 365 else if (strcmp(name,"SmbIsd18opd")==0) return SmbIsd18opdEnum; 365 366 else if (strcmp(name,"SmbIsdelta18o")==0) return SmbIsdelta18oEnum; … … 382 383 else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum; 383 384 else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum; 384 else if (strcmp(name,"SmbRunoffalti")==0) return SmbRunoffaltiEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbRunoffgrad")==0) return SmbRunoffgradEnum; 388 if (strcmp(name,"SmbRunoffalti")==0) return SmbRunoffaltiEnum; 389 else if (strcmp(name,"SmbRunoffgrad")==0) return SmbRunoffgradEnum; 389 390 else if (strcmp(name,"SmbRunoffref")==0) return SmbRunoffrefEnum; 390 391 else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum; … … 505 506 else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum; 506 507 else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum; 507 else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"CalvingratexAverage")==0) return CalvingratexAverageEnum; 511 if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum; 512 else if (strcmp(name,"CalvingratexAverage")==0) return CalvingratexAverageEnum; 512 513 else if (strcmp(name,"Calvingratex")==0) return CalvingratexEnum; 513 514 else if (strcmp(name,"CalvingrateyAverage")==0) return CalvingrateyAverageEnum; … … 628 629 else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum; 629 630 else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum; 630 else if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 634 if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum; 635 else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 635 636 else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum; 636 637 else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum; … … 751 752 else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 752 753 else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum; 753 else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum; 757 if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum; 758 else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum; 758 759 else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum; 759 760 else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum; … … 874 875 else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 875 876 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; 876 else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum; 880 if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum; 881 else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum; 881 882 else if (strcmp(name,"Outputdefinition19")==0) return Outputdefinition19Enum; 882 883 else if (strcmp(name,"Outputdefinition20")==0) return Outputdefinition20Enum; … … 997 998 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 998 999 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 999 else if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"IntInput2")==0) return IntInput2Enum; 1003 if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum; 1004 else if (strcmp(name,"IntInput2")==0) return IntInput2Enum; 1004 1005 else if (strcmp(name,"BoolParam")==0) return BoolParamEnum; 1005 1006 else if (strcmp(name,"Boundary")==0) return BoundaryEnum; … … 1120 1121 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; 1121 1122 else if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum; 1122 else if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"IcefrontMassFluxLevelset")==0) return IcefrontMassFluxLevelsetEnum; 1126 if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum; 1127 else if (strcmp(name,"IcefrontMassFluxLevelset")==0) return IcefrontMassFluxLevelsetEnum; 1127 1128 else if (strcmp(name,"Incremental")==0) return IncrementalEnum; 1128 1129 else if (strcmp(name,"Indexed")==0) return IndexedEnum; … … 1243 1244 else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum; 1244 1245 else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum; 1245 else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"Regular")==0) return RegularEnum; 1249 if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; 1250 else if (strcmp(name,"Regular")==0) return RegularEnum; 1250 1251 else if (strcmp(name,"RecoveryAnalysis")==0) return RecoveryAnalysisEnum; 1251 1252 else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum; -
issm/trunk-jpl/src/m/classes/SMBgemb.m
r24734 r24735 23 23 isturbulentflux; 24 24 isclimatology; 25 isconstrainsurfaceT; 25 26 26 27 %inputs: … … 163 164 self.isturbulentflux=1; 164 165 self.isclimatology=0; 166 self.isconstrainsurfaceT=0; 165 167 166 168 self.aIdx = 1; … … 218 220 md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]); 219 221 md = checkfield(md,'fieldname','smb.isclimatology','values',[0 1]); 222 md = checkfield(md,'fieldname','smb.isconstrainsurfaceT','values',[0 1]); 220 223 221 224 md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-100,'<',273+100); %-100/100 celsius min/max value … … 298 301 fielddisplay(self,'isdensification','run densification module (default true)'); 299 302 fielddisplay(self,'isturbulentflux','run turbulant heat fluxes module (default true)'); 303 fielddisplay(self,'isconstrainsurfaceT','constrain surface temperatures to air temperature, turn off EC and surface flux contribution to surface temperature change'); 300 304 fielddisplay(self,'isclimatology','repeat all forcings when past last forcing time (default false)'); 301 305 fielddisplay(self,'Ta','2 m air temperature, in Kelvin'); … … 394 398 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isturbulentflux','format','Boolean'); 395 399 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isclimatology','format','Boolean'); 400 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isconstrainsurfaceT','format','Boolean'); 396 401 397 402 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts); -
issm/trunk-jpl/src/m/classes/SMBgemb.py
r24734 r24735 102 102 103 103 #}}} 104 105 104 106 105 def __repr__(self): # {{{ … … 118 117 string = "%s\n%s" % (string, fielddisplay(self, 'isdensification', 'run densification module (default true)')) 119 118 string = "%s\n%s" % (string, fielddisplay(self, 'isturbulentflux', 'run turbulant heat fluxes module (default true)')) 119 string = "%s\n%s" % (string, fielddisplay(self, 'isconstrainsurfaceT', 'constrain surface temperatures to air temperature, turn off EC and surface flux contribution to surface temperature change')) 120 120 string = "%s\n%s" % (string, fielddisplay(self, 'isclimatology', 'repeat all forcings when past last forcing time (default false)')) 121 121 string = "%s\n%s" % (string, fielddisplay(self, 'Ta', '2 m air temperature, in Kelvin')) … … 226 226 self.isturbulentflux = 1 227 227 self.isclimatology = 0 228 self.isconstrainsurfaceT = 0; 228 229 229 230 self.aIdx = 1 … … 281 282 md = checkfield(md, 'fieldname', 'smb.isturbulentflux', 'values', [0, 1]) 282 283 md = checkfield(md, 'fieldname', 'smb.isclimatology', 'values', [0, 1]) 284 md = checkfield(md, 'fieldname', 'smb.isconstrainsurfaceT', 'values', [0, 1]) 283 285 284 286 md = checkfield(md, 'fieldname', 'smb.Ta', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>', 273 - 100, '<', 273 + 100) #-100/100 celsius min/max value … … 355 357 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isturbulentflux', 'format', 'Boolean') 356 358 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isclimatology', 'format', 'Boolean') 359 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isconstrainsurfaceT', 'format', 'Boolean') 357 360 358 361 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Ta', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) -
issm/trunk-jpl/test/NightlyRun/test243.m
r24210 r24735 46 46 md=solve(md,'Transient'); 47 47 48 nlayers=size(md.results.TransientSolution(end).SmbT,2); 49 48 50 %Fields and tolerances to track changes 49 field_names ={' SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW'};50 field_tolerances ={ 8e-10,5e-12,3e-10,8e-10,1e-11,2e-7,4e-11,4e-12,1e-12,1e-12,1e-12,2e-10,2e-11, 2e-11, 1e-11, 9e-10,2e-11};51 field_names ={'Layers','SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW'}; 52 field_tolerances ={1e-12,1e-12,1e-12,1e-11,1e-11,1e-11,1e-11,1e-12,1e-11,1e-12,1e-12,1e-12,1e-11,2e-11,2e-11,1e-11,9e-10,2e-11}; 51 53 52 54 field_values={... 53 (md.results.TransientSolution(end).SmbDz(1,1:240)),... 54 (md.results.TransientSolution(end).SmbT(1,1:240)),... 55 (md.results.TransientSolution(end).SmbD(1,1:240)),... 56 (md.results.TransientSolution(end).SmbRe(1,1:240)),... 57 (md.results.TransientSolution(end).SmbGdn(1,1:240)),... 58 (md.results.TransientSolution(end).SmbGsp(1,1:240)),... 59 (md.results.TransientSolution(end).SmbA(1,1:240)),... 55 (nlayers),... 56 (md.results.TransientSolution(end).SmbDz(1,1:nlayers)),... 57 (md.results.TransientSolution(end).SmbT(1,1:nlayers)),... 58 (md.results.TransientSolution(end).SmbD(1,1:nlayers)),... 59 (md.results.TransientSolution(end).SmbRe(1,1:nlayers)),... 60 (md.results.TransientSolution(end).SmbGdn(1,1:nlayers)),... 61 (md.results.TransientSolution(end).SmbGsp(1,1:nlayers)),... 62 (md.results.TransientSolution(end).SmbA(1,1:nlayers)),... 60 63 (md.results.TransientSolution(end).SmbEC(1)),... 61 64 (md.results.TransientSolution(end).SmbMassBalance(1)),... -
issm/trunk-jpl/test/NightlyRun/test243.py
r24256 r24735 60 60 md = solve(md, 'Transient') 61 61 62 nlayers=np.size(md.results.TransientSolution[-1].SmbT,1) 63 62 64 #Fields and tolerances to track changes 63 field_names = [' SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbA', 'SmbEC', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF', 'SmbMeanULW', 'SmbNetLW', 'SmbNetSW']64 field_tolerances = [ 8e-10, 5e-12, 3e-10, 8e-10, 1e-11, 2e-7, 4e-11, 4e-12, 1e-12, 1e-12, 1e-12, 2e-10, 2e-11, 2e-11, 1e-11, 9e-10, 2e-11]65 field_names = ['Layers','SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbA', 'SmbEC', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF', 'SmbMeanULW', 'SmbNetLW', 'SmbNetSW'] 66 field_tolerances = [1e-12,1e-12,1e-12,1e-11,1e-11,1e-11,1e-11,1e-12,1e-11,1e-12,1e-12,1e-12,1e-11,2e-11,2e-11,1e-11,9e-10,2e-11] 65 67 #shape is different in python solution (fixed using reshape) which can cause test failure: 66 field_values = [ md.results.TransientSolution[-1].SmbDz[0, 0:240].reshape(1, -1),67 md.results.TransientSolution[-1].SmbT[0, 0: 240].reshape(1, -1),68 md.results.TransientSolution[-1].SmbD[0, 0: 240].reshape(1, -1),69 md.results.TransientSolution[-1].SmbRe[0, 0: 240].reshape(1, -1),70 md.results.TransientSolution[-1].SmbGdn[0, 0: 240].reshape(1, -1),71 md.results.TransientSolution[-1].SmbGsp[0, 0: 240].reshape(1, -1),72 md.results.TransientSolution[-1].SmbA[0, 0: 240].reshape(1, -1),68 field_values = [nlayers,md.results.TransientSolution[-1].SmbDz[0, 0:nlayers].reshape(1, -1), 69 md.results.TransientSolution[-1].SmbT[0, 0:nlayers].reshape(1, -1), 70 md.results.TransientSolution[-1].SmbD[0, 0:nlayers].reshape(1, -1), 71 md.results.TransientSolution[-1].SmbRe[0, 0:nlayers].reshape(1, -1), 72 md.results.TransientSolution[-1].SmbGdn[0, 0:nlayers].reshape(1, -1), 73 md.results.TransientSolution[-1].SmbGsp[0, 0:nlayers].reshape(1, -1), 74 md.results.TransientSolution[-1].SmbA[0, 0:nlayers].reshape(1, -1), 73 75 md.results.TransientSolution[-1].SmbEC[0], 74 76 md.results.TransientSolution[-1].SmbMassBalance[0], -
issm/trunk-jpl/test/NightlyRun/test252.m
r24210 r24735 54 54 md=solve(md,'Transient'); 55 55 56 nlayers=size(md.results.TransientSolution(end).SmbT,2); 57 56 58 %Fields and tolerances to track changes 57 field_names ={' SmbDz1','SmbT1' ,'SmbD1' ,'SmbRe1','SmbGdn1','SmbGsp1','SmbA1' ,'SmbEC1','SmbMassBalance1','SmbMAdd1','SmbDzAdd1','SmbFAC1',...59 field_names ={'Layers','SmbDz1','SmbT1' ,'SmbD1' ,'SmbRe1','SmbGdn1','SmbGsp1','SmbA1' ,'SmbEC1','SmbMassBalance1','SmbMAdd1','SmbDzAdd1','SmbFAC1',... 58 60 'SmbDz2','SmbT2' ,'SmbD2' ,'SmbRe2','SmbGdn2','SmbGsp2','SmbA2' ,'SmbEC2','SmbMassBalance2','SmbMAdd2','SmbDzAdd2','SmbFAC2',... 59 61 'SmbDz3','SmbT3' ,'SmbD3' ,'SmbRe3','SmbGdn3','SmbGsp3','SmbA3' ,'SmbEC3','SmbMassBalance3','SmbMAdd3','SmbDzAdd3','SmbFAC3',... 60 62 'SmbDz4','SmbT4' ,'SmbD4' ,'SmbRe4','SmbGdn4','SmbGsp4','SmbA4' ,'SmbEC4','SmbMassBalance4','SmbMAdd4','SmbDzAdd4','SmbFAC4'}; 61 field_tolerances ={1e-1 1,1e-12,1e-11,2e-11,1e-11,1e-11,1e-12,1e-12,1e-12,1e-12,1e-12,1e-11,...62 1e-1 1,1e-12,1e-11,8e-10,1e-11,4e-11,1e-12,4e-12,1e-12,1e-12,1e-12,2e-11,...63 1e-1 1,1e-12,1e-11,8e-10,1e-11,4e-11,1e-12,6e-12,6e-12,1e-12,1e-12,2e-11,...64 2e-9,1e-11,3e-9,1e-9,1e-11,2e-7,7e-11,2e-12,3e-9,1e-12,1e-12,9e-11};63 field_tolerances ={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,... 64 1e-12,1e-12,1e-11,1e-10,1e-11,1e-11,1e-12,4e-12,1e-12,1e-12,1e-12,1e-11,... 65 1e-12,1e-12,2e-12,2e-11,1e-11,1e-11,1e-12,1e-11,1e-11,1e-12,1e-12,1e-11,... 66 1e-11,1e-11,4e-11,1e-11,1e-12,3e-11,1e-12,1e-12,1e-10,1e-12,1e-12,2e-11}; 65 67 66 68 field_values={... 67 (md.results.TransientSolution(1).SmbDz(1,1:230)),... 68 (md.results.TransientSolution(1).SmbT(1,1:230)),... 69 (md.results.TransientSolution(1).SmbD(1,1:230)),... 70 (md.results.TransientSolution(1).SmbRe(1,1:230)),... 71 (md.results.TransientSolution(1).SmbGdn(1,1:230)),... 72 (md.results.TransientSolution(1).SmbGsp(1,1:230)),... 73 (md.results.TransientSolution(1).SmbA(1,1:230)),... 69 (nlayers)... 70 (md.results.TransientSolution(1).SmbDz(1,1:nlayers)),... 71 (md.results.TransientSolution(1).SmbT(1,1:nlayers)),... 72 (md.results.TransientSolution(1).SmbD(1,1:nlayers)),... 73 (md.results.TransientSolution(1).SmbRe(1,1:nlayers)),... 74 (md.results.TransientSolution(1).SmbGdn(1,1:nlayers)),... 75 (md.results.TransientSolution(1).SmbGsp(1,1:nlayers)),... 76 (md.results.TransientSolution(1).SmbA(1,1:nlayers)),... 74 77 (md.results.TransientSolution(1).SmbEC(1)),... 75 78 (md.results.TransientSolution(1).SmbMassBalance(1)),... … … 77 80 (md.results.TransientSolution(1).SmbDzAdd(1)),... 78 81 (md.results.TransientSolution(1).SmbFAC(1)),... 79 (md.results.TransientSolution(146).SmbDz(1,1: 230)),...80 (md.results.TransientSolution(146).SmbT(1,1: 230)),...81 (md.results.TransientSolution(146).SmbD(1,1: 230)),...82 (md.results.TransientSolution(146).SmbRe(1,1: 230)),...83 (md.results.TransientSolution(146).SmbGdn(1,1: 230)),...84 (md.results.TransientSolution(146).SmbGsp(1,1: 230)),...85 (md.results.TransientSolution(146).SmbA(1,1: 230)),...82 (md.results.TransientSolution(146).SmbDz(1,1:nlayers)),... 83 (md.results.TransientSolution(146).SmbT(1,1:nlayers)),... 84 (md.results.TransientSolution(146).SmbD(1,1:nlayers)),... 85 (md.results.TransientSolution(146).SmbRe(1,1:nlayers)),... 86 (md.results.TransientSolution(146).SmbGdn(1,1:nlayers)),... 87 (md.results.TransientSolution(146).SmbGsp(1,1:nlayers)),... 88 (md.results.TransientSolution(146).SmbA(1,1:nlayers)),... 86 89 (md.results.TransientSolution(146).SmbEC(1)),... 87 90 (md.results.TransientSolution(146).SmbMassBalance(1)),... … … 89 92 (md.results.TransientSolution(146).SmbDzAdd(1)),... 90 93 (md.results.TransientSolution(146).SmbFAC(1)),... 91 (md.results.TransientSolution(147).SmbDz(1,1: 230)),...92 (md.results.TransientSolution(147).SmbT(1,1: 230)),...93 (md.results.TransientSolution(147).SmbD(1,1: 230)),...94 (md.results.TransientSolution(147).SmbRe(1,1: 230)),...95 (md.results.TransientSolution(147).SmbGdn(1,1: 230)),...96 (md.results.TransientSolution(147).SmbGsp(1,1: 230)),...97 (md.results.TransientSolution(147).SmbA(1,1: 230)),...94 (md.results.TransientSolution(147).SmbDz(1,1:nlayers)),... 95 (md.results.TransientSolution(147).SmbT(1,1:nlayers)),... 96 (md.results.TransientSolution(147).SmbD(1,1:nlayers)),... 97 (md.results.TransientSolution(147).SmbRe(1,1:nlayers)),... 98 (md.results.TransientSolution(147).SmbGdn(1,1:nlayers)),... 99 (md.results.TransientSolution(147).SmbGsp(1,1:nlayers)),... 100 (md.results.TransientSolution(147).SmbA(1,1:nlayers)),... 98 101 (md.results.TransientSolution(147).SmbEC(1)),... 99 102 (md.results.TransientSolution(147).SmbMassBalance(1)),... … … 101 104 (md.results.TransientSolution(147).SmbDzAdd(1)),... 102 105 (md.results.TransientSolution(147).SmbFAC(1)),... 103 (md.results.TransientSolution(end).SmbDz(1,1: 230)),...104 (md.results.TransientSolution(end).SmbT(1,1: 230)),...105 (md.results.TransientSolution(end).SmbD(1,1: 230)),...106 (md.results.TransientSolution(end).SmbRe(1,1: 230)),...107 (md.results.TransientSolution(end).SmbGdn(1,1: 230)),...108 (md.results.TransientSolution(end).SmbGsp(1,1: 230)),...109 (md.results.TransientSolution(end).SmbA(1,1: 230)),...106 (md.results.TransientSolution(end).SmbDz(1,1:nlayers)),... 107 (md.results.TransientSolution(end).SmbT(1,1:nlayers)),... 108 (md.results.TransientSolution(end).SmbD(1,1:nlayers)),... 109 (md.results.TransientSolution(end).SmbRe(1,1:nlayers)),... 110 (md.results.TransientSolution(end).SmbGdn(1,1:nlayers)),... 111 (md.results.TransientSolution(end).SmbGsp(1,1:nlayers)),... 112 (md.results.TransientSolution(end).SmbA(1,1:nlayers)),... 110 113 (md.results.TransientSolution(end).SmbEC(1)),... 111 114 (md.results.TransientSolution(end).SmbMassBalance(1)),... -
issm/trunk-jpl/test/NightlyRun/test252.py
r24256 r24735 69 69 md = solve(md, 'Transient') 70 70 71 nlayers=np.size(md.results.TransientSolution[-1].SmbT,1) 72 71 73 #Fields and tolerances to track changes 72 74 73 field_names = [' SmbDz1', 'SmbT1', 'SmbD1', 'SmbRe1', 'SmbGdn1', 'SmbGsp1', 'SmbA1', 'SmbEC1', 'SmbMassBalance1', 'SmbMAdd1', 'SmbDzAdd1', 'SmbFAC1',75 field_names = ['Layers','SmbDz1', 'SmbT1', 'SmbD1', 'SmbRe1', 'SmbGdn1', 'SmbGsp1', 'SmbA1', 'SmbEC1', 'SmbMassBalance1', 'SmbMAdd1', 'SmbDzAdd1', 'SmbFAC1', 74 76 'SmbDz2', 'SmbT2', 'SmbD2', 'SmbRe2', 'SmbGdn2', 'SmbGsp2', 'SmbA2', 'SmbEC2', 'SmbMassBalance2', 'SmbMAdd2', 'SmbDzAdd2', 'SmbFAC2', 75 77 'SmbDz3', 'SmbT3', 'SmbD3', 'SmbRe3', 'SmbGdn3', 'SmbGsp3', 'SmbA3', 'SmbEC3', 'SmbMassBalance3', 'SmbMAdd3', 'SmbDzAdd3', 'SmbFAC3', 76 78 'SmbDz4', 'SmbT4', 'SmbD4', 'SmbRe4', 'SmbGdn4', 'SmbGsp4', 'SmbA4', 'SmbEC4', 'SmbMassBalance4', 'SmbMAdd4', 'SmbDzAdd4', 'SmbFAC4'] 77 field_tolerances = [1e-11, 1e-12, 1e-11, 2e-11, 1e-11, 1e-11, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-11, 78 1e-11, 1e-12, 1e-11, 8e-10, 1e-11, 4e-11, 1e-12, 4e-12, 1e-12, 1e-12, 1e-12, 2e-11, 79 1e-11, 1e-12, 1e-11, 8e-10, 1e-11, 4e-11, 1e-12, 6e-12, 6e-12, 1e-12, 1e-12, 2e-11, 80 2e-9, 1e-11, 3e-9, 1e-9, 1e-11, 2e-7, 7e-11, 2e-12, 3e-9, 1e-12, 1e-12, 9e-11] 79 field_tolerances = [1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12, 80 1e-12,1e-12,1e-11,1e-10,1e-11,1e-11,1e-12,4e-12,1e-12,1e-12,1e-12,1e-11, 81 1e-12,1e-12,2e-12,2e-11,1e-11,1e-11,1e-12,1e-11,1e-11,1e-12,1e-12,1e-11, 82 1e-11,1e-11,4e-11,1e-11,1e-12,3e-11,1e-12,1e-12,1e-10,1e-12,1e-12,2e-11] 83 81 84 82 85 #shape is different in python solution (fixed using reshape) which can cause test failure: 83 field_values = [ md.results.TransientSolution[0].SmbDz[0, 0:230].reshape(1, -1),84 md.results.TransientSolution[0].SmbT[0, 0: 230].reshape(1, -1),85 md.results.TransientSolution[0].SmbD[0, 0: 230].reshape(1, -1),86 md.results.TransientSolution[0].SmbRe[0, 0: 230].reshape(1, -1),87 md.results.TransientSolution[0].SmbGdn[0, 0: 230].reshape(1, -1),88 md.results.TransientSolution[0].SmbGsp[0, 0: 230].reshape(1, -1),89 md.results.TransientSolution[0].SmbA[0, 0: 230].reshape(1, -1),86 field_values = [nlayers,md.results.TransientSolution[0].SmbDz[0, 0:nlayers].reshape(1, -1), 87 md.results.TransientSolution[0].SmbT[0, 0:nlayers].reshape(1, -1), 88 md.results.TransientSolution[0].SmbD[0, 0:nlayers].reshape(1, -1), 89 md.results.TransientSolution[0].SmbRe[0, 0:nlayers].reshape(1, -1), 90 md.results.TransientSolution[0].SmbGdn[0, 0:nlayers].reshape(1, -1), 91 md.results.TransientSolution[0].SmbGsp[0, 0:nlayers].reshape(1, -1), 92 md.results.TransientSolution[0].SmbA[0, 0:nlayers].reshape(1, -1), 90 93 md.results.TransientSolution[0].SmbEC[0], 91 94 md.results.TransientSolution[0].SmbMassBalance[0], … … 93 96 md.results.TransientSolution[0].SmbDzAdd[0], 94 97 md.results.TransientSolution[0].SmbFAC[0], 95 md.results.TransientSolution[145].SmbDz[0, 0: 230].reshape(1, -1),96 md.results.TransientSolution[145].SmbT[0, 0: 230].reshape(1, -1),97 md.results.TransientSolution[145].SmbD[0, 0: 230].reshape(1, -1),98 md.results.TransientSolution[145].SmbRe[0, 0: 230].reshape(1, -1),99 md.results.TransientSolution[145].SmbGdn[0, 0: 230].reshape(1, -1),100 md.results.TransientSolution[145].SmbGsp[0, 0: 230].reshape(1, -1),101 md.results.TransientSolution[145].SmbA[0, 0: 230].reshape(1, -1),98 md.results.TransientSolution[145].SmbDz[0, 0:nlayers].reshape(1, -1), 99 md.results.TransientSolution[145].SmbT[0, 0:nlayers].reshape(1, -1), 100 md.results.TransientSolution[145].SmbD[0, 0:nlayers].reshape(1, -1), 101 md.results.TransientSolution[145].SmbRe[0, 0:nlayers].reshape(1, -1), 102 md.results.TransientSolution[145].SmbGdn[0, 0:nlayers].reshape(1, -1), 103 md.results.TransientSolution[145].SmbGsp[0, 0:nlayers].reshape(1, -1), 104 md.results.TransientSolution[145].SmbA[0, 0:nlayers].reshape(1, -1), 102 105 md.results.TransientSolution[145].SmbEC[0], 103 106 md.results.TransientSolution[145].SmbMassBalance[0], … … 105 108 md.results.TransientSolution[145].SmbDzAdd[0], 106 109 md.results.TransientSolution[145].SmbFAC[0], 107 md.results.TransientSolution[146].SmbDz[0, 0: 230].reshape(1, -1),108 md.results.TransientSolution[146].SmbT[0, 0: 230].reshape(1, -1),109 md.results.TransientSolution[146].SmbD[0, 0: 230].reshape(1, -1),110 md.results.TransientSolution[146].SmbRe[0, 0: 230].reshape(1, -1),111 md.results.TransientSolution[146].SmbGdn[0, 0: 230].reshape(1, -1),112 md.results.TransientSolution[146].SmbGsp[0, 0: 230].reshape(1, -1),113 md.results.TransientSolution[146].SmbA[0, 0: 230].reshape(1, -1),110 md.results.TransientSolution[146].SmbDz[0, 0:nlayers].reshape(1, -1), 111 md.results.TransientSolution[146].SmbT[0, 0:nlayers].reshape(1, -1), 112 md.results.TransientSolution[146].SmbD[0, 0:nlayers].reshape(1, -1), 113 md.results.TransientSolution[146].SmbRe[0, 0:nlayers].reshape(1, -1), 114 md.results.TransientSolution[146].SmbGdn[0, 0:nlayers].reshape(1, -1), 115 md.results.TransientSolution[146].SmbGsp[0, 0:nlayers].reshape(1, -1), 116 md.results.TransientSolution[146].SmbA[0, 0:nlayers].reshape(1, -1), 114 117 md.results.TransientSolution[146].SmbEC[0], 115 118 md.results.TransientSolution[146].SmbMassBalance[0], … … 117 120 md.results.TransientSolution[146].SmbDzAdd[0], 118 121 md.results.TransientSolution[146].SmbFAC[0], 119 md.results.TransientSolution[-1].SmbDz[0, 0: 230].reshape(1, -1),120 md.results.TransientSolution[-1].SmbT[0, 0: 230].reshape(1, -1),121 md.results.TransientSolution[-1].SmbD[0, 0: 230].reshape(1, -1),122 md.results.TransientSolution[-1].SmbRe[0, 0: 230].reshape(1, -1),123 md.results.TransientSolution[-1].SmbGdn[0, 0: 230].reshape(1, -1),124 md.results.TransientSolution[-1].SmbGsp[0, 0: 230].reshape(1, -1),125 md.results.TransientSolution[-1].SmbA[0, 0: 230].reshape(1, -1),122 md.results.TransientSolution[-1].SmbDz[0, 0:nlayers].reshape(1, -1), 123 md.results.TransientSolution[-1].SmbT[0, 0:nlayers].reshape(1, -1), 124 md.results.TransientSolution[-1].SmbD[0, 0:nlayers].reshape(1, -1), 125 md.results.TransientSolution[-1].SmbRe[0, 0:nlayers].reshape(1, -1), 126 md.results.TransientSolution[-1].SmbGdn[0, 0:nlayers].reshape(1, -1), 127 md.results.TransientSolution[-1].SmbGsp[0, 0:nlayers].reshape(1, -1), 128 md.results.TransientSolution[-1].SmbA[0, 0:nlayers].reshape(1, -1), 126 129 md.results.TransientSolution[-1].SmbEC[0], 127 130 md.results.TransientSolution[-1].SmbMassBalance[0],
Note:
See TracChangeset
for help on using the changeset viewer.