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