Changeset 6651 for TOOLS/WATER_BUDGET/ATM_waterbudget.py
- Timestamp:
- 10/13/23 15:43:31 (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/WATER_BUDGET/ATM_waterbudget.py
r6647 r6651 68 68 tar_restart_end_ATM=None ; tar_restart_end_DYN=None ; tar_restart_end_SRF=None 69 69 tar_restart_end_RUN=None ; tar_restart_end_OCE=None ; tar_restart_end_ICE=None 70 ContinueOnError=False ; ErrorCount=0 ; SortIco = False70 ContinueOnError=False ; ErrorCount=0 # ; SortIco = False 71 71 72 72 ## … … 177 177 'OCE_rho_liq':str(OCE_rho_liq), 'ATM_rho':str(ATM_rho), 'SRF_rho':str(SRF_rho), 'RUN_rho':str(RUN_rho)} 178 178 179 config['Config'] = { 'ContinueOnError':str(ContinueOnError), ' SortIco':str(SortIco), 'TestInterp':str(TestInterp), 'readPrec':str(readPrec) }179 config['Config'] = { 'ContinueOnError':str(ContinueOnError), 'TestInterp':str(TestInterp), 'readPrec':str(readPrec) } 180 180 181 181 ## -------------------------- … … 236 236 if readPrec == float : 237 237 def rprec (tab) : return tab 238 else :238 else : 239 239 def rprec (tab) : return tab.astype(readPrec).astype(float) 240 240 … … 270 270 271 271 echo ( f'{ContinueOnError = }' ) 272 echo ( f'{SortIco = }' )273 272 echo ( f'{readPrec = }' ) 274 273 … … 624 623 config_out.close () 625 624 626 if ICO :627 if SortIco :628 # Creation d'une clef de tri pour les restarts (pour chaque restart !)629 DYN_beg_keysort = np.lexsort ( (d_DYN_beg['lat_mesh'], d_DYN_beg['lon_mesh'] ) )630 ATM_beg_keysort = np.lexsort ( (d_ATM_beg['latitude'], d_ATM_beg['longitude']) )631 SRF_beg_keysort = np.lexsort ( (d_SRF_beg['nav_lat' ], d_SRF_beg['nav_lon'] ) )632 DYN_end_keysort = np.lexsort ( (d_DYN_end['lat_mesh'], d_DYN_end['lon_mesh'] ) )633 ATM_end_keysort = np.lexsort ( (d_ATM_end['latitude'], d_ATM_end['longitude']) )634 SRF_end_keysort = np.lexsort ( (d_SRF_end['nav_lat' ], d_SRF_end['nav_lon'] ) )635 636 if ATM_HIS == 'ico' :637 ATM_his_keysort = np.lexsort ( (d_ATM_his['lat'], d_ATM_his['lon'] ) )638 if SRF_HIS == 'ico' :639 SRF_his_keysort = np.lexsort ( (d_SRF_his['lat'], d_SRF_his['lon'] ) )640 RUN_his_keysort = SRF_his_keysort641 else :642 DYN_beg_keysort = np.arange ( len ( d_DYN_beg['lat_mesh'] ) )643 ATM_beg_keysort = DYN_beg_keysort644 SRF_beg_keysort = DYN_beg_keysort645 646 DYN_end_keysort = DYN_beg_keysort647 ATM_end_keysort = DYN_beg_keysort648 SRF_end_keysort = DYN_beg_keysort649 650 ATM_his_keysort = DYN_beg_keysort651 SRF_his_keysort = DYN_beg_keysort652 RUN_his_keysort = SRF_his_keysort653 654 625 # ATM grid with cell surfaces 655 626 if LMDZ : … … 657 628 ATM_lat = lmdz.geo2point ( rprec (d_ATM_his ['lat'])+0*rprec (d_ATM_his ['lon']), dim1D='cell' ) 658 629 ATM_lon = lmdz.geo2point ( 0*rprec (d_ATM_his ['lat'])+ rprec (d_ATM_his ['lon']), dim1D='cell' ) 659 ATM_aire = lmdz.geo2point ( rprec (d_ATM_his ['aire'] ) [0], cumulPoles=True, dim1D='cell' )630 ATM_aire = lmdz.geo2point ( rprec (d_ATM_his ['aire'] [0]), cumulPoles=True, dim1D='cell' ) 660 631 ATM_fter = lmdz.geo2point ( rprec (d_ATM_his ['fract_ter'][0]), dim1D='cell' ) 661 632 ATM_foce = lmdz.geo2point ( rprec (d_ATM_his ['fract_oce'][0]), dim1D='cell' ) … … 685 656 if ATM_HIS == 'ico' : 686 657 echo ( 'ATM areas and fractions on ICO grid' ) 687 ATM_aire = rprec (d_ATM_his ['aire'] [0]) [ATM_his_keysort].squeeze()688 ATM_lat = rprec (d_ATM_his ['lat'] ) [ATM_his_keysort]689 ATM_lon = rprec (d_ATM_his ['lon'] ) [ATM_his_keysort]690 ATM_fter = rprec (d_ATM_his ['fract_ter'][0]) [ATM_his_keysort]691 ATM_foce = rprec (d_ATM_his ['fract_oce'][0]) [ATM_his_keysort]692 ATM_fsic = rprec (d_ATM_his ['fract_sic'][0]) [ATM_his_keysort]693 ATM_flic = rprec (d_ATM_his ['fract_lic'][0]) [ATM_his_keysort]658 ATM_aire = rprec (d_ATM_his ['aire'] [0]).squeeze() 659 ATM_lat = rprec (d_ATM_his ['lat'] ) 660 ATM_lon = rprec (d_ATM_his ['lon'] ) 661 ATM_fter = rprec (d_ATM_his ['fract_ter'][0]) 662 ATM_foce = rprec (d_ATM_his ['fract_oce'][0]) 663 ATM_fsic = rprec (d_ATM_his ['fract_sic'][0]) 664 ATM_flic = rprec (d_ATM_his ['fract_lic'][0]) 694 665 695 666 if SRF_HIS == 'latlon' : … … 713 684 if SRF_HIS == 'ico' : 714 685 echo ( 'SRF areas and fractions on latlon grid' ) 715 SRF_lat = rprec (d_SRF_his ['lat'] ) [SRF_his_keysort]716 SRF_lon = rprec (d_SRF_his ['lon'] ) [SRF_his_keysort]717 SRF_areas = rprec (d_SRF_his ['Areas'] ) [SRF_his_keysort]718 SRF_contfrac = rprec (d_SRF_his ['Contfrac']) [SRF_his_keysort]686 SRF_lat = rprec (d_SRF_his ['lat'] ) 687 SRF_lon = rprec (d_SRF_his ['lon'] ) 688 SRF_areas = rprec (d_SRF_his ['Areas'] ) 689 SRF_contfrac = rprec (d_SRF_his ['Contfrac']) 719 690 SRF_aire = SRF_areas * SRF_contfrac 720 691 … … 745 716 DYN_aire_keysort = np.arange ( len ( d_DYN_aire['lat'] ) ) 746 717 747 DYN_lat = d_DYN_aire['lat'] [DYN_aire_keysort]748 DYN_lon = d_DYN_aire['lon'] [DYN_aire_keysort]749 750 DYN_aire = d_DYN_aire['aire'] [DYN_aire_keysort]751 DYN_fsea = d_DYN_aire['fract_oce'] [DYN_aire_keysort] + d_DYN_aire['fract_sic'][DYN_aire_keysort]718 DYN_lat = d_DYN_aire['lat'] 719 DYN_lon = d_DYN_aire['lon'] 720 721 DYN_aire = d_DYN_aire['aire'] 722 DYN_fsea = d_DYN_aire['fract_oce'] + d_DYN_aire['fract_sic'] 752 723 DYN_flnd = 1.0 - DYN_fsea 753 DYN_fter = d_ATM_beg['FTER'] [ATM_beg_keysort]754 DYN_flic = d_ATM_beg['FLIC'] [ATM_beg_keysort]724 DYN_fter = d_ATM_beg['FTER'] 725 DYN_flic = d_ATM_beg['FLIC'] 755 726 DYN_aire_fter = DYN_aire * DYN_fter 756 727 … … 782 753 def SRF_stock_int (stock) : 783 754 '''Integrate (* surface) stock on land grid''' 784 #SRF_stock_int = wu.Ksum ( ( (stock * DYN_aire_fter).to_masked_array().ravel()) ) # Marche avec ICO et lon/lat na785 755 SRF_stock_int = wu.Ksum ( ( (stock * DYN_aire_fter).to_masked_array().ravel()) ) 786 756 return SRF_stock_int … … 845 815 echo ( 'Surface pressure' ) 846 816 if ICO : 847 DYN_psol_beg = d_DYN_beg['ps'] [DYN_beg_keysort]848 DYN_psol_end = d_DYN_end['ps'] [DYN_end_keysort]817 DYN_psol_beg = d_DYN_beg['ps'] 818 DYN_psol_end = d_DYN_end['ps'] 849 819 if LMDZ : 850 820 DYN_psol_beg = lmdz.geo2point ( d_DYN_beg['ps'].isel(rlonv=slice(0,-1)), dim1D='cell' ) … … 911 881 if 'H2Ov_g' in d_DYN_beg.variables : 912 882 echo ('reading ICO : H2O_g, H2O_l, H2O_s' ) 913 DYN_wat_beg = (d_DYN_beg['H2O_g'] + d_DYN_beg['H2O_l'] + d_DYN_beg['H2O_s']) [..., DYN_beg_keysort]914 DYN_wat_end = (d_DYN_end['H2O_g'] + d_DYN_end['H2O_l'] + d_DYN_end['H2O_s']) [..., DYN_beg_keysort]883 DYN_wat_beg = (d_DYN_beg['H2O_g'] + d_DYN_beg['H2O_l'] + d_DYN_beg['H2O_s']) 884 DYN_wat_end = (d_DYN_end['H2O_g'] + d_DYN_end['H2O_l'] + d_DYN_end['H2O_s']) 915 885 elif 'H2O_g' in d_DYN_beg.variables : 916 886 echo ('reading ICO : H2O_g, H2O_l, H2O_s' ) 917 DYN_wat_beg = (d_DYN_beg['H2O_g'] + d_DYN_beg['H2O_l'] + d_DYN_beg['H2O_s']) [..., DYN_beg_keysort]918 DYN_wat_end = (d_DYN_end['H2O_g'] + d_DYN_end['H2O_l'] + d_DYN_end['H2O_s']) [..., DYN_beg_keysort]887 DYN_wat_beg = (d_DYN_beg['H2O_g'] + d_DYN_beg['H2O_l'] + d_DYN_beg['H2O_s']) 888 DYN_wat_end = (d_DYN_end['H2O_g'] + d_DYN_end['H2O_l'] + d_DYN_end['H2O_s']) 919 889 elif 'q' in d_DYN_beg.variables : 920 890 echo ('reading ICO : q' ) 921 DYN_wat_beg = (d_DYN_beg['q'].isel(nq=0) + d_DYN_beg['q'].isel(nq=1) + d_DYN_beg['q'].isel(nq=2) ) [..., DYN_beg_keysort]922 DYN_wat_end = (d_DYN_end['q'].isel(nq=0) + d_DYN_end['q'].isel(nq=1) + d_DYN_end['q'].isel(nq=2) ) [..., DYN_beg_keysort]891 DYN_wat_beg = (d_DYN_beg['q'].isel(nq=0) + d_DYN_beg['q'].isel(nq=1) + d_DYN_beg['q'].isel(nq=2) ) 892 DYN_wat_end = (d_DYN_end['q'].isel(nq=0) + d_DYN_end['q'].isel(nq=1) + d_DYN_end['q'].isel(nq=2) ) 923 893 924 894 if 'lev' in DYN_wat_beg.dims : … … 973 943 974 944 if ICO : 975 ATM_sno_beg = ATM_sno_beg [ATM_beg_keysort]976 ATM_sno_end = ATM_sno_end [ATM_end_keysort]977 ATM_qs_beg = ATM_qs_beg [ATM_beg_keysort]978 ATM_qs_end = ATM_qs_end [ATM_end_keysort]979 ATM_qsol_beg = ATM_qsol_beg [ATM_beg_keysort]980 ATM_qs01_beg = ATM_qs01_beg [ATM_beg_keysort]981 ATM_qs02_beg = ATM_qs02_beg [ATM_beg_keysort]982 ATM_qs03_beg = ATM_qs03_beg [ATM_beg_keysort]983 ATM_qs04_beg = ATM_qs04_beg [ATM_beg_keysort]984 ATM_qsol_end = ATM_qsol_end [ATM_end_keysort]985 ATM_qs01_end = ATM_qs01_end [ATM_end_keysort]986 ATM_qs02_end = ATM_qs02_end [ATM_end_keysort]987 ATM_qs03_end = ATM_qs03_end [ATM_end_keysort]988 ATM_qs04_end = ATM_qs04_end [ATM_end_keysort]989 LIC_sno_beg = LIC_sno_beg [ATM_beg_keysort]990 LIC_sno_end = LIC_sno_end [ATM_end_keysort]991 LIC_runlic0_beg = LIC_runlic0_beg [ATM_beg_keysort]992 LIC_runlic0_end = LIC_runlic0_end [ATM_end_keysort]945 ATM_sno_beg = ATM_sno_beg 946 ATM_sno_end = ATM_sno_end 947 ATM_qs_beg = ATM_qs_beg 948 ATM_qs_end = ATM_qs_end 949 ATM_qsol_beg = ATM_qsol_beg 950 ATM_qs01_beg = ATM_qs01_beg 951 ATM_qs02_beg = ATM_qs02_beg 952 ATM_qs03_beg = ATM_qs03_beg 953 ATM_qs04_beg = ATM_qs04_beg 954 ATM_qsol_end = ATM_qsol_end 955 ATM_qs01_end = ATM_qs01_end 956 ATM_qs02_end = ATM_qs02_end 957 ATM_qs03_end = ATM_qs03_end 958 ATM_qs04_end = ATM_qs04_end 959 LIC_sno_beg = LIC_sno_beg 960 LIC_sno_end = LIC_sno_end 961 LIC_runlic0_beg = LIC_runlic0_beg 962 LIC_runlic0_end = LIC_runlic0_end 993 963 994 964 LIC_qs_beg = ATM_qs02_beg … … 1146 1116 SRF_snow_end = lmdz.geo2point (SRF_snow_end , dim1D='cell') 1147 1117 SRF_lakeres_end = lmdz.geo2point (SRF_lakeres_end , dim1D='cell') 1148 1149 if ICO : 1150 SRF_tot_watveg_beg = SRF_tot_watveg_beg [SRF_beg_keysort] 1151 SRF_tot_watsoil_beg = SRF_tot_watsoil_beg [SRF_beg_keysort] 1152 SRF_snow_beg = SRF_snow_beg [SRF_beg_keysort] 1153 SRF_lakeres_beg = SRF_lakeres_beg [SRF_beg_keysort] 1154 SRF_tot_watveg_end = SRF_tot_watveg_end [SRF_end_keysort] 1155 SRF_tot_watsoil_end = SRF_tot_watsoil_end [SRF_end_keysort] 1156 SRF_snow_end = SRF_snow_end [SRF_end_keysort] 1157 SRF_lakeres_end = SRF_lakeres_end [SRF_end_keysort] 1118 1158 1119 1159 1120 # Stock dSoilHum dInterce dSWE dStream dFastR dSlowR dLake dPond dFlood … … 1252 1213 if ATM_HIS == 'ico' : 1253 1214 echo (' ico case') 1254 ATM_wbilo_oce = rprec (d_ATM_his ['wbilo_oce']) [..., ATM_his_keysort]1255 ATM_wbilo_sic = rprec (d_ATM_his ['wbilo_sic']) [..., ATM_his_keysort]1256 ATM_wbilo_ter = rprec (d_ATM_his ['wbilo_ter']) [..., ATM_his_keysort]1257 ATM_wbilo_lic = rprec (d_ATM_his ['wbilo_lic']) [..., ATM_his_keysort]1258 ATM_runofflic = rprec (d_ATM_his ['runofflic']) [..., ATM_his_keysort]1259 ATM_fqcalving = rprec (d_ATM_his ['fqcalving']) [..., ATM_his_keysort]1260 ATM_fqfonte = rprec (d_ATM_his ['fqfonte'] ) [..., ATM_his_keysort]1261 ATM_precip = rprec (d_ATM_his ['precip'] ) [..., ATM_his_keysort]1262 ATM_snowf = rprec (d_ATM_his ['snow'] ) [..., ATM_his_keysort]1263 ATM_evap = rprec (d_ATM_his ['evap'] ) [..., ATM_his_keysort]1264 ATM_wevap_ter = rprec (d_ATM_his ['wevap_ter']) [..., ATM_his_keysort]1265 ATM_wevap_oce = rprec (d_ATM_his ['wevap_oce']) [..., ATM_his_keysort]1266 ATM_wevap_lic = rprec (d_ATM_his ['wevap_lic']) [..., ATM_his_keysort]1267 ATM_wevap_sic = rprec (d_ATM_his ['wevap_sic']) [..., ATM_his_keysort]1268 ATM_runofflic = rprec (d_ATM_his ['runofflic']) [..., ATM_his_keysort]1269 ATM_wevap_ter = rprec (d_ATM_his ['wevap_ter']) [..., ATM_his_keysort]1270 ATM_wevap_oce = rprec (d_ATM_his ['wevap_oce']) [..., ATM_his_keysort]1271 ATM_wevap_lic = rprec (d_ATM_his ['wevap_lic']) [..., ATM_his_keysort]1272 ATM_wevap_sic = rprec (d_ATM_his ['wevap_sic']) [..., ATM_his_keysort]1273 ATM_wrain_ter = rprec (d_ATM_his ['wrain_ter']) [..., ATM_his_keysort]1274 ATM_wrain_oce = rprec (d_ATM_his ['wrain_oce']) [..., ATM_his_keysort]1275 ATM_wrain_lic = rprec (d_ATM_his ['wrain_lic']) [..., ATM_his_keysort]1276 ATM_wrain_sic = rprec (d_ATM_his ['wrain_sic']) [..., ATM_his_keysort]1277 ATM_wsnow_ter = rprec (d_ATM_his ['wsnow_ter']) [..., ATM_his_keysort]1278 ATM_wsnow_oce = rprec (d_ATM_his ['wsnow_oce']) [..., ATM_his_keysort]1279 ATM_wsnow_lic = rprec (d_ATM_his ['wsnow_lic']) [..., ATM_his_keysort]1280 ATM_wsnow_sic = rprec (d_ATM_his ['wsnow_sic']) [..., ATM_his_keysort]1215 ATM_wbilo_oce = rprec (d_ATM_his ['wbilo_oce']) 1216 ATM_wbilo_sic = rprec (d_ATM_his ['wbilo_sic']) 1217 ATM_wbilo_ter = rprec (d_ATM_his ['wbilo_ter']) 1218 ATM_wbilo_lic = rprec (d_ATM_his ['wbilo_lic']) 1219 ATM_runofflic = rprec (d_ATM_his ['runofflic']) 1220 ATM_fqcalving = rprec (d_ATM_his ['fqcalving']) 1221 ATM_fqfonte = rprec (d_ATM_his ['fqfonte'] ) 1222 ATM_precip = rprec (d_ATM_his ['precip'] ) 1223 ATM_snowf = rprec (d_ATM_his ['snow'] ) 1224 ATM_evap = rprec (d_ATM_his ['evap'] ) 1225 ATM_wevap_ter = rprec (d_ATM_his ['wevap_ter']) 1226 ATM_wevap_oce = rprec (d_ATM_his ['wevap_oce']) 1227 ATM_wevap_lic = rprec (d_ATM_his ['wevap_lic']) 1228 ATM_wevap_sic = rprec (d_ATM_his ['wevap_sic']) 1229 ATM_runofflic = rprec (d_ATM_his ['runofflic']) 1230 ATM_wevap_ter = rprec (d_ATM_his ['wevap_ter']) 1231 ATM_wevap_oce = rprec (d_ATM_his ['wevap_oce']) 1232 ATM_wevap_lic = rprec (d_ATM_his ['wevap_lic']) 1233 ATM_wevap_sic = rprec (d_ATM_his ['wevap_sic']) 1234 ATM_wrain_ter = rprec (d_ATM_his ['wrain_ter']) 1235 ATM_wrain_oce = rprec (d_ATM_his ['wrain_oce']) 1236 ATM_wrain_lic = rprec (d_ATM_his ['wrain_lic']) 1237 ATM_wrain_sic = rprec (d_ATM_his ['wrain_sic']) 1238 ATM_wsnow_ter = rprec (d_ATM_his ['wsnow_ter']) 1239 ATM_wsnow_oce = rprec (d_ATM_his ['wsnow_oce']) 1240 ATM_wsnow_lic = rprec (d_ATM_his ['wsnow_lic']) 1241 ATM_wsnow_sic = rprec (d_ATM_his ['wsnow_sic']) 1281 1242 echo ( f'End of ico case ') 1282 1243 … … 1326 1287 if RUN_HIS == 'ico' : 1327 1288 echo ( f'RUN costalflow Grille ICO' ) 1328 RUN_coastalflow = rprec (d_RUN_his ['coastalflow']) [..., RUN_his_keysort]1329 RUN_riverflow = rprec (d_RUN_his ['riverflow'] ) [..., RUN_his_keysort]1330 RUN_runoff = rprec (d_RUN_his ['runoff'] ) [..., RUN_his_keysort]1331 RUN_drainage = rprec (d_RUN_his ['drainage'] ) [..., RUN_his_keysort]1332 RUN_riversret = rprec (d_RUN_his ['riversret'] ) [..., RUN_his_keysort]1333 1334 RUN_coastalflow_cpl = rprec (d_RUN_his ['coastalflow_cpl']) [..., RUN_his_keysort]1335 RUN_riverflow_cpl = rprec (d_RUN_his ['riverflow_cpl'] ) [..., RUN_his_keysort]1289 RUN_coastalflow = rprec (d_RUN_his ['coastalflow']) 1290 RUN_riverflow = rprec (d_RUN_his ['riverflow'] ) 1291 RUN_runoff = rprec (d_RUN_his ['runoff'] ) 1292 RUN_drainage = rprec (d_RUN_his ['drainage'] ) 1293 RUN_riversret = rprec (d_RUN_his ['riversret'] ) 1294 1295 RUN_coastalflow_cpl = rprec (d_RUN_his ['coastalflow_cpl']) 1296 RUN_riverflow_cpl = rprec (d_RUN_his ['riverflow_cpl'] ) 1336 1297 1337 1298 Step = 0 … … 1345 1306 SRF_subli = lmdz.geo2point ( rprec (d_SRF_his ['subli_contfrac_interp']), dim1D='cell') 1346 1307 SRF_transpir = lmdz.geo2point ( rprec (d_SRF_his ['transpir_contfrac_interp']).sum(dim='veget'), dim1D='cell' ) 1347 SRF_rain.attrs = d_SRF_his ['rain_contfrac_interp'].attrs1348 SRF_evap.attrs = d_SRF_his ['evap_contfrac_interp'].attrs1349 SRF_snowf.attrs = d_SRF_his ['snow_contfrac_interp'].attrs1350 SRF_subli.attrs = d_SRF_his ['subli_contfrac_interp'].attrs1351 SRF_transpir.attrs = d_SRF_his ['transpir_contfrac_interp'].attrs1308 #SRF_rain.attrs.update ( d_SRF_his ['rain_contfrac_interp'].attrs ) 1309 #SRF_evap.attrs.update ( d_SRF_his ['evap_contfrac_interp'].attrs ) 1310 #SRF_snowf.attrs.update ( d_SRF_his ['snow_contfrac_interp'].attrs ) 1311 #SRF_subli.attrs.update ( d_SRF_his ['subli_contfrac_interp'].attrs ) 1312 #SRF_transpir.attrs.update ( d_SRF_his ['transpir_contfrac_interp'].attrs ) 1352 1313 else : 1353 1314 echo ( f'SRF rain' ) … … 1360 1321 if SRF_HIS == 'ico' : 1361 1322 echo ( f'SRF rain') 1362 SRF_rain = rprec (d_SRF_his ['rain'] ) [..., SRF_his_keysort]1363 SRF_evap = rprec (d_SRF_his ['evap'] ) [..., SRF_his_keysort]1364 SRF_snowf = rprec (d_SRF_his ['snowf']) [..., SRF_his_keysort]1365 SRF_subli = rprec (d_SRF_his ['subli']) [..., SRF_his_keysort]1366 SRF_transpir = rprec (d_SRF_his ['transpir']).sum(dim='veget') [..., SRF_his_keysort]1323 SRF_rain = rprec (d_SRF_his ['rain'] ) 1324 SRF_evap = rprec (d_SRF_his ['evap'] ) 1325 SRF_snowf = rprec (d_SRF_his ['snowf']) 1326 SRF_subli = rprec (d_SRF_his ['subli']) 1327 SRF_transpir = rprec (d_SRF_his ['transpir']).sum(dim='veget') 1367 1328 1368 1329 echo ( f'SRF emp' )
Note: See TracChangeset
for help on using the changeset viewer.