Changeset 25396
- Timestamp:
- 08/14/20 17:08:29 (5 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r25384 r25396 3915 3915 3916 3916 /*Allow non-melt densification and determine compaction [m]*/ 3917 if(isdensification)densification(&d,&dz, T, re, denIdx, C, smb_dt, Tmean,rho_ice,m,this->Sid());3917 if(isdensification)densification(&d,&dz, T, re, denIdx, aIdx, swIdx, adThresh, C, smb_dt, Tmean,rho_ice,m,this->Sid()); 3918 3918 3919 3919 /*Calculate upward longwave radiation flux [W m-2] not used in energy balance. Calculated for every -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
r25379 r25396 487 487 // Spectral fractions (Lefebre et al., 2003) 488 488 // [0.3-0.8um 0.8-1.5um 1.5-2.8um] 489 if (d[0]<dPHC-Dtol){ 490 491 IssmDouble sF[3] = {0.606, 0.301, 0.093}; 492 493 // convert effective radius to grain size in meters 494 IssmDouble gsz = (re[0] * 2.0) / 1000.0; 495 496 // spectral range: 497 // 0.3 - 0.8um 498 IssmDouble a0 = min(0.98, 1 - 1.58 *pow(gsz,0.5)); 499 // 0.8 - 1.5um 500 IssmDouble a1 = max(0., 0.95 - 15.4 *pow(gsz,0.5)); 501 // 1.5 - 2.8um 502 IssmDouble a2 = max(0.127, 0.88 + 346.3*gsz - 32.31*pow(gsz,0.5)); 503 504 // broadband surface albedo 505 a[0] = sF[0]*a0 + sF[1]*a1 + sF[2]*a2; 506 507 // In a layer < 10cm, account for mix of ice and snow, 508 // after P. Alexander et al., 2014 509 IssmDouble depthsnow=0.0; 510 IssmDouble aice=0.0; 511 int lice=0; 512 for(int l=0;(l<m & d[l]<dPHC-Dtol);l++){ 513 depthsnow=depthsnow+dz[l]; 514 lice=l+1; 515 } 516 if (depthsnow<=0.1+Dtol & lice<m & d[lice]>=dPHC-Dtol){ 517 aice = ai_max + (as_min - ai_max)*(d[lice]-dIce)/(dPHC-dIce); 518 a[0]= aice + max(a[0]-aice,0.0)*(depthsnow/0.1); 519 } 520 } 521 else if (d[0]<dIce-Dtol){ //For continuity of albedo in firn i.e. P. Alexander et al., 2014 522 523 //ai=ai_max + (as_min - ai_max)*(dI-dIce)/(dC-dIce) 524 //dC is pore close off (830 kg m^-3) 525 //dI is density of the upper firn layer 526 527 a[0] = ai_max + (as_min - ai_max)*(d[0]-dIce)/(dPHC-dIce); 528 529 } 530 else{ //surface layer is density of ice 531 532 //When density is > dIce (typically 910 kg m^-3, 920 is used by Alexander in MAR), 533 //ai=ai_min + (ai_max - ai_min)*e^(-1*(Msw(t)/K)) 534 //K is a scale factor (set to 200 kg m^-2) 535 //Msw(t) is the time-dependent accumulated amount of excessive surface meltwater 536 // before run-off in kg m^-2 (melt per GEMB timestep, i.e. 3 hourly) 537 IssmDouble M = Msurf+W[0]; 538 a[0]=max(ai_min + (ai_max - ai_min)*exp(-1*(M/200)), ai_min); 539 489 490 IssmDouble sF[3] = {0.606, 0.301, 0.093}; 491 492 // convert effective radius to grain size in meters 493 IssmDouble gsz = (re[0] * 2.0) / 1000.0; 494 495 // spectral range: 496 // 0.3 - 0.8um 497 IssmDouble a0 = min(0.98, 1 - 1.58 *pow(gsz,0.5)); 498 // 0.8 - 1.5um 499 IssmDouble a1 = max(0., 0.95 - 15.4 *pow(gsz,0.5)); 500 // 1.5 - 2.8um 501 IssmDouble a2 = max(0.127, 0.88 + 346.3*gsz - 32.31*pow(gsz,0.5)); 502 503 // broadband surface albedo 504 a[0] = sF[0]*a0 + sF[1]*a1 + sF[2]*a2; 505 506 // In a layer < 10cm, account for mix of ice and snow, 507 // after P. Alexander et al., 2014 508 IssmDouble depthsnow=0.0; 509 IssmDouble aice=0.0; 510 int lice=0; 511 for(int l=0;(l<m & d[l]<dPHC-Dtol);l++){ 512 depthsnow=depthsnow+dz[l]; 513 lice=l+1; 514 } 515 if (depthsnow<=0.1+Dtol & lice<m & d[lice]>=dPHC-Dtol){ 516 aice = ai_max + (as_min - ai_max)*(d[lice]-dIce)/(dPHC-dIce); 517 a[0]= aice + max(a[0]-aice,0.0)*(depthsnow/0.1); 540 518 } 541 519 } … … 604 582 } 605 583 else _error_("albedo method switch should range from 0 to 4!"); 584 585 //If we do not have fresh snow 586 if (aIdx<3 && aIdx>0){ 587 // In a layer < 10cm, account for mix of ice and snow, 588 // after P. Alexander et al., 2014 589 IssmDouble depthsnow=0.0; 590 IssmDouble aice=0.0; 591 int lice=0; 592 for(int l=0;(l<m & d[l]<dPHC-Dtol);l++){ 593 depthsnow=depthsnow+dz[l]; 594 lice=l+1; 595 } 596 if (depthsnow<=0.1+Dtol & lice<m & d[lice]>=dPHC-Dtol){ 597 aice = ai_max + (as_min - ai_max)*(d[lice]-dIce)/(dPHC-dIce); 598 a[0]= aice + max(a[0]-aice,0.0)*(depthsnow/0.1); 599 } 600 601 if (d[0]>=dPHC-Dtol){ 602 if (d[0]<dIce-Dtol){ //For continuity of albedo in firn i.e. P. Alexander et al., 2014 603 604 //ai=ai_max + (as_min - ai_max)*(dI-dIce)/(dPHC-dIce); 605 //dPHC is pore close off (830 kg m^-3) 606 //dI is density of the upper firn layer 607 608 a[0] = ai_max + (as_min - ai_max)*(d[0]-dIce)/(dPHC-dIce); 609 610 } 611 else{ //surface layer is density of ice 612 613 //When density is > dIce (typically 910 kg m^-3, 920 is used by Alexander in MAR), 614 //ai=ai_min + (ai_max - ai_min)*e^(-1*(Msw(t)/K)) 615 //K is a scale factor (set to 200 kg m^-2) 616 //Msw(t) is the time-dependent accumulated amount of excessive surface meltwater 617 // before run-off in kg m^-2 (melt per GEMB timestep, i.e. 3 hourly) 618 IssmDouble M = Msurf+W[0]; 619 a[0]=max(ai_min + (ai_max - ai_min)*exp(-1*(M/200)), ai_min); 620 621 } 622 } 623 } 606 624 } 607 625 … … 872 890 // calculate the Bulk Richardson Number (Ri) 873 891 Ri = (2.0*9.81* (Vz - z0) * (Ta - Ts)) / ((Ta + Ts)* pow(V,2.0)); 892 //Ri = (2.0*9.81*(Ta - Ts)) / ((Tz - z0)*(Ta + Ts)* pow(V/(Vz - z0),2.0)); 874 893 875 894 // calculate Monin-Obukhov stability factors 'coefM' and 'coefH' 876 895 877 // do not allow Ri to exceed 0.19 878 Ri = min(Ri, 0.19); 896 // do not allow Ri to exceed 0.16 897 // Ri = min(Ri, 0.19); 898 Ri = min(Ri, 0.16); //Ohmura, 1982 879 899 880 900 // calculate momentum 'coefM' stability factor … … 929 949 930 950 // upward longwave contribution 931 ulw = - (SB * pow(Ts,4.0)* teValue) * dt; // - deltatest here 951 //ulw = - (SB * pow(Ts,4.0)* teValue) * dt; // - deltatest here 952 IssmDouble deltatest=0; 953 ulw = - (SB * pow(Ts,4.0)* teValue - deltatest) * dt; // - deltatest here 932 954 ulwrf = ulwrf - ulw/dt0; 933 955 … … 996 1018 997 1019 // swIdx = 1 : absorbed SW is distributed with depth as a function of: 998 // 1: snow density (taken from Bassford, 2004)999 // 2 : grain size in 3 spectral bands (Brun et al., 1992)1020 // default : snow density (taken from Bassford, 2004) 1021 // if aIdx=2 : grain size in 3 spectral bands (Brun et al., 1992) 1000 1022 1001 1023 // Inputs … … 1254 1276 case 1: // Density of Antarctica snow 1255 1277 dSnow = 350; 1278 //dSnow = 360; //FirnMICE Lundin et al., 2017 1256 1279 break; 1257 1280 … … 1930 1953 xDelete<IssmDouble>(Zcum); 1931 1954 xDelete<IssmDouble>(dzMin2); 1955 xDelete<IssmDouble>(dzMax2); 1932 1956 1933 1957 /*Assign output pointers:*/ … … 1949 1973 1950 1974 } /*}}}*/ 1951 void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean, IssmDouble dIce, int m, int sid){ /*{{{*/1975 void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, int aIdx, int swIdx, IssmDouble adThresh, IssmDouble C, IssmDouble dt, IssmDouble Tmean, IssmDouble dIce, int m, int sid){ /*{{{*/ 1952 1976 1953 1977 //// THIS NEEDS TO BE DOUBLE CHECKED AS THERE SEAMS TO BE LITTLE DENSIFICATION IN THE MODEL OUTOUT [MAYBE COMPACTION IS COMPENSATED FOR BY TRACES OF SNOW???] … … 2072 2096 c0arth = 0.07 * H; 2073 2097 c1arth = 0.03 * H; 2074 //ERA-5 2098 //ERA-5 old 2075 2099 //M0 = max(2.3128 - (0.2480 * log(C)),0.25); 2076 2100 //M1 = max(2.7950 - (0.3318 * log(C)),0.25); 2077 //RACMO 2078 M0 = max(1.6599 - (0.1724 * log(C)),0.25); 2079 M1 = max(2.0102 - (0.2458 * log(C)),0.25); 2101 // ERA5 new aIdx=1, swIdx=0 2102 if (aIdx==1 && swIdx==0){ 2103 if (abs(adThresh - 820) < Dtol){ 2104 // ERA5 new aIdx=1, swIdx=0, MODIS 820 2105 M0 = max(1.8785 - (0.1811 * log(C)),0.25); 2106 M1 = max(2.0005 - (0.2346 * log(C)),0.25); 2107 } 2108 else{ 2109 // ERA5 new aIdx=1, swIdx=0 2110 //M0 = max(1.8785 - (0.1811 * log(C)),0.25); 2111 //M1 = max(2.0005 - (0.2346 * log(C)),0.25); 2112 // ERA5 new aIdx=1, swIdx=0, bare ice 2113 M0 = max(1.8785 - (0.1811 * log(C)),0.25); 2114 M1 = max(2.0005 - (0.2346 * log(C)),0.25); 2115 } 2116 } 2117 // ERA5 new aIdx=2, swIdx=1 2118 else if (aIdx<3 && swIdx>0){ 2119 M0 = max(2.2191 - (0.2301 * log(C)),0.25); 2120 M1 = max(2.2917 - (0.2710 * log(C)),0.25); 2121 } 2122 // ERA5 new aIdx=2, swIdx=0 2123 //else if (aIdx==2){ 2124 //} 2080 2125 //From Ligtenberg 2081 2126 //H = exp((-60000.0/(Tmean * R)) + (42400.0/(Tmean * R))) * (C * 9.81); 2082 2127 //M0 = max(1.435 - (0.151 * log(C)),0.25); 2083 2128 //M1 = max(2.366 - (0.293 * log(C)),0.25); 2129 //RACMO 2130 M0 = max(1.6599 - (0.1724 * log(C)),0.25); 2131 M1 = max(2.0102 - (0.2458 * log(C)),0.25); 2084 2132 c0 = M0*c0arth; 2085 2133 c1 = M1*c1arth; … … 2092 2140 c0arth = 0.07 * H; 2093 2141 c1arth = 0.03 * H; 2094 // ERA5 2142 // ERA5 old 2095 2143 //M0 = max(1.8554 - (0.1316 * log(C)),0.25); 2096 2144 //M1 = max(2.8901 - (0.3014 * log(C)),0.25); 2145 // ERA5 new aIdx=1, swIdx=0 2146 if (aIdx==1 && swIdx==0){ 2147 if (abs(adThresh - 820) < Dtol){ 2148 // ERA5 new aIdx=1, swIdx=0, MODIS 820 2149 M0 = max(1.4174 - (0.1037 * log(C)),0.25); 2150 M1 = max(2.2010 - (0.2460 * log(C)),0.25); 2151 } 2152 else{ 2153 // ERA5 new aIdx=1, swIdx=0 2154 //M0 = max(1.4574 - (0.1123 * log(C)),0.25); 2155 //M1 = max(2.0238 - (0.2070 * log(C)),0.25); 2156 // ERA5 new aIdx=1, swIdx=0, bare ice 2157 M0 = max(1.4318 - (0.1055 * log(C)),0.25); 2158 M1 = max(2.0453 - (0.2137 * log(C)),0.25); 2159 } 2160 } 2161 // ERA5 new aIdx=2, swIdx=1 2162 else if (aIdx<3 && swIdx>0){ 2163 M0 = max(1.7834 - (0.1409 * log(C)),0.25); 2164 M1 = max(1.9260 - (0.1527 * log(C)),0.25); 2165 } 2166 // ERA5 new aIdx=2, swIdx=0 2167 //else if (aIdx==2){ 2168 //} 2169 // From Kuipers Munneke 2170 //M0 = max(1.042 - (0.0916 * log(C)),0.25); 2171 //M1 = max(1.734 - (0.2039 * log(C)),0.25); 2097 2172 // RACMO 2098 2173 M0 = max(1.6201 - (0.1450 * log(C)),0.25); 2099 2174 M1 = max(2.5577 - (0.2899 * log(C)),0.25); 2100 // From Kuipers Munneke2101 //M0 = max(1.042 - (0.0916 * log(C)),0.25);2102 //M1 = max(1.734 - (0.2039 * log(C)),0.25);2103 2175 c0 = M0*c0arth; 2104 2176 c1 = M1*c1arth; … … 2190 2262 // calculate the Bulk Richardson Number (Ri) 2191 2263 Ri = (2.0*9.81* (Vz - z0) * (Ta - Ts)) / ((Ta + Ts)* pow(V,2.0)); 2264 //Ri = (2.0*9.81*(Ta - Ts)) / ((Tz - z0)*(Ta + Ts)* pow(V/(Vz - z0),2.0)); 2192 2265 2193 2266 // calculate Monin-Obukhov stability factors 'coefM' and 'coefH' 2194 2267 2195 // do not allow Ri to exceed 0.19 2196 Ri = min(Ri, 0.19); 2268 // do not allow Ri to exceed 0.16 2269 // Ri = min(Ri, 0.19); 2270 Ri = min(Ri, 0.16); //Ohmura, 1982 2197 2271 2198 2272 // calculate momentum 'coefM' stability factor -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
r24735 r25396 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 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 void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean, IssmDouble dIce, int m, int sid);36 void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, int aIdx, int swIdx, IssmDouble adThresh, 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); 38 38 #endif /* _SurfaceMassBalancex_H*/ -
issm/trunk-jpl/src/m/classes/SMBgemb.m
r24806 r25396 60 60 % 0: direct input from aValue parameter 61 61 % 1: effective grain radius [Gardner & Sharp, 2009] 62 % 2: effective grain radius [Brun et al., 2009] 62 % 2: effective grain radius [Brun et al., 2009], with swIdx=1, SW penetration follows grain size in 3 spectral bands (Brun et al., 1992) 63 63 % 3: density and cloud amount [Greuell & Konzelmann, 1994] 64 64 % 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 65 65 66 swIdx = NaN; % apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1 )66 swIdx = NaN; % apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1, with snow density (taken from Bassford, 2004)) 67 67 68 68 denIdx = NaN; %densification model to use (default is 2): … … 227 227 md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1400,'size',size(self.Ta)); 228 228 md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'Inf',1,'>=',0,'size',size(self.Ta)); 229 md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=', 100,'size',size(self.Ta));229 md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',200,'size',size(self.Ta)); 230 230 md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1,'Inf',1,'size',size(self.Ta)); 231 231 … … 330 330 '0: direct input from aValue parameter',... 331 331 '1: effective grain radius [Gardner & Sharp, 2009]',... 332 '2: effective grain radius [Brun et al., 2009] ',...332 '2: effective grain radius [Brun et al., 2009], with swIdx=1, SW penetration follows grain size in 3 spectral bands (Brun et al., 1992)',... 333 333 '3: density and cloud amount [Greuell & Konzelmann, 1994]',... 334 334 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'}) … … 364 364 end 365 365 366 fielddisplay(self,'swIdx','apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1 ]');366 fielddisplay(self,'swIdx','apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1, with snow density (taken from Bassford, 2004)]'); 367 367 fielddisplay(self,'denIdx',{'densification model to use (default is 2):',... 368 368 '1 = emperical model of Herron and Langway (1980)',... -
issm/trunk-jpl/src/m/classes/SMBgemb.py
r25313 r25396 64 64 #settings: 65 65 self.aIdx = np.nan # method for calculating albedo and subsurface absorption (default is 1) 66 self.swIdx = np.nan # apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1) 66 # 0: direct input from aValue parameter 67 # 1: effective grain radius [Gardner & Sharp, 2009] 68 # 2: effective grain radius [Brun et al., 2009], with swIdx=1, SW penetration follows grain size in 3 spectral bands (Brun et al., 1992) 69 # 3: density and cloud amount [Greuell & Konzelmann, 1994] 70 # 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 71 72 self.swIdx = np.nan # apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1, with snow density (taken from Bassford, 2004)) 67 73 self.denIdx = np.nan # densification model to use (default is 2): 74 # 1 = emperical model of Herron and Langway (1980) 75 # 2 = semi-emperical model of Anthern et al. (2010) 76 # 3 = DO NOT USE: physical model from Appendix B of Anthern et al. (2010) 77 # 4 = DO NOT USE: emperical model of Li and Zwally (2004) 78 # 5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008) 79 # 6 = Antarctica semi-emperical model of Ligtenberg et al. (2011) 80 # 7 = Greenland semi-emperical model of Kuipers Munneke et al. (2015) 81 68 82 self.dsnowIdx = np.nan # model for fresh snow accumulation density (default is 1): 83 # 0 = Original GEMB value, 150 kg/m^3 84 # 1 = Antarctica value of fresh snow density, 350 kg/m^3 85 # 2 = Greenland value of fresh snow density, 315 kg/m^3, Fausto et al. (2008) 86 # 3 = Antarctica model of Kaspers et al. (2004) 87 # 4 = Greenland model of Kuipers Munneke et al. (2015) 88 69 89 self.zTop = np.nan # depth over which grid length is constant at the top of the snopack (default 10) [m] 70 90 self.dzTop = np.nan # initial top vertical grid spacing (default .05) [m] … … 155 175 '0: direct input from aValue parameter', 156 176 '1: effective grain radius [Gardner & Sharp, 2009]', 157 '2: effective grain radius [Brun et al., 2009] ',177 '2: effective grain radius [Brun et al., 2009], with swIdx=1, SW penetration follows grain size in 3 spectral bands (Brun et al., 1992)', 158 178 '3: density and cloud amount [Greuell & Konzelmann, 1994]', 159 179 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'])) … … 186 206 string = "%s\n%s" % (string, fielddisplay(self, 'K', 'time scale temperature coef. (7) [d]')) 187 207 188 string = "%s\n%s" % (string, fielddisplay(self, 'swIdx', 'apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1 ]'))208 string = "%s\n%s" % (string, fielddisplay(self, 'swIdx', 'apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1, with snow density (taken from Bassford, 2004)]')) 189 209 string = "%s\n%s" % (string, fielddisplay(self, 'denIdx', ['densification model to use (default is 2):', 190 210 '1 = emperical model of Herron and Langway (1980)', … … 305 325 md = checkfield(md, 'fieldname', 'smb.dswrf', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '> = ', 0, '< = ', 1400, 'size', np.shape(self.Ta)) 306 326 md = checkfield(md, 'fieldname', 'smb.dlwrf', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '> = ', 0, 'size', np.shape(self.Ta)) 307 md = checkfield(md, 'fieldname', 'smb.P', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '> = ', 0, '< = ', 100, 'size', np.shape(self.Ta))327 md = checkfield(md, 'fieldname', 'smb.P', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '> = ', 0, '< = ', 200, 'size', np.shape(self.Ta)) 308 328 md = checkfield(md, 'fieldname', 'smb.eAir', 'timeseries', 1, 'NaN', 1, 'Inf', 1, 'size', np.shape(self.Ta)) 309 329
Note:
See TracChangeset
for help on using the changeset viewer.