SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GARDEN(HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, & 00003 PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, & 00004 PTSTEP, PZ_LOWCAN, & 00005 PT_LOWCAN, PQ_LOWCAN, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, & 00006 PSW, PLW, PU_LOWCAN, & 00007 PRN_GARDEN,PH_GARDEN,PLE_GARDEN,PGFLUX_GARDEN,PSFCO2, & 00008 PEVAP_GARDEN, PUW_GARDEN, & 00009 PAC_GARDEN,PQSAT_GARDEN,PTS_GARDEN, & 00010 PAC_AGG_GARDEN, PHU_AGG_GARDEN ) 00011 ! ########################################################################## 00012 ! 00013 !!**** *GARDEN* 00014 !! 00015 !! PURPOSE 00016 !! ------- 00017 ! 00018 !!call the vegetation scheme (ISBA) inside TEB 00019 ! 00020 !!** METHOD 00021 ! ------ 00022 ! 00023 ! 00024 !! EXTERNAL 00025 !! -------- 00026 !! 00027 !! 00028 !! IMPLICIT ARGUMENTS 00029 !! ------------------ 00030 !! 00031 !! 00032 !! REFERENCE 00033 !! --------- 00034 !! 00035 !! 00036 !! AUTHOR 00037 !! ------ 00038 !! 00039 !! A. Lemonsu * Meteo-France * 00040 !! 00041 !! MODIFICATIONS 00042 !! ------------- 00043 !! Original 05/2009 00044 !------------------------------------------------------------------------------- 00045 ! 00046 !* 0. DECLARATIONS 00047 ! ------------ 00048 ! 00049 USE MODD_TYPE_DATE_SURF, ONLY: DATE_TIME 00050 USE MODD_SURF_PAR, ONLY: XUNDEF 00051 USE MODD_CSTS, ONLY: XCPD 00052 USE MODD_TEB_n, ONLY: XCOVER, XGARDEN 00053 USE MODD_TEB_GRID_n, ONLY: XLAT, XLON 00054 USE MODD_TEB_VEG_n, ONLY: CISBA, CPHOTO, CRESPSL, LTR_ML, CRUNOFF, & 00055 CC1DRY, & 00056 CSCOND, NNBIOMASS, CRESPSL, CALBEDO, & 00057 CSOILFRZ, CDIFSFCOND, CCPSURF, & 00058 CKSAT, CSOC, CHORT, CSNOWRES, XCGMAX 00059 USE MODD_TEB_GARDEN_n, ONLY: LPAR_GARDEN, LSTRESS, & 00060 TSNOW, & 00061 XEMIS, XVEG, XLAI, XWRMAX_CF, XRSMIN, & 00062 XGAMMA, XCV, XRGL, XRUNOFFD, & 00063 XZ0, XZ0_O_Z0H, XRUNOFFB, XWDRAIN, & 00064 XCGSAT, XC1SAT, XC2REF, XC3, XC4B, & 00065 XC4REF, XACOEF, XPCOEF, XTAUICE, & 00066 XWR, XRESA, XAN, & 00067 XANFM, XANDAY, XABC, XPOI, & 00068 XFZERO, XEPSO, XGAMM, XQDGAMM, & 00069 XGMES, XQDGMES, XT1GMES, XT2GMES, & 00070 XRESP_BIOMASS, XBSLAI, XLAIMIN, XSEFOLD, & 00071 XAMAX, XQDAMAX, XT1AMAX, XT2AMAX, & 00072 XF2I, XGC, XAH, XBH, XDMAX, & 00073 XDG, XROOTFRAC, XDZG, XDZDIF, NWG_LAYER, & 00074 XTG, XWG, XWGI, XPCPS, & 00075 XPLVTT, XPLSTT, XWFC, XWWILT, XWSAT, & 00076 XBCOEF, XCONDSAT, XMPOTSAT, XHCAPSOIL, & 00077 XCE_NITRO, XCF_NITRO, XCNA_NITRO, & 00078 XCONDDRY, XCONDSLD, XRE25, & 00079 XKSAT_ICE, XD_ICE, & 00080 XALBNIR, XALBVIS, XALBUV, & 00081 XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, & 00082 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00083 XALBNIR_TVEG, XALBVIS_TVEG, & 00084 XALBNIR_TSOIL, XALBVIS_TSOIL, & 00085 XLE, XANF, XSAND, XSOILWGHT, & 00086 XPSN, XPSNV, XPSNG, XPSNV_A, & 00087 XLAI_EFFC, XFAPARC, XFAPIRC, XMUS, & 00088 NLAYER_HORT, NLAYER_DUN, & 00089 XSNOWFREE_ALB_VEG, XSNOWFREE_ALB_SOIL, & 00090 XSNOWFREE_ALB, XVEGTYPE, & 00091 XANMAX, XBIOMASS, & 00092 XBSLAI_NITRO, XH_TREE 00093 ! 00094 USE MODI_ISBA 00095 USE MODI_VEGETATION_UPDATE_GARDEN 00096 USE MODE_THERMOS 00097 ! 00098 USE MODI_FLAG_TEB_GARDEN_n 00099 USE MODI_CARBON_EVOL 00100 USE MODI_VEGETATION_EVOL 00101 ! 00102 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00103 USE PARKIND1 ,ONLY : JPRB 00104 ! 00105 IMPLICIT NONE 00106 ! 00107 !* 0.1 Declarations of arguments 00108 ! 00109 CHARACTER(LEN=*), INTENT(IN) :: HIMPLICIT_WIND ! wind implicitation option 00110 ! ! 'OLD' = direct 00111 ! ! 'NEW' = Taylor serie, order 1 00112 TYPE(DATE_TIME) , INTENT(IN) :: TPTIME ! current date and time from teb 00113 REAL, DIMENSION(:) , INTENT(IN) :: PTSUN ! solar time (s from midnight) 00114 REAL, DIMENSION(:) , INTENT(IN) :: PPEW_A_COEF ! implicit coefficients 00115 REAL, DIMENSION(:) , INTENT(IN) :: PPEW_B_COEF ! for wind coupling 00116 REAL, DIMENSION(:) , INTENT(IN) :: PPEQ_A_COEF ! implicit coefficients 00117 REAL, DIMENSION(:) , INTENT(IN) :: PPEQ_B_COEF ! for humidity 00118 REAL, DIMENSION(:) , INTENT(IN) :: PPET_A_COEF ! implicit coefficients 00119 REAL, DIMENSION(:) , INTENT(IN) :: PPET_B_COEF ! for temperature 00120 REAL , INTENT(IN) :: PTSTEP ! time step 00121 REAL, DIMENSION(:) , INTENT(IN) :: PZ_LOWCAN ! height of atm. var. near the road 00122 REAL, DIMENSION(:) , INTENT(IN) :: PT_LOWCAN ! temp. near the road 00123 REAL, DIMENSION(:) , INTENT(IN) :: PQ_LOWCAN ! hum. near the road 00124 REAL, DIMENSION(:) , INTENT(IN) :: PPS ! pressure at the surface 00125 REAL, DIMENSION(:) , INTENT(IN) :: PEXNS ! surface exner function 00126 REAL, DIMENSION(:) , INTENT(IN) :: PRHOA ! air density at the lowest level 00127 REAL, DIMENSION(:) , INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) 00128 REAL, DIMENSION(:) , INTENT(IN) :: PRR ! rain rate 00129 REAL, DIMENSION(:) , INTENT(IN) :: PSR ! snow rate 00130 REAL, DIMENSION(:) , INTENT(IN) :: PZENITH ! solar zenithal angle 00131 REAL, DIMENSION(:), INTENT(IN) :: PSW ! incoming total solar rad on an horizontal surface 00132 REAL, DIMENSION(:) , INTENT(IN) :: PLW ! atmospheric infrared radiation 00133 REAL, DIMENSION(:) , INTENT(IN) :: PU_LOWCAN ! wind near the road 00134 00135 REAL, DIMENSION(:) , INTENT(OUT) :: PRN_GARDEN ! net radiation over green areas 00136 REAL, DIMENSION(:) , INTENT(OUT) :: PH_GARDEN ! sensible heat flux over green areas 00137 REAL, DIMENSION(:) , INTENT(OUT) :: PLE_GARDEN ! latent heat flux over green areas 00138 REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_GARDEN ! flux through the green areas 00139 REAL, DIMENSION(:) , INTENT(OUT) :: PSFCO2 ! flux of CO2 positive toward the atmosphere (kg/m2/s) 00140 REAL, DIMENSION(:) , INTENT(OUT) :: PEVAP_GARDEN ! total evaporation over gardens (kg/m2/s) 00141 REAL, DIMENSION(:) , INTENT(OUT) :: PUW_GARDEN ! friction flux (m2/s2) 00142 REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GARDEN ! aerodynamical conductance 00143 REAL, DIMENSION(:) , INTENT(OUT) :: PQSAT_GARDEN ! saturation humidity 00144 REAL, DIMENSION(:) , INTENT(INOUT) :: PTS_GARDEN ! radiative surface temp. (snow free) 00145 REAL, DIMENSION(:) , INTENT(OUT) :: PAC_AGG_GARDEN ! aggreg. aeodynamic resistance for green areas for latent heat flux 00146 REAL, DIMENSION(:) , INTENT(OUT) :: PHU_AGG_GARDEN ! aggreg. relative humidity for green areas for latent heat flux 00147 ! 00148 ! 00149 !* 0.2 Declarations of local variables 00150 ! 00151 CHARACTER(LEN=3) :: HRAIN ! Rainfall spatial distribution 00152 ! 'DEF' = No rainfall spatial distribution 00153 ! 'SGH' = Rainfall exponential spatial distribution 00154 LOGICAL :: OFLOOD ! Activation of the flooding scheme 00155 LOGICAL :: OTEMP_ARP ! True = time-varying force-restore soil temperature (as in ARPEGE) 00156 ! False = No time-varying force-restore soil temperature (Default) 00157 LOGICAL :: OGLACIER ! True = Over permanent snow and ice, 00158 ! initialise WGI=WSAT, 00159 ! Hsnow>=10m and allow 0.8<SNOALB<0.85 00160 ! False = No specific treatment 00161 REAL, DIMENSION(0) :: PSODELX ! Pulsation for each layer (Only used if LTEMP_ARP=True) 00162 REAL, DIMENSION(SIZE(PPS)) :: PMUF ! fraction of the grid cell reached by the rainfall 00163 REAL, DIMENSION(SIZE(PPS)) :: PFSAT ! Topmodel saturated fraction 00164 REAL, DIMENSION(SIZE(PPS)) :: ZDIRCOSZW ! orography slope cosine (=1 in TEB) 00165 REAL, DIMENSION(SIZE(PPS),NNBIOMASS) :: ZRESP_BIOMASS_INST ! instantaneous biomass respiration (kgCO2/kgair m/s) 00166 ! 00167 ! temperatures 00168 ! 00169 REAL, DIMENSION(SIZE(PPS)) :: ZTA ! estimate of air temperature at future time 00170 ! ! step as if modified by ISBA flux alone. 00171 REAL, DIMENSION(SIZE(PPS)) :: ZDEEP_FLUX ! heat flux at base of the deep soil 00172 ! 00173 ! desactivated diag 00174 ! 00175 REAL, DIMENSION(SIZE(PPS)) :: ZRN_ISBA ! net radiative flux from snow-free surface 00176 REAL, DIMENSION(SIZE(PPS)) :: ZH_ISBA ! sensible heat flux from snow-free surface 00177 REAL, DIMENSION(SIZE(PPS)) :: ZLEI_ISBA ! baresoil evaporation from snow-free surface 00178 REAL, DIMENSION(SIZE(PPS)) :: ZLEG_ISBA ! baresoil evaporation from snow-free surface 00179 REAL, DIMENSION(SIZE(PPS)) :: ZLEGI_ISBA ! baresoil sublimation from snow-free surface 00180 REAL, DIMENSION(SIZE(PPS)) :: ZLEV_ISBA ! total evapotranspiration from vegetation over 00181 REAL, DIMENSION(SIZE(PPS)) :: ZLETR_ISBA ! transpiration from snow-free surface 00182 REAL, DIMENSION(SIZE(PPS)) :: ZUSTAR_ISBA ! friction velocity from snow-free 00183 REAL, DIMENSION(SIZE(PPS)) :: ZLER_ISBA ! evaporation from canopy water interception 00184 REAL, DIMENSION(SIZE(PPS)) :: ZLE_ISBA ! latent heat flux from snow-free surface 00185 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUX_ISBA ! net energy flux into the snow-free surface 00186 REAL, DIMENSION(SIZE(PPS)) :: ZRNSNOW ! net radiative flux from snow (ISBA-ES:3-L) (W/m2) 00187 REAL, DIMENSION(SIZE(PPS)) :: ZHSNOW ! sensible heat flux from snow (ISBA-ES:3-L) (W/m2) 00188 REAL, DIMENSION(SIZE(PPS)) :: ZHPSNOW ! heat release from rainfall (ISBA-ES:3-L) (W/m2) 00189 REAL, DIMENSION(SIZE(PPS)) :: ZSMELTFLUX ! energy removed from soil/vegetation surface 00190 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUXSNOW ! net surface energy flux into snowpack (ISBA-ES:3-L)(W/m2) 00191 REAL, DIMENSION(SIZE(PPS)) :: ZUSTARSNOW ! friction velocity over snow (ISBA-ES:3-L) (m/s) 00192 REAL, DIMENSION(SIZE(PPS)) :: ZGRNDFLUX ! soil/snow interface heat flux (ISBA-ES:3-L) (W/m2) 00193 REAL, DIMENSION(SIZE(PPS)) :: ZSRSFC ! snowfall over snowpack (ISBA-ES:3-L) (kg/m2/s) 00194 REAL, DIMENSION(SIZE(PPS)) :: ZRRSFC ! rainfall over snowpack (ISBA-ES:3-L) (kg/m2/s) 00195 REAL, DIMENSION(SIZE(PPS)) :: ZLESL ! snowpack evaporation (ISBA-ES:3-L) (W/m2) 00196 REAL, DIMENSION(SIZE(PPS)) :: ZCDSNOW ! snow drag coefficient (ISBA-ES:3-L) (-) 00197 REAL, DIMENSION(SIZE(PPS)) :: ZCHSNOW ! heat turbulent transfer coefficient (-) 00198 ! 00199 REAL, DIMENSION(SIZE(PPS)) :: ZCG 00200 REAL, DIMENSION(SIZE(PPS)) :: ZC1 00201 REAL, DIMENSION(SIZE(PPS)) :: ZC2 00202 REAL, DIMENSION(SIZE(PPS)) :: ZWGEQ 00203 REAL, DIMENSION(SIZE(PPS)) :: ZCT 00204 REAL, DIMENSION(SIZE(PPS)) :: ZRS 00205 REAL, DIMENSION(SIZE(PPS)) :: ZCH 00206 REAL, DIMENSION(SIZE(PPS)) :: ZCD 00207 REAL, DIMENSION(SIZE(PPS)) :: ZCDN 00208 REAL, DIMENSION(SIZE(PPS)) :: ZRI 00209 REAL, DIMENSION(SIZE(PPS)) :: ZHU 00210 REAL, DIMENSION(SIZE(PPS)) :: ZHUG 00211 REAL, DIMENSION(SIZE(PPS)) :: ZRN 00212 REAL, DIMENSION(SIZE(PPS)) :: ZH 00213 REAL, DIMENSION(SIZE(PPS)) :: ZLEI 00214 REAL, DIMENSION(SIZE(PPS)) :: ZLEG 00215 REAL, DIMENSION(SIZE(PPS)) :: ZLEGI 00216 REAL, DIMENSION(SIZE(PPS)) :: ZLEV 00217 REAL, DIMENSION(SIZE(PPS)) :: ZLES 00218 REAL, DIMENSION(SIZE(PPS)) :: ZLER 00219 REAL, DIMENSION(SIZE(PPS)) :: ZLETR 00220 REAL, DIMENSION(SIZE(PPS)) :: ZEVAP 00221 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUX 00222 REAL, DIMENSION(SIZE(PPS)) :: ZRESTORE 00223 REAL, DIMENSION(SIZE(PPS)) :: ZUSTAR 00224 REAL, DIMENSION(SIZE(PPS)) :: ZDRAIN 00225 REAL, DIMENSION(SIZE(PPS)) :: ZRUNOFF 00226 REAL, DIMENSION(SIZE(PPS)) :: ZMELT 00227 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWTEMP 00228 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWLIQ 00229 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWDZ 00230 REAL, DIMENSION(SIZE(PPS)) :: ZSNOWHMASS 00231 REAL, DIMENSION(SIZE(PPS)) :: ZMELTADV 00232 REAL, DIMENSION(SIZE(PPS),SIZE(XABC)) :: ZIACAN 00233 REAL, DIMENSION(SIZE(PPS)) :: ZQS 00234 REAL, DIMENSION(SIZE(PPS)) :: ZHV 00235 REAL, DIMENSION(SIZE(PPS)) :: ZHORT 00236 REAL, DIMENSION(SIZE(PPS)) :: ZDRIP 00237 REAL, DIMENSION(SIZE(PPS)) :: ZTS 00238 REAL, DIMENSION(SIZE(PPS)) :: ZRRVEG 00239 REAL, DIMENSION(SIZE(PPS)) :: ZALBT 00240 REAL, DIMENSION(SIZE(PPS)) :: ZEMIST 00241 REAL, DIMENSION(SIZE(PPS)) :: ZGPP 00242 REAL, DIMENSION(SIZE(PPS)) :: ZRESP_AUTO 00243 REAL, DIMENSION(SIZE(PPS)) :: ZRESP_ECO 00244 REAL, DIMENSION(SIZE(PPS)) :: ZFAPAR 00245 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIR 00246 REAL, DIMENSION(SIZE(PPS)) :: ZFAPARC 00247 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIRC 00248 REAL, DIMENSION(SIZE(PPS)) :: ZLAI_EFFC 00249 REAL, DIMENSION(SIZE(PPS)) :: ZFAPAR_BS 00250 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIR_BS 00251 REAL, DIMENSION(SIZE(PPS)) :: ZDFAPARC 00252 REAL, DIMENSION(SIZE(PPS)) :: ZDFAPIRC 00253 REAL, DIMENSION(SIZE(PPS)) :: ZDLAI_EFFC 00254 REAL, DIMENSION(SIZE(PPS)) :: ZMUS 00255 REAL, DIMENSION(SIZE(PPS)) :: ZIRRIG_FLUX 00256 REAL, DIMENSION(0,0,0) :: ZLITTER 00257 REAL, DIMENSION(0,0) :: ZLIGNIN_STRUC , ZSOILCARB, ZTURNOVER 00258 ! 00259 ! surfaces relative fractions 00260 ! for flood 00261 REAL, DIMENSION(SIZE(PPS)) :: ZFFG 00262 REAL, DIMENSION(SIZE(PPS)) :: ZFFV 00263 REAL, DIMENSION(SIZE(PPS)) :: ZFF 00264 REAL, DIMENSION(SIZE(PPS)) :: ZALBF 00265 REAL, DIMENSION(SIZE(PPS)) :: ZEMISF 00266 REAL, DIMENSION(SIZE(PPS)) :: ZFFROZEN 00267 REAL, DIMENSION(SIZE(PPS)) :: ZFFLOOD 00268 REAL, DIMENSION(SIZE(PPS)) :: ZPIFLOOD 00269 REAL, DIMENSION(SIZE(PPS)) :: ZIFLOOD 00270 REAL, DIMENSION(SIZE(PPS)) :: ZPFLOOD 00271 REAL, DIMENSION(SIZE(PPS)) :: ZLEFLOOD 00272 REAL, DIMENSION(SIZE(PPS)) :: ZLEIFLOOD 00273 REAL, DIMENSION(SIZE(PPS)) :: ZFFG_NOSNOW 00274 REAL, DIMENSION(SIZE(PPS)) :: ZFFV_NOSNOW 00275 ! 00276 ! variables for irrigation 00277 REAL, DIMENSION(SIZE(PPS)) :: ZIRRIG 00278 REAL, DIMENSION(SIZE(PPS)) :: ZWATSUP 00279 REAL, DIMENSION(SIZE(PPS)) :: ZTHRESHOLDSPT 00280 LOGICAL, DIMENSION(SIZE(PPS)) :: GIRRIGATE 00281 LOGICAL, DIMENSION(SIZE(PPS)) :: GIRRIDAY 00282 ! 00283 ! variables for deep soil temperature 00284 REAL, DIMENSION(SIZE(PPS)) :: ZTDEEP_A 00285 REAL, DIMENSION(SIZE(PPS)) :: ZTDEEP_B 00286 REAL, DIMENSION(SIZE(PPS)) :: ZGAMMAT 00287 ! 00288 REAL, DIMENSION(0) :: ZAOSIP ! A/S for increasing x 00289 REAL, DIMENSION(0) :: ZAOSIM ! A/S for decreasing x 00290 REAL, DIMENSION(0) :: ZAOSJP ! A/S for increasing y 00291 REAL, DIMENSION(0) :: ZAOSJM ! A/S for decreasing y 00292 REAL, DIMENSION(0) :: ZHO2IP ! h/2 for increasing x 00293 REAL, DIMENSION(0) :: ZHO2IM ! h/2 for decreasing x 00294 REAL, DIMENSION(0) :: ZHO2JP ! h/2 for increasing y 00295 REAL, DIMENSION(0) :: ZHO2JM ! h/2 for decreasing y 00296 REAL, DIMENSION(0) :: ZZ0EFFIP! roughness length for increasing x 00297 REAL, DIMENSION(0) :: ZZ0EFFIM! roughness length for decreasing x 00298 REAL, DIMENSION(0) :: ZZ0EFFJP! roughness length for increasing y 00299 REAL, DIMENSION(0) :: ZZ0EFFJM! roughness length for decreasing y 00300 REAL, DIMENSION(0) :: ZTAU_WOOD ! residence time in wood (s) 00301 REAL, DIMENSION(0,0) :: ZINCREASE 00302 TYPE (DATE_TIME), DIMENSION(0) :: TPSEED ! seeding date 00303 TYPE (DATE_TIME), DIMENSION(0) :: TPREAP ! reaping date 00304 ! 00305 INTEGER :: ILU 00306 ! 00307 LOGICAL :: GMASK 00308 ! 00309 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00310 ! 00311 !------------------------------------------------------------------------------- 00312 ! 00313 !* 1. various initialisations 00314 ! ----------------------- 00315 ! 00316 IF (LHOOK) CALL DR_HOOK('GARDEN',0,ZHOOK_HANDLE) 00317 ILU = SIZE(PPS) 00318 ! 00319 ZDIRCOSZW = 1. 00320 ! 00321 HRAIN = 'DEF' 00322 OFLOOD = .FALSE. 00323 OTEMP_ARP = .FALSE. 00324 OGLACIER = .FALSE. 00325 PMUF = 0. 00326 PFSAT = 0. 00327 ! 00328 ! Van genuchten parameter (not yet inplemented) 00329 ! 00330 !* 1.2 flood 00331 ! ----- 00332 ! 00333 ZFFG = 0. 00334 ZFFV = 0. 00335 ZFF = 0. 00336 ZFFROZEN = 0. 00337 ZALBF = 0. 00338 ZEMISF = 0. 00339 ZIFLOOD = 0. 00340 ZPFLOOD = 0. 00341 ZFFLOOD = 0. 00342 ZPIFLOOD = 0. 00343 ZLEFLOOD = 0. 00344 ZLEIFLOOD = 0. 00345 ZFFG_NOSNOW = 0. 00346 ZFFV_NOSNOW = 0. 00347 ! 00348 !* irrigation (not implemented) 00349 ! 00350 ZIRRIG = 0. 00351 ZWATSUP = 0. 00352 ZTHRESHOLDSPT = 0. 00353 GIRRIGATE = .FALSE. 00354 GIRRIDAY = .FALSE. 00355 ! 00356 ZTDEEP_A = XUNDEF 00357 ZTDEEP_B = XUNDEF 00358 ZGAMMAT = XUNDEF 00359 ! 00360 !------------------------------------------------------------------------------- 00361 ! 00362 !* 2. Treatment of green areas 00363 ! ------------------------ 00364 ! 00365 !radiative temperature diagnostic 00366 !------------------------------- 00367 ! 00368 ! 00369 !* 2.2 Call ISBA for green areas 00370 ! ------------------------- 00371 ! 00372 ! 00373 CALL ISBA(CISBA, CPHOTO, LTR_ML, CRUNOFF, CKSAT, CSOC, HRAIN, CHORT, & 00374 CC1DRY, CSCOND, TSNOW%SCHEME, CSNOWRES, CCPSURF, CSOILFRZ, & 00375 CDIFSFCOND, TPTIME, OFLOOD, OTEMP_ARP, OGLACIER, PTSTEP, & 00376 HIMPLICIT_WIND, & 00377 XCGMAX, PZ_LOWCAN, PZ_LOWCAN, ZDIRCOSZW, PT_LOWCAN, & 00378 PQ_LOWCAN, PEXNS, PRHOA, PPS, PEXNS, PRR, PSR, PZENITH, & 00379 PSW, PLW, PU_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, & 00380 PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, XRSMIN, XRGL, XGAMMA,& 00381 XCV, XRUNOFFD, XSOILWGHT, NLAYER_HORT, NLAYER_DUN, & 00382 XALBNIR_TVEG, XALBVIS_TVEG, XALBNIR_TSOIL, XALBVIS_TSOIL, & 00383 XSNOWFREE_ALB, XWRMAX_CF, XVEG, XLAI, XEMIS, XZ0, & 00384 XZ0/XZ0_O_Z0H, XVEGTYPE, XZ0, XRUNOFFB, XCGSAT, XC1SAT, & 00385 XC2REF, XC3, XC4B, XC4REF, XACOEF, XPCOEF, XTAUICE, XWDRAIN,& 00386 ZTDEEP_A, ZTDEEP_B, ZGAMMAT, XPSN, XPSNG, XPSNV, XPSNV_A, & 00387 XSNOWFREE_ALB_VEG, XSNOWFREE_ALB_SOIL, ZIRRIG, ZWATSUP, & 00388 ZTHRESHOLDSPT, GIRRIGATE, GIRRIDAY, LSTRESS, XGC, XF2I, & 00389 XDMAX, XAH, XBH, PCO2, XGMES, XPOI, XFZERO, XEPSO, XGAMM, & 00390 XQDGAMM, XQDGMES, XT1GMES, XT2GMES, XAMAX, XQDAMAX, XT1AMAX,& 00391 XT2AMAX, XABC, XDG, XDZG, XDZDIF, NWG_LAYER, XROOTFRAC, & 00392 XWFC, XWWILT, XWSAT, XBCOEF, XCONDSAT, XMPOTSAT, & 00393 XHCAPSOIL, XCONDDRY, XCONDSLD, XD_ICE, XKSAT_ICE, PMUF, ZFF,& 00394 ZFFG, ZFFV, ZFFG_NOSNOW, ZFFV_NOSNOW, ZFFROZEN, ZALBF, & 00395 ZEMISF, ZFFLOOD, ZPIFLOOD, ZIFLOOD, ZPFLOOD, ZLEFLOOD, & 00396 ZLEIFLOOD, PSODELX, XLAT, XLON, XTG, XWG, XWGI, XPCPS, & 00397 XPLVTT, XPLSTT, XWR, XRESA, XANFM, PFSAT, TSNOW%ALB(:,1), & 00398 TSNOW%WSNOW(:,:,1), TSNOW%HEAT(:,:,1), TSNOW%RHO(:,:,1), & 00399 TSNOW%GRAN1(:,:,1), TSNOW%GRAN2(:,:,1), TSNOW%HIST(:,:,1), & 00400 TSNOW%AGE(:,:,1), ZGRNDFLUX, ZHPSNOW, ZSNOWHMASS, & 00401 ZSMELTFLUX, ZRNSNOW, ZHSNOW, ZGFLUXSNOW, ZUSTARSNOW, & 00402 ZSRSFC, ZRRSFC, ZLESL, TSNOW%EMIS(:,1), ZCDSNOW, ZCHSNOW, & 00403 PTS_GARDEN, ZTS, ZHV, ZQS, ZSNOWTEMP, ZSNOWLIQ, ZSNOWDZ, & 00404 ZCG, ZC1, ZC2, ZWGEQ, ZCT, ZCH, ZCD, ZCDN, ZRI, ZHU, ZHUG, & 00405 ZEMIST, ZALBT, ZRS, XLE, ZRN, ZH, ZLEI, ZLEGI, ZLEG, ZLEV, & 00406 ZLES, ZLER, ZLETR, ZEVAP, ZGFLUX, ZRESTORE, ZUSTAR, ZDRAIN, & 00407 ZRUNOFF, ZMELT, ZMELTADV, ZRN_ISBA, ZH_ISBA, ZLEG_ISBA, & 00408 ZLEGI_ISBA, ZLEV_ISBA, ZLETR_ISBA, ZUSTAR_ISBA, ZLER_ISBA, & 00409 ZLE_ISBA, ZLEI_ISBA, ZGFLUX_ISBA, ZHORT, ZDRIP, ZRRVEG, & 00410 PAC_AGG_GARDEN, PHU_AGG_GARDEN, ZFAPARC, ZFAPIRC, ZMUS, & 00411 ZLAI_EFFC, XAN, XANDAY, ZRESP_BIOMASS_INST, ZIACAN, XANF, & 00412 ZGPP, ZFAPAR, ZFAPIR, ZFAPAR_BS, ZFAPIR_BS, ZIRRIG_FLUX, & 00413 ZDEEP_FLUX ) 00414 ! 00415 ! 00416 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') TSNOW%TS(:,1)=ZSNOWTEMP(:,1) 00417 ! 00418 IF (LTR_ML) THEN 00419 GMASK = ( TPTIME%TIME - PTSTEP < 0. ) .AND. ( TPTIME%TIME >= 0. ) 00420 IF (GMASK) THEN 00421 ZDFAPARC (:) = ZFAPARC (:) / ZMUS (:) 00422 ZDFAPIRC (:) = ZFAPIRC (:) / ZMUS (:) 00423 ZDLAI_EFFC(:) = ZLAI_EFFC (:) / ZMUS (:) 00424 ENDIF 00425 ENDIF 00426 ! 00427 ! -------------------------------------------------------------------------------------- 00428 ! Vegetation update (in case of non-interactive vegetation): 00429 ! -------------------------------------------------------------------------------------- 00430 ! 00431 IF (CPHOTO=='NON' .OR. CPHOTO=='AGS' .OR. CPHOTO=='AST') THEN 00432 CALL VEGETATION_UPDATE_GARDEN(TPTIME,PTSTEP,ILU) 00433 END IF 00434 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00435 ! Vegetation evolution for interactive LAI 00436 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00437 ! 00438 IF (CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT') THEN 00439 CALL VEGETATION_EVOL(CISBA, CPHOTO, CRESPSL, CALBEDO, .FALSE., LTR_ML, & 00440 PTSTEP, TPTIME%TDATE%MONTH, TPTIME%TDATE%DAY, 1, & 00441 TPTIME%TIME, XLAT, PRHOA, XDG, XDZG, NWG_LAYER, & 00442 XTG, XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, & 00443 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00444 XVEGTYPE, XSEFOLD, XANMAX, XH_TREE, XBSLAI, & 00445 XLAIMIN, PCO2, XCE_NITRO, XCF_NITRO, XCNA_NITRO, & 00446 XBSLAI_NITRO, XGMES, ZTAU_WOOD, TPSEED, & 00447 TPREAP, ZAOSIP, ZAOSIM, ZAOSJP, ZAOSJM, & 00448 ZHO2IP, ZHO2IM, ZHO2JP, ZHO2JM, ZZ0EFFIP, & 00449 ZZ0EFFIM, ZZ0EFFJP, ZZ0EFFJM, XLAI, XVEG, & 00450 XZ0, XALBNIR, XALBVIS, XALBUV, XEMIS, & 00451 XANFM, XANDAY, XBIOMASS, XRESP_BIOMASS, & 00452 ZRESP_BIOMASS_INST, ZINCREASE, ZTURNOVER ) 00453 END IF 00454 ! 00455 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00456 ! Diagnostic of respiration carbon fluxes and soil carbon evolution 00457 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00458 ! 00459 PSFCO2(:)=0. 00460 ZRESP_ECO (:)=0. 00461 ZRESP_AUTO(:)=0. 00462 ! 00463 IF (CPHOTO/='NON' .AND. CRESPSL/='NON' .AND. ANY(XLAI(:)/=XUNDEF)) THEN 00464 CALL CARBON_EVOL(CISBA, CRESPSL, CPHOTO, PTSTEP, 1, & 00465 PRHOA, XTG, XWG, XWFC, XWWILT, XWSAT, XSAND, & 00466 XDG, XDZG, NWG_LAYER, & 00467 XRE25, XLAI, ZRESP_BIOMASS_INST, ZTURNOVER, & 00468 ZLITTER, ZLIGNIN_STRUC , ZSOILCARB, & 00469 ZRESP_AUTO, ZRESP_ECO ) 00470 ! calculation of vegetation CO2 flux 00471 PSFCO2(:) = - ZGPP(:) + ZRESP_ECO(:) 00472 END IF 00473 ! 00474 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00475 ! 00476 !* 4. Set undefined values for points where there is no garden 00477 ! -------------------------------------------------------- 00478 ! 00479 ! This way, these points are clearly flaged, and one will not try to interpret 00480 ! the values for those points 00481 ! 00482 CALL FLAG_TEB_GARDEN_n(2) 00483 ! 00484 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00485 ! 00486 !* 9. Fields required for TEB 00487 ! ----------------------- 00488 ! 00489 WHERE (XGARDEN/=0.) 00490 ! 00491 ! energy balance 00492 ! 00493 PRN_GARDEN (:) = ZRN (:) 00494 PH_GARDEN (:) = ZH (:) 00495 PLE_GARDEN (:) = XLE 00496 PGFLUX_GARDEN (:) = ZGFLUX (:) 00497 PEVAP_GARDEN (:) = ZEVAP (:) 00498 ! 00499 ! 00500 ! Estimate of green area aerodynamic conductance recomputed from heat flux, 00501 ! surface (radiative) temp. and forcing air temperature (estimated at future time step) 00502 ZTA = PPET_B_COEF + PPET_A_COEF * PH_GARDEN 00503 PAC_GARDEN = 0. 00504 WHERE (PTS_GARDEN /= ZTA) 00505 PAC_GARDEN(:) = MAX(PH_GARDEN(:) / XCPD / PRHOA(:) / (PTS_GARDEN - ZTA) , 0.) 00506 ENDWHERE 00507 ! 00508 ! Humidity of saturation for green areas 00509 PQSAT_GARDEN(:) = QSAT(XTG(:,1),PPS(:)) 00510 ! 00511 !* friction flux 00512 PUW_GARDEN(:) = -ZUSTAR(:)**2 00513 ! 00514 ELSEWHERE 00515 ! 00516 PRN_GARDEN (:) = XUNDEF 00517 PH_GARDEN (:) = XUNDEF 00518 PLE_GARDEN (:) = XUNDEF 00519 PGFLUX_GARDEN (:) = XUNDEF 00520 PEVAP_GARDEN (:) = XUNDEF 00521 PAC_GARDEN (:) = XUNDEF 00522 PQSAT_GARDEN (:) = XUNDEF 00523 PUW_GARDEN (:) = XUNDEF 00524 ! 00525 END WHERE 00526 ! 00527 IF (LHOOK) CALL DR_HOOK('GARDEN',1,ZHOOK_HANDLE) 00528 ! 00529 !------------------------------------------------------------------------------- 00530 ! 00531 ! 00532 END SUBROUTINE GARDEN