Changeset 22475
- Timestamp:
- 02/26/18 14:22:53 (7 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp
r22450 r22475 178 178 parameters->AddObject(iomodel->CopyConstantObject("md.smb.isturbulentflux",SmbIsturbulentfluxEnum)); 179 179 parameters->AddObject(iomodel->CopyConstantObject("md.smb.InitDensityScaling",SmbInitDensityScalingEnum)); 180 parameters->AddObject(iomodel->CopyConstantObject("md.smb.ThermoDeltaTScaling",SmbThermoDeltaTScalingEnum)); 180 181 break; 181 182 case SMBpddEnum: -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r22471 r22475 2605 2605 bool isgraingrowth,isalbedo,isshortwave,isthermal,isaccumulation,ismelt,isdensification,isturbulentflux; 2606 2606 IssmDouble init_scaling=0.0; 2607 IssmDouble thermo_scaling=1.0; 2607 2608 2608 2609 /*}}}*/ … … 2666 2667 parameters->FindParam(&isturbulentflux,SmbIsturbulentfluxEnum); 2667 2668 parameters->FindParam(&init_scaling,SmbInitDensityScalingEnum); 2669 parameters->FindParam(&thermo_scaling,SmbThermoDeltaTScalingEnum); 2668 2670 2669 2671 /*}}}*/ … … 2849 2851 2850 2852 /*Thermal profile computation:*/ 2851 if(isthermal)thermo(&EC, &T, dz, d, swf, dlw, Ta, V, eAir, pAir, teValue, W[0], smb_dt, m, Vz, Tz, rho_ice,this->Sid());2853 if(isthermal)thermo(&EC, &T, dz, d, swf, dlw, Ta, V, eAir, pAir, teValue, W[0], smb_dt, m, Vz, Tz, thermo_scaling,rho_ice,this->Sid()); 2852 2854 2853 2855 /*Change in thickness of top cell due to evaporation/condensation assuming same density as top cell. -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
r22450 r22475 345 345 // 3 : density and cloud amount (Greuell & Konzelmann, 1994) 346 346 // 4 : exponential time decay & wetness (Bougamont & Bamber, 2005) 347 // 5 : ingest MODIS mode, direct input from aValue parameter applied to surface ice only 347 348 348 349 //// Inputs 349 350 // aIdx = albedo method to use 350 351 351 // Method 0 352 // Method 0 & 5 352 353 // aValue = direct input value for albedo 353 354 … … 495 496 496 497 } 497 else _error_("albedo method switch should range from 0 to 4!"); 498 else if(aIdx==5){ 499 for(int i=0;i<m;i++)if(dIce - d[i]<Dtol) a[i] = aValue; 500 } 501 else _error_("albedo method switch should range from 0 to 5!"); 498 502 499 503 // Check for erroneous values … … 506 510 507 511 } /*}}}*/ 508 void thermo(IssmDouble* pEC, IssmDouble** pT, 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 dIce, int sid) { /*{{{*/512 void thermo(IssmDouble* pEC, IssmDouble** pT, 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) { /*{{{*/ 509 513 510 514 /* ENGLACIAL THERMODYNAMICS*/ … … 528 532 // Vz: air temperature height above surface [m] 529 533 // Tz: wind height above surface [m] 534 // thermo_scaling: scaling factor to multiply the thermal diffusion timestep (delta t) 530 535 531 536 // OUTPUTS … … 664 669 665 670 // determine minimum acceptable delta t (diffusion number > 1/2) [s] 666 // NS: 2.16.18 divided dt by 11 for stability (changed 3 to 33)671 // NS: 2.16.18 divided dt by scaling factor, default set to 1/11 for stability 667 672 dt=1e12; 668 for(int i=0;i<m;i++)dt = fmin(dt,CI * pow(dz[i],2) * d[i] / (3 3 * K[i]));673 for(int i=0;i<m;i++)dt = fmin(dt,CI * pow(dz[i],2) * d[i] / (3 * K[i]) * thermo_scaling); 669 674 670 675 // smallest possible even integer of 60 min where diffusion number > 1/2 … … 1171 1176 1172 1177 // adjust a, re, gdn & gsp 1173 if(aIdx>0 )a[0] = (aSnow * P + a[0] * mInit[0])/mass;1178 if(aIdx>0 | aIdx!=5 | (aIdx==5 & !(dIce - d[0]<Dtol)))a[0] = (aSnow * P + a[0] * mInit[0])/mass; 1174 1179 re[0] = (reNew * P + re[0] * mInit[0])/mass; 1175 1180 gdn[0] = (gdnNew * P + gdn[0] * mInit[0])/mass; -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
r22450 r22475 27 27 void albedo(IssmDouble** a,int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble aValue, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt, IssmDouble dIce, int m, int sid); 28 28 void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, IssmDouble dIce, int m, int sid); 29 void thermo(IssmDouble* pEC, IssmDouble** T, 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 dIce, int sid);29 void thermo(IssmDouble* pEC, IssmDouble** T, 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); 30 30 void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, int aIdx,IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble dIce, int sid); 31 31 void melt(IssmDouble* pM, 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); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22474 r22475 435 435 SMBgembEnum, 436 436 SmbInitDensityScalingEnum, 437 SmbThermoDeltaTScalingEnum, 437 438 SmbTaEnum, 438 439 SmbVEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22474 r22475 437 437 case SMBgembEnum : return "SMBgemb"; 438 438 case SmbInitDensityScalingEnum : return "SmbInitDensityScaling"; 439 case SmbThermoDeltaTScalingEnum : return "SmbThermoDeltaTScaling"; 439 440 case SmbTaEnum : return "SmbTa"; 440 441 case SmbVEnum : return "SmbV"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22474 r22475 446 446 else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum; 447 447 else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum; 448 else if (strcmp(name,"SmbThermoDeltaTScaling")==0) return SmbThermoDeltaTScalingEnum; 448 449 else if (strcmp(name,"SmbTa")==0) return SmbTaEnum; 449 450 else if (strcmp(name,"SmbV")==0) return SmbVEnum; … … 505 506 else if (strcmp(name,"SmbPrecipitationsLgm")==0) return SmbPrecipitationsLgmEnum; 506 507 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; 507 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum; 511 if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 512 else if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum; 512 513 else if (strcmp(name,"SmbPddfacSnow")==0) return SmbPddfacSnowEnum; 513 514 else if (strcmp(name,"SmbPddfacIce")==0) return SmbPddfacIceEnum; … … 628 629 else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum; 629 630 else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum; 630 else if (strcmp(name,"LambdaS")==0) return LambdaSEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 634 if (strcmp(name,"LambdaS")==0) return LambdaSEnum; 635 else if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 635 636 else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum; 636 637 else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum; … … 751 752 else if (strcmp(name,"Outputdefinition92")==0) return Outputdefinition92Enum; 752 753 else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum; 753 else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum; 757 if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum; 758 else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum; 758 759 else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum; 759 760 else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum; … … 874 875 else if (strcmp(name,"LoveShNmin")==0) return LoveShNminEnum; 875 876 else if (strcmp(name,"LoveG0")==0) return LoveG0Enum; 876 else if (strcmp(name,"LoveR0")==0) return LoveR0Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum; 880 if (strcmp(name,"LoveR0")==0) return LoveR0Enum; 881 else if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum; 881 882 else if (strcmp(name,"LoveAllowLayerDeletion")==0) return LoveAllowLayerDeletionEnum; 882 883 else if (strcmp(name,"LoveForcingType")==0) return LoveForcingTypeEnum; … … 997 998 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 998 999 else if (strcmp(name,"Vertex")==0) return VertexEnum; 999 else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"VertexSId")==0) return VertexSIdEnum; 1003 if (strcmp(name,"VertexPId")==0) return VertexPIdEnum; 1004 else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum; 1004 1005 else if (strcmp(name,"Option")==0) return OptionEnum; 1005 1006 else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; … … 1120 1121 else if (strcmp(name,"MINI")==0) return MINIEnum; 1121 1122 else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum; 1122 else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum; 1126 if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum; 1127 else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum; 1127 1128 else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum; 1128 1129 else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum; -
issm/trunk-jpl/src/m/classes/SMBgemb.m
r22450 r22475 60 60 % 3: density and cloud amount [Greuell & Konzelmann, 1994] 61 61 % 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 62 % 5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only 63 62 64 swIdx = NaN; % apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1) 63 65 … … 90 92 %densities: 91 93 InitDensityScaling= NaN; %initial scaling factor multiplying the density of ice, which describes the density of the snowpack. 94 95 %thermal: 96 ThermoDeltaTScaling= NaN; %scaling factor to multiply the thermal diffusion timestep (delta t) 92 97 93 98 requested_outputs = {}; … … 120 125 self.pAir=project3d(md,'vector',self.pAir,'type','node'); 121 126 122 if aIdx == 0& ~isnan(self.aValue)127 if (aIdx == 0 | aIdx == 5) & ~isnan(self.aValue) 123 128 self.aValue=project3d(md,'vector',self.aValue,'type','node'); 124 129 end … … 150 155 self.dzMin = self.dzTop/2; 151 156 self.InitDensityScaling = 1.0; 157 self.ThermoDeltaTScaling = 1/11; 152 158 153 159 self.zMax=250*ones(mesh.numberofelements,1); … … 206 212 md = checkfield(md,'fieldname','smb.teValue','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1); 207 213 208 md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4 ]);214 md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4,5]); 209 215 md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]); 210 216 md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5]); … … 216 222 md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365); %10 years max 217 223 md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'>=',0,'<=',1); 224 md = checkfield(md,'fieldname','smb.ThermoDeltaTScaling','NaN',1,'Inf',1,'>=',0,'<=',1); 218 225 219 226 switch self.aIdx, … … 269 276 fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]'); 270 277 fielddisplay(self,'InitDensityScaling',{'initial scaling factor multiplying the density of ice','which describes the density of the snowpack.'}); 278 fielddisplay(self,'ThermoDeltaTScaling',{'scaling factor to multiply the thermal diffusion timestep (delta t)'}); 271 279 fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)'); 272 280 fielddisplay(self,'aIdx',{'method for calculating albedo and subsurface absorption (default is 1)',... 273 '0: direct input from aValue parameter',... 274 '1: effective grain radius [Gardner & Sharp, 2009]',... 275 '2: effective grain radius [Brun et al., 2009]',... 276 '3: density and cloud amount [Greuell & Konzelmann, 1994]',... 277 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'}); 281 '0: direct input from aValue parameter',... 282 '1: effective grain radius [Gardner & Sharp, 2009]',... 283 '2: effective grain radius [Brun et al., 2009]',... 284 '3: density and cloud amount [Greuell & Konzelmann, 1994]',... 285 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]',... 286 '5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only'}); 278 287 279 288 fielddisplay(self,'teValue','Outward longwave radiation thermal emissivity forcing at every element (default in code is 1)'); … … 294 303 %additional albedo parameters: 295 304 switch self.aIdx 296 case 0297 fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == 0.');305 case {0 5} 306 fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == {0,5}.'); 298 307 case {1 2} 299 308 fielddisplay(self,'aSnow','new snow albedo (0.64 - 0.89)'); … … 356 365 WriteData(fid,prefix,'object',self,'class','smb','fieldname','denIdx','format','Integer'); 357 366 WriteData(fid,prefix,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double'); 367 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ThermoDeltaTScaling','format','Double'); 358 368 WriteData(fid,prefix,'object',self,'class','smb','fieldname','outputFreq','format','Double'); 359 369 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aSnow','format','Double'); -
issm/trunk-jpl/src/m/classes/SMBgemb.py
r22450 r22475 66 66 # 3: density and cloud amount [Greuell & Konzelmann, 1994] 67 67 # 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 68 # 5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only 69 68 70 swIdx = float('NaN') # apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1) 69 71 … … 96 98 #densities: 97 99 InitDensityScaling = float('NaN') #initial scaling factor multiplying the density of ice, which describes the density of the snowpack. 100 101 #thermo: 102 ThermoDeltaTScaling = float('NaN') #scaling factor to multiply the thermal diffusion timestep (delta t) 98 103 99 104 requested_outputs = [] … … 138 143 string = "%s\n%s"%(string,fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]')) 139 144 string = "%s\n%s"%(string,fielddisplay(self,'InitDensityScaling',['initial scaling factor multiplying the density of ice','which describes the density of the snowpack.'])) 145 string = "%s\n%s"%(string,fielddisplay(self,'ThermoDeltaTScaling','scaling factor to multiply the thermal diffusion timestep (delta t)')) 140 146 string = "%s\n%s"%(string,fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)')) 141 147 string = "%s\n%s"%(string,fielddisplay(self,'aIdx',['method for calculating albedo and subsurface absorption (default is 1)', … … 144 150 '2: effective grain radius [Brun et al., 2009]', 145 151 '3: density and cloud amount [Greuell & Konzelmann, 1994]', 146 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'])) 152 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]', 153 '5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only'])) 147 154 148 155 string = "%s\n%s"%(string,fielddisplay(self,'teValue','Outward longwave radiation thermal emissivity forcing at every element (default in code is 1)')) … … 164 171 string = "%s\n%s"%(string,fielddisplay(self,'aSnow','new snow albedo (0.64 - 0.89)')) 165 172 string = "%s\n%s"%(string,fielddisplay(self,'aIce','albedo of ice (0.27-0.58)')) 166 elif self.aIdx == 0: 167 string = "%s\n%s"%(string,fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == 0.')) 173 elif elf.aIdx == 0: 174 string = "%s\n%s"%(string,fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == {0,5}')) 175 elif elf.aIdx == 5: 176 string = "%s\n%s"%(string,fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == {0,5}')) 168 177 elif self.aIdx == 3: 169 178 string = "%s\n%s"%(string,fielddisplay(self,'cldFrac','average cloud amount')) … … 194 203 self.pAir = project3d(md,'vector',self.pAir,'type','node') 195 204 196 if aIdx == 0and np.isnan(self.aValue):205 if (aIdx == 0 or aIdx == 5) and np.isnan(self.aValue): 197 206 self.aValue=project3d(md,'vector',self.aValue,'type','node'); 198 207 if np.isnan(self.teValue): … … 222 231 self.dzMin = self.dzTop/2 223 232 self.InitDensityScaling = 1.0 233 self.ThermoDeltaTScaling = 1/11.0 224 234 225 235 self.zMax = 250*np.ones((mesh.numberofelements,)) … … 278 288 md = checkfield(md,'fieldname','smb.teValue','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1); 279 289 280 md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4 ])290 md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4,5]) 281 291 md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]) 282 292 md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5]) … … 288 298 md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365) #10 years max 289 299 md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'> = ',0,'< = ',1) 300 md = checkfield(md,'fieldname','smb.ThermoDeltaTScaling','NaN',1,'Inf',1,'> = ',0,'< = ',1) 290 301 291 302 if type(self.aIdx) == list or type(self.aIdx) == type(np.array([1,2])) and (self.aIdx == [1,2] or (1 in self.aIdx and 2 in self.aIdx)): … … 349 360 WriteData(fid,prefix,'object',self,'class','smb','fieldname','denIdx','format','Integer') 350 361 WriteData(fid,prefix,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double') 362 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ThermoDeltaTScaling','format','Double') 351 363 WriteData(fid,prefix,'object',self,'class','smb','fieldname','outputFreq','format','Double') 352 364 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aSnow','format','Double')
Note:
See TracChangeset
for help on using the changeset viewer.