Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / SURFEX / read_pgd_teb_greenroof_parn.F90
1 !SURFEX_LIC Copyright 1994-2014 Meteo-France 
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C  licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
5 !     #########
6       SUBROUTINE READ_PGD_TEB_GREENROOF_PAR_n(HPROGRAM)
7 !     ################################################
8 !
9 !!****  *READ_PGD_TEB_GREENROOF_PAR_n* - reads ISBA physiographic fields
10 !!                        
11 !!
12 !!    PURPOSE
13 !!    -------
14 !!
15 !!**  METHOD
16 !!    ------
17 !!
18 !!    EXTERNAL
19 !!    --------
20 !!
21 !!
22 !!    IMPLICIT ARGUMENTS
23 !!    ------------------
24 !!
25 !!    REFERENCE
26 !!    ---------
27 !!
28 !!
29 !!    AUTHOR
30 !!    ------
31 !!      V. Masson   *Meteo France*      
32 !!
33 !!    MODIFICATIONS
34 !!    -------------
35 !!      Original    01/2003 
36 !!      P. Le Moigne 12/2004 : add type of photosynthesis 
37 !!      C. de Munck  02/2012 : added parameterisation for sedum species under NVT_TROG 
38 !-------------------------------------------------------------------------------------
39 !
40 !*       0.    DECLARATIONS
41 !              ------------
42 !
43 USE MODD_CSTS,                 ONLY : XDAY
44 USE MODD_SURF_PAR,             ONLY : XUNDEF
45 USE MODD_TEB_GRID_n,           ONLY : NDIM
46 USE MODD_DATA_COVER_PAR,       ONLY : NVEGTYPE, NVT_GRAS, NVT_TROG
47 USE MODD_TEB_GREENROOF_n,      ONLY : NLAYER_GR, CTYP_GR, NTIME_GR,                             &
48                                       XSAND_GR, XCLAY_GR
49 USE MODD_DATA_TEB_GREENROOF_n, ONLY : XPAR_LAI_GR,                                              &
50                                       XPAR_OM_GR, XPAR_SAND_GR, XPAR_CLAY_GR,                   & 
51                                       XPAR_VEG, XPAR_LAI,XPAR_RSMIN,XPAR_GAMMA,XPAR_WRMAX_CF,   &
52                                       XPAR_RGL,XPAR_CV,XPAR_DG,XPAR_Z0,XPAR_Z0_O_Z0H,           &
53                                       XPAR_ALBNIR_VEG,XPAR_ALBVIS_VEG, XPAR_ALBUV_VEG,          &
54                                       XPAR_ALBNIR_SOIL,XPAR_ALBVIS_SOIL, XPAR_ALBUV_SOIL,       &
55                                       XPAR_ALBNIR_DRY,XPAR_ALBVIS_DRY, XPAR_ALBUV_DRY,          &
56                                       XPAR_ALBNIR_WET,XPAR_ALBVIS_WET, XPAR_ALBUV_WET,          &
57                                       XPAR_EMIS,XPAR_DICE,                                      &
58                                       XPAR_VEGTYPE,XPAR_ROOTFRAC,                               &
59                                       XPAR_GMES,XPAR_BSLAI,XPAR_LAIMIN,XPAR_SEFOLD,XPAR_GC,     &
60                                       XPAR_DMAX, XPAR_F2I, LDATA_STRESS, XPAR_H_TREE,XPAR_RE25, &
61                                       XPAR_CE_NITRO,XPAR_CF_NITRO,XPAR_CNA_NITRO  
62 !paramètres ci-dessus à initialiser pour les GR (sauf XPAR_OM_GR, XPAR_SAND_GR, XPAR_CLAY_GR qui sont lues) 
63 USE MODD_PREP_TEB_GREENROOF,   ONLY : NGRID_LEVEL, XGRID_SOIL
64 !
65 USE MODI_READ_SURF
66 USE MODI_VEG_FROM_LAI
67 USE MODI_Z0V_FROM_LAI
68 USE MODI_EMIS_FROM_VEG
69 USE MODI_DRY_WET_SOIL_ALBEDOS
70 USE MODI_SOIL_ALBEDO
71 !
72 !
73 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
74 USE PARKIND1  ,ONLY : JPRB
75 !
76 IMPLICIT NONE
77 !
78 !*       0.1   Declarations of arguments
79 !              -------------------------
80 !
81  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling
82 !
83 !*       0.2   Declarations of local variables
84 !              -------------------------------
85 !
86 INTEGER                               :: IRESP          ! IRESP  : return-code if a problem appears
87  CHARACTER(LEN=LEN_HREC)                     :: YRECFM         ! Name of the article to be read
88  CHARACTER(LEN=100)                    :: YCOMMENT       ! Comment string
89 INTEGER                               :: JI             ! loop index
90 INTEGER                               :: JTIME          ! loop index
91 INTEGER                               :: JLAYER         ! loop index
92 !
93 REAL, DIMENSION(NDIM)                 :: ZDATA_WG1
94 REAL, DIMENSION(NDIM)                 :: ZDATA_WGSAT
95 REAL(KIND=JPRB) :: ZHOOK_HANDLE
96 !
97 !-------------------------------------------------------------------------------
98 !
99 !*       1.    Reading of PGD file
100 !              --------------------
101 !
102 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_PAR_N',0,ZHOOK_HANDLE)
103 !
104 YRECFM='GR_NTIME'
105  CALL READ_SURF(HPROGRAM,YRECFM,NTIME_GR,IRESP)
106 !
107 YRECFM='GR_LAYER'
108  CALL READ_SURF(HPROGRAM,YRECFM,NLAYER_GR,IRESP)
109 !
110 ! Read type of green roof
111 YRECFM='D_TYPE_GR'
112  CALL READ_SURF(HPROGRAM,YRECFM,CTYP_GR,IRESP)
113 !
114 ! Read green roof OM fraction
115 ALLOCATE(XPAR_OM_GR     (NDIM,NLAYER_GR))
116 DO JLAYER=1,NLAYER_GR
117   !WRITE(YRECFM,FMT='(A8,I1.1)') 'D_OM_GR0',JLAYER
118   WRITE(YRECFM,FMT='(A7,I2.2)') 'D_OM_GR',JLAYER
119   CALL READ_SURF(HPROGRAM,YRECFM,XPAR_OM_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT)
120 END DO
121 !
122 ! Read green roof SAND fraction
123 ALLOCATE(XPAR_SAND_GR   (NDIM,NLAYER_GR))
124 DO JLAYER=1,NLAYER_GR
125   !WRITE(YRECFM,FMT='(A10,I1.1)') 'D_SAND_GR0',JLAYER
126   WRITE(YRECFM,FMT='(A9,I2.2)') 'D_SAND_GR',JLAYER
127   CALL READ_SURF(HPROGRAM,YRECFM,XPAR_SAND_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT)
128 END DO
129 !
130 ! Read green roof CLAY fraction
131 ALLOCATE(XPAR_CLAY_GR   (NDIM,NLAYER_GR))
132 DO JLAYER=1,NLAYER_GR
133   !WRITE(YRECFM,FMT='(A10,I1.1)') 'D_CLAY_GR0',JLAYER
134   WRITE(YRECFM,FMT='(A9,I2.2)') 'D_CLAY_GR',JLAYER
135   CALL READ_SURF(HPROGRAM,YRECFM,XPAR_CLAY_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT)
136 END DO
137 !
138 ! Read green roof LAI
139 ALLOCATE(XPAR_LAI_GR    (NDIM,NTIME_GR))
140 DO JTIME=1,NTIME_GR
141   WRITE(YRECFM,FMT='(A8,I2.2)') 'D_LAI_GR',JTIME
142   CALL READ_SURF(HPROGRAM,YRECFM,XPAR_LAI_GR(:,JTIME),IRESP,HCOMMENT=YCOMMENT)
143 END DO
144 !
145 !
146 !-------------------------------------------------------------------------------
147 !
148 !*       2.    Definition of ISBA parameters
149 !              -----------------------------
150 !
151 ALLOCATE(XPAR_LAI        (NDIM,NTIME_GR))
152 ALLOCATE(XPAR_VEG        (NDIM,NTIME_GR))
153 ALLOCATE(XPAR_RSMIN      (NDIM))
154 ALLOCATE(XPAR_GAMMA      (NDIM))
155 ALLOCATE(XPAR_WRMAX_CF   (NDIM))
156 ALLOCATE(XPAR_RGL        (NDIM))
157 ALLOCATE(XPAR_CV         (NDIM))
158 ALLOCATE(XPAR_DG         (NDIM,NLAYER_GR))
159 ALLOCATE(XPAR_ROOTFRAC   (NDIM,NLAYER_GR))
160 ALLOCATE(XPAR_DICE       (NDIM))
161 ALLOCATE(XPAR_Z0         (NDIM,NTIME_GR))
162 ALLOCATE(XPAR_Z0_O_Z0H   (NDIM))
163 ALLOCATE(XPAR_ALBNIR_VEG (NDIM))
164 ALLOCATE(XPAR_ALBVIS_VEG (NDIM))
165 ALLOCATE(XPAR_ALBUV_VEG  (NDIM))
166 ALLOCATE(XPAR_ALBNIR_SOIL(NDIM))
167 ALLOCATE(XPAR_ALBVIS_SOIL(NDIM))
168 ALLOCATE(XPAR_ALBUV_SOIL (NDIM))
169 ALLOCATE(XPAR_ALBNIR_DRY (NDIM))
170 ALLOCATE(XPAR_ALBVIS_DRY (NDIM))
171 ALLOCATE(XPAR_ALBUV_DRY  (NDIM))
172 ALLOCATE(XPAR_ALBNIR_WET (NDIM))
173 ALLOCATE(XPAR_ALBVIS_WET (NDIM))
174 ALLOCATE(XPAR_ALBUV_WET  (NDIM))
175 ALLOCATE(XPAR_EMIS       (NDIM,NTIME_GR))
176 ALLOCATE(XPAR_VEGTYPE    (NDIM,NVEGTYPE))
177 ALLOCATE(XPAR_GMES       (NDIM))
178 ALLOCATE(XPAR_RE25       (NDIM))
179 ALLOCATE(XPAR_BSLAI      (NDIM))
180 ALLOCATE(XPAR_LAIMIN     (NDIM))
181 ALLOCATE(XPAR_SEFOLD     (NDIM))
182 ALLOCATE(XPAR_GC         (NDIM))
183 ALLOCATE(XPAR_DMAX       (NDIM))
184 ALLOCATE(XPAR_F2I        (NDIM))
185 ALLOCATE(LDATA_STRESS    (NDIM))
186 ALLOCATE(XPAR_H_TREE     (NDIM))
187 ALLOCATE(XPAR_CE_NITRO   (NDIM))
188 ALLOCATE(XPAR_CF_NITRO   (NDIM))
189 ALLOCATE(XPAR_CNA_NITRO  (NDIM))
190 !
191 XPAR_LAI          (:,:) = XUNDEF
192 XPAR_VEG          (:,:) = XUNDEF
193 XPAR_RSMIN          (:) = XUNDEF
194 XPAR_GAMMA          (:) = XUNDEF
195 XPAR_WRMAX_CF       (:) = XUNDEF
196 XPAR_RGL            (:) = XUNDEF
197 XPAR_CV             (:) = XUNDEF
198 XPAR_DG           (:,:) = XUNDEF
199 XPAR_DICE           (:) = XUNDEF
200 XPAR_ROOTFRAC     (:,:) = XUNDEF
201 XPAR_Z0           (:,:) = XUNDEF
202 XPAR_Z0_O_Z0H       (:) = XUNDEF
203 XPAR_ALBNIR_VEG     (:) = XUNDEF
204 XPAR_ALBVIS_VEG     (:) = XUNDEF
205 XPAR_ALBUV_VEG      (:) = XUNDEF
206 XPAR_ALBNIR_SOIL    (:) = XUNDEF
207 XPAR_ALBVIS_SOIL    (:) = XUNDEF
208 XPAR_ALBUV_SOIL     (:) = XUNDEF
209 XPAR_ALBNIR_DRY     (:) = XUNDEF
210 XPAR_ALBVIS_DRY     (:) = XUNDEF
211 XPAR_ALBUV_DRY      (:) = XUNDEF
212 XPAR_ALBNIR_WET     (:) = XUNDEF
213 XPAR_ALBVIS_WET     (:) = XUNDEF
214 XPAR_ALBUV_WET      (:) = XUNDEF
215 XPAR_EMIS         (:,:) = XUNDEF
216 XPAR_VEGTYPE      (:,:) = XUNDEF
217 XPAR_GMES           (:) = XUNDEF
218 XPAR_RE25           (:) = XUNDEF
219 XPAR_BSLAI          (:) = XUNDEF
220 XPAR_LAIMIN         (:) = XUNDEF
221 XPAR_SEFOLD         (:) = XUNDEF
222 XPAR_GC             (:) = XUNDEF
223 XPAR_DMAX           (:) = XUNDEF
224 XPAR_F2I            (:) = XUNDEF
225 LDATA_STRESS        (:) = .FALSE.
226 XPAR_H_TREE         (:) = XUNDEF
227 XPAR_CE_NITRO       (:) = XUNDEF
228 XPAR_CF_NITRO       (:) = XUNDEF
229 XPAR_CNA_NITRO      (:) = XUNDEF
230 !
231 !---------------------------------------------------------------------------
232 ! Vegtypes adapted to greenroofs:
233 !--------------------------------
234 ! NPATCH = 1 
235 ! 2D cases : all greenroofs have same vegetation (defined by CTYP_GR)
236 ! (CTYP_GR == 'GRASS') <=> NVT_GRASS (10)
237 !  ** OR **
238 ! (CTYP_GR == 'SEDUM') <=> NVT_TROG (11)
239 ! NB1: => no aggregation of vegetype parameters needed 
240 ! NB2: Functions existing for gardens are used for initial greenroofs
241 !      This will need to be refined specifically for greenroofs
242 !
243 XPAR_VEGTYPE(:,:) = 0.
244 IF (CTYP_GR == 'GRASS') XPAR_VEGTYPE(:, NVT_GRAS) = 1.
245 IF (CTYP_GR == 'SEDUM') XPAR_VEGTYPE(:, NVT_TROG) = 1.
246 !--------------------------------------------------------------------------
247 !
248 ! Dry/Wet soil albedos: (* Will need to account for XOM_GR eventually *)
249 !CALL DRY_WET_SOIL_ALBEDOS_1D(XSAND_GR(:,1),XCLAY_GR(:,1),                         &
250  CALL DRY_WET_SOIL_ALBEDOS_1D(XPAR_SAND_GR(:,1),XPAR_CLAY_GR(:,1),              &
251                                XPAR_VEGTYPE,                                   &
252                                XPAR_ALBNIR_DRY,XPAR_ALBVIS_DRY,XPAR_ALBUV_DRY, &
253                                XPAR_ALBNIR_WET,XPAR_ALBVIS_WET,XPAR_ALBUV_WET  ) 
254 !
255 ! Critical normilized soil water content for stress parameterisation
256 XPAR_F2I(:) = 0.3
257 !
258 ! Ratio between roughness length for momentum and heat
259 XPAR_Z0_O_Z0H(:) = 10.
260 !
261 ! Defensive/offensive strategy (1/0)
262 LDATA_STRESS(:) = .FALSE. 
263 !
264 DO JI=1,NDIM
265
266 ! Vegetation albedo: near-IR, visible, and UV albedo
267 ! * Will need to be adapted to greenroof GRASS and SEDUM species *
268 ! * vérifier si/où l'abedo ds l'UV est utilisé *
269  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_ALBNIR_VEG(JI)= 0.3
270  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_ALBNIR_VEG(JI)= 0.154 ! mesures ONERA/Doya (2011)
271
272  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_ALBVIS_VEG(JI)= 0.10
273  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_ALBVIS_VEG(JI)= 0.154 ! mesures ONERA/Doya (2011)
274
275  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_ALBUV_VEG(JI) = 0.0800
276  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_ALBUV_VEG(JI) = 0.1250
277 !
278 ! Soil albedo (* Will need to be refined for greenroofs - cf OM fraction *)
279  ZDATA_WGSAT(:) = 0.
280  ZDATA_WG1  (:) = 0.
281  CALL SOIL_ALBEDO('DRY',                                              &
282                     ZDATA_WGSAT, ZDATA_WG1,                           &
283                     XPAR_ALBVIS_DRY, XPAR_ALBNIR_DRY, XPAR_ALBUV_DRY, &
284                     XPAR_ALBVIS_WET, XPAR_ALBNIR_WET, XPAR_ALBUV_WET, &
285                     XPAR_ALBVIS_SOIL,XPAR_ALBNIR_SOIL,XPAR_ALBUV_SOIL )  
286 !
287 ! Min stomatal resistance  
288  !IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_RSMIN(JI)= 40 (dans isba & garden)
289  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_RSMIN(JI)= 120  ! for GRASS
290  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_RSMIN(JI)= 150. ! for SEDUM
291  !IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_RSMIN(JI)= 120.
292
293 ! Gamma parameter 
294 ! (* Check if values needs to be refined for GRASS and SEDUM *)
295  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_GAMMA(JI)= 0.
296  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_GAMMA(JI)= 0.
297 !
298 ! Wrmax_cf 
299 ! (* Check if needs to be refined for GRASS and SEDUM greenroofs *)
300  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_WRMAX_CF(JI)= 0.2
301  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_WRMAX_CF(JI)= 0.2
302 !
303 ! Rgl 
304 ! (* Check if needs to be refined for GRASS and SEDUM greenroofs *)
305  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_RGL(JI)= 100.
306  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_RGL(JI)= 100.
307 !
308 ! Cv 
309 ! (* Check if needs to be refined for GRASS and SEDUM greenroofs *)
310  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_CV(JI)= 2.E-5
311  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_CV(JI)= 2.E-5
312 !
313 !! Mesophyll conductance (m s-1) 
314 ! (* Check if needs to be refined for GRASS and SEDUM greenroofs *)
315  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_GMES(JI)= 0.020
316  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_GMES(JI)= 0.020
317  !IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_GMES(JI)= 0.003
318 !
319 ! Ecosystem Respiration (kg/kg.m.s-1)
320 ! (* Check if needs to be refined for GRASS and SEDUM greenroofs *)
321  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0.  )  XPAR_RE25(JI)= 3.0E-7
322  IF(XPAR_VEGTYPE(JI,NVT_TROG  )>0.)  XPAR_RE25(JI)= 3.0E-7
323 !
324 ! Cuticular conductance (m s-1)
325  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_GC(JI)= 0.00025
326  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_GC(JI)= 0.00025        
327 !
328 ! Ratio d(biomass)/d(lai) (kg/m2)
329  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_BSLAI(JI)= 0.36
330  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_BSLAI(JI)= 0.06
331 !
332 ! Maximum air saturation deficit tolerate by vegetation (kg/kg)
333  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_DMAX(JI)= 0.1
334  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_DMAX(JI)= 0.1
335 !
336 ! e-folding time for senescence (days)
337  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_SEFOLD(JI)=  90.* XDAY
338  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_SEFOLD(JI)=  60.* XDAY
339 !
340 ! Minimum LAI (m2/m2)
341  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_LAIMIN (JI) = 0.3
342  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_LAIMIN (JI) = 0.3
343 !
344 ! Leaf aera ratio sensitivity to nitrogen concentration
345  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_CE_NITRO(JI)= 5.56
346  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_CE_NITRO(JI)= 3.79
347 !
348 ! Lethal minimum value of leaf area ratio
349  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_CF_NITRO(JI)=  6.73
350  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )  XPAR_CF_NITRO(JI)=  9.84
351 !
352 ! Nitrogen concentration of active biomass
353  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )  XPAR_CNA_NITRO(JI)= 1.9
354  IF(XPAR_VEGTYPE(JI,NVT_TROG )>0.)  XPAR_CNA_NITRO(JI)= 1.3
355 !
356 ! Depth of greenroof ground layers
357  XPAR_DG(JI, 1) = XGRID_SOIL(NGRID_LEVEL - 5)
358  XPAR_DG(JI, 2) = XGRID_SOIL(NGRID_LEVEL - 4)
359  XPAR_DG(JI, 3) = XGRID_SOIL(NGRID_LEVEL - 3)
360  XPAR_DG(JI, 4) = XGRID_SOIL(NGRID_LEVEL - 2)
361  XPAR_DG(JI, 5) = XGRID_SOIL(NGRID_LEVEL - 1)
362  XPAR_DG(JI, 6) = XGRID_SOIL(NGRID_LEVEL - 0)
363 !
364 ! Root fractions
365  XPAR_ROOTFRAC(JI, 1)  = 0.04
366  XPAR_ROOTFRAC(JI, 2)  = 0.36
367  XPAR_ROOTFRAC(JI, 3)  = 0.68
368  XPAR_ROOTFRAC(JI, 4)  = 1.
369  XPAR_ROOTFRAC(JI, 5)  = 1.
370  XPAR_ROOTFRAC(JI, 6)  = 1.
371 !
372 ! Depth of the soil column for the calculation of the frozen soil fraction (m)
373  XPAR_DICE(JI) = XPAR_DG(JI,1) 
374 !
375 DO JTIME=1,NTIME_GR
376 ! Leaf Area Index
377  XPAR_LAI(JI,JTIME) = XPAR_LAI_GR(JI,JTIME)
378
379 ! Fraction of vegetation on greenroof
380 !* Will need to be refined for greenroofs *)
381   !XPAR_VEG (JI,1,JTIME) = VEG_FROM_LAI (XPAR_LAI_GR(JI,JTIME),   &
382   !                                       XPAR_VEGTYPE(JI,:))  
383  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )   XPAR_VEG (JI,JTIME) = 0.9
384  !IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )   XPAR_VEG (JI,JTIME) = 1.0
385  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )   XPAR_VEG (JI,JTIME) = 0.95
386
387 ! Roughness length for momentum
388 !* Will need to be refined for greenroofs *)
389  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )   XPAR_Z0 (JI,JTIME) = 0.01
390  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )   XPAR_Z0 (JI,JTIME) = 0.01
391  !                                        
392 ! Emissivity
393 !* Will need to be refined for greenroofs *)
394   !XPAR_EMIS (JI,1,JTIME) = EMIS_FROM_VEG (XPAR_VEG    (JI,1,JTIME),&
395   !                                         XPAR_VEGTYPE(JI,:))  
396  IF(XPAR_VEGTYPE(JI,NVT_GRAS)>0. )   XPAR_EMIS (JI,JTIME) = 0.95 
397  IF(XPAR_VEGTYPE(JI,NVT_TROG)>0. )   XPAR_EMIS (JI,JTIME) = 0.83 ! Feng. et al. (2010)
398
399 END DO
400 !
401 ENDDO
402 !
403 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GREENROOF_PAR_N',1,ZHOOK_HANDLE)
404 !
405 !-------------------------------------------------------------------------------
406 !
407 END SUBROUTINE READ_PGD_TEB_GREENROOF_PAR_n