SURFEX v7.3
General documentation of Surfex
|
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