SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/greenroof.F90
Go to the documentation of this file.
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