SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_ISBA_INIT_n(HPROGRAM,KLU,KSW) 00003 ! ##################### 00004 ! 00005 !!**** *DIAG_ISBA_INIT_n* - routine to initialize ISBA-AGS diagnostic variables 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! EXTERNAL 00014 !! -------- 00015 !! 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! 00024 !! AUTHOR 00025 !! ------ 00026 !! V. Masson *Meteo France* 00027 !! 00028 !! MODIFICATIONS 00029 !! ------------- 00030 !! Original 02/2003 00031 !! modified 11/2003 by P. LeMoigne: surface cumulated energy budget 00032 !! modified 10/2004 by P. LeMoigne: surface miscellaneous fields 00033 !! B. Decharme 2008 New diag for water budget and allow to reset 00034 ! cumulatives variables at the beginning of a run 00035 !! B. Decharme 06/2009 add patch budget switch 00036 !! B. Decharme 08/2009 add cummulative diag 00037 !! A.L. Gibelin 04/2009 : Add respiration diagnostics 00038 !! A.L. Gibelin 05/2009 : Add carbon spinup 00039 !! A.L. Gibelin 07/2009 : Suppress RDK and transform GPP as a diagnostic 00040 !! B. Decharme 05/12 : Carbon fluxes in diag_evap 00041 !! B. Decharme 10/12 Isba water budget diag 00042 !! B. Decharme 10/12 New diag for DIF: 00043 !! F2 stress 00044 !! Root zone swi, wg and wgi 00045 !! swi, wg and wgi comparable to ISBA-FR-DG2 and DG3 layers 00046 !! active layer thickness over permafrost 00047 !! frozen layer thickness over non-permafrost 00048 !------------------------------------------------------------------------------- 00049 ! 00050 !* 0.0 DECLARATIONS 00051 ! ------------ 00052 ! 00053 USE MODD_SURF_PAR, ONLY : XUNDEF 00054 USE MODD_ISBA_n, ONLY : NPATCH, NGROUND_LAYER, LFLOOD, CHORT, LGLACIER, & 00055 LTR_ML, TSNOW, CISBA, XABC, CPHOTO 00056 USE MODD_CH_ISBA_n, ONLY : LCH_BIO_FLUX, NBEQ 00057 USE MODD_TYPE_DATE_SURF 00058 USE MODD_AGRI, ONLY : LAGRIP 00059 USE MODD_DIAG_SURF_ATM_n,ONLY : LREAD_BUDGETC 00060 USE MODD_DIAG_ISBA_n, ONLY : N2M, LSURF_BUDGET, LCOEF, LSURF_VARS, & 00061 LPATCH_BUDGET, & 00062 XRN, XH, XGFLUX, XLEI, XRI, XCD, XCH, XCE, & 00063 XTS, XTSRAD, XT2M, XQ2M, XHU2M, & 00064 XZON10M, XMER10M, & 00065 XZ0_WITH_SNOW, XZ0H_WITH_SNOW, XZ0EFF, XQS, & 00066 XSWD, XSWU, XSWBD, XSWBU, XLWD, XLWU, XFMU, XFMV,& 00067 XAVG_RN, XAVG_H, XAVG_LE, XAVG_LEI, & 00068 XAVG_GFLUX, XAVG_RI, XAVG_CD, XAVG_CH, XAVG_CE, & 00069 XAVG_T2M, XAVG_Q2M, XAVG_HU2M, XAVG_T2M_MIN, & 00070 XAVG_ZON10M, XAVG_MER10M, XAVG_T2M_MAX, & 00071 XAVG_Z0, XAVG_Z0H, XAVG_Z0EFF, XAVG_QS, & 00072 XAVG_SWD, XAVG_SWU, XAVG_SWBD, XAVG_SWBU, & 00073 XAVG_LWD, XAVG_LWU, XAVG_FMU, XAVG_FMV, & 00074 XSWDC, XSWUC, XLWDC, XLWUC, XFMUC, XFMVC, & 00075 XAVG_SWDC, XAVG_SWUC, XAVG_LWDC, XAVG_LWUC, & 00076 XAVG_FMUC, XAVG_FMVC, XAVG_TS, XAVG_TSRAD, & 00077 XAVG_HU2M_MIN, XAVG_HU2M_MAX, XWIND10M, & 00078 XAVG_WIND10M, XAVG_WIND10M_MAX, XAVG_SFCO2 00079 ! 00080 USE MODD_DIAG_EVAP_ISBA_n, ONLY : LSURF_EVAP_BUDGET, LSURF_BUDGETC, LRESET_BUDGETC,& 00081 LWATER_BUDGET, & 00082 XRNC, XAVG_RNC, XHC, XAVG_HC, & 00083 XLEC, XAVG_LEC, XGFLUXC, XAVG_GFLUXC, & 00084 XLEIC, XAVG_LEIC, & 00085 XLEG, XLEGC, XAVG_LEG, XAVG_LEGC, & 00086 XLEGI, XLEGIC, XAVG_LEGI, XAVG_LEGIC, & 00087 XLEV, XLEVC, XAVG_LEV, XAVG_LEVC, & 00088 XLES, XLESC, XAVG_LES, XAVG_LESC, & 00089 XLESL, XLESLC, XAVG_LESL, XAVG_LESLC, & 00090 XLER, XLERC, XAVG_LER, XAVG_LERC, & 00091 XLETR, XLETRC, XAVG_LETR, XAVG_LETRC, & 00092 XEVAP, XEVAPC, XAVG_EVAP, XAVG_EVAPC, & 00093 XDRAIN, XDRAINC, XAVG_DRAIN, XAVG_DRAINC, & 00094 XRUNOFF, XRUNOFFC, XAVG_RUNOFF, XAVG_RUNOFFC, & 00095 XHORT, XHORTC, XAVG_HORT, XAVG_HORTC, & 00096 XDRIP, XDRIPC, XAVG_DRIP, XAVG_DRIPC, & 00097 XMELT, XMELTC, XAVG_MELT, XAVG_MELTC, & 00098 XIFLOOD, XIFLOODC, XAVG_IFLOOD, XAVG_IFLOODC, & 00099 XPFLOOD, XPFLOODC, XAVG_PFLOOD, XAVG_PFLOODC, & 00100 XLE_FLOOD, XLE_FLOODC, XAVG_LE_FLOOD, & 00101 XAVG_LE_FLOODC, XLEI_FLOOD, XLEI_FLOODC, & 00102 XAVG_LEI_FLOOD, XAVG_LEI_FLOODC, & 00103 XICEFLUXC, XAVG_ICEFLUXC, & 00104 XRRVEG, XRRVEGC, XAVG_RRVEG, XAVG_RRVEGC, & 00105 XIRRIG_FLUX, XIRRIG_FLUXC, XAVG_IRRIG_FLUX, & 00106 XAVG_IRRIG_FLUXC, & 00107 XGPP,XGPPC,XAVG_GPP,XAVG_GPPC, XRESP_AUTO, & 00108 XRESPC_AUTO,XAVG_RESP_AUTO,XAVG_RESPC_AUTO, & 00109 XRESP_ECO,XRESPC_ECO,XAVG_RESP_ECO, & 00110 XAVG_RESPC_ECO,XDWG,XDWGC,XAVG_DWG,XAVG_DWGC, & 00111 XDWGI,XDWGIC,XAVG_DWGI,XAVG_DWGIC, & 00112 XDWR,XDWRC,XAVG_DWR,XAVG_DWRC, & 00113 XDSWE,XDSWEC,XAVG_DSWE,XAVG_DSWEC, & 00114 XRAINFALL,XRAINFALLC,XSNOWFALL,XSNOWFALLC, & 00115 XWATBUD,XWATBUDC,XAVG_WATBUD,XAVG_WATBUDC 00116 ! 00117 USE MODD_DIAG_MISC_ISBA_n, ONLY : LSURF_MISC_BUDGET, LSURF_MISC_DIF, & 00118 XHV, XSWI, XTSWI, XTWSNOW, XTDSNOW, XTTSNOW, & 00119 XDPSNG, XDPSNV, XDPSN, & 00120 XAVG_HV, XAVG_SWI, XAVG_TSWI, & 00121 XALT, XFLT, XAVG_ALT, XAVG_FLT, & 00122 XAVG_TWSNOW, XAVG_TDSNOW, XAVG_TTSNOW, & 00123 XAVG_PSNG, XAVG_PSNV, XAVG_PSN, XSEUIL, & 00124 XAVG_ALBT, XALBT, & 00125 XSOIL_TSWI, XSOIL_TWG, XSOIL_TWGI, & 00126 XDFFG, XDFFV, XDFF, XAVG_FFG, XAVG_FFV, XAVG_FF,& 00127 XSNOWLIQ, XSNOWTEMP, XDFSAT, XAVG_FSAT, & 00128 XSURF_TSWI, XSURF_TWG, XSURF_TWGI, XROOT_TSWI, & 00129 XROOT_TWG, XROOT_TWGI, XFRD2_TSWI, XFRD2_TWG, & 00130 XFRD2_TWGI, XFRD3_TSWI, XFRD3_TWG, XFRD3_TWGI, & 00131 XFAPAR, XFAPIR, XDFAPARC, XDFAPIRC, & 00132 XFAPAR_BS, XFAPIR_BS, XDLAI_EFFC, XAVG_LAI 00133 ! 00134 USE MODD_GR_BIOG_n, ONLY : XFISO, XFMONO, XIACAN 00135 ! 00136 USE MODI_READ_SURF 00137 ! 00138 ! 00139 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00140 USE PARKIND1 ,ONLY : JPRB 00141 ! 00142 IMPLICIT NONE 00143 ! 00144 !* 0.01 Declarations of arguments 00145 ! ------------------------- 00146 ! 00147 INTEGER, INTENT(IN) :: KLU ! size of arrays 00148 INTEGER, INTENT(IN) :: KSW ! spectral bands 00149 CHARACTER(LEN=6), INTENT(IN):: HPROGRAM ! program calling 00150 ! 00151 !* 0.02 Declarations of local variables 00152 ! ------------------------------- 00153 ! 00154 INTEGER :: IVERSION, IBUG 00155 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00156 CHARACTER(LEN=12) :: YREC ! Name of the article to be read 00157 CHARACTER(LEN=4) :: YREC2 00158 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00159 ! 00160 !------------------------------------------------------------------------------- 00161 ! 00162 !* surface energy budget 00163 ! 00164 IF (LHOOK) CALL DR_HOOK('DIAG_ISBA_INIT_N',0,ZHOOK_HANDLE) 00165 ! 00166 IF (LSURF_BUDGET) THEN 00167 ALLOCATE(XAVG_RN (KLU)) 00168 ALLOCATE(XAVG_H (KLU)) 00169 ALLOCATE(XAVG_LE (KLU)) 00170 ALLOCATE(XAVG_LEI (KLU)) 00171 ALLOCATE(XAVG_GFLUX (KLU)) 00172 ALLOCATE(XAVG_SWD (KLU)) 00173 ALLOCATE(XAVG_SWU (KLU)) 00174 ALLOCATE(XAVG_SWBD (KLU,KSW)) 00175 ALLOCATE(XAVG_SWBU (KLU,KSW)) 00176 ALLOCATE(XAVG_LWD (KLU)) 00177 ALLOCATE(XAVG_LWU (KLU)) 00178 ALLOCATE(XAVG_FMU (KLU)) 00179 ALLOCATE(XAVG_FMV (KLU)) 00180 ! 00181 XAVG_RN = XUNDEF 00182 XAVG_H = XUNDEF 00183 XAVG_LE = XUNDEF 00184 XAVG_LEI = XUNDEF 00185 XAVG_GFLUX = XUNDEF 00186 XAVG_SWD = XUNDEF 00187 XAVG_SWU = XUNDEF 00188 XAVG_SWBD = XUNDEF 00189 XAVG_SWBU = XUNDEF 00190 XAVG_LWD = XUNDEF 00191 XAVG_LWU = XUNDEF 00192 XAVG_FMU = XUNDEF 00193 XAVG_FMV = XUNDEF 00194 ! 00195 ALLOCATE(XRN (KLU,NPATCH)) 00196 ALLOCATE(XH (KLU,NPATCH)) 00197 ALLOCATE(XGFLUX (KLU,NPATCH)) 00198 ALLOCATE(XLEI (KLU,NPATCH)) 00199 ALLOCATE(XSWD (KLU,NPATCH)) 00200 ALLOCATE(XSWU (KLU,NPATCH)) 00201 ALLOCATE(XSWBD (KLU,KSW,NPATCH)) 00202 ALLOCATE(XSWBU (KLU,KSW,NPATCH)) 00203 ALLOCATE(XLWD (KLU,NPATCH)) 00204 ALLOCATE(XLWU (KLU,NPATCH)) 00205 ALLOCATE(XFMU (KLU,NPATCH)) 00206 ALLOCATE(XFMV (KLU,NPATCH)) 00207 ! 00208 XRN = XUNDEF 00209 XH = XUNDEF 00210 XGFLUX = XUNDEF 00211 XLEI = XUNDEF 00212 XSWD = XUNDEF 00213 XSWU = XUNDEF 00214 XSWBD = XUNDEF 00215 XSWBU = XUNDEF 00216 XLWD = XUNDEF 00217 XLWU = XUNDEF 00218 XFMU = XUNDEF 00219 XFMV = XUNDEF 00220 ! 00221 ELSE 00222 ALLOCATE(XAVG_RN (0)) 00223 ALLOCATE(XAVG_H (0)) 00224 ALLOCATE(XAVG_LE (0)) 00225 ALLOCATE(XAVG_LEI (0)) 00226 ALLOCATE(XAVG_GFLUX (0)) 00227 ALLOCATE(XAVG_SWD (0)) 00228 ALLOCATE(XAVG_SWU (0)) 00229 ALLOCATE(XAVG_SWBD (0,0)) 00230 ALLOCATE(XAVG_SWBU (0,0)) 00231 ALLOCATE(XAVG_LWD (0)) 00232 ALLOCATE(XAVG_LWU (0)) 00233 ALLOCATE(XAVG_FMU (0)) 00234 ALLOCATE(XAVG_FMV (0)) 00235 ! 00236 ALLOCATE(XRN (0,0)) 00237 ALLOCATE(XH (0,0)) 00238 ALLOCATE(XGFLUX (0,0)) 00239 ALLOCATE(XLEI (0,0)) 00240 ALLOCATE(XSWD (0,0)) 00241 ALLOCATE(XSWU (0,0)) 00242 ALLOCATE(XSWBD (0,0,0)) 00243 ALLOCATE(XSWBU (0,0,0)) 00244 ALLOCATE(XLWD (0,0)) 00245 ALLOCATE(XLWU (0,0)) 00246 ALLOCATE(XFMU (0,0)) 00247 ALLOCATE(XFMV (0,0)) 00248 END IF 00249 ! 00250 !* detailed surface energy budget 00251 ! 00252 IF (LSURF_EVAP_BUDGET) THEN 00253 ALLOCATE(XAVG_LEG (KLU)) 00254 ALLOCATE(XAVG_LEGI (KLU)) 00255 ALLOCATE(XAVG_LEV (KLU)) 00256 ALLOCATE(XAVG_LES (KLU)) 00257 ALLOCATE(XAVG_LESL (KLU)) 00258 ALLOCATE(XAVG_LER (KLU)) 00259 ALLOCATE(XAVG_LETR (KLU)) 00260 ALLOCATE(XAVG_EVAP (KLU)) 00261 ALLOCATE(XAVG_DRAIN (KLU)) 00262 ALLOCATE(XAVG_RUNOFF (KLU)) 00263 ALLOCATE(XAVG_HORT (KLU)) 00264 ALLOCATE(XAVG_DRIP (KLU)) 00265 ALLOCATE(XAVG_RRVEG (KLU)) 00266 ALLOCATE(XAVG_MELT (KLU)) 00267 ALLOCATE(XAVG_IRRIG_FLUX(KLU)) 00268 ALLOCATE(XAVG_GPP (KLU)) 00269 ALLOCATE(XAVG_RESP_AUTO (KLU)) 00270 ALLOCATE(XAVG_RESP_ECO (KLU)) 00271 ! 00272 XAVG_LEG = XUNDEF 00273 XAVG_LEGI = XUNDEF 00274 XAVG_LEV = XUNDEF 00275 XAVG_LES = XUNDEF 00276 XAVG_LESL = XUNDEF 00277 XAVG_LER = XUNDEF 00278 XAVG_LETR = XUNDEF 00279 XAVG_EVAP = XUNDEF 00280 XAVG_DRAIN = XUNDEF 00281 XAVG_RUNOFF = XUNDEF 00282 XAVG_HORT = XUNDEF 00283 XAVG_DRIP = XUNDEF 00284 XAVG_RRVEG = XUNDEF 00285 XAVG_MELT = XUNDEF 00286 XAVG_IRRIG_FLUX = XUNDEF 00287 XAVG_GPP = XUNDEF 00288 XAVG_RESP_AUTO = XUNDEF 00289 XAVG_RESP_ECO = XUNDEF 00290 ! 00291 ALLOCATE(XAVG_IFLOOD (KLU)) 00292 ALLOCATE(XAVG_PFLOOD (KLU)) 00293 ALLOCATE(XAVG_LE_FLOOD (KLU)) 00294 ALLOCATE(XAVG_LEI_FLOOD(KLU)) 00295 XAVG_IFLOOD = XUNDEF 00296 XAVG_PFLOOD = XUNDEF 00297 XAVG_LE_FLOOD = XUNDEF 00298 XAVG_LEI_FLOOD = XUNDEF 00299 ! 00300 ALLOCATE(XLEG (KLU,NPATCH)) 00301 ALLOCATE(XLEGI (KLU,NPATCH)) 00302 ALLOCATE(XLEV (KLU,NPATCH)) 00303 ALLOCATE(XLES (KLU,NPATCH)) 00304 ALLOCATE(XLESL (KLU,NPATCH)) 00305 ALLOCATE(XLER (KLU,NPATCH)) 00306 ALLOCATE(XLETR (KLU,NPATCH)) 00307 ALLOCATE(XEVAP (KLU,NPATCH)) 00308 ALLOCATE(XDRAIN (KLU,NPATCH)) 00309 ALLOCATE(XRUNOFF (KLU,NPATCH)) 00310 ALLOCATE(XHORT (KLU,NPATCH)) 00311 ALLOCATE(XDRIP (KLU,NPATCH)) 00312 ALLOCATE(XRRVEG (KLU,NPATCH)) 00313 ALLOCATE(XMELT (KLU,NPATCH)) 00314 ALLOCATE(XIRRIG_FLUX(KLU,NPATCH)) 00315 ALLOCATE(XGPP (KLU,NPATCH)) 00316 ALLOCATE(XRESP_AUTO (KLU,NPATCH)) 00317 ALLOCATE(XRESP_ECO (KLU,NPATCH)) 00318 ! 00319 XLEG = XUNDEF 00320 XLEGI = XUNDEF 00321 XLEV = XUNDEF 00322 XLES = XUNDEF 00323 XLESL = XUNDEF 00324 XLER = XUNDEF 00325 XLETR = XUNDEF 00326 XEVAP = XUNDEF 00327 XDRAIN = XUNDEF 00328 XRUNOFF = XUNDEF 00329 XHORT = XUNDEF 00330 XDRIP = XUNDEF 00331 XRRVEG = XUNDEF 00332 XMELT = XUNDEF 00333 XIRRIG_FLUX = XUNDEF 00334 XGPP = XUNDEF 00335 XRESP_AUTO = XUNDEF 00336 XRESP_ECO = XUNDEF 00337 ! 00338 ALLOCATE(XIFLOOD (KLU,NPATCH)) 00339 ALLOCATE(XPFLOOD (KLU,NPATCH)) 00340 ALLOCATE(XLE_FLOOD(KLU,NPATCH)) 00341 ALLOCATE(XLEI_FLOOD(KLU,NPATCH)) 00342 XIFLOOD = XUNDEF 00343 XPFLOOD = XUNDEF 00344 XLE_FLOOD = XUNDEF 00345 XLEI_FLOOD = XUNDEF 00346 ! 00347 IF(LWATER_BUDGET)THEN 00348 ! 00349 ALLOCATE(XRAINFALL (KLU)) 00350 ALLOCATE(XSNOWFALL (KLU)) 00351 ALLOCATE(XAVG_DWG (KLU)) 00352 ALLOCATE(XAVG_DWGI (KLU)) 00353 ALLOCATE(XAVG_DWR (KLU)) 00354 ALLOCATE(XAVG_DSWE (KLU)) 00355 ALLOCATE(XAVG_WATBUD(KLU)) 00356 XRAINFALL = XUNDEF 00357 XSNOWFALL = XUNDEF 00358 XAVG_DWG = XUNDEF 00359 XAVG_DWGI = XUNDEF 00360 XAVG_DWR = XUNDEF 00361 XAVG_DSWE = XUNDEF 00362 XAVG_WATBUD = XUNDEF 00363 ! 00364 ALLOCATE(XDWG (KLU,NPATCH)) 00365 ALLOCATE(XDWGI (KLU,NPATCH)) 00366 ALLOCATE(XDWR (KLU,NPATCH)) 00367 ALLOCATE(XDSWE (KLU,NPATCH)) 00368 ALLOCATE(XWATBUD(KLU,NPATCH)) 00369 XDWG = XUNDEF 00370 XDWGI = XUNDEF 00371 XDWR = XUNDEF 00372 XDSWE = XUNDEF 00373 XWATBUD = XUNDEF 00374 ! 00375 ELSE 00376 ! 00377 ALLOCATE(XRAINFALL (0)) 00378 ALLOCATE(XSNOWFALL (0)) 00379 ALLOCATE(XAVG_DWG (0)) 00380 ALLOCATE(XAVG_DWGI (0)) 00381 ALLOCATE(XAVG_DWR (0)) 00382 ALLOCATE(XAVG_DSWE (0)) 00383 ALLOCATE(XAVG_WATBUD(0)) 00384 ! 00385 ALLOCATE(XDWG (0,0)) 00386 ALLOCATE(XDWGI (0,0)) 00387 ALLOCATE(XDWR (0,0)) 00388 ALLOCATE(XDSWE (0,0)) 00389 ALLOCATE(XWATBUD(0,0)) 00390 ! 00391 ENDIF 00392 ! 00393 ELSE 00394 ALLOCATE(XAVG_LEG (0)) 00395 ALLOCATE(XAVG_LEGI (0)) 00396 ALLOCATE(XAVG_LEV (0)) 00397 ALLOCATE(XAVG_LES (0)) 00398 ALLOCATE(XAVG_LESL (0)) 00399 ALLOCATE(XAVG_LER (0)) 00400 ALLOCATE(XAVG_LETR (0)) 00401 ALLOCATE(XAVG_EVAP (0)) 00402 ALLOCATE(XAVG_DRAIN (0)) 00403 ALLOCATE(XAVG_RUNOFF (0)) 00404 ALLOCATE(XAVG_HORT (0)) 00405 ALLOCATE(XAVG_DRIP (0)) 00406 ALLOCATE(XAVG_RRVEG (0)) 00407 ALLOCATE(XAVG_MELT (0)) 00408 ALLOCATE(XAVG_IRRIG_FLUX(0)) 00409 ALLOCATE(XAVG_GPP (0)) 00410 ALLOCATE(XAVG_RESP_AUTO (0)) 00411 ALLOCATE(XAVG_RESP_ECO (0)) 00412 ALLOCATE(XAVG_IFLOOD (0)) 00413 ALLOCATE(XAVG_PFLOOD (0)) 00414 ALLOCATE(XAVG_LE_FLOOD (0)) 00415 ALLOCATE(XAVG_LEI_FLOOD (0)) 00416 ! 00417 ALLOCATE(XLEG (0,0)) 00418 ALLOCATE(XLEGI (0,0)) 00419 ALLOCATE(XLEV (0,0)) 00420 ALLOCATE(XLES (0,0)) 00421 ALLOCATE(XLESL (0,0)) 00422 ALLOCATE(XLER (0,0)) 00423 ALLOCATE(XLETR (0,0)) 00424 ALLOCATE(XEVAP (0,0)) 00425 ALLOCATE(XDRAIN (0,0)) 00426 ALLOCATE(XRUNOFF (0,0)) 00427 ALLOCATE(XHORT (0,0)) 00428 ALLOCATE(XDRIP (0,0)) 00429 ALLOCATE(XRRVEG (0,0)) 00430 ALLOCATE(XMELT (0,0)) 00431 ALLOCATE(XIRRIG_FLUX(0,0)) 00432 ALLOCATE(XGPP (0,0)) 00433 ALLOCATE(XRESP_AUTO (0,0)) 00434 ALLOCATE(XRESP_ECO (0,0)) 00435 ALLOCATE(XIFLOOD (0,0)) 00436 ALLOCATE(XPFLOOD (0,0)) 00437 ALLOCATE(XLE_FLOOD (0,0)) 00438 ALLOCATE(XLEI_FLOOD (0,0)) 00439 ! 00440 ALLOCATE(XRAINFALL (0)) 00441 ALLOCATE(XSNOWFALL (0)) 00442 ALLOCATE(XAVG_DWG (0)) 00443 ALLOCATE(XAVG_DWGI (0)) 00444 ALLOCATE(XAVG_DWR (0)) 00445 ALLOCATE(XAVG_DSWE (0)) 00446 ALLOCATE(XAVG_WATBUD(0)) 00447 ! 00448 ALLOCATE(XDWG (0,0)) 00449 ALLOCATE(XDWGI (0,0)) 00450 ALLOCATE(XDWR (0,0)) 00451 ALLOCATE(XDSWE (0,0)) 00452 ALLOCATE(XWATBUD(0,0)) 00453 ! 00454 END IF 00455 ! 00456 !* surface cumulated energy budget 00457 ! 00458 IF (LSURF_BUDGETC) THEN 00459 ALLOCATE(XAVG_RNC (KLU)) 00460 ALLOCATE(XAVG_HC (KLU)) 00461 ALLOCATE(XAVG_LEC (KLU)) 00462 ALLOCATE(XAVG_LEIC (KLU)) 00463 ALLOCATE(XAVG_GFLUXC (KLU)) 00464 ALLOCATE(XAVG_LEGC (KLU)) 00465 ALLOCATE(XAVG_LEGIC (KLU)) 00466 ALLOCATE(XAVG_LEVC (KLU)) 00467 ALLOCATE(XAVG_LESC (KLU)) 00468 ALLOCATE(XAVG_LESLC (KLU)) 00469 ALLOCATE(XAVG_LERC (KLU)) 00470 ALLOCATE(XAVG_LETRC (KLU)) 00471 ALLOCATE(XAVG_EVAPC (KLU)) 00472 ALLOCATE(XAVG_DRAINC (KLU)) 00473 ALLOCATE(XAVG_RUNOFFC (KLU)) 00474 ALLOCATE(XAVG_HORTC (KLU)) 00475 ALLOCATE(XAVG_DRIPC (KLU)) 00476 ALLOCATE(XAVG_RRVEGC (KLU)) 00477 ALLOCATE(XAVG_MELTC (KLU)) 00478 ALLOCATE(XAVG_IRRIG_FLUXC(KLU)) 00479 ALLOCATE(XAVG_GPPC (KLU)) 00480 ALLOCATE(XAVG_RESPC_AUTO (KLU)) 00481 ALLOCATE(XAVG_RESPC_ECO (KLU)) 00482 ALLOCATE(XAVG_IFLOODC (KLU)) 00483 ALLOCATE(XAVG_PFLOODC (KLU)) 00484 ALLOCATE(XAVG_LE_FLOODC (KLU)) 00485 ALLOCATE(XAVG_LEI_FLOODC (KLU)) 00486 ! 00487 ALLOCATE(XRNC (KLU,NPATCH)) 00488 ALLOCATE(XHC (KLU,NPATCH)) 00489 ALLOCATE(XLEC (KLU,NPATCH)) 00490 ALLOCATE(XLEIC (KLU,NPATCH)) 00491 ALLOCATE(XGFLUXC (KLU,NPATCH)) 00492 ALLOCATE(XLEGC (KLU,NPATCH)) 00493 ALLOCATE(XLEGIC (KLU,NPATCH)) 00494 ALLOCATE(XLEVC (KLU,NPATCH)) 00495 ALLOCATE(XLESC (KLU,NPATCH)) 00496 ALLOCATE(XLESLC (KLU,NPATCH)) 00497 ALLOCATE(XLERC (KLU,NPATCH)) 00498 ALLOCATE(XLETRC (KLU,NPATCH)) 00499 ALLOCATE(XEVAPC (KLU,NPATCH)) 00500 ALLOCATE(XDRAINC (KLU,NPATCH)) 00501 ALLOCATE(XRUNOFFC (KLU,NPATCH)) 00502 ALLOCATE(XHORTC (KLU,NPATCH)) 00503 ALLOCATE(XDRIPC (KLU,NPATCH)) 00504 ALLOCATE(XRRVEGC (KLU,NPATCH)) 00505 ALLOCATE(XMELTC (KLU,NPATCH)) 00506 ALLOCATE(XIRRIG_FLUXC(KLU,NPATCH)) 00507 ALLOCATE(XGPPC (KLU,NPATCH)) 00508 ALLOCATE(XRESPC_AUTO (KLU,NPATCH)) 00509 ALLOCATE(XRESPC_ECO (KLU,NPATCH)) 00510 ALLOCATE(XIFLOODC (KLU,NPATCH)) 00511 ALLOCATE(XPFLOODC (KLU,NPATCH)) 00512 ALLOCATE(XLE_FLOODC (KLU,NPATCH)) 00513 ALLOCATE(XLEI_FLOODC (KLU,NPATCH)) 00514 ! 00515 ALLOCATE(XAVG_SWDC (KLU)) 00516 ALLOCATE(XAVG_SWUC (KLU)) 00517 ALLOCATE(XAVG_LWDC (KLU)) 00518 ALLOCATE(XAVG_LWUC (KLU)) 00519 ALLOCATE(XAVG_FMUC (KLU)) 00520 ALLOCATE(XAVG_FMVC (KLU)) 00521 ALLOCATE(XSWDC (KLU,NPATCH)) 00522 ALLOCATE(XSWUC (KLU,NPATCH)) 00523 ALLOCATE(XLWDC (KLU,NPATCH)) 00524 ALLOCATE(XLWUC (KLU,NPATCH)) 00525 ALLOCATE(XFMUC (KLU,NPATCH)) 00526 ALLOCATE(XFMVC (KLU,NPATCH)) 00527 ! 00528 IF(LGLACIER)THEN 00529 ALLOCATE(XAVG_ICEFLUXC(KLU)) 00530 ALLOCATE(XICEFLUXC(KLU,NPATCH)) 00531 ENDIF 00532 ! 00533 IF(LWATER_BUDGET)THEN 00534 ! 00535 ALLOCATE(XRAINFALLC (KLU)) 00536 ALLOCATE(XSNOWFALLC (KLU)) 00537 ALLOCATE(XAVG_DWGC (KLU)) 00538 ALLOCATE(XAVG_DWGIC (KLU)) 00539 ALLOCATE(XAVG_DWRC (KLU)) 00540 ALLOCATE(XAVG_DSWEC (KLU)) 00541 ALLOCATE(XAVG_WATBUDC(KLU)) 00542 ! 00543 ALLOCATE(XDWGC (KLU,NPATCH)) 00544 ALLOCATE(XDWGIC (KLU,NPATCH)) 00545 ALLOCATE(XDWRC (KLU,NPATCH)) 00546 ALLOCATE(XDSWEC (KLU,NPATCH)) 00547 ALLOCATE(XWATBUDC(KLU,NPATCH)) 00548 ! 00549 ELSE 00550 ! 00551 ALLOCATE(XRAINFALLC (0)) 00552 ALLOCATE(XSNOWFALLC (0)) 00553 ALLOCATE(XAVG_DWGC (0)) 00554 ALLOCATE(XAVG_DWGIC (0)) 00555 ALLOCATE(XAVG_DWRC (0)) 00556 ALLOCATE(XAVG_DSWEC (0)) 00557 ALLOCATE(XAVG_WATBUDC(0)) 00558 ! 00559 ALLOCATE(XDWGC (0,0)) 00560 ALLOCATE(XDWGIC (0,0)) 00561 ALLOCATE(XDWRC (0,0)) 00562 ALLOCATE(XDSWEC (0,0)) 00563 ALLOCATE(XWATBUDC(0,0)) 00564 ! 00565 ENDIF 00566 ! 00567 IF (.NOT.LREAD_BUDGETC) THEN 00568 XAVG_RNC = 0.0 00569 XAVG_HC = 0.0 00570 XAVG_LEC = 0.0 00571 XAVG_LEIC = 0.0 00572 XAVG_GFLUXC = 0.0 00573 XAVG_LEGC = 0.0 00574 XAVG_LEGIC = 0.0 00575 XAVG_LEVC = 0.0 00576 XAVG_LESC = 0.0 00577 XAVG_LESLC = 0.0 00578 XAVG_LERC = 0.0 00579 XAVG_LETRC = 0.0 00580 XAVG_EVAPC = 0.0 00581 XAVG_DRAINC = 0.0 00582 XAVG_RUNOFFC = 0.0 00583 XAVG_HORTC = 0.0 00584 XAVG_DRIPC = 0.0 00585 XAVG_RRVEGC = 0.0 00586 XAVG_MELTC = 0.0 00587 XAVG_IRRIG_FLUXC = 0.0 00588 XAVG_GPPC = 0.0 00589 XAVG_RESPC_AUTO = 0.0 00590 XAVG_RESPC_ECO = 0.0 00591 XAVG_IFLOODC = 0.0 00592 XAVG_PFLOODC = 0.0 00593 XAVG_LE_FLOODC = 0.0 00594 XAVG_LEI_FLOODC = 0.0 00595 ! 00596 XRNC = 0.0 00597 XHC = 0.0 00598 XLEC = 0.0 00599 XLEIC = 0.0 00600 XGFLUXC = 0.0 00601 XLEGC = 0.0 00602 XLEGIC = 0.0 00603 XLEVC = 0.0 00604 XLESC = 0.0 00605 XLESLC = 0.0 00606 XLERC = 0.0 00607 XLETRC = 0.0 00608 XEVAPC = 0.0 00609 XDRAINC = 0.0 00610 XRUNOFFC = 0.0 00611 XHORTC = 0.0 00612 XDRIPC = 0.0 00613 XRRVEGC = 0.0 00614 XMELTC = 0.0 00615 XIRRIG_FLUXC = 0.0 00616 XGPPC = 0.0 00617 XRESPC_AUTO = 0.0 00618 XRESPC_ECO = 0.0 00619 XIFLOODC = 0.0 00620 XPFLOODC = 0.0 00621 XLE_FLOODC = 0.0 00622 XLEI_FLOODC = 0.0 00623 ! 00624 XAVG_SWDC = 0.0 00625 XAVG_SWUC = 0.0 00626 XAVG_LWDC = 0.0 00627 XAVG_LWUC = 0.0 00628 XAVG_FMUC = 0.0 00629 XAVG_FMVC = 0.0 00630 XSWDC = 0.0 00631 XSWUC = 0.0 00632 XLWDC = 0.0 00633 XLWUC = 0.0 00634 XFMUC = 0.0 00635 XFMVC = 0.0 00636 ! 00637 IF(LGLACIER)THEN 00638 XAVG_ICEFLUXC = 0.0 00639 XICEFLUXC = 0.0 00640 ENDIF 00641 ! 00642 IF(LWATER_BUDGET)THEN 00643 ! 00644 XRAINFALLC = 0.0 00645 XSNOWFALLC = 0.0 00646 XAVG_DWGC = 0.0 00647 XAVG_DWGIC = 0.0 00648 XAVG_DWRC = 0.0 00649 XAVG_DSWEC = 0.0 00650 XAVG_WATBUDC = 0.0 00651 ! 00652 XDWGC = 0.0 00653 XDWGIC = 0.0 00654 XDWRC = 0.0 00655 XDSWEC = 0.0 00656 XWATBUDC = 0.0 00657 ! 00658 ENDIF 00659 ! 00660 ELSEIF (LREAD_BUDGETC.AND.LRESET_BUDGETC) THEN 00661 ! 00662 XAVG_RNC = 0.0 00663 XAVG_HC = 0.0 00664 XAVG_LEC = 0.0 00665 XAVG_LEIC = 0.0 00666 XAVG_GFLUXC = 0.0 00667 XAVG_LEGC = 0.0 00668 XAVG_LEGIC = 0.0 00669 XAVG_LEVC = 0.0 00670 XAVG_LESC = 0.0 00671 XAVG_LESLC = 0.0 00672 XAVG_LERC = 0.0 00673 XAVG_LETRC = 0.0 00674 XAVG_EVAPC = 0.0 00675 XAVG_DRAINC = 0.0 00676 XAVG_RUNOFFC = 0.0 00677 XAVG_HORTC = 0.0 00678 XAVG_DRIPC = 0.0 00679 XAVG_RRVEGC = 0.0 00680 XAVG_MELTC = 0.0 00681 XAVG_IRRIG_FLUXC = 0.0 00682 XAVG_GPPC = 0.0 00683 XAVG_RESPC_AUTO = 0.0 00684 XAVG_RESPC_ECO = 0.0 00685 XAVG_IFLOODC = 0.0 00686 XAVG_PFLOODC = 0.0 00687 XAVG_LE_FLOODC = 0.0 00688 XAVG_LEI_FLOODC = 0.0 00689 ! 00690 XRNC = 0.0 00691 XHC = 0.0 00692 XLEC = 0.0 00693 XLEIC = 0.0 00694 XGFLUXC = 0.0 00695 XLEGC = 0.0 00696 XLEGIC = 0.0 00697 XLEVC = 0.0 00698 XLESC = 0.0 00699 XLESLC = 0.0 00700 XLERC = 0.0 00701 XLETRC = 0.0 00702 XEVAPC = 0.0 00703 XDRAINC = 0.0 00704 XRUNOFFC = 0.0 00705 XHORTC = 0.0 00706 XDRIPC = 0.0 00707 XRRVEGC = 0.0 00708 XMELTC = 0.0 00709 XIRRIG_FLUXC = 0.0 00710 XGPPC = 0.0 00711 XRESPC_AUTO = 0.0 00712 XRESPC_ECO = 0.0 00713 XIFLOODC = 0.0 00714 XPFLOODC = 0.0 00715 XLE_FLOODC = 0.0 00716 XLEI_FLOODC = 0.0 00717 ! 00718 XAVG_SWDC = 0.0 00719 XAVG_SWUC = 0.0 00720 XAVG_LWDC = 0.0 00721 XAVG_LWUC = 0.0 00722 XAVG_FMUC = 0.0 00723 XAVG_FMVC = 0.0 00724 XSWDC = 0.0 00725 XSWUC = 0.0 00726 XLWDC = 0.0 00727 XLWUC = 0.0 00728 XFMUC = 0.0 00729 XFMVC = 0.0 00730 ! 00731 IF(LGLACIER)THEN 00732 XAVG_ICEFLUXC = 0.0 00733 XICEFLUXC = 0.0 00734 ENDIF 00735 ! 00736 IF(LWATER_BUDGET)THEN 00737 ! 00738 XRAINFALLC = 0.0 00739 XSNOWFALLC = 0.0 00740 XAVG_DWGC = 0.0 00741 XAVG_DWGIC = 0.0 00742 XAVG_DWRC = 0.0 00743 XAVG_DSWEC = 0.0 00744 XAVG_WATBUDC = 0.0 00745 ! 00746 XDWGC = 0.0 00747 XDWGIC = 0.0 00748 XDWRC = 0.0 00749 XDSWEC = 0.0 00750 XWATBUDC = 0.0 00751 ! 00752 ENDIF 00753 ! 00754 ELSE 00755 YREC='RNC_ISBA' 00756 CALL READ_SURF(HPROGRAM,YREC,XAVG_RNC ,IRESP) 00757 YREC='HC_ISBA' 00758 CALL READ_SURF(HPROGRAM,YREC,XAVG_HC ,IRESP) 00759 YREC='LEC_ISBA' 00760 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEC ,IRESP) 00761 YREC='LEIC_ISBA' 00762 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEIC ,IRESP) 00763 YREC='GFLUXC_ISBA' 00764 CALL READ_SURF(HPROGRAM,YREC,XAVG_GFLUXC ,IRESP) 00765 YREC='LEGC_ISBA' 00766 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEGC ,IRESP) 00767 YREC='LEGIC_ISBA' 00768 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEGIC ,IRESP) 00769 YREC='LEVC_ISBA' 00770 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEVC ,IRESP) 00771 YREC='LESC_ISBA' 00772 CALL READ_SURF(HPROGRAM,YREC,XAVG_LESC ,IRESP) 00773 IF(TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO')THEN 00774 YREC='LESLC_ISBA' 00775 CALL READ_SURF(HPROGRAM,YREC,XAVG_LESLC ,IRESP) 00776 ELSE 00777 XAVG_LESLC = 0.0 00778 ENDIF 00779 YREC='LERC_ISBA' 00780 CALL READ_SURF(HPROGRAM,YREC,XAVG_LERC ,IRESP) 00781 YREC='LETRC_ISBA' 00782 CALL READ_SURF(HPROGRAM,YREC,XAVG_LETRC ,IRESP) 00783 YREC='EVAPC_ISBA' 00784 CALL READ_SURF(HPROGRAM,YREC,XAVG_EVAPC ,IRESP) 00785 YREC='DRAINC_ISBA' 00786 CALL READ_SURF(HPROGRAM,YREC,XAVG_DRAINC ,IRESP) 00787 YREC='RUNOFFC_ISBA' 00788 CALL READ_SURF(HPROGRAM,YREC,XAVG_RUNOFFC,IRESP) 00789 YREC='DRIVEGC_ISBA' 00790 CALL READ_SURF(HPROGRAM,YREC,XAVG_DRIPC ,IRESP) 00791 YREC='RRVEGC_ISBA' 00792 CALL READ_SURF(HPROGRAM,YREC,XAVG_RRVEGC ,IRESP) 00793 YREC='SNOMLTC_ISBA' 00794 CALL READ_SURF(HPROGRAM,YREC,XAVG_MELTC,IRESP) 00795 IF (LAGRIP) THEN 00796 YREC='IRRIGC_ISBA' 00797 CALL READ_SURF(HPROGRAM,YREC,XAVG_IRRIG_FLUXC,IRESP) 00798 ELSE 00799 XAVG_IRRIG_FLUXC = 0.0 00800 ENDIF 00801 ! 00802 IF(CPHOTO/='NON')THEN 00803 YREC='GPPC_ISBA' 00804 CALL READ_SURF(HPROGRAM,YREC,XAVG_GPPC,IRESP) 00805 YREC='RC_AUTO_ISBA' 00806 CALL READ_SURF(HPROGRAM,YREC,XAVG_RESPC_AUTO,IRESP) 00807 YREC='RC_ECO_ISBA' 00808 CALL READ_SURF(HPROGRAM,YREC,XAVG_RESPC_ECO,IRESP) 00809 ENDIF 00810 ! 00811 IF(CHORT=='SGH'.OR.CISBA=='DIF')THEN 00812 YREC='HORTONC_ISBA' 00813 CALL READ_SURF(HPROGRAM,YREC,XAVG_HORTC,IRESP) 00814 ELSE 00815 XAVG_HORTC = 0.0 00816 ENDIF 00817 ! 00818 IF(LFLOOD)THEN 00819 YREC='IFLOODC_ISBA' 00820 CALL READ_SURF(HPROGRAM,YREC,XAVG_IFLOODC,IRESP) 00821 YREC='PFLOODC_ISBA' 00822 CALL READ_SURF(HPROGRAM,YREC,XAVG_PFLOODC,IRESP) 00823 YREC='LEFC_ISBA' 00824 CALL READ_SURF(HPROGRAM,YREC,XAVG_LE_FLOODC,IRESP) 00825 YREC='LEIFC_ISBA' 00826 CALL READ_SURF(HPROGRAM,YREC,XAVG_LEI_FLOODC,IRESP) 00827 ELSE 00828 XAVG_IFLOODC = 0.0 00829 XAVG_PFLOODC = 0.0 00830 XAVG_LE_FLOODC = 0.0 00831 XAVG_LEI_FLOODC = 0.0 00832 ENDIF 00833 ! 00834 YREC='SWDC_ISBA' 00835 CALL READ_SURF(HPROGRAM,YREC,XAVG_SWDC,IRESP) 00836 YREC='SWUC_ISBA' 00837 CALL READ_SURF(HPROGRAM,YREC,XAVG_SWUC,IRESP) 00838 YREC='LWDC_ISBA' 00839 CALL READ_SURF(HPROGRAM,YREC,XAVG_LWDC,IRESP) 00840 YREC='LWUC_ISBA' 00841 CALL READ_SURF(HPROGRAM,YREC,XAVG_LWUC,IRESP) 00842 YREC='FMUC_ISBA' 00843 CALL READ_SURF(HPROGRAM,YREC,XAVG_FMUC,IRESP) 00844 YREC='FMVC_ISBA' 00845 CALL READ_SURF(HPROGRAM,YREC,XAVG_FMVC,IRESP) 00846 ! 00847 IF(LGLACIER)THEN 00848 YREC='ICE_FC_ISBA' 00849 CALL READ_SURF(HPROGRAM,YREC,XAVG_ICEFLUXC,IRESP) 00850 ENDIF 00851 ! 00852 IF(LWATER_BUDGET)THEN 00853 YREC='RAINFC_ISBA' 00854 CALL READ_SURF(HPROGRAM,YREC,XRAINFALLC,IRESP) 00855 YREC='SNOWFC_ISBA' 00856 CALL READ_SURF(HPROGRAM,YREC,XSNOWFALLC,IRESP) 00857 YREC='DWGC_ISBA' 00858 CALL READ_SURF(HPROGRAM,YREC,XAVG_DWGC,IRESP) 00859 YREC='DWGIC_ISBA' 00860 CALL READ_SURF(HPROGRAM,YREC,XAVG_DWGIC,IRESP) 00861 YREC='DWRC_ISBA' 00862 CALL READ_SURF(HPROGRAM,YREC,XAVG_DWRC,IRESP) 00863 YREC='DSWEC_ISBA' 00864 CALL READ_SURF(HPROGRAM,YREC,XAVG_DSWEC,IRESP) 00865 YREC='WATBUDC_ISBA' 00866 CALL READ_SURF(HPROGRAM,YREC,XAVG_WATBUDC,IRESP) 00867 ENDIF 00868 ! 00869 IF(LPATCH_BUDGET)THEN 00870 ! 00871 CALL READ_SURF(HPROGRAM,'VERSION',IVERSION,IRESP) 00872 CALL READ_SURF(HPROGRAM,'BUG ',IBUG,IRESP) 00873 YREC2='' 00874 IF (IVERSION<7 .OR. IVERSION==7 .AND. IBUG<3) YREC2='ATCH' 00875 YREC='RNC_P' 00876 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XRNC ,IRESP) 00877 YREC='HC_P' 00878 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XHC ,IRESP) 00879 YREC='LEC_P' 00880 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEC ,IRESP) 00881 YREC='LEIC_P' 00882 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEIC ,IRESP) 00883 YREC='GFLUXC_P' 00884 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XGFLUXC ,IRESP) 00885 YREC='LEGC_P' 00886 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEGC ,IRESP) 00887 YREC='LEGIC_P' 00888 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEGIC ,IRESP) 00889 YREC='LEVC_P' 00890 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEVC ,IRESP) 00891 YREC='LESC_P' 00892 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLESC ,IRESP) 00893 IF(TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO')THEN 00894 YREC='LESLC_P' 00895 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLESLC,IRESP) 00896 ELSE 00897 XLESLC = 0.0 00898 ENDIF 00899 YREC='LERC_P' 00900 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLERC ,IRESP) 00901 YREC='LETRC_P' 00902 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLETRC ,IRESP) 00903 YREC='EVAPC_P' 00904 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XEVAPC ,IRESP) 00905 YREC='DRAINC_P' 00906 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDRAINC ,IRESP) 00907 YREC='RUNOFFC_P' 00908 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XRUNOFFC,IRESP) 00909 YREC='DRIVEGC_P' 00910 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDRIPC,IRESP) 00911 YREC='RRVEGC_P' 00912 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XRRVEGC,IRESP) 00913 YREC='SNOMLTC_P' 00914 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XMELTC,IRESP) 00915 IF (LAGRIP) THEN 00916 YREC='IRRIGC_P' 00917 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XIRRIG_FLUXC,IRESP) 00918 ELSE 00919 XIRRIG_FLUXC = 0.0 00920 ENDIF 00921 ! 00922 IF(CPHOTO/='NON')THEN 00923 YREC='GPPC_P' 00924 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XGPPC,IRESP) 00925 YREC='RC_AUTO_P' 00926 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XRESPC_AUTO,IRESP) 00927 YREC='RC_ECO_P' 00928 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XRESPC_ECO,IRESP) 00929 ELSE 00930 XGPPC =0.0 00931 XRESPC_AUTO=0.0 00932 XRESPC_ECO =0.0 00933 ENDIF 00934 ! 00935 YREC='SWDC_P' 00936 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XSWDC,IRESP) 00937 YREC='SWUC_P' 00938 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XSWUC,IRESP) 00939 YREC='LWDC_P' 00940 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLWDC,IRESP) 00941 YREC='LWUC_P' 00942 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLWUC,IRESP) 00943 YREC='FMUC_P' 00944 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XFMUC,IRESP) 00945 YREC='FMVC_P' 00946 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XFMVC,IRESP) 00947 ! 00948 IF(LGLACIER)THEN 00949 YREC='ICE_FC_P' 00950 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XICEFLUXC,IRESP) 00951 ENDIF 00952 ! 00953 IF(CHORT=='SGH'.OR.CISBA=='DIF')THEN 00954 YREC='HORTONC_P' 00955 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XHORTC ,IRESP) 00956 ELSE 00957 XHORTC = 0.0 00958 ENDIF 00959 ! 00960 IF(LFLOOD)THEN 00961 YREC='IFLOODC_P' 00962 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XIFLOODC,IRESP) 00963 YREC='PFLOODC_P' 00964 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XPFLOODC,IRESP) 00965 YREC='LEFC_P' 00966 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLE_FLOODC,IRESP) 00967 YREC='LEIFC_P' 00968 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XLEI_FLOODC,IRESP) 00969 ELSE 00970 XIFLOODC = 0.0 00971 XPFLOODC = 0.0 00972 XLE_FLOODC = 0.0 00973 XLEI_FLOODC = 0.0 00974 ENDIF 00975 ! 00976 IF(LWATER_BUDGET)THEN 00977 YREC='DWGC_P' 00978 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDWGC,IRESP) 00979 YREC='DWGIC_P' 00980 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDWGIC,IRESP) 00981 YREC='DWRC_P' 00982 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDWRC,IRESP) 00983 YREC='DSWEC_P' 00984 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XDSWEC,IRESP) 00985 YREC='WATBUDC_P' 00986 CALL READ_SURF(HPROGRAM,TRIM(YREC)//YREC2,XWATBUDC,IRESP) 00987 ENDIF 00988 ! 00989 ELSE 00990 ! 00991 XRNC = 0.0 00992 XHC = 0.0 00993 XLEC = 0.0 00994 XLEIC = 0.0 00995 XGFLUXC = 0.0 00996 XLEGC = 0.0 00997 XLEGIC = 0.0 00998 XLEVC = 0.0 00999 XLESC = 0.0 01000 XLESLC = 0.0 01001 XLERC = 0.0 01002 XLETRC = 0.0 01003 XEVAPC = 0.0 01004 XDRAINC = 0.0 01005 XRUNOFFC = 0.0 01006 XHORTC = 0.0 01007 XDRIPC = 0.0 01008 XRRVEGC = 0.0 01009 XMELTC = 0.0 01010 XIRRIG_FLUXC = 0.0 01011 XGPPC = 0.0 01012 XRESPC_AUTO = 0.0 01013 XRESPC_ECO = 0.0 01014 XIFLOODC = 0.0 01015 XPFLOODC = 0.0 01016 XLE_FLOODC = 0.0 01017 XLEI_FLOODC = 0.0 01018 ! 01019 XSWDC = 0.0 01020 XSWUC = 0.0 01021 XLWDC = 0.0 01022 XLWUC = 0.0 01023 XFMUC = 0.0 01024 XFMVC = 0.0 01025 ! 01026 IF(LGLACIER)THEN 01027 XICEFLUXC=0.0 01028 ENDIF 01029 ! 01030 IF(LWATER_BUDGET)THEN 01031 XDWGC = 0.0 01032 XDWGIC = 0.0 01033 XDWRC = 0.0 01034 XDSWEC = 0.0 01035 XWATBUDC = 0.0 01036 ENDIF 01037 ! 01038 ENDIF 01039 ! 01040 ENDIF 01041 ELSE 01042 ALLOCATE(XAVG_RNC (0)) 01043 ALLOCATE(XAVG_HC (0)) 01044 ALLOCATE(XAVG_LEC (0)) 01045 ALLOCATE(XAVG_LEIC (0)) 01046 ALLOCATE(XAVG_GFLUXC (0)) 01047 ALLOCATE(XAVG_LEGC (0)) 01048 ALLOCATE(XAVG_LEGIC (0)) 01049 ALLOCATE(XAVG_LEVC (0)) 01050 ALLOCATE(XAVG_LESC (0)) 01051 ALLOCATE(XAVG_LESLC (0)) 01052 ALLOCATE(XAVG_LERC (0)) 01053 ALLOCATE(XAVG_LETRC (0)) 01054 ALLOCATE(XAVG_EVAPC (0)) 01055 ALLOCATE(XAVG_DRAINC (0)) 01056 ALLOCATE(XAVG_RUNOFFC (0)) 01057 ALLOCATE(XAVG_HORTC (0)) 01058 ALLOCATE(XAVG_DRIPC (0)) 01059 ALLOCATE(XAVG_RRVEGC (0)) 01060 ALLOCATE(XAVG_MELTC (0)) 01061 ALLOCATE(XAVG_IRRIG_FLUXC(0)) 01062 ALLOCATE(XAVG_GPPC (0)) 01063 ALLOCATE(XAVG_RESPC_AUTO (0)) 01064 ALLOCATE(XAVG_RESPC_ECO (0)) 01065 ALLOCATE(XAVG_IFLOODC (0)) 01066 ALLOCATE(XAVG_PFLOODC (0)) 01067 ALLOCATE(XAVG_LE_FLOODC (0)) 01068 ALLOCATE(XAVG_LEI_FLOODC (0)) 01069 01070 ! 01071 ALLOCATE(XRNC (0,0)) 01072 ALLOCATE(XHC (0,0)) 01073 ALLOCATE(XLEC (0,0)) 01074 ALLOCATE(XLEIC (0,0)) 01075 ALLOCATE(XGFLUXC (0,0)) 01076 ALLOCATE(XLEGC (0,0)) 01077 ALLOCATE(XLEGIC (0,0)) 01078 ALLOCATE(XLEVC (0,0)) 01079 ALLOCATE(XLESC (0,0)) 01080 ALLOCATE(XLESLC (0,0)) 01081 ALLOCATE(XLERC (0,0)) 01082 ALLOCATE(XLETRC (0,0)) 01083 ALLOCATE(XEVAPC (0,0)) 01084 ALLOCATE(XDRAINC (0,0)) 01085 ALLOCATE(XRUNOFFC (0,0)) 01086 ALLOCATE(XHORTC (0,0)) 01087 ALLOCATE(XDRIPC (0,0)) 01088 ALLOCATE(XRRVEGC (0,0)) 01089 ALLOCATE(XMELTC (0,0)) 01090 ALLOCATE(XIRRIG_FLUXC(0,0)) 01091 ALLOCATE(XGPPC (0,0)) 01092 ALLOCATE(XRESPC_AUTO (0,0)) 01093 ALLOCATE(XRESPC_ECO (0,0)) 01094 ALLOCATE(XIFLOODC (0,0)) 01095 ALLOCATE(XPFLOODC (0,0)) 01096 ALLOCATE(XLE_FLOODC (0,0)) 01097 ALLOCATE(XLEI_FLOODC (0,0)) 01098 ! 01099 ALLOCATE(XAVG_SWDC (0)) 01100 ALLOCATE(XAVG_SWUC (0)) 01101 ALLOCATE(XAVG_LWDC (0)) 01102 ALLOCATE(XAVG_LWUC (0)) 01103 ALLOCATE(XAVG_FMUC (0)) 01104 ALLOCATE(XAVG_FMVC (0)) 01105 ALLOCATE(XSWDC (0,0)) 01106 ALLOCATE(XSWUC (0,0)) 01107 ALLOCATE(XLWDC (0,0)) 01108 ALLOCATE(XLWUC (0,0)) 01109 ALLOCATE(XFMUC (0,0)) 01110 ALLOCATE(XFMVC (0,0)) 01111 ! 01112 ALLOCATE(XRAINFALLC (0)) 01113 ALLOCATE(XSNOWFALLC (0)) 01114 ALLOCATE(XAVG_DWGC (0)) 01115 ALLOCATE(XAVG_DWGIC (0)) 01116 ALLOCATE(XAVG_DWRC (0)) 01117 ALLOCATE(XAVG_DSWEC (0)) 01118 ALLOCATE(XAVG_WATBUDC(0)) 01119 ! 01120 ALLOCATE(XDWGC (0,0)) 01121 ALLOCATE(XDWGIC (0,0)) 01122 ALLOCATE(XDWRC (0,0)) 01123 ALLOCATE(XDSWEC (0,0)) 01124 ALLOCATE(XWATBUDC(0,0)) 01125 ! 01126 ENDIF 01127 ! 01128 IF(.NOT.LGLACIER)THEN 01129 ALLOCATE(XAVG_ICEFLUXC(0)) 01130 ALLOCATE(XICEFLUXC(0,0)) 01131 ENDIF 01132 ! 01133 ! 01134 !* surface temperature and parameters at 2m 01135 ! 01136 ALLOCATE(XTS (KLU,NPATCH)) 01137 ALLOCATE(XAVG_TS(KLU)) 01138 XTS = XUNDEF 01139 XAVG_TS = XUNDEF 01140 ALLOCATE(XTSRAD (KLU,NPATCH)) 01141 ALLOCATE(XAVG_TSRAD(KLU)) 01142 XTSRAD = XUNDEF 01143 XAVG_TSRAD = XUNDEF 01144 01145 ! 01146 IF (N2M>=1) THEN 01147 ALLOCATE(XAVG_RI (KLU)) 01148 ALLOCATE(XAVG_T2M (KLU)) 01149 ALLOCATE(XAVG_T2M_MIN (KLU)) 01150 ALLOCATE(XAVG_T2M_MAX (KLU)) 01151 ALLOCATE(XAVG_Q2M (KLU)) 01152 ALLOCATE(XAVG_HU2M (KLU)) 01153 ALLOCATE(XAVG_HU2M_MIN (KLU)) 01154 ALLOCATE(XAVG_HU2M_MAX (KLU)) 01155 ALLOCATE(XAVG_ZON10M (KLU)) 01156 ALLOCATE(XAVG_MER10M (KLU)) 01157 ALLOCATE(XAVG_WIND10M (KLU)) 01158 ALLOCATE(XAVG_WIND10M_MAX (KLU)) 01159 ALLOCATE(XAVG_SFCO2 (KLU)) 01160 XAVG_RI = XUNDEF 01161 XAVG_T2M = XUNDEF 01162 XAVG_T2M_MIN = XUNDEF 01163 XAVG_T2M_MAX = 0.0 01164 XAVG_Q2M = XUNDEF 01165 XAVG_HU2M = XUNDEF 01166 XAVG_HU2M_MIN= XUNDEF 01167 XAVG_HU2M_MAX= -XUNDEF 01168 XAVG_ZON10M = XUNDEF 01169 XAVG_MER10M = XUNDEF 01170 XAVG_WIND10M = XUNDEF 01171 XAVG_WIND10M_MAX = 0.0 01172 XAVG_SFCO2 = XUNDEF 01173 ! 01174 ALLOCATE(XRI (KLU,NPATCH)) 01175 ALLOCATE(XT2M (KLU,NPATCH)) 01176 ALLOCATE(XQ2M (KLU,NPATCH)) 01177 ALLOCATE(XHU2M (KLU,NPATCH)) 01178 ALLOCATE(XZON10M (KLU,NPATCH)) 01179 ALLOCATE(XMER10M (KLU,NPATCH)) 01180 ALLOCATE(XWIND10M(KLU,NPATCH)) 01181 ! 01182 XRI = XUNDEF 01183 XT2M = XUNDEF 01184 XQ2M = XUNDEF 01185 XHU2M = XUNDEF 01186 XZON10M = XUNDEF 01187 XMER10M = XUNDEF 01188 XWIND10M = XUNDEF 01189 ELSE 01190 ALLOCATE(XAVG_RI (0)) 01191 ALLOCATE(XAVG_T2M (0)) 01192 ALLOCATE(XAVG_T2M_MIN (0)) 01193 ALLOCATE(XAVG_T2M_MAX (0)) 01194 ALLOCATE(XAVG_Q2M (0)) 01195 ALLOCATE(XAVG_HU2M (0)) 01196 ALLOCATE(XAVG_HU2M_MIN (0)) 01197 ALLOCATE(XAVG_HU2M_MAX (0)) 01198 ALLOCATE(XAVG_ZON10M (0)) 01199 ALLOCATE(XAVG_MER10M (0)) 01200 ALLOCATE(XAVG_WIND10M (0)) 01201 ALLOCATE(XAVG_WIND10M_MAX (0)) 01202 ! 01203 ALLOCATE(XRI (0,0)) 01204 ALLOCATE(XT2M (0,0)) 01205 ALLOCATE(XQ2M (0,0)) 01206 ALLOCATE(XHU2M (0,0)) 01207 ALLOCATE(XZON10M (0,0)) 01208 ALLOCATE(XMER10M (0,0)) 01209 ALLOCATE(XWIND10M(0,0)) 01210 END IF 01211 ! 01212 !* miscellaneous surface fields 01213 ! 01214 IF (LSURF_MISC_BUDGET) THEN 01215 ALLOCATE(XAVG_HV (KLU)) 01216 ALLOCATE(XAVG_PSNG (KLU)) 01217 ALLOCATE(XAVG_PSNV (KLU)) 01218 ALLOCATE(XAVG_PSN (KLU)) 01219 ALLOCATE(XAVG_ALBT (KLU)) 01220 ALLOCATE(XAVG_LAI (KLU)) 01221 ! 01222 ALLOCATE(XAVG_FSAT (KLU)) 01223 ALLOCATE(XAVG_FFG (KLU)) 01224 ALLOCATE(XAVG_FFV (KLU)) 01225 ALLOCATE(XAVG_FF (KLU)) 01226 ! 01227 ALLOCATE(XSOIL_TSWI (KLU)) 01228 ALLOCATE(XSOIL_TWG (KLU)) 01229 ALLOCATE(XSOIL_TWGI (KLU)) 01230 ALLOCATE(XAVG_SWI (KLU,NGROUND_LAYER)) 01231 ALLOCATE(XAVG_TSWI (KLU,NGROUND_LAYER)) 01232 ! 01233 ALLOCATE(XAVG_TWSNOW (KLU)) 01234 ALLOCATE(XAVG_TDSNOW (KLU)) 01235 ALLOCATE(XAVG_TTSNOW (KLU)) 01236 ! 01237 XAVG_HV = XUNDEF 01238 XAVG_SWI = XUNDEF 01239 XAVG_TSWI = XUNDEF 01240 XSOIL_TSWI = XUNDEF 01241 XSOIL_TWG = XUNDEF 01242 XSOIL_TWGI = XUNDEF 01243 XAVG_PSNG = XUNDEF 01244 XAVG_PSNV = XUNDEF 01245 XAVG_PSN = XUNDEF 01246 XAVG_ALBT = XUNDEF 01247 XAVG_LAI = XUNDEF 01248 XAVG_FSAT = XUNDEF 01249 XAVG_FFG = XUNDEF 01250 XAVG_FFV = XUNDEF 01251 XAVG_FF = XUNDEF 01252 XAVG_TWSNOW = XUNDEF 01253 XAVG_TDSNOW = XUNDEF 01254 XAVG_TTSNOW = XUNDEF 01255 ! 01256 ALLOCATE(XHV (KLU,NPATCH)) 01257 ALLOCATE(XSWI (KLU,NGROUND_LAYER,NPATCH)) 01258 ALLOCATE(XTSWI (KLU,NGROUND_LAYER,NPATCH)) 01259 ALLOCATE(XTWSNOW (KLU,NPATCH)) 01260 ALLOCATE(XTDSNOW (KLU,NPATCH)) 01261 ALLOCATE(XTTSNOW (KLU,NPATCH)) 01262 ALLOCATE(XDPSNG (KLU,NPATCH)) 01263 ALLOCATE(XDPSNV (KLU,NPATCH)) 01264 ALLOCATE(XDPSN (KLU,NPATCH)) 01265 ALLOCATE(XALBT (KLU,NPATCH)) 01266 ! 01267 ALLOCATE(XDFSAT (KLU,NPATCH)) 01268 ALLOCATE(XDFFG (KLU,NPATCH)) 01269 ALLOCATE(XDFFV (KLU,NPATCH)) 01270 ALLOCATE(XDFF (KLU,NPATCH)) 01271 ! 01272 ALLOCATE(XSNOWLIQ (KLU,TSNOW%NLAYER,NPATCH)) 01273 ALLOCATE(XSNOWTEMP (KLU,TSNOW%NLAYER,NPATCH)) 01274 ! 01275 XHV = XUNDEF 01276 XSWI = XUNDEF 01277 XTSWI = XUNDEF 01278 XTWSNOW = XUNDEF 01279 XTDSNOW = XUNDEF 01280 XTTSNOW = XUNDEF 01281 XDPSNG = XUNDEF 01282 XDPSNV = XUNDEF 01283 XDPSN = XUNDEF 01284 XALBT = XUNDEF 01285 XDFSAT = XUNDEF 01286 XDFFG = XUNDEF 01287 XDFFV = XUNDEF 01288 XDFF = XUNDEF 01289 XSNOWLIQ = XUNDEF 01290 XSNOWTEMP= XUNDEF 01291 ! 01292 IF(CISBA=='DIF'.AND.LSURF_MISC_DIF)THEN 01293 ALLOCATE(XSURF_TSWI(KLU)) 01294 ALLOCATE(XSURF_TWG (KLU)) 01295 ALLOCATE(XSURF_TWGI(KLU)) 01296 ALLOCATE(XROOT_TSWI(KLU)) 01297 ALLOCATE(XROOT_TWG (KLU)) 01298 ALLOCATE(XROOT_TWGI(KLU)) 01299 ALLOCATE(XFRD2_TSWI(KLU)) 01300 ALLOCATE(XFRD2_TWG (KLU)) 01301 ALLOCATE(XFRD2_TWGI(KLU)) 01302 ALLOCATE(XFRD3_TSWI(KLU)) 01303 ALLOCATE(XFRD3_TWG (KLU)) 01304 ALLOCATE(XFRD3_TWGI(KLU)) 01305 XSURF_TSWI = XUNDEF 01306 XSURF_TWG = XUNDEF 01307 XSURF_TWGI = XUNDEF 01308 XROOT_TSWI = XUNDEF 01309 XROOT_TWG = XUNDEF 01310 XROOT_TWGI = XUNDEF 01311 XFRD2_TSWI = XUNDEF 01312 XFRD2_TWG = XUNDEF 01313 XFRD2_TWGI = XUNDEF 01314 XFRD3_TSWI = XUNDEF 01315 XFRD3_TWG = XUNDEF 01316 XFRD3_TWGI = XUNDEF 01317 ENDIF 01318 ! 01319 IF(CISBA=='DIF')THEN 01320 ALLOCATE(XALT(KLU,NPATCH)) 01321 ALLOCATE(XFLT(KLU,NPATCH)) 01322 ALLOCATE(XAVG_ALT(KLU)) 01323 ALLOCATE(XAVG_FLT(KLU)) 01324 XALT = XUNDEF 01325 XFLT = XUNDEF 01326 XAVG_ALT = XUNDEF 01327 XAVG_FLT = XUNDEF 01328 ENDIF 01329 ! 01330 IF (LTR_ML) THEN 01331 ALLOCATE (XFAPAR (KLU, NPATCH)) 01332 ALLOCATE (XFAPIR (KLU, NPATCH)) 01333 ALLOCATE (XFAPAR_BS (KLU, NPATCH)) 01334 ALLOCATE (XFAPIR_BS (KLU, NPATCH)) 01335 ALLOCATE (XDFAPARC (KLU, NPATCH)) 01336 ALLOCATE (XDFAPIRC (KLU, NPATCH)) 01337 ALLOCATE (XDLAI_EFFC (KLU, NPATCH)) 01338 ! 01339 XFAPAR = XUNDEF 01340 XFAPIR = XUNDEF 01341 XFAPAR_BS = XUNDEF 01342 XFAPIR_BS = XUNDEF 01343 XDFAPARC = 0. 01344 XDFAPIRC = 0. 01345 XDLAI_EFFC = 0. 01346 ENDIF 01347 ! 01348 ELSE 01349 ALLOCATE(XAVG_HV (0)) 01350 ALLOCATE(XAVG_PSNG (0)) 01351 ALLOCATE(XAVG_PSNV (0)) 01352 ALLOCATE(XAVG_PSN (0)) 01353 ALLOCATE(XAVG_ALBT (0)) 01354 ALLOCATE(XAVG_LAI (0)) 01355 ! 01356 ALLOCATE(XAVG_FSAT (0)) 01357 ALLOCATE(XAVG_FFG (0)) 01358 ALLOCATE(XAVG_FFV (0)) 01359 ALLOCATE(XAVG_FF (0)) 01360 ! 01361 ALLOCATE(XSOIL_TSWI (0)) 01362 ALLOCATE(XSOIL_TWG (0)) 01363 ALLOCATE(XSOIL_TWGI (0)) 01364 ALLOCATE(XAVG_SWI (0,0)) 01365 ALLOCATE(XAVG_TSWI (0,0)) 01366 ! 01367 ALLOCATE(XAVG_TWSNOW (0)) 01368 ALLOCATE(XAVG_TDSNOW (0)) 01369 ALLOCATE(XAVG_TTSNOW (0)) 01370 ! 01371 ALLOCATE(XHV (0,0)) 01372 ALLOCATE(XSWI (0,0,0)) 01373 ALLOCATE(XTSWI (0,0,0)) 01374 ALLOCATE(XTWSNOW (0,0)) 01375 ALLOCATE(XTDSNOW (0,0)) 01376 ALLOCATE(XTTSNOW (0,0)) 01377 ALLOCATE(XDPSNG (0,0)) 01378 ALLOCATE(XDPSNV (0,0)) 01379 ALLOCATE(XDPSN (0,0)) 01380 ALLOCATE(XALBT (0,0)) 01381 ! 01382 ALLOCATE(XDFSAT (0,0)) 01383 ALLOCATE(XDFFG (0,0)) 01384 ALLOCATE(XDFFV (0,0)) 01385 ALLOCATE(XDFF (0,0)) 01386 ! 01387 ALLOCATE(XSNOWLIQ (0,0,0)) 01388 ALLOCATE(XSNOWTEMP (0,0,0)) 01389 END IF 01390 ! 01391 IF (CISBA/='DIF') THEN 01392 ALLOCATE(XSURF_TSWI(0)) 01393 ALLOCATE(XSURF_TWG (0)) 01394 ALLOCATE(XSURF_TWGI(0)) 01395 ALLOCATE(XROOT_TSWI(0)) 01396 ALLOCATE(XROOT_TWG (0)) 01397 ALLOCATE(XROOT_TWGI(0)) 01398 ALLOCATE(XFRD2_TSWI(0)) 01399 ALLOCATE(XFRD2_TWG (0)) 01400 ALLOCATE(XFRD2_TWGI(0)) 01401 ALLOCATE(XFRD3_TSWI(0)) 01402 ALLOCATE(XFRD3_TWG (0)) 01403 ALLOCATE(XFRD3_TWGI(0)) 01404 ALLOCATE(XALT(0,0)) 01405 ALLOCATE(XFLT(0,0)) 01406 ALLOCATE(XAVG_ALT(0)) 01407 ALLOCATE(XAVG_FLT(0)) 01408 ENDIF 01409 ! 01410 IF (.NOT.LTR_ML) THEN 01411 ALLOCATE (XFAPAR (0, 0)) 01412 ALLOCATE (XFAPIR (0, 0)) 01413 ALLOCATE (XFAPAR_BS (0, 0)) 01414 ALLOCATE (XFAPIR_BS (0, 0)) 01415 ALLOCATE (XDFAPARC (0, 0)) 01416 ALLOCATE (XDFAPIRC (0, 0)) 01417 ALLOCATE (XDLAI_EFFC (0, 0)) 01418 ENDIF 01419 ! 01420 !* transfer coefficients 01421 ! 01422 IF (LCOEF) THEN 01423 ALLOCATE(XAVG_CD (KLU)) 01424 ALLOCATE(XAVG_CH (KLU)) 01425 ALLOCATE(XAVG_CE (KLU)) 01426 ALLOCATE(XAVG_Z0 (KLU)) 01427 ALLOCATE(XAVG_Z0H (KLU)) 01428 ALLOCATE(XAVG_Z0EFF(KLU)) 01429 ! 01430 XAVG_CD = XUNDEF 01431 XAVG_CH = XUNDEF 01432 XAVG_CE = XUNDEF 01433 XAVG_Z0 = XUNDEF 01434 XAVG_Z0H = XUNDEF 01435 XAVG_Z0EFF = XUNDEF 01436 ! 01437 ALLOCATE(XCD (KLU,NPATCH)) 01438 ALLOCATE(XCH (KLU,NPATCH)) 01439 ALLOCATE(XCE (KLU,NPATCH)) 01440 ALLOCATE(XZ0_WITH_SNOW (KLU,NPATCH)) 01441 ALLOCATE(XZ0H_WITH_SNOW (KLU,NPATCH)) 01442 ALLOCATE(XZ0EFF (KLU,NPATCH)) 01443 ! 01444 XCD = XUNDEF 01445 XCH = XUNDEF 01446 XCE = XUNDEF 01447 XZ0_WITH_SNOW = XUNDEF 01448 XZ0H_WITH_SNOW = XUNDEF 01449 XZ0EFF = XUNDEF 01450 ELSE 01451 ALLOCATE(XAVG_CD (0)) 01452 ALLOCATE(XAVG_CH (0)) 01453 ALLOCATE(XAVG_CE (0)) 01454 ALLOCATE(XAVG_Z0 (0)) 01455 ALLOCATE(XAVG_Z0H (0)) 01456 ALLOCATE(XAVG_Z0EFF(0)) 01457 ! 01458 ALLOCATE(XCD (0,0)) 01459 ALLOCATE(XCH (0,0)) 01460 ALLOCATE(XCE (0,0)) 01461 ALLOCATE(XZ0_WITH_SNOW (0,0)) 01462 ALLOCATE(XZ0H_WITH_SNOW (0,0)) 01463 ALLOCATE(XZ0EFF (0,0)) 01464 END IF 01465 ! 01466 ! 01467 !* surface humidity 01468 ! 01469 IF (LSURF_VARS) THEN 01470 ALLOCATE(XAVG_QS (KLU)) 01471 ! 01472 XAVG_QS = XUNDEF 01473 ! 01474 ALLOCATE(XQS (KLU,NPATCH)) 01475 ! 01476 XQS = XUNDEF 01477 ELSE 01478 ALLOCATE(XQS (0,0)) 01479 END IF 01480 ! 01481 !* Irrigation threshold 01482 ! 01483 IF (LAGRIP) THEN 01484 ALLOCATE(XSEUIL (KLU,NPATCH)) 01485 ! 01486 XSEUIL = XUNDEF 01487 ELSE 01488 ALLOCATE(XSEUIL (0,0)) 01489 END IF 01490 ! 01491 !* Chemical fluxes 01492 IF (NBEQ>0 .AND. LCH_BIO_FLUX) THEN 01493 ALLOCATE(XFISO(KLU)) 01494 ALLOCATE(XFMONO(KLU)) 01495 ! 01496 XFISO = XUNDEF 01497 XFMONO = XUNDEF 01498 ELSE 01499 ALLOCATE(XFISO(0)) 01500 ALLOCATE(XFMONO(0)) 01501 ENDIF 01502 ! 01503 IF (CPHOTO/='NON') THEN 01504 ALLOCATE(XIACAN(KLU,SIZE(XABC),NPATCH)) 01505 ! 01506 XIACAN = XUNDEF 01507 ! 01508 ELSE 01509 ALLOCATE(XIACAN(0,0,0)) 01510 ENDIF 01511 ! 01512 IF (LHOOK) CALL DR_HOOK('DIAG_ISBA_INIT_N',1,ZHOOK_HANDLE) 01513 !------------------------------------------------------------------------------- 01514 ! 01515 END SUBROUTINE DIAG_ISBA_INIT_n