SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GREENROOF(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, PZREF, PUREF, & 00005 PTA, PQA, PEXNS, PEXNA,PRHOA, PCO2, PPS, PRR, PSR, PZENITH, & 00006 PSW,PLW, PVMOD, & 00007 PRN_GREENROOF,PH_GREENROOF,PLE_GREENROOF,PGFLUX_GREENROOF, & 00008 PSFCO2,PEVAP_GREENROOF, PUW_GREENROOF, & 00009 PAC_GREENROOF,PQSAT_GREENROOF,PTS_GREENROOF, & 00010 PAC_AGG_GREENROOF, PHU_AGG_GREENROOF,PDEEP_FLUX, & 00011 PRUNOFF_GREENROOF, PDRAIN_GREENROOF ) 00012 ! ################################################################################## 00013 ! 00014 !!**** *GREENROOF* 00015 !! 00016 !! PURPOSE 00017 !! ------- 00018 !! 00019 !! call the vegetation scheme (ISBA) inside TEB for greenroofs 00020 !! 00021 !!** METHOD 00022 !! ------ 00023 !! based on subroutine "garden" 00024 !! 00025 !! EXTERNAL 00026 !! -------- 00027 !! 00028 !! 00029 !! IMPLICIT ARGUMENTS 00030 !! ------------------ 00031 !! 00032 !! 00033 !! REFERENCE 00034 !! --------- 00035 !! Based on subroutine "garden" 00036 !! 00037 !! AUTHOR 00038 !! ------ 00039 !! 00040 !! C. de Munck & A. Lemonsu * Meteo-France * 00041 !! 00042 !! MODIFICATIONS 00043 !! ------------- 00044 ! Original 09/2011 00045 !------------------------------------------------------------------------------- 00046 ! 00047 !* 0. DECLARATIONS 00048 ! ------------ 00049 ! 00050 USE MODD_SURF_PAR, ONLY: XUNDEF 00051 USE MODD_TYPE_DATE_SURF, ONLY: DATE_TIME 00052 USE MODD_CSTS, ONLY: XCPD 00053 USE MODD_TEB_n, ONLY: LECOCLIMAP, XCOVER, XT_ROOF 00054 USE MODD_TEB_GRID_n, ONLY: XLAT, XLON 00055 USE MODD_TEB_VEG_n, ONLY: CPHOTO, CC1DRY, NNBIOMASS, CRESPSL, & 00056 CALBEDO, CSOILFRZ, CDIFSFCOND, CCPSURF, & 00057 CSNOWRES, XCGMAX, CISBA 00058 USE MODD_TEB_GREENROOF_n, ONLY: LSTRESS, CSOC_GR, LTR_ML_GR, & 00059 CISBA_GR, CRUNOFF_GR, CSCOND_GR, & 00060 CKSAT_GR, CHORT_GR, & 00061 NLAYER_GR, NLAYER_HORT_GR, NLAYER_DUN_GR,& 00062 TSNOW, XSOILWGHT, & 00063 XVEGTYPE, NWG_LAYER, XDZG, XDZDIF, & 00064 XEMIS, XVEG, XLAI, XWRMAX_CF, XRSMIN, & 00065 XGAMMA, XCV, XRGL, XRUNOFFD, & 00066 XZ0, XZ0_O_Z0H, XRUNOFFB_GR, XWDRAIN_GR, & 00067 XCGSAT, XC1SAT, XC2REF, XC3, XC4B, & 00068 XC4REF, XACOEF, XPCOEF, XTAUICE, & 00069 XWR, XRESA, XAN, & 00070 XANFM, XANDAY, XABC, XPOI, & 00071 XFZERO, XEPSO, XGAMM, XQDGAMM, & 00072 XGMES, XQDGMES, XT1GMES, XT2GMES, & 00073 XRESP_BIOMASS, XBSLAI, XLAIMIN, XSEFOLD, & 00074 XAMAX, XQDAMAX, XT1AMAX, XT2AMAX, & 00075 XF2I, XGC, XAH, XBH, XDMAX, & 00076 XDG, XROOTFRAC, XTG, XWG, XWGI, XPCPS, & 00077 XPLVTT, XPLSTT, XWFC, XWWILT, XWSAT, & 00078 XBCOEF, XCONDSAT, XMPOTSAT, XHCAPSOIL, & 00079 XCE_NITRO, XCF_NITRO, XCNA_NITRO, & 00080 XCONDDRY, XCONDSLD, XRE25, & 00081 XKSAT_ICE, XD_ICE, & 00082 XALBNIR, XALBVIS, XALBUV, & 00083 XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, & 00084 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00085 XALBNIR_TVEG, XALBVIS_TVEG, & 00086 XALBNIR_TSOIL, XALBVIS_TSOIL, & 00087 XLE, XANF, XSAND_GR, & 00088 XPSN, XPSNV, XPSNG, XPSNV_A, & 00089 XSNOWFREE_ALB_VEG, XSNOWFREE_ALB_SOIL, & 00090 XSNOWFREE_ALB, & 00091 XANMAX, XBIOMASS, & 00092 XBSLAI_NITRO, XH_TREE 00093 ! 00094 USE MODI_ISBA 00095 USE MODI_VEGETATION_UPDATE_GREENROOF 00096 USE MODI_VEGETATION_EVOL 00097 USE MODI_CARBON_EVOL 00098 USE MODE_THERMOS 00099 USE MODI_ROOF_IMPL_COEF 00100 ! 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) :: PZREF ! height of the first atmospheric level ! 00122 REAL, DIMENSION(:) , INTENT(IN) :: PUREF ! reference height for the wind 00123 REAL, DIMENSION(:) , INTENT(IN) :: PTA ! temperature at first atm. level 00124 REAL, DIMENSION(:) , INTENT(IN) :: PQA ! specific humidity at first atm. level 00125 REAL, DIMENSION(:) , INTENT(IN) :: PPS ! pressure at the surface 00126 REAL, DIMENSION(:) , INTENT(IN) :: PEXNA ! Exner function at first atm. level 00127 REAL, DIMENSION(:) , INTENT(IN) :: PEXNS ! surface Exner function 00128 REAL, DIMENSION(:) , INTENT(IN) :: PRHOA ! air density at the lowest level 00129 REAL, DIMENSION(:) , INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) 00130 REAL, DIMENSION(:) , INTENT(IN) :: PRR ! rain rate 00131 REAL, DIMENSION(:) , INTENT(IN) :: PSR ! snow rate 00132 REAL, DIMENSION(:) , INTENT(IN) :: PZENITH ! solar zenithal angle 00133 REAL, DIMENSION(:) , INTENT(IN) :: PSW ! incoming total solar rad on an horizontal surface 00134 REAL, DIMENSION(:) , INTENT(IN) :: PLW ! atmospheric infrared radiation 00135 REAL, DIMENSION(:) , INTENT(IN) :: PVMOD ! module of horizontal wind near first atm. level 00136 00137 REAL, DIMENSION(:) , INTENT(OUT) :: PRN_GREENROOF ! net radiation over greenroofs 00138 REAL, DIMENSION(:) , INTENT(OUT) :: PH_GREENROOF ! sensible heat flux over greenroofs 00139 REAL, DIMENSION(:) , INTENT(OUT) :: PLE_GREENROOF ! latent heat flux over greenroofs 00140 REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_GREENROOF ! flux through the greenroofs 00141 REAL, DIMENSION(:) , INTENT(OUT) :: PSFCO2 ! flux of greenroof CO2 (kg/m2/s) 00142 REAL, DIMENSION(:) , INTENT(OUT) :: PEVAP_GREENROOF ! total evaporation over greenroofs (kg/m2/s) 00143 REAL, DIMENSION(:) , INTENT(OUT) :: PUW_GREENROOF ! friction flux (m2/s2) 00144 REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GREENROOF ! greenroof aerodynamical conductance 00145 REAL, DIMENSION(:) , INTENT(OUT) :: PQSAT_GREENROOF ! saturation humidity 00146 REAL, DIMENSION(:) , INTENT(INOUT) :: PTS_GREENROOF ! greenroof radiative surface temp. (snow free) 00147 REAL, DIMENSION(:) , INTENT(OUT) :: PAC_AGG_GREENROOF ! aggreg. aeodynamic resistance for greenroofs for latent heat flux 00148 REAL, DIMENSION(:) , INTENT(OUT) :: PHU_AGG_GREENROOF ! aggreg. relative humidity for greenroofs for latent heat flux 00149 REAL, DIMENSION(:) , INTENT(OUT) :: PDEEP_FLUX ! Heat Flux at the bottom layer of the greenroof 00150 REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF_GREENROOF ! greenroof surface runoff 00151 REAL, DIMENSION(:) , INTENT(OUT) :: PDRAIN_GREENROOF ! greenroof total (vertical) drainage 00152 ! 00153 ! 00154 !* 0.2 Declarations of local variables 00155 ! 00156 CHARACTER(LEN=3) :: HRAIN ! Rainfall spatial distribution ('DEF','SGH') 00157 LOGICAL :: OFLOOD ! Activation of the flooding scheme 00158 LOGICAL :: OTEMP_ARP ! True = time-varying force-restore soil temperature (as in ARPEGE) 00159 ! False = No time-varying force-restore soil temperature (Default) 00160 LOGICAL :: OGLACIER ! True = Over permanent snow and ice, 00161 ! initialise WGI=WSAT, 00162 ! Hsnow>=10m and allow 0.8<SNOALB<0.85 00163 ! False = No specific treatment 00164 REAL, DIMENSION(0) :: PSODELX ! Pulsation for each layer (Only used if LTEMP_ARP=True) 00165 REAL, DIMENSION(SIZE(PPS)) :: PMUF ! fraction of the grid cell reached by the rainfall 00166 REAL, DIMENSION(SIZE(PPS)) :: PFSAT ! Topmodel saturated fraction 00167 REAL, DIMENSION(SIZE(PPS)) :: ZDIRCOSZW ! orography slope cosine (=1 in TEB) 00168 REAL, DIMENSION(SIZE(PPS),NNBIOMASS) :: ZRESP_BIOMASS_INST ! instantaneous biomass respiration (kgCO2/kgair m/s) 00169 ! 00170 ! temperatures & thermal conductivities 00171 ! 00172 REAL, DIMENSION(SIZE(PPS)) :: ZTA ! estimate of air temperature at future time 00173 ! ! step as if modified by ISBA flux alone. 00174 ! 00175 ! desactivated diag 00176 ! 00177 REAL, DIMENSION(SIZE(PPS)) :: ZRN_ISBA ! net radiative flux from snow-free surface 00178 REAL, DIMENSION(SIZE(PPS)) :: ZH_ISBA ! sensible heat flux from snow-free surface 00179 REAL, DIMENSION(SIZE(PPS)) :: ZLEI_ISBA ! baresoil evaporation from snow-free surface 00180 REAL, DIMENSION(SIZE(PPS)) :: ZLEG_ISBA ! baresoil evaporation from snow-free surface 00181 REAL, DIMENSION(SIZE(PPS)) :: ZLEGI_ISBA ! baresoil sublimation from snow-free surface 00182 REAL, DIMENSION(SIZE(PPS)) :: ZLEV_ISBA ! total evapotranspiration from vegetation over 00183 REAL, DIMENSION(SIZE(PPS)) :: ZLETR_ISBA ! transpiration from snow-free surface 00184 REAL, DIMENSION(SIZE(PPS)) :: ZUSTAR_ISBA ! friction velocity from snow-free surface 00185 REAL, DIMENSION(SIZE(PPS)) :: ZLER_ISBA ! evaporation from canopy water interception 00186 REAL, DIMENSION(SIZE(PPS)) :: ZLE_ISBA ! latent heat flux from snow-free surface 00187 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUX_ISBA ! net energy flux into the snow-free surface 00188 REAL, DIMENSION(SIZE(PPS)) :: ZRNSNOW ! net radiative flux from snow (ISBA-ES:3-L) (W/m2) 00189 REAL, DIMENSION(SIZE(PPS)) :: ZHSNOW ! sensible heat flux from snow (ISBA-ES:3-L) (W/m2) 00190 REAL, DIMENSION(SIZE(PPS)) :: ZHPSNOW ! heat release from rainfall (ISBA-ES:3-L) (W/m2) 00191 REAL, DIMENSION(SIZE(PPS)) :: ZSMELTFLUX ! energy removed from soil/vegetation surface 00192 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUXSNOW ! net surface energy flux into snowpack (ISBA-ES:3-L)(W/m2) 00193 REAL, DIMENSION(SIZE(PPS)) :: ZUSTARSNOW ! friction velocity over snow (ISBA-ES:3-L) (m/s) 00194 REAL, DIMENSION(SIZE(PPS)) :: ZGRNDFLUX ! soil/snow interface heat flux (ISBA-ES:3-L) (W/m2) 00195 REAL, DIMENSION(SIZE(PPS)) :: ZSRSFC ! snowfall over snowpack (ISBA-ES:3-L) (kg/m2/s) 00196 REAL, DIMENSION(SIZE(PPS)) :: ZRRSFC ! rainfall over snowpack (ISBA-ES:3-L) (kg/m2/s) 00197 REAL, DIMENSION(SIZE(PPS)) :: ZLESL ! snowpack evaporation (ISBA-ES:3-L) (W/m2) 00198 REAL, DIMENSION(SIZE(PPS)) :: ZCDSNOW ! snow drag coefficient (ISBA-ES:3-L) (-) 00199 REAL, DIMENSION(SIZE(PPS)) :: ZCHSNOW ! heat turbulent transfer coefficient (-) 00200 ! 00201 REAL, DIMENSION(SIZE(PPS)) :: ZCG 00202 REAL, DIMENSION(SIZE(PPS)) :: ZC1 00203 REAL, DIMENSION(SIZE(PPS)) :: ZC2 00204 REAL, DIMENSION(SIZE(PPS)) :: ZWGEQ 00205 REAL, DIMENSION(SIZE(PPS)) :: ZCT 00206 REAL, DIMENSION(SIZE(PPS)) :: ZRS 00207 REAL, DIMENSION(SIZE(PPS)) :: ZCH 00208 REAL, DIMENSION(SIZE(PPS)) :: ZCD 00209 REAL, DIMENSION(SIZE(PPS)) :: ZCDN 00210 REAL, DIMENSION(SIZE(PPS)) :: ZRI 00211 REAL, DIMENSION(SIZE(PPS)) :: ZHU 00212 REAL, DIMENSION(SIZE(PPS)) :: ZHUG 00213 REAL, DIMENSION(SIZE(PPS)) :: ZRN 00214 REAL, DIMENSION(SIZE(PPS)) :: ZH 00215 REAL, DIMENSION(SIZE(PPS)) :: ZLEI 00216 REAL, DIMENSION(SIZE(PPS)) :: ZLEG 00217 REAL, DIMENSION(SIZE(PPS)) :: ZLEGI 00218 REAL, DIMENSION(SIZE(PPS)) :: ZLEV 00219 REAL, DIMENSION(SIZE(PPS)) :: ZLES 00220 REAL, DIMENSION(SIZE(PPS)) :: ZLER 00221 REAL, DIMENSION(SIZE(PPS)) :: ZLETR 00222 REAL, DIMENSION(SIZE(PPS)) :: ZEVAP 00223 REAL, DIMENSION(SIZE(PPS)) :: ZGFLUX 00224 REAL, DIMENSION(SIZE(PPS)) :: ZRESTORE 00225 REAL, DIMENSION(SIZE(PPS)) :: ZUSTAR 00226 REAL, DIMENSION(SIZE(PPS)) :: ZDRAIN 00227 REAL, DIMENSION(SIZE(PPS)) :: ZRUNOFF 00228 REAL, DIMENSION(SIZE(PPS)) :: ZMELT 00229 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWTEMP 00230 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWLIQ 00231 REAL, DIMENSION(SIZE(PPS),TSNOW%NLAYER) :: ZSNOWDZ 00232 REAL, DIMENSION(SIZE(PPS)) :: ZSNOWHMASS 00233 REAL, DIMENSION(SIZE(PPS)) :: ZMELTADV 00234 REAL, DIMENSION(SIZE(PPS),3) :: ZIACAN 00235 REAL, DIMENSION(SIZE(PPS)) :: ZQS 00236 REAL, DIMENSION(SIZE(PPS)) :: ZHV 00237 REAL, DIMENSION(SIZE(PPS)) :: ZHORT 00238 REAL, DIMENSION(SIZE(PPS)) :: ZDRIP 00239 REAL, DIMENSION(SIZE(PPS)) :: ZTS 00240 REAL, DIMENSION(SIZE(PPS)) :: ZRRVEG 00241 REAL, DIMENSION(SIZE(PPS)) :: ZALBT 00242 REAL, DIMENSION(SIZE(PPS)) :: ZEMIST 00243 REAL, DIMENSION(SIZE(PPS)) :: ZGPP 00244 REAL, DIMENSION(SIZE(PPS)) :: ZRESP_AUTO 00245 REAL, DIMENSION(SIZE(PPS)) :: ZRESP_ECO 00246 REAL, DIMENSION(SIZE(PPS)) :: ZFAPAR 00247 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIR 00248 REAL, DIMENSION(SIZE(PPS)) :: ZFAPARC 00249 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIRC 00250 REAL, DIMENSION(SIZE(PPS)) :: ZLAI_EFFC 00251 REAL, DIMENSION(SIZE(PPS)) :: ZMUS 00252 REAL, DIMENSION(SIZE(PPS)) :: ZFAPAR_BS 00253 REAL, DIMENSION(SIZE(PPS)) :: ZFAPIR_BS 00254 REAL, DIMENSION(SIZE(PPS)) :: ZIRRIG_FLUX 00255 REAL, DIMENSION(0,0,0) :: ZLITTER 00256 REAL, DIMENSION(0,0) :: ZSOILCARB, ZLIGNIN_STRUC, ZTURNOVER 00257 ! 00258 ! surfaces relative fractions 00259 ! 00260 REAL, DIMENSION(SIZE(PPS)) :: ZFFG 00261 REAL, DIMENSION(SIZE(PPS)) :: ZFFV 00262 REAL, DIMENSION(SIZE(PPS)) :: ZFF 00263 REAL, DIMENSION(SIZE(PPS)) :: ZALBF 00264 REAL, DIMENSION(SIZE(PPS)) :: ZEMISF 00265 REAL, DIMENSION(SIZE(PPS)) :: ZFFROZEN 00266 REAL, DIMENSION(SIZE(PPS)) :: ZFFLOOD 00267 REAL, DIMENSION(SIZE(PPS)) :: ZPIFLOOD 00268 REAL, DIMENSION(SIZE(PPS)) :: ZIFLOOD 00269 REAL, DIMENSION(SIZE(PPS)) :: ZPFLOOD 00270 REAL, DIMENSION(SIZE(PPS)) :: ZLEFLOOD 00271 REAL, DIMENSION(SIZE(PPS)) :: ZLEIFLOOD 00272 REAL, DIMENSION(SIZE(PPS)) :: ZFFG_NOSNOW 00273 REAL, DIMENSION(SIZE(PPS)) :: ZFFV_NOSNOW 00274 ! 00275 ! variables for irrigation 00276 REAL, DIMENSION(SIZE(PPS)) :: ZIRRIG 00277 REAL, DIMENSION(SIZE(PPS)) :: ZWATSUP 00278 REAL, DIMENSION(SIZE(PPS)) :: ZTHRESHOLDSPT 00279 LOGICAL, DIMENSION(SIZE(PPS)) :: GIRRIGATE 00280 LOGICAL, DIMENSION(SIZE(PPS)) :: GIRRIDAY 00281 ! 00282 ! variables for deep soil 00283 ! 00284 REAL, DIMENSION(SIZE(PPS)) :: ZGAMMAT ! not used 00285 REAL, DIMENSION(SIZE(PPS)) :: ZTDEEP_A 00286 REAL, DIMENSION(SIZE(PPS)) :: ZTDEEP_B 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 00308 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00309 ! 00310 !------------------------------------------------------------------------------- 00311 ! 00312 !* 1. various initialisations 00313 ! ----------------------- 00314 ! 00315 IF (LHOOK) CALL DR_HOOK('GREENROOF',0,ZHOOK_HANDLE) 00316 ILU = SIZE(PPS) 00317 ! 00318 ZDIRCOSZW = 1. 00319 ! 00320 HRAIN = 'DEF' 00321 OFLOOD = .FALSE. 00322 OTEMP_ARP = .FALSE. 00323 OGLACIER = .FALSE. 00324 PMUF = 0. 00325 PFSAT = 0. 00326 ! 00327 ! Van genuchten parameter (not yet inplemented) 00328 ! 00329 !* 1.3 flood 00330 ! ----- 00331 ! 00332 ZFFG = 0. 00333 ZFFV = 0. 00334 ZFF = 0. 00335 ZFFROZEN = 0. 00336 ZALBF = 0. 00337 ZEMISF = 0. 00338 ZIFLOOD = 0. 00339 ZPFLOOD = 0. 00340 ZFFLOOD = 0. 00341 ZPIFLOOD = 0. 00342 ZLEFLOOD = 0. 00343 ZLEIFLOOD = 0. 00344 ZFFG_NOSNOW = 0. 00345 ZFFV_NOSNOW = 0. 00346 ! 00347 !* irrigation (not implemented) 00348 ! 00349 ZIRRIG = 0. 00350 ZWATSUP = 0. 00351 ZTHRESHOLDSPT = 0. 00352 GIRRIGATE = .FALSE. 00353 GIRRIDAY = .FALSE. 00354 ! 00355 !* deep soil implicitation with roof 00356 ! 00357 ZGAMMAT = XUNDEF 00358 CALL ROOF_IMPL_COEF(PTSTEP,ZTDEEP_A,ZTDEEP_B) 00359 ! 00360 !------------------------------------------------------------------------------- 00361 ! 00362 !* 9. Treatment of green areas 00363 ! ------------------------ 00364 ! 00365 !radiative temperature diagnostic 00366 !------------------------------- 00367 ! 00368 !* 9.2 Call ISBA for greenroofs 00369 ! ------------------------ 00370 ! 00371 CALL ISBA(CISBA_GR, CPHOTO, LTR_ML_GR, 'WSAT', CKSAT_GR, CSOC_GR, & 00372 HRAIN, CHORT_GR, CC1DRY, CSCOND_GR, TSNOW%SCHEME, & 00373 CSNOWRES, CCPSURF, CSOILFRZ, CDIFSFCOND, TPTIME, OFLOOD, & 00374 OTEMP_ARP, OGLACIER, PTSTEP, HIMPLICIT_WIND, & 00375 XCGMAX, PZREF, PUREF, ZDIRCOSZW, PTA, & 00376 PQA, PEXNA, PRHOA, PPS, PEXNS, PRR, PSR, PZENITH, & 00377 PSW, PLW, PVMOD, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, & 00378 PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, XRSMIN, XRGL, XGAMMA,& 00379 XCV, XRUNOFFD, XSOILWGHT, NLAYER_HORT_GR, NLAYER_DUN_GR, & 00380 XALBNIR_TVEG, XALBVIS_TVEG, XALBNIR_TSOIL, XALBVIS_TSOIL, & 00381 XSNOWFREE_ALB, XWRMAX_CF, XVEG, XLAI, XEMIS, XZ0, & 00382 XZ0/XZ0_O_Z0H, XVEGTYPE, XZ0, XRUNOFFB_GR, XCGSAT, XC1SAT, & 00383 XC2REF, XC3, XC4B, XC4REF, XACOEF, XPCOEF, XTAUICE, XWDRAIN_GR,& 00384 ZTDEEP_A, ZTDEEP_B, ZGAMMAT, XPSN, XPSNG, XPSNV, XPSNV_A, & 00385 XSNOWFREE_ALB_VEG, XSNOWFREE_ALB_SOIL, ZIRRIG, ZWATSUP, & 00386 ZTHRESHOLDSPT, GIRRIGATE, GIRRIDAY, LSTRESS, XGC, XF2I, & 00387 XDMAX, XAH, XBH, PCO2, XGMES, XPOI, XFZERO, XEPSO, XGAMM, & 00388 XQDGAMM, XQDGMES, XT1GMES, XT2GMES, XAMAX, XQDAMAX, XT1AMAX,& 00389 XT2AMAX, XABC, XDG, XDZG, XDZDIF, NWG_LAYER, XROOTFRAC, & 00390 XWFC, XWWILT, XWSAT, XBCOEF, XCONDSAT, XMPOTSAT, & 00391 XHCAPSOIL, XCONDDRY, XCONDSLD, XD_ICE, XKSAT_ICE, PMUF, ZFF,& 00392 ZFFG, ZFFV, ZFFG_NOSNOW, ZFFV_NOSNOW, ZFFROZEN, ZALBF, & 00393 ZEMISF, ZFFLOOD, ZPIFLOOD, ZIFLOOD, ZPFLOOD, ZLEFLOOD, & 00394 ZLEIFLOOD, PSODELX, XLAT, XLON, XTG, XWG, XWGI, XPCPS, & 00395 XPLVTT, XPLSTT, XWR, XRESA, XANFM, PFSAT, TSNOW%ALB(:,1), & 00396 TSNOW%WSNOW(:,:,1), TSNOW%HEAT(:,:,1), TSNOW%RHO(:,:,1), & 00397 TSNOW%GRAN1(:,:,1), TSNOW%GRAN2(:,:,1), TSNOW%HIST(:,:,1), & 00398 TSNOW%AGE(:,:,1), ZGRNDFLUX, ZHPSNOW, ZSNOWHMASS, & 00399 ZSMELTFLUX, ZRNSNOW, ZHSNOW, ZGFLUXSNOW, ZUSTARSNOW, & 00400 ZSRSFC, ZRRSFC, ZLESL, TSNOW%EMIS(:,1), ZCDSNOW, ZCHSNOW, & 00401 PTS_GREENROOF, ZTS, ZHV, ZQS, ZSNOWTEMP, ZSNOWLIQ, ZSNOWDZ, & 00402 ZCG, ZC1, ZC2, ZWGEQ, ZCT, ZCH, ZCD, ZCDN, ZRI, ZHU, ZHUG, & 00403 ZEMIST, ZALBT, ZRS, XLE, ZRN, ZH, ZLEI, ZLEGI, ZLEG, ZLEV, & 00404 ZLES, ZLER, ZLETR, ZEVAP, ZGFLUX, ZRESTORE, ZUSTAR, ZDRAIN, & 00405 ZRUNOFF, ZMELT, ZMELTADV, ZRN_ISBA, ZH_ISBA, ZLEG_ISBA, & 00406 ZLEGI_ISBA, ZLEV_ISBA, ZLETR_ISBA, ZUSTAR_ISBA, ZLER_ISBA, & 00407 ZLE_ISBA, ZLEI_ISBA, ZGFLUX_ISBA, ZHORT, ZDRIP, ZRRVEG, & 00408 PAC_AGG_GREENROOF, PHU_AGG_GREENROOF, ZFAPARC, ZFAPIRC, ZMUS, & 00409 ZLAI_EFFC, XAN, XANDAY, ZRESP_BIOMASS_INST, ZIACAN, XANF, & 00410 ZGPP, ZFAPAR, ZFAPIR, ZFAPAR_BS, ZFAPIR_BS, ZIRRIG_FLUX, & 00411 PDEEP_FLUX ) 00412 ! 00413 PRUNOFF_GREENROOF(:) = ZRUNOFF(:) 00414 PDRAIN_GREENROOF(:) = ZDRAIN(:) 00415 00416 ! 00417 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') TSNOW%TS(:,1)=ZSNOWTEMP(:,1) 00418 ! 00419 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00420 ! Diagnostic of respiration carbon fluxes and soil carbon evolution 00421 ! 00422 ! -------------------------------------------------------------------------------------- 00423 ! Vegetation update (in case of non-interactive vegetation): 00424 ! -------------------------------------------------------------------------------------- 00425 ! 00426 IF (CPHOTO=='NON' .OR. CPHOTO=='AGS' .OR. CPHOTO=='AST') THEN 00427 CALL VEGETATION_UPDATE_GREENROOF(TPTIME,PTSTEP,ILU) 00428 END IF 00429 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00430 ! Vegetation evolution for interactive LAI 00431 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00432 ! 00433 IF (CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT') THEN 00434 CALL VEGETATION_EVOL(CISBA_GR, CPHOTO, CRESPSL, CALBEDO, .FALSE., LTR_ML_GR,& 00435 PTSTEP, TPTIME%TDATE%MONTH, TPTIME%TDATE%DAY, 1, & 00436 TPTIME%TIME, XLAT, PRHOA, XDG, XDZG, NWG_LAYER, & 00437 XTG, XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, & 00438 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00439 XVEGTYPE, XSEFOLD, XANMAX, XH_TREE, XBSLAI, & 00440 XLAIMIN, PCO2, XCE_NITRO, XCF_NITRO, XCNA_NITRO, & 00441 XBSLAI_NITRO, XGMES, ZTAU_WOOD, TPSEED, & 00442 TPREAP, ZAOSIP, ZAOSIM, ZAOSJP, ZAOSJM, & 00443 ZHO2IP, ZHO2IM, ZHO2JP, ZHO2JM, ZZ0EFFIP, & 00444 ZZ0EFFIM, ZZ0EFFJP, ZZ0EFFJM, XLAI, XVEG, & 00445 XZ0, XALBNIR, XALBVIS, XALBUV, XEMIS, & 00446 XANFM, XANDAY, XBIOMASS, XRESP_BIOMASS, & 00447 ZRESP_BIOMASS_INST, ZINCREASE, ZTURNOVER ) 00448 END IF 00449 ! 00450 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00451 ! 00452 PSFCO2(:)=0. 00453 ! 00454 IF (CPHOTO/='NON' .AND. CRESPSL/='NON' .AND. ANY(XLAI(:)/=XUNDEF)) THEN 00455 ! faire intervenir le type de vegetation du greenroof ? (CTYP_GR) 00456 CALL CARBON_EVOL(CISBA, CRESPSL, CPHOTO, PTSTEP, 1, & 00457 PRHOA, XTG, XWG, XWFC, XWWILT, XWSAT, XSAND_GR,& 00458 XDG, XDZG, NWG_LAYER, & 00459 XRE25, XLAI, ZRESP_BIOMASS_INST, ZTURNOVER, & 00460 ZLITTER, ZLIGNIN_STRUC , ZSOILCARB, & 00461 ZRESP_AUTO, ZRESP_ECO ) 00462 ! calculation of vegetation CO2 flux 00463 PSFCO2(:) = ZGPP(:) - ZRESP_ECO(:) 00464 END IF 00465 ! 00466 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00467 ! 00468 !* 9. Fields required for TEB 00469 ! ----------------------- 00470 ! 00471 ! energy balance 00472 ! 00473 PRN_GREENROOF (:) = ZRN (:) 00474 PH_GREENROOF (:) = ZH (:) 00475 PLE_GREENROOF (:) = XLE (:) 00476 PGFLUX_GREENROOF (:) = ZGFLUX (:) 00477 PEVAP_GREENROOF (:) = ZEVAP (:) 00478 ! 00479 ! 00480 ! Estimate of green area aerodynamic conductance recomputed from heat flux, 00481 ! surface (radiative) temp. and forcing air temperature (estimated at future time step) 00482 ZTA = PPET_B_COEF + PPET_A_COEF * PH_GREENROOF 00483 PAC_GREENROOF = 0. 00484 WHERE (PTS_GREENROOF /= ZTA) 00485 PAC_GREENROOF(:) = MAX(PH_GREENROOF(:) / XCPD / PRHOA(:) / (PTS_GREENROOF - ZTA) , 0.) 00486 ENDWHERE 00487 ! 00488 ! Humidity of saturation for green areas 00489 PQSAT_GREENROOF(:) = QSAT(XTG(:,1),PPS(:)) 00490 ! 00491 !* friction flux 00492 PUW_GREENROOF(:) = -ZUSTAR(:)**2 00493 IF (LHOOK) CALL DR_HOOK('GREENROOF',1,ZHOOK_HANDLE) 00494 ! 00495 !------------------------------------------------------------------------------- 00496 ! 00497 ! 00498 END SUBROUTINE GREENROOF