SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_data_isban.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ##################
7 ! ##################
8 !
9 !!**** *MODD_DATA_ISBA - declaration of DATA surface parameters for ISBA scheme
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!
15 !!** IMPLICIT ARGUMENTS
16 !! ------------------
17 !! None
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson *Meteo France*
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 05/2005
29 !! P Samuelsson 02/2012 MEB
30 !! B. Decharme 01/16 : Bug when vegetation veg, z0 and emis are imposed whith interactive vegetation
31 !
32 !* 0. DECLARATIONS
33 ! ------------
34 !
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 
43 !-------------------------------------------------------------------------------
44 !
45 ! Mask and number of grid elements containing patches/tiles:
46 !
47  REAL, POINTER, DIMENSION(:,:) :: XPAR_VEGTYPE ! fraction of each vegetation type for
48 ! ! each grid mesh (-)
49 !
50 !-------------------------------------------------------------------------------
51 !
52  INTEGER :: NTIME ! number of time data
53 ! ! for VEG, LAI, EMIS, Z0
54  LOGICAL :: LDATA_MIXPAR
55 !
56  LOGICAL :: LDATA_VEGTYPE
57  LOGICAL :: LDATA_LAI
58  LOGICAL :: LDATA_H_TREE
59  LOGICAL :: LDATA_DG
60  LOGICAL :: LDATA_DICE
61  LOGICAL :: LDATA_ROOTFRAC
62  LOGICAL :: LDATA_GROUND_DEPTH
63  LOGICAL :: LDATA_ROOT_DEPTH
64  LOGICAL :: LDATA_ROOT_EXTINCTION
65  LOGICAL :: LDATA_ROOT_LIN
66  LOGICAL :: LDATA_VEG
67  LOGICAL :: LDATA_Z0
68  LOGICAL :: LDATA_EMIS
69  LOGICAL :: LDATA_ALBNIR_VEG
70  LOGICAL :: LDATA_ALBVIS_VEG
71  LOGICAL :: LDATA_ALBUV_VEG
72  LOGICAL :: LDATA_RSMIN
73  LOGICAL :: LDATA_GAMMA
74  LOGICAL :: LDATA_WRMAX_CF
75  LOGICAL :: LDATA_CV
76  LOGICAL :: LDATA_Z0_O_Z0H
77  LOGICAL :: LDATA_RGL
78  LOGICAL :: LDATA_BSLAI
79  LOGICAL :: LDATA_LAIMIN
80  LOGICAL :: LDATA_SEFOLD
81  LOGICAL :: LDATA_GMES
82  LOGICAL :: LDATA_RE25
83  LOGICAL :: LDATA_STRESS
84  LOGICAL :: LDATA_F2I
85  LOGICAL :: LDATA_GC
86  LOGICAL :: LDATA_DMAX
87  LOGICAL :: LDATA_CE_NITRO
88  LOGICAL :: LDATA_CF_NITRO
89  LOGICAL :: LDATA_CNA_NITRO
90  LOGICAL :: LDATA_ALBNIR_SOIL
91  LOGICAL :: LDATA_ALBVIS_SOIL
92  LOGICAL :: LDATA_ALBUV_SOIL
93  LOGICAL :: LDATA_IRRIG
94  LOGICAL :: LDATA_WATSUP
95 ! - For multi-energy balance (MEB)
96 !
97  LOGICAL :: LDATA_GNDLITTER
98  LOGICAL :: LDATA_LAIGV
99  LOGICAL :: LDATA_Z0LITTER
100  LOGICAL :: LDATA_RSMINGV
101  LOGICAL :: LDATA_GAMMAGV
102  LOGICAL :: LDATA_WRMAX_CFGV
103  LOGICAL :: LDATA_RGLGV
104  LOGICAL :: LDATA_ROOTFRACGV
105  LOGICAL :: LDATA_ROOT_DEPTHGV
106  LOGICAL :: LDATA_ROOT_EXTINCTIONGV
107  LOGICAL :: LDATA_H_VEG
108 !
109  LOGICAL :: LIMP_VEG
110  LOGICAL :: LIMP_Z0
111  LOGICAL :: LIMP_EMIS
112 !
113 ! Input Parameters, per patch:
114 !
115 ! - vegetation + bare soil:
116 !
117  REAL, POINTER, DIMENSION(:,:) :: XPAR_Z0_O_Z0H ! ratio of surface roughness lengths
118 ! ! (momentum to heat) (-)
119  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_EMIS ! surface emissivity (-)
120  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_Z0 ! surface roughness length (m)
121 !
122 ! - vegetation:
123 !
124  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_VEG ! vegetation near-infra-red albedo (-)
125  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_VEG ! vegetation visible albedo (-)
126  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_VEG ! vegetation UV albedo (-)
127 !
128 ! - vegetation: default option (Jarvis) and general parameters:
129 !
130  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_VEG ! vegetation cover fraction (-)
131  REAL, POINTER, DIMENSION(:,:) :: XPAR_WRMAX_CF ! coefficient for maximum water
132 ! ! interception
133 ! ! storage capacity on the vegetation (-)
134  REAL, POINTER, DIMENSION(:,:) :: XPAR_RSMIN ! minimum stomatal resistance (s/m)
135  REAL, POINTER, DIMENSION(:,:) :: XPAR_GAMMA ! coefficient for the calculation
136 ! ! of the surface stomatal
137 ! ! resistance
138  REAL, POINTER, DIMENSION(:,:) :: XPAR_CV ! vegetation thermal inertia coefficient (K m2/J)
139  REAL, POINTER, DIMENSION(:,:) :: XPAR_RGL ! maximum solar radiation
140 ! ! usable in photosynthesis (W/m2)
141  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_ROOTFRAC ! root fraction profile ('DIF' option)
142 !
143  REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_DEPTH ! root depth ('DIF' option)
144  REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_EXTINCTION ! root extinction parameter ('DIF' option)
145  REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_LIN ! root linear parameter ('DIF' option)
146 !
147 ! - For multi-energy balance (MEB)
148 !
149  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_GNDLITTER ! ground litter fraction
150  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_LAIGV ! understory LAI
151  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_Z0LITTER ! ground litter roughness length
152  REAL, POINTER, DIMENSION(:,:) :: XPAR_RSMINGV ! understory minimum surface resistance
153  REAL, POINTER, DIMENSION(:,:) :: XPAR_GAMMAGV !
154  REAL, POINTER, DIMENSION(:,:) :: XPAR_WRMAX_CFGV !
155  REAL, POINTER, DIMENSION(:,:) :: XPAR_RGLGV !
156  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_ROOTFRACGV ! understory root fraction profile
157  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_H_VEG ! height of canopy vegetation
158  REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_DEPTHGV ! root depth ('DIF' option)
159  REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_EXTINCTIONGV ! root extinction parameter ('DIF' option)
160 !
161 !
162 !-------------------------------------------------------------------------------
163 !
164 ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB' options)
165 !
166  REAL, POINTER, DIMENSION(:,:) :: XPAR_BSLAI ! ratio d(biomass)/d(lai) (kg/m2)
167  REAL, POINTER, DIMENSION(:,:) :: XPAR_LAIMIN ! minimum LAI (Leaf Area Index) (m2/m2)
168  REAL, POINTER, DIMENSION(:,:) :: XPAR_SEFOLD ! e-folding time for senescence (s)
169  REAL, POINTER, DIMENSION(:,:) :: XPAR_H_TREE ! height of trees (m)
170  REAL, POINTER, DIMENSION(:,:) :: XPAR_GMES ! mesophyll conductance (m s-1)
171  REAL, POINTER, DIMENSION(:,:) :: XPAR_RE25 ! Ecosystem respiration parameter (kg m2 s-1)
172 !
173 !-------------------------------------------------------------------------------
174 !
175 ! - vegetation: Ags Stress parameters ('AST', 'LST', 'NIT', 'NCB' options)
176 !
177  LOGICAL, POINTER, DIMENSION(:,:) :: LPAR_STRESS ! vegetation response type to water
178 ! ! stress (true:defensive false:offensive) (-)
179  REAL, POINTER, DIMENSION(:,:) :: XPAR_F2I ! critical normilized soil water
180 ! ! content for stress parameterisation
181  REAL, POINTER, DIMENSION(:,:) :: XPAR_GC ! cuticular conductance (m s-1)
182  REAL, POINTER, DIMENSION(:,:) :: XPAR_DMAX ! maximum air saturation deficit
183 ! ! tolerate by vegetation (kg/kg)
184 !
185 !-------------------------------------------------------------------------------
186 !
187 ! - vegetation: Ags Nitrogen-model parameters ('NIT', 'NCB' option)
188 !
189  REAL, POINTER, DIMENSION(:,:) :: XPAR_CE_NITRO ! leaf aera ratio sensitivity to
190 ! ! nitrogen concentration (m2/kg)
191  REAL, POINTER, DIMENSION(:,:) :: XPAR_CF_NITRO ! lethal minimum value of leaf area
192 ! ! ratio (m2/kg)
193  REAL, POINTER, DIMENSION(:,:) :: XPAR_CNA_NITRO ! nitrogen concentration of active
194 ! ! biomass (kg/kg)
195 !
196 !-------------------------------------------------------------------------------
197 !
198 ! - soil: primary parameters
199 !
200  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_DG ! soil layer depth (m)
201 ! ! NOTE: in Force-Restore mode, the
202 ! ! uppermost layer thickness is superficial
203 ! ! and is only explicitly used for soil
204 ! ! water phase changes (m)
205 !
206  REAL, POINTER,DIMENSION(:,:) :: XPAR_GROUND_DEPTH ! ground depth (DIF option)
207 !
208  REAL, POINTER,DIMENSION(:,:) :: XPAR_DICE ! depth of the soil column for the calculation
209 ! of the frozen soil fraction (m) (Force restore)
210 !
211 ! - bare soil albedo
212 !
213  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_SOIL ! soil near-infra-red albedo (-)
214  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_SOIL ! soil visible albedo (-)
215  REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_SOIL ! soil UV albedo (-)
216 !
217 !-------------------------------------------------------------------------------
218 !
219 ! - Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', 'NIT', or 'NCB') or prescribed (YPHOTO='NON', 'AGS' or 'AST')
220 !
221  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_LAI ! Leaf Area Index (m2/m2)
222 !
223  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_IRRIG
224  REAL, POINTER, DIMENSION(:,:,:) :: XPAR_WATSUP
225 !
226 !-------------------------------------------------------------------------------
227 !
228 
229 END TYPE data_isba_t
230 
231 
232 
233  CONTAINS
234 
235 !
236 
237 
238 
239 
240 SUBROUTINE data_isba_init(YDATA_ISBA)
241 TYPE(data_isba_t), INTENT(INOUT) :: ydata_isba
242 REAL(KIND=JPRB) :: zhook_handle
243 IF (lhook) CALL dr_hook("MODD_DATA_ISBA_N:DATA_ISBA_INIT",0,zhook_handle)
244  nullify(ydata_isba%XPAR_VEGTYPE)
245  nullify(ydata_isba%XPAR_Z0_O_Z0H)
246  nullify(ydata_isba%XPAR_EMIS)
247  nullify(ydata_isba%XPAR_Z0)
248  nullify(ydata_isba%XPAR_ALBNIR_VEG)
249  nullify(ydata_isba%XPAR_ALBVIS_VEG)
250  nullify(ydata_isba%XPAR_ALBUV_VEG)
251  nullify(ydata_isba%XPAR_VEG)
252  nullify(ydata_isba%XPAR_WRMAX_CF)
253  nullify(ydata_isba%XPAR_RSMIN)
254  nullify(ydata_isba%XPAR_GAMMA)
255  nullify(ydata_isba%XPAR_CV)
256  nullify(ydata_isba%XPAR_RGL)
257  nullify(ydata_isba%XPAR_ROOTFRAC)
258  nullify(ydata_isba%XPAR_BSLAI)
259  nullify(ydata_isba%XPAR_LAIMIN)
260  nullify(ydata_isba%XPAR_SEFOLD)
261  nullify(ydata_isba%XPAR_H_TREE)
262  nullify(ydata_isba%XPAR_GMES)
263  nullify(ydata_isba%XPAR_RE25)
264  nullify(ydata_isba%LPAR_STRESS)
265  nullify(ydata_isba%XPAR_F2I)
266  nullify(ydata_isba%XPAR_GC)
267  nullify(ydata_isba%XPAR_DMAX)
268  nullify(ydata_isba%XPAR_CE_NITRO)
269  nullify(ydata_isba%XPAR_CF_NITRO)
270  nullify(ydata_isba%XPAR_CNA_NITRO)
271  nullify(ydata_isba%XPAR_DG)
272  nullify(ydata_isba%XPAR_DICE)
273  nullify(ydata_isba%XPAR_GROUND_DEPTH)
274  nullify(ydata_isba%XPAR_ROOT_DEPTH)
275  nullify(ydata_isba%XPAR_ROOT_EXTINCTION)
276  nullify(ydata_isba%XPAR_ROOT_LIN)
277  nullify(ydata_isba%XPAR_ALBNIR_SOIL)
278  nullify(ydata_isba%XPAR_ALBVIS_SOIL)
279  nullify(ydata_isba%XPAR_ALBUV_SOIL)
280  nullify(ydata_isba%XPAR_LAI)
281  nullify(ydata_isba%XPAR_IRRIG)
282  nullify(ydata_isba%XPAR_WATSUP)
283  nullify(ydata_isba%XPAR_GNDLITTER)
284  nullify(ydata_isba%XPAR_LAIGV)
285  nullify(ydata_isba%XPAR_Z0LITTER)
286  nullify(ydata_isba%XPAR_RSMINGV)
287  nullify(ydata_isba%XPAR_GAMMAGV)
288  nullify(ydata_isba%XPAR_WRMAX_CFGV)
289  nullify(ydata_isba%XPAR_RGLGV)
290  nullify(ydata_isba%XPAR_ROOTFRACGV)
291  nullify(ydata_isba%XPAR_ROOT_DEPTHGV)
292  nullify(ydata_isba%XPAR_ROOT_EXTINCTIONGV)
293  nullify(ydata_isba%XPAR_H_VEG)
294 ydata_isba%NTIME=0
295 ydata_isba%LDATA_MIXPAR=.false.
296 ydata_isba%LDATA_VEGTYPE=.false.
297 ydata_isba%LDATA_LAI=.false.
298 ydata_isba%LDATA_H_TREE=.false.
299 ydata_isba%LDATA_DG=.false.
300 ydata_isba%LDATA_DICE=.false.
301 ydata_isba%LDATA_GROUND_DEPTH=.false.
302 ydata_isba%LDATA_ROOT_DEPTH=.false.
303 ydata_isba%LDATA_ROOT_EXTINCTION=.false.
304 ydata_isba%LDATA_ROOT_LIN=.false.
305 ydata_isba%LDATA_ROOTFRAC=.false.
306 ydata_isba%LDATA_VEG=.false.
307 ydata_isba%LDATA_Z0=.false.
308 ydata_isba%LDATA_EMIS=.false.
309 ydata_isba%LDATA_ALBNIR_VEG=.false.
310 ydata_isba%LDATA_ALBVIS_VEG=.false.
311 ydata_isba%LDATA_ALBUV_VEG=.false.
312 ydata_isba%LDATA_RSMIN=.false.
313 ydata_isba%LDATA_GAMMA=.false.
314 ydata_isba%LDATA_WRMAX_CF=.false.
315 ydata_isba%LDATA_CV=.false.
316 ydata_isba%LDATA_RGL=.false.
317 ydata_isba%LDATA_Z0_O_Z0H=.false.
318 ydata_isba%LDATA_BSLAI=.false.
319 ydata_isba%LDATA_LAIMIN=.false.
320 ydata_isba%LDATA_SEFOLD=.false.
321 ydata_isba%LDATA_GMES=.false.
322 ydata_isba%LDATA_RE25=.false.
323 ydata_isba%LDATA_STRESS=.false.
324 ydata_isba%LDATA_F2I=.false.
325 ydata_isba%LDATA_GC=.false.
326 ydata_isba%LDATA_DMAX=.false.
327 ydata_isba%LDATA_CE_NITRO=.false.
328 ydata_isba%LDATA_CF_NITRO=.false.
329 ydata_isba%LDATA_CNA_NITRO=.false.
330 ydata_isba%LDATA_ALBNIR_SOIL=.false.
331 ydata_isba%LDATA_ALBVIS_SOIL=.false.
332 ydata_isba%LDATA_ALBUV_SOIL=.false.
333 ydata_isba%LDATA_IRRIG=.false.
334 ydata_isba%LDATA_WATSUP=.false.
335 ydata_isba%LDATA_GNDLITTER=.false.
336 ydata_isba%LDATA_LAIGV=.false.
337 ydata_isba%LDATA_Z0LITTER=.false.
338 ydata_isba%LDATA_RSMINGV=.false.
339 ydata_isba%LDATA_GAMMAGV=.false.
340 ydata_isba%LDATA_WRMAX_CFGV=.false.
341 ydata_isba%LDATA_RGLGV=.false.
342 ydata_isba%LDATA_ROOTFRACGV=.false.
343 ydata_isba%LDATA_ROOT_DEPTHGV=.false.
344 ydata_isba%LDATA_ROOT_EXTINCTIONGV=.false.
345 ydata_isba%LDATA_H_VEG=.false.
346 !
347 ydata_isba%LIMP_VEG=.false.
348 ydata_isba%LIMP_Z0=.false.
349 ydata_isba%LIMP_EMIS=.false.
350 !
351 IF (lhook) CALL dr_hook("MODD_DATA_ISBA_N:DATA_ISBA_INIT",1,zhook_handle)
352 END SUBROUTINE data_isba_init
353 
354 
355 END MODULE modd_data_isba_n
subroutine data_isba_init(YDATA_ISBA)