SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_pgd_teb_garden_parn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_PGD_TEB_GARDEN_PAR_n(HPROGRAM)
00003 !     ################################################
00004 !
00005 !!****  *READ_PGD_TEB_GARDEN_PAR_n* - reads ISBA physiographic fields
00006 !!                        
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!      V. Masson   *Meteo France*      
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original    01/2003 
00032 !!      P. Le Moigne 12/2004 : add type of photosynthesis 
00033 !-------------------------------------------------------------------------------
00034 !
00035 !*       0.    DECLARATIONS
00036 !              ------------
00037 !
00038 USE MODD_CSTS,              ONLY : XDAY
00039 USE MODD_SURF_PAR,          ONLY : XUNDEF
00040 USE MODD_ISBA_PAR,          ONLY : XOPTIMGRID, NOPTIMLAYER
00041 USE MODD_DATA_COVER_PAR,    ONLY : NVT_TREE, NVT_CONI, NVT_EVER, NVT_C3, &
00042                                      NVT_C4, NVT_IRR, NVT_TROG, NVT_GRAS,  &
00043                                      NVT_PARK, NVT_ROCK, NVT_NO, NVT_SNOW, &
00044                                      NVEGTYPE  
00045 USE MODD_TEB_GRID_n,        ONLY : NDIM
00046 USE MODD_TEB_GARDEN_n,      ONLY : NGROUND_LAYER, CTYPE_HVEG, CTYPE_LVEG, CTYPE_NVEG,     &
00047                                      XSAND, XCLAY  
00048 USE MODD_DATA_TEB_GARDEN_n, ONLY : NTIME,                                                       &
00049                                      XDATA_FRAC_HVEG, XDATA_FRAC_LVEG, XDATA_FRAC_NVEG,           &
00050                                      XDATA_LAI_HVEG, XDATA_LAI_LVEG, XDATA_H_HVEG,                &
00051                                      XDATA_VEG, XDATA_LAI,XDATA_RSMIN,XDATA_GAMMA,XDATA_WRMAX_CF, &
00052                                      XDATA_RGL,XDATA_CV,XDATA_DG,XDATA_Z0,XDATA_Z0_O_Z0H,         &
00053                                      XDATA_ALBNIR_VEG,XDATA_ALBVIS_VEG, XDATA_ALBUV_VEG,          &
00054                                      XDATA_ALBNIR_SOIL,XDATA_ALBVIS_SOIL, XDATA_ALBUV_SOIL,       &
00055                                      XDATA_ALBNIR_DRY,XDATA_ALBVIS_DRY, XDATA_ALBUV_DRY,          &
00056                                      XDATA_ALBNIR_WET,XDATA_ALBVIS_WET, XDATA_ALBUV_WET,          &
00057                                      XDATA_EMIS,XDATA_DICE,                                       &
00058                                      XDATA_VEGTYPE,XDATA_ROOTFRAC,                                &
00059                                      XDATA_GMES,XDATA_BSLAI,XDATA_LAIMIN,XDATA_SEFOLD,XDATA_GC,   &
00060                                      XDATA_DMAX, XDATA_F2I, LDATA_STRESS, XDATA_H_TREE,XDATA_RE25,&
00061                                      XDATA_CE_NITRO,XDATA_CF_NITRO,XDATA_CNA_NITRO  
00062 !
00063 USE MODI_READ_SURF
00064 USE MODI_VEG_FROM_LAI
00065 USE MODI_Z0V_FROM_LAI
00066 USE MODI_EMIS_FROM_VEG
00067 USE MODI_DRY_WET_SOIL_ALBEDOS
00068 USE MODI_SOIL_ALBEDO
00069 USE MODI_ABOR1_SFX
00070 !
00071 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00072 USE PARKIND1  ,ONLY : JPRB
00073 !
00074 IMPLICIT NONE
00075 !
00076 !*       0.1   Declarations of arguments
00077 !              -------------------------
00078 !
00079  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling
00080 !
00081 !*       0.2   Declarations of local variables
00082 !              -------------------------------
00083 !
00084 INTEGER                               :: IRESP          ! IRESP  : return-code if a problem appears
00085  CHARACTER(LEN=12)                     :: YRECFM         ! Name of the article to be read
00086  CHARACTER(LEN=100)                    :: YCOMMENT       ! Comment string
00087 INTEGER                               :: JI, JLAYER     ! loop index
00088 INTEGER                               :: JTIME          ! loop index
00089 !
00090 REAL, DIMENSION(NDIM,3)               :: ZDATA_RSMIN
00091 REAL, DIMENSION(NDIM,3)               :: ZDATA_GAMMA
00092 REAL, DIMENSION(NDIM,3)               :: ZDATA_WRMAX_CF
00093 REAL, DIMENSION(NDIM,3)               :: ZDATA_RGL
00094 REAL, DIMENSION(NDIM,3)               :: ZDATA_CV
00095 REAL, DIMENSION(NDIM,NGROUND_LAYER,3) :: ZDATA_DG
00096 REAL, DIMENSION(NDIM,3)               :: ZDATA_ALBNIR_VEG
00097 REAL, DIMENSION(NDIM,3)               :: ZDATA_ALBVIS_VEG
00098 REAL, DIMENSION(NDIM,3)               :: ZDATA_ALBUV_VEG
00099 REAL, DIMENSION(NDIM,3)               :: ZDATA_GMES
00100 REAL, DIMENSION(NDIM,3)               :: ZDATA_RE25
00101 REAL, DIMENSION(NDIM,3)               :: ZDATA_BSLAI
00102 REAL, DIMENSION(NDIM,3)               :: ZDATA_LAIMIN
00103 REAL, DIMENSION(NDIM,3)               :: ZDATA_SEFOLD
00104 REAL, DIMENSION(NDIM,3)               :: ZDATA_GC
00105 REAL, DIMENSION(NDIM,3)               :: ZDATA_DMAX
00106 REAL, DIMENSION(NDIM,3)               :: ZDATA_CE_NITRO
00107 REAL, DIMENSION(NDIM,3)               :: ZDATA_CF_NITRO
00108 REAL, DIMENSION(NDIM,3)               :: ZDATA_CNA_NITRO
00109 !
00110 REAL, DIMENSION(NDIM)                 :: ZDATA_WG1
00111 REAL, DIMENSION(NDIM)                 :: ZDATA_WGSAT
00112 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00113 !
00114 !-------------------------------------------------------------------------------
00115 !
00116 !*       1.    Reading of PGD file
00117 !              --------------------
00118 !
00119 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_PAR_N',0,ZHOOK_HANDLE)
00120 NTIME= 12
00121 !
00122 ALLOCATE(XDATA_FRAC_HVEG (NDIM))
00123 ALLOCATE(XDATA_FRAC_LVEG (NDIM))
00124 ALLOCATE(XDATA_FRAC_NVEG (NDIM))
00125 ALLOCATE(XDATA_LAI_HVEG  (NDIM,NTIME))
00126 ALLOCATE(XDATA_LAI_LVEG  (NDIM,NTIME))
00127 ALLOCATE(XDATA_H_HVEG    (NDIM))
00128 !
00129 ! Read type of high vegetation
00130 YRECFM='D_TYPE_HVEG'
00131  CALL READ_SURF(HPROGRAM,YRECFM,CTYPE_HVEG,IRESP,HCOMMENT=YCOMMENT)
00132 !
00133 ! Read type of low vegetation
00134 YRECFM='D_TYPE_LVEG'
00135  CALL READ_SURF(HPROGRAM,YRECFM,CTYPE_LVEG,IRESP,HCOMMENT=YCOMMENT)
00136 !
00137 ! Read type of bare soil (no vegetation)
00138 YRECFM='D_TYPE_NVEG'
00139  CALL READ_SURF(HPROGRAM,YRECFM,CTYPE_NVEG,IRESP,HCOMMENT=YCOMMENT)
00140 !
00141 ! Read fraction of high vegetation
00142 YRECFM='D_FRAC_HVEG'
00143  CALL READ_SURF(HPROGRAM,YRECFM,XDATA_FRAC_HVEG,IRESP,HCOMMENT=YCOMMENT)
00144 !
00145 ! Read fraction of low vegetation
00146 YRECFM='D_FRAC_LVEG'
00147  CALL READ_SURF(HPROGRAM,YRECFM,XDATA_FRAC_LVEG,IRESP,HCOMMENT=YCOMMENT)
00148 !
00149 ! Read fraction of bare soil (no vegetation)
00150 YRECFM='D_FRAC_NVEG'
00151  CALL READ_SURF(HPROGRAM,YRECFM,XDATA_FRAC_NVEG,IRESP,HCOMMENT=YCOMMENT)
00152 !
00153 ! Read height of trees( for high vegetation)
00154 YRECFM='D_H_HVEG'
00155  CALL READ_SURF(HPROGRAM,YRECFM,XDATA_H_HVEG,IRESP,HCOMMENT=YCOMMENT)
00156 !
00157 ! Read LAI of high vegetation
00158 DO JTIME=1,NTIME
00159   WRITE(YRECFM,FMT='(A10,I2.2)') 'D_LAI_HVEG',JTIME
00160   CALL READ_SURF(HPROGRAM,YRECFM,XDATA_LAI_HVEG(:,JTIME),IRESP,HCOMMENT=YCOMMENT)
00161 END DO
00162 !
00163 ! Read LAI of low vegetation
00164 DO JTIME=1,NTIME
00165   WRITE(YRECFM,FMT='(A10,I2.2)') 'D_LAI_LVEG',JTIME
00166   CALL READ_SURF(HPROGRAM,YRECFM,XDATA_LAI_LVEG(:,JTIME),IRESP,HCOMMENT=YCOMMENT)
00167 END DO
00168 !
00169 !-------------------------------------------------------------------------------
00170 !
00171 !*       2.    Definition of ISBA parameters
00172 !              -----------------------------
00173 !
00174 ALLOCATE(XDATA_LAI        (NDIM,NTIME))
00175 ALLOCATE(XDATA_VEG        (NDIM,NTIME))
00176 ALLOCATE(XDATA_RSMIN      (NDIM))
00177 ALLOCATE(XDATA_GAMMA      (NDIM))
00178 ALLOCATE(XDATA_WRMAX_CF   (NDIM))
00179 ALLOCATE(XDATA_RGL        (NDIM))
00180 ALLOCATE(XDATA_CV         (NDIM))
00181 ALLOCATE(XDATA_DG         (NDIM,NGROUND_LAYER))
00182 ALLOCATE(XDATA_ROOTFRAC   (NDIM,NGROUND_LAYER))
00183 ALLOCATE(XDATA_DICE       (NDIM))
00184 ALLOCATE(XDATA_Z0         (NDIM,NTIME))
00185 ALLOCATE(XDATA_Z0_O_Z0H   (NDIM))
00186 ALLOCATE(XDATA_ALBNIR_VEG (NDIM))
00187 ALLOCATE(XDATA_ALBVIS_VEG (NDIM))
00188 ALLOCATE(XDATA_ALBUV_VEG  (NDIM))
00189 ALLOCATE(XDATA_ALBNIR_SOIL(NDIM))
00190 ALLOCATE(XDATA_ALBVIS_SOIL(NDIM))
00191 ALLOCATE(XDATA_ALBUV_SOIL (NDIM))
00192 ALLOCATE(XDATA_ALBNIR_DRY (NDIM))
00193 ALLOCATE(XDATA_ALBVIS_DRY (NDIM))
00194 ALLOCATE(XDATA_ALBUV_DRY  (NDIM))
00195 ALLOCATE(XDATA_ALBNIR_WET (NDIM))
00196 ALLOCATE(XDATA_ALBVIS_WET (NDIM))
00197 ALLOCATE(XDATA_ALBUV_WET  (NDIM))
00198 ALLOCATE(XDATA_EMIS       (NDIM,NTIME))
00199 ALLOCATE(XDATA_VEGTYPE    (NDIM,NVEGTYPE))
00200 ALLOCATE(XDATA_GMES       (NDIM))
00201 ALLOCATE(XDATA_RE25       (NDIM))
00202 ALLOCATE(XDATA_BSLAI      (NDIM))
00203 ALLOCATE(XDATA_LAIMIN     (NDIM))
00204 ALLOCATE(XDATA_SEFOLD     (NDIM))
00205 ALLOCATE(XDATA_GC         (NDIM))
00206 ALLOCATE(XDATA_DMAX       (NDIM))
00207 ALLOCATE(XDATA_F2I        (NDIM))
00208 ALLOCATE(LDATA_STRESS     (NDIM))
00209 ALLOCATE(XDATA_H_TREE     (NDIM))
00210 ALLOCATE(XDATA_CE_NITRO   (NDIM))
00211 ALLOCATE(XDATA_CF_NITRO   (NDIM))
00212 ALLOCATE(XDATA_CNA_NITRO  (NDIM))
00213 !
00214 XDATA_LAI        (:,:) = XUNDEF
00215 XDATA_VEG        (:,:) = XUNDEF
00216 XDATA_RSMIN        (:) = XUNDEF
00217 XDATA_GAMMA        (:) = XUNDEF
00218 XDATA_WRMAX_CF     (:) = XUNDEF
00219 XDATA_RGL          (:) = XUNDEF
00220 XDATA_CV           (:) = XUNDEF
00221 XDATA_DG         (:,:) = XUNDEF
00222 XDATA_DICE       (:)   = XUNDEF
00223 XDATA_ROOTFRAC   (:,:) = XUNDEF
00224 XDATA_Z0         (:,:) = XUNDEF
00225 XDATA_Z0_O_Z0H     (:) = XUNDEF
00226 XDATA_ALBNIR_VEG   (:) = XUNDEF
00227 XDATA_ALBVIS_VEG   (:) = XUNDEF
00228 XDATA_ALBUV_VEG    (:) = XUNDEF
00229 XDATA_ALBNIR_SOIL  (:) = XUNDEF
00230 XDATA_ALBVIS_SOIL  (:) = XUNDEF
00231 XDATA_ALBUV_SOIL   (:) = XUNDEF
00232 XDATA_ALBNIR_DRY   (:) = XUNDEF
00233 XDATA_ALBVIS_DRY   (:) = XUNDEF
00234 XDATA_ALBUV_DRY    (:) = XUNDEF
00235 XDATA_ALBNIR_WET   (:) = XUNDEF
00236 XDATA_ALBVIS_WET   (:) = XUNDEF
00237 XDATA_ALBUV_WET    (:) = XUNDEF
00238 XDATA_EMIS       (:,:) = XUNDEF
00239 XDATA_VEGTYPE    (:,:) = XUNDEF
00240 XDATA_GMES         (:) = XUNDEF
00241 XDATA_RE25         (:) = XUNDEF
00242 XDATA_BSLAI        (:) = XUNDEF
00243 XDATA_LAIMIN       (:) = XUNDEF
00244 XDATA_SEFOLD       (:) = XUNDEF
00245 XDATA_GC           (:) = XUNDEF
00246 XDATA_DMAX         (:) = XUNDEF
00247 XDATA_F2I          (:) = XUNDEF
00248 LDATA_STRESS       (:) = .FALSE.
00249 XDATA_H_TREE       (:) = XUNDEF
00250 XDATA_CE_NITRO     (:) = XUNDEF
00251 XDATA_CF_NITRO     (:) = XUNDEF
00252 XDATA_CNA_NITRO    (:) = XUNDEF
00253 !
00254 ! Vegtypes
00255 XDATA_VEGTYPE(:,:) = 0.
00256 IF (CTYPE_NVEG == 'NO  ') XDATA_VEGTYPE(:, NVT_NO  ) = XDATA_FRAC_NVEG(:)
00257 IF (CTYPE_NVEG == 'ROCK') XDATA_VEGTYPE(:, NVT_ROCK) = XDATA_FRAC_NVEG(:)
00258 IF (CTYPE_NVEG == 'SNOW') XDATA_VEGTYPE(:, NVT_SNOW) = XDATA_FRAC_NVEG(:)
00259 IF (CTYPE_HVEG == 'TREE') XDATA_VEGTYPE(:, NVT_TREE) = XDATA_FRAC_HVEG(:)
00260 IF (CTYPE_HVEG == 'CONI') XDATA_VEGTYPE(:, NVT_CONI) = XDATA_FRAC_HVEG(:)
00261 IF (CTYPE_HVEG == 'EVER') XDATA_VEGTYPE(:, NVT_EVER) = XDATA_FRAC_HVEG(:)
00262 IF (CTYPE_LVEG == 'C3  ') XDATA_VEGTYPE(:, NVT_C3  ) = XDATA_FRAC_LVEG(:)
00263 IF (CTYPE_LVEG == 'C4  ') XDATA_VEGTYPE(:, NVT_C4  ) = XDATA_FRAC_LVEG(:)
00264 IF (CTYPE_LVEG == 'IRR ') XDATA_VEGTYPE(:, NVT_IRR)  = XDATA_FRAC_LVEG(:)
00265 IF (CTYPE_LVEG == 'GRAS') XDATA_VEGTYPE(:, NVT_GRAS) = XDATA_FRAC_LVEG(:)
00266 IF (CTYPE_LVEG == 'TROG') XDATA_VEGTYPE(:, NVT_TROG) = XDATA_FRAC_LVEG(:)
00267 IF (CTYPE_LVEG == 'PARK') XDATA_VEGTYPE(:, NVT_PARK) = XDATA_FRAC_LVEG(:)
00268 
00269 !
00270 ! Dry/Wet soil albedo
00271  CALL DRY_WET_SOIL_ALBEDOS(XSAND(:,1),XCLAY(:,1),                             &
00272                           XDATA_VEGTYPE,                                     &
00273                           XDATA_ALBNIR_DRY,XDATA_ALBVIS_DRY,XDATA_ALBUV_DRY, &
00274                           XDATA_ALBNIR_WET,XDATA_ALBVIS_WET,XDATA_ALBUV_WET  )  
00275 !
00276 ! Height of trees
00277 XDATA_H_TREE  (:) = XDATA_H_HVEG(:)
00278 !
00279 ! Critical normilized soil water content for stress parameterisation
00280 XDATA_F2I     (:) = 0.3
00281 !
00282 ! Ratio between roughness length for momentum and heat
00283 XDATA_Z0_O_Z0H(:) = 10.
00284 !
00285 ! Defensive/offensive strategy (1/0)
00286 LDATA_STRESS  (:) = .FALSE. 
00287 !
00288 DO JI=1,NDIM
00289 !
00290 ! Near-IR, visible, and UV albedo (vegetation only)
00291 
00292  ZDATA_ALBNIR_VEG(JI,:)= 0.30
00293  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_ALBNIR_VEG(JI,1)= 0.25
00294  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_ALBNIR_VEG(JI,1)= 0.15
00295  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_ALBNIR_VEG(JI,1)= 0.21
00296 
00297  ZDATA_ALBVIS_VEG(JI,:)= 0.10
00298  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_ALBVIS_VEG(JI,1)= 0.05
00299  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_ALBVIS_VEG(JI,1)= 0.05
00300  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_ALBVIS_VEG(JI,1)= 0.05
00301 
00302  ZDATA_ALBUV_VEG (JI,:)= 0.06
00303  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_ALBUV_VEG(JI,1)= 0.0525
00304  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_ALBUV_VEG(JI,1)= 0.0425
00305  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_ALBUV_VEG(JI,1)= 0.0380
00306  IF(XDATA_VEGTYPE(JI,NVT_GRAS)>0. )  ZDATA_ALBUV_VEG(JI,2)= 0.0800
00307  IF(XDATA_VEGTYPE(JI,NVT_TROG)>0. )  ZDATA_ALBUV_VEG(JI,2)= 0.1250
00308  IF(XDATA_VEGTYPE(JI,NVT_IRR )>0. )  ZDATA_ALBUV_VEG(JI,2)= 0.0450
00309  IF(XDATA_VEGTYPE(JI,NVT_PARK)>0. )  ZDATA_ALBUV_VEG(JI,2)= 0.0450
00310 
00311  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.) THEN
00312   XDATA_ALBNIR_VEG(JI) =  ( ZDATA_ALBNIR_VEG(JI,1)*XDATA_FRAC_HVEG(JI)   &
00313                             + ZDATA_ALBNIR_VEG(JI,2)*XDATA_FRAC_LVEG(JI) ) &
00314                           / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)    )  
00315 !
00316   XDATA_ALBVIS_VEG(JI) =  ( ZDATA_ALBVIS_VEG(JI,1)*XDATA_FRAC_HVEG(JI)   &
00317                             + ZDATA_ALBVIS_VEG(JI,2)*XDATA_FRAC_LVEG(JI) ) &
00318                           / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)    )  
00319 ! 
00320   XDATA_ALBUV_VEG (JI) =  ( ZDATA_ALBUV_VEG (JI,1)*XDATA_FRAC_HVEG(JI)   &
00321                             + ZDATA_ALBUV_VEG (JI,2)*XDATA_FRAC_LVEG(JI) ) &
00322                           / ( XDATA_FRAC_HVEG (JI)+XDATA_FRAC_LVEG(JI)   )  
00323  ENDIF
00324 !
00325 ! Soil albedo
00326  ZDATA_WGSAT(:) = 0.
00327  ZDATA_WG1  (:) = 0.
00328  CALL SOIL_ALBEDO('DRY',                                               &
00329                     ZDATA_WGSAT, ZDATA_WG1,                              &
00330                     XDATA_ALBVIS_DRY, XDATA_ALBNIR_DRY, XDATA_ALBUV_DRY, &
00331                     XDATA_ALBVIS_WET, XDATA_ALBNIR_WET, XDATA_ALBUV_WET, &
00332                     XDATA_ALBVIS_SOIL,XDATA_ALBNIR_SOIL,XDATA_ALBUV_SOIL )  
00333 !
00334 ! Min stomatal resistance
00335  ZDATA_RSMIN(JI,:)= 40.
00336  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_RSMIN(JI,1)= 150.
00337  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_RSMIN(JI,1)= 150.
00338  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_RSMIN(JI,1)= 250.
00339  IF(XDATA_VEGTYPE(JI,NVT_TROG)>0. )  ZDATA_RSMIN(JI,2)= 120.
00340  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_RSMIN(JI,2)= 120.
00341  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)              &
00342     XDATA_RSMIN(JI) =  ( ZDATA_RSMIN(JI,1)*XDATA_FRAC_HVEG(JI)     &
00343                        + ZDATA_RSMIN(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00344                      / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00345 !
00346 ! Gamma parameter
00347  ZDATA_GAMMA(JI,:)= 0.
00348  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_GAMMA(JI,1)= 0.04
00349  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_GAMMA(JI,1)= 0.04
00350  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_GAMMA(JI,1)= 0.04
00351  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)              &
00352     XDATA_GAMMA(JI) =  ( ZDATA_GAMMA(JI,1)*XDATA_FRAC_HVEG(JI)     &
00353                        + ZDATA_GAMMA(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00354                      / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00355 !
00356 ! Wrmax_cf
00357  ZDATA_WRMAX_CF(JI,:)= 0.2
00358  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_WRMAX_CF(JI,1)= 0.1
00359  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_WRMAX_CF(JI,1)= 0.1
00360  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_WRMAX_CF(JI,1)= 0.1
00361  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                    &
00362     XDATA_WRMAX_CF(JI) =  ( ZDATA_WRMAX_CF(JI,1)*XDATA_FRAC_HVEG(JI)     &
00363                           + ZDATA_WRMAX_CF(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00364                         / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)    )  
00365 !
00366 ! Rgl
00367  ZDATA_RGL(JI,:)= 100.
00368  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_RGL(JI,1)= 30.
00369  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_RGL(JI,1)= 30.
00370  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_RGL(JI,1)= 30.
00371  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)            &
00372     XDATA_RGL(JI) =  ( ZDATA_RGL(JI,1)*XDATA_FRAC_HVEG(JI)       &
00373                      + ZDATA_RGL(JI,2)*XDATA_FRAC_LVEG(JI)     ) &
00374                    / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00375 !
00376 ! Cv
00377  ZDATA_CV(JI,:)= 2.E-5
00378  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_CV(JI,1)= 1.E-5
00379  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_CV(JI,1)= 1.E-5
00380  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_CV(JI,1)= 1.E-5
00381  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)           &
00382     XDATA_CV(JI) =  ( ZDATA_CV(JI,1)*XDATA_FRAC_HVEG(JI)        &
00383                     + ZDATA_CV(JI,2)*XDATA_FRAC_LVEG(JI)      ) &
00384                   / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00385 !
00386 ! Mesophyll conductance (m s-1)
00387  ZDATA_GMES(JI,:)=0.020
00388  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_GMES(JI,1)= 0.001
00389  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_GMES(JI,1)= 0.001
00390  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_GMES(JI,1)= 0.001
00391  IF(XDATA_VEGTYPE(JI,NVT_C3  )>0. )  ZDATA_GMES(JI,2)= 0.003
00392  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_GMES(JI,2)= 0.003
00393  IF(XDATA_VEGTYPE(JI,NVT_IRR )>0. )  ZDATA_GMES(JI,2)= 0.003
00394  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)             &
00395     XDATA_GMES(JI) =  ( ZDATA_GMES(JI,1)*XDATA_FRAC_HVEG(JI)      &
00396                       + ZDATA_GMES(JI,2)*XDATA_FRAC_LVEG(JI)    ) &
00397                     / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00398 !
00399 ! Ecosystem Respiration (kg/kg.m.s-1)
00400  ZDATA_RE25(JI,:)= 3.0E-7  
00401  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_RE25(JI,1)= 1.5E-7
00402  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_RE25(JI,2)= 2.5E-7
00403  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)             &
00404     XDATA_RE25(JI) =  ( ZDATA_RE25(JI,1)*XDATA_FRAC_HVEG(JI)      &
00405                       + ZDATA_RE25(JI,2)*XDATA_FRAC_LVEG(JI)    ) &
00406                     / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00407 !
00408 ! Cuticular conductance (m s-1)
00409  ZDATA_GC(JI,:)=0.00025
00410  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_GC(JI,1)= 0.00015
00411  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_GC(JI,1)= 0.
00412  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_GC(JI,1)= 0.00015        
00413  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)           &
00414     XDATA_GC(JI) =  ( ZDATA_GC(JI,1)*XDATA_FRAC_HVEG(JI)        &
00415                     + ZDATA_GC(JI,2)*XDATA_FRAC_LVEG(JI)      ) &
00416                   / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00417 !
00418 ! Ratio d(biomass)/d(lai) (kg/m2)
00419  ZDATA_BSLAI(JI,:)=0.36 
00420  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_BSLAI(JI,1)= 0.25
00421  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_BSLAI(JI,1)= 0.25
00422  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_BSLAI(JI,1)= 0.25
00423  IF(XDATA_VEGTYPE(JI,NVT_C3  )>0. )  ZDATA_BSLAI(JI,2)= 0.06
00424  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_BSLAI(JI,2)= 0.06
00425  IF(XDATA_VEGTYPE(JI,NVT_IRR )>0. )  ZDATA_BSLAI(JI,2)= 0.06
00426  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)              &
00427     XDATA_BSLAI(JI) =  ( ZDATA_BSLAI(JI,1)*XDATA_FRAC_HVEG(JI)     &
00428                        + ZDATA_BSLAI(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00429                      / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00430 !
00431 ! Maximum air saturation deficit tolerate by vegetation (kg/kg)
00432  ZDATA_DMAX(JI,:) = 0.1
00433  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_DMAX(JI,1)= 0.1
00434  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_DMAX(JI,1)= 0.1
00435  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_DMAX(JI,1)= 0.1
00436  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)             &
00437     XDATA_DMAX(JI) =  ( ZDATA_DMAX(JI,1)*XDATA_FRAC_HVEG(JI)      &
00438                       + ZDATA_DMAX(JI,2)*XDATA_FRAC_LVEG(JI)    ) &
00439                     / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) )  
00440 !
00441 ! e-folding time for senescence (days)
00442  ZDATA_SEFOLD(JI,:)=90. * XDAY
00443  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_SEFOLD(JI,1)= 365.* XDAY
00444  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_SEFOLD(JI,1)= 365.* XDAY
00445  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_SEFOLD(JI,1)= 365.* XDAY
00446  IF(XDATA_VEGTYPE(JI,NVT_C3  )>0. )  ZDATA_SEFOLD(JI,2)=  60.* XDAY
00447  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_SEFOLD(JI,2)=  60.* XDAY
00448  IF(XDATA_VEGTYPE(JI,NVT_IRR )>0. )  ZDATA_SEFOLD(JI,2)=  60.* XDAY
00449  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                &
00450     XDATA_SEFOLD(JI) =  ( ZDATA_SEFOLD(JI,1)*XDATA_FRAC_HVEG(JI)     &
00451                         + ZDATA_SEFOLD(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00452                       / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)  )  
00453 !
00454 ! Minimum LAI (m2/m2)
00455  ZDATA_LAIMIN (JI,:) = 0.3
00456  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_LAIMIN (JI,1) = 1.0
00457  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_LAIMIN (JI,1) = 1.0
00458  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                &
00459     XDATA_LAIMIN(JI) =  ( ZDATA_LAIMIN(JI,1)*XDATA_FRAC_HVEG(JI)     &
00460                         + ZDATA_LAIMIN(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00461                       / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)  )  
00462 !
00463 ! Leaf aera ratio sensitivity to nitrogen concentration
00464  ZDATA_CE_NITRO(JI,:)=7.68
00465  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_CE_NITRO(JI,1)= 4.83
00466  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_CE_NITRO(JI,1)= 4.85
00467  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_CE_NITRO(JI,1)= 4.83
00468  IF(XDATA_VEGTYPE(JI,NVT_C3  )>0. )  ZDATA_CE_NITRO(JI,2)= 3.79
00469  IF(XDATA_VEGTYPE(JI,NVT_GRAS)>0. )  ZDATA_CE_NITRO(JI,2)= 5.56
00470  IF(XDATA_VEGTYPE(JI,NVT_PARK)>0. )  ZDATA_CE_NITRO(JI,2)= 5.56
00471  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                    &
00472     XDATA_CE_NITRO(JI) =  ( ZDATA_CE_NITRO(JI,1)*XDATA_FRAC_HVEG(JI)     &
00473                           + ZDATA_CE_NITRO(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00474                         / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)    )  
00475 !
00476 ! Lethal minimum value of leaf area ratio
00477  ZDATA_CF_NITRO(JI,:)=-4.33
00478  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_CF_NITRO(JI,1)=  2.53
00479  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_CF_NITRO(JI,1)= -0.24
00480  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_CF_NITRO(JI,1)=  2.53
00481  IF(XDATA_VEGTYPE(JI,NVT_C3  )>0. )  ZDATA_CF_NITRO(JI,2)=  9.84
00482  IF(XDATA_VEGTYPE(JI,NVT_GRAS)>0. )  ZDATA_CF_NITRO(JI,2)=  6.73
00483  IF(XDATA_VEGTYPE(JI,NVT_PARK)>0. )  ZDATA_CF_NITRO(JI,2)=  6.73
00484  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                    &
00485     XDATA_CF_NITRO(JI) =  ( ZDATA_CF_NITRO(JI,1)*XDATA_FRAC_HVEG(JI)     &
00486                           + ZDATA_CF_NITRO(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00487                         / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)    )  
00488 !
00489 ! Nitrogen concentration of active biomass
00490  ZDATA_CNA_NITRO(JI,:)=1.3
00491  IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_CNA_NITRO(JI,1)= 2.8
00492  IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_CNA_NITRO(JI,1)= 2.0
00493  IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_CNA_NITRO(JI,1)= 2.5
00494  IF(XDATA_VEGTYPE(JI,NVT_C4  )>0. )  ZDATA_CNA_NITRO(JI,2)= 1.9
00495  IF(XDATA_VEGTYPE(JI,NVT_IRR )>0. )  ZDATA_CNA_NITRO(JI,2)= 1.9
00496  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                      &
00497     XDATA_CNA_NITRO(JI) =  ( ZDATA_CNA_NITRO(JI,1)*XDATA_FRAC_HVEG(JI)     &
00498                            + ZDATA_CNA_NITRO(JI,2)*XDATA_FRAC_LVEG(JI)   ) &
00499                          / ( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI)     )  
00500 !
00501 ! Ground layers
00502  IF (NGROUND_LAYER<=3) THEN
00503    ZDATA_DG(JI,1,:) = 0.01
00504    ZDATA_DG(JI,2,:) = 1.50
00505    ZDATA_DG(JI,3,:) = 2.00
00506    IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_DG(JI,2,1)= 2.0
00507    IF(XDATA_VEGTYPE(JI,NVT_TREE)>0. )  ZDATA_DG(JI,3,1)= 3.0
00508    IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_DG(JI,2,1)= 2.0
00509    IF(XDATA_VEGTYPE(JI,NVT_CONI)>0. )  ZDATA_DG(JI,3,1)= 3.0
00510    IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_DG(JI,2,1)= 2.0
00511    IF(XDATA_VEGTYPE(JI,NVT_EVER)>0. )  ZDATA_DG(JI,3,1)= 3.0
00512    IF(XDATA_VEGTYPE(JI,NVT_NO  )>0. )  ZDATA_DG(JI,2,3)= 0.5
00513    IF(XDATA_VEGTYPE(JI,NVT_NO  )>0. )  ZDATA_DG(JI,3,3)= 1.0
00514    IF(XDATA_VEGTYPE(JI,NVT_ROCK)>0. )  ZDATA_DG(JI,2,3)= 0.5
00515    IF(XDATA_VEGTYPE(JI,NVT_ROCK)>0. )  ZDATA_DG(JI,3,3)= 1.0
00516    IF(XDATA_VEGTYPE(JI,NVT_SNOW)>0. )  ZDATA_DG(JI,2,3)= 0.5
00517    IF(XDATA_VEGTYPE(JI,NVT_SNOW)>0. )  ZDATA_DG(JI,3,3)= 1.0
00518    XDATA_DG(JI,:) =    ZDATA_DG(JI,:,1)*XDATA_FRAC_HVEG(JI)   &
00519                        + ZDATA_DG(JI,:,2)*XDATA_FRAC_LVEG(JI) &
00520                        + ZDATA_DG(JI,:,3)*XDATA_FRAC_NVEG(JI)  
00521  ELSEIF (NGROUND_LAYER<=NOPTIMLAYER) THEN
00522    XDATA_DG(JI,:) = XOPTIMGRID(:)
00523  ELSE
00524    CALL ABOR1_SFX("READ_PGD_TEB_GARDEN_PAR: WITH MORE THAN 14 SOIL LAYERS, "//&
00525      "WITHOUT ECOCLIMAP, GARDEN CANNOT RUN")
00526  ENDIF 
00527 !
00528 ! Root fractions
00529  XDATA_ROOTFRAC(JI,NGROUND_LAYER) = 1.
00530  XDATA_ROOTFRAC(JI,1) = 0.20
00531  IF (NGROUND_LAYER>2) THEN
00532    DO JLAYER = NGROUND_LAYER-1,2,-1
00533      XDATA_ROOTFRAC(JI,JLAYER) = XDATA_ROOTFRAC(JI,JLAYER+1)-0.8/(NGROUND_LAYER-1)
00534    ENDDO
00535  ENDIF
00536 !
00537  XDATA_DICE(JI) = XDATA_DG(JI,2)
00538 !
00539  DO JTIME=1,NTIME
00540 ! Leaf Area Index
00541  IF (XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI) .GT. 0.)                           &
00542      XDATA_LAI     (JI,JTIME) = ( XDATA_LAI_HVEG(JI,JTIME)*XDATA_FRAC_HVEG(JI)  &
00543                                 + XDATA_LAI_LVEG(JI,JTIME)*XDATA_FRAC_LVEG(JI)) &
00544                                /( XDATA_FRAC_HVEG(JI)+XDATA_FRAC_LVEG(JI))  
00545 ! Fraction of vegetation
00546   XDATA_VEG     (JI,JTIME) = VEG_FROM_LAI  (XDATA_LAI    (JI,JTIME),       &
00547                                             XDATA_VEGTYPE(JI,:))  
00548 ! Roughness length for momentum
00549   XDATA_Z0      (JI,JTIME) = Z0V_FROM_LAI  (XDATA_LAI    (JI,JTIME),       &
00550                                             XDATA_H_TREE (JI),           &
00551                                             XDATA_VEGTYPE(JI,:))  
00552 ! Emissivity
00553   XDATA_EMIS    (JI,JTIME) = EMIS_FROM_VEG (XDATA_VEG    (JI,JTIME),       &
00554                                             XDATA_VEGTYPE(JI,:))  
00555  END DO
00556 !
00557 ENDDO
00558 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_PAR_N',1,ZHOOK_HANDLE)
00559 !
00560 !-------------------------------------------------------------------------------
00561 !
00562 END SUBROUTINE READ_PGD_TEB_GARDEN_PAR_n