SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_data_teb_gardenn.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 !
30 !* 0. DECLARATIONS
31 ! ------------
32 !
33 !
34 !
35 USE yomhook ,ONLY : lhook, dr_hook
36 USE parkind1 ,ONLY : jprb
37 !
38 IMPLICIT NONE
39 
41 !-------------------------------------------------------------------------------
42 !
43  REAL, POINTER, DIMENSION(:) :: XDATA_FRAC_HVEG ! fraction of high vegetation
44  REAL, POINTER, DIMENSION(:) :: XDATA_FRAC_LVEG ! fraction of low vegetation
45  REAL, POINTER, DIMENSION(:) :: XDATA_FRAC_NVEG ! fraction of bare soil
46  REAL, POINTER, DIMENSION(:,:) :: XDATA_LAI_HVEG ! LAI of high vegetation
47  REAL, POINTER, DIMENSION(:,:) :: XDATA_LAI_LVEG ! LAI of low vegetation
48  REAL, POINTER, DIMENSION(:) :: XDATA_H_HVEG ! height of trees
49 !
50 !
51 ! Mask and number of grid elements containing patches/tiles:
52 !
53  REAL, POINTER, DIMENSION(:,:) :: XDATA_VEGTYPE ! fraction of each vegetation type for
54 ! ! each grid mesh (-)
55 !
56 !-------------------------------------------------------------------------------
57 !
58  INTEGER :: NTIME ! number of time data
59 ! ! for VEG, LAI, EMIS, Z0
60 !
61 ! Input Parameters:
62 !
63 ! - vegetation + bare soil:
64 !
65  REAL, POINTER, DIMENSION(:) :: XDATA_Z0_O_Z0H ! ratio of surface roughness lengths
66 ! ! (momentum to heat) (-)
67  REAL, POINTER, DIMENSION(:,:) :: XDATA_EMIS ! surface emissivity (-)
68  REAL, POINTER, DIMENSION(:,:) :: XDATA_Z0 ! surface roughness length (m)
69 !
70 ! - vegetation:
71 !
72  REAL, POINTER, DIMENSION(:) :: XDATA_ALBNIR_VEG ! vegetation near-infra-red albedo (-)
73  REAL, POINTER, DIMENSION(:) :: XDATA_ALBVIS_VEG ! vegetation visible albedo (-)
74  REAL, POINTER, DIMENSION(:) :: XDATA_ALBUV_VEG ! vegetation UV albedo (-)
75 !
76 ! - vegetation: default option (Jarvis) and general parameters:
77 !
78  REAL, POINTER, DIMENSION(:,:) :: XDATA_VEG ! vegetation cover fraction (-)
79  REAL, POINTER, DIMENSION(:) :: XDATA_WRMAX_CF ! coefficient for maximum water
80 ! ! interception
81 ! ! storage capacity on the vegetation (-)
82  REAL, POINTER, DIMENSION(:) :: XDATA_RSMIN ! minimum stomatal resistance (s/m)
83  REAL, POINTER, DIMENSION(:) :: XDATA_GAMMA ! coefficient for the calculation
84 ! ! of the surface stomatal
85 ! ! resistance
86  REAL, POINTER, DIMENSION(:) :: XDATA_CV ! vegetation thermal inertia coefficient (K m2/J)
87  REAL, POINTER, DIMENSION(:) :: XDATA_RGL ! maximum solar radiation
88 ! ! usable in photosynthesis (W/m2)
89  REAL, POINTER, DIMENSION(:,:) :: XDATA_ROOTFRAC ! root fraction profile ('DIF' option)
90 !
91 !-------------------------------------------------------------------------------
92 !
93 ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB' options)
94 !
95  REAL, POINTER, DIMENSION(:) :: XDATA_BSLAI ! ratio d(biomass)/d(lai) (kg/m2)
96  REAL, POINTER, DIMENSION(:) :: XDATA_LAIMIN ! minimum LAI (Leaf Area Index) (m2/m2)
97  REAL, POINTER, DIMENSION(:) :: XDATA_SEFOLD ! e-folding time for senescence (s)
98  REAL, POINTER, DIMENSION(:) :: XDATA_H_TREE ! height of trees (m)
99  REAL, POINTER, DIMENSION(:) :: XDATA_GMES ! mesophyll conductance (m s-1)
100  REAL, POINTER, DIMENSION(:) :: XDATA_RE25 ! Ecosystem respiration parameter (kg m2 s-1)
101 !
102 !-------------------------------------------------------------------------------
103 !
104 ! - vegetation: Ags Stress parameters ('AST', 'LST', 'NIT', 'NCB' options)
105 !
106  LOGICAL, POINTER, DIMENSION(:) :: LDATA_STRESS ! vegetation response type to water
107 ! ! stress (true:defensive false:offensive) (-)
108  REAL, POINTER, DIMENSION(:) :: XDATA_F2I ! critical normilized soil water
109 ! ! content for stress parameterisation
110  REAL, POINTER, DIMENSION(:) :: XDATA_GC ! cuticular conductance (m s-1)
111  REAL, POINTER, DIMENSION(:) :: XDATA_DMAX ! maximum air saturation deficit
112 ! ! tolerate by vegetation (kg/kg)
113 !
114  REAL, POINTER, DIMENSION(:) :: XDATA_BSLAI_ST ! ratio d(biomass)/d(lai) (kg/m2)
115  REAL, POINTER, DIMENSION(:) :: XDATA_SEFOLD_ST ! e-folding time for senescence (s)
116  REAL, POINTER, DIMENSION(:) :: XDATA_GMES_ST ! mesophyll conductance (m s-1)
117  REAL, POINTER, DIMENSION(:) :: XDATA_GC_ST ! cuticular conductance (m s-1)
118  REAL, POINTER, DIMENSION(:) :: XDATA_DMAX_ST ! maximum air saturation deficit
119 !-------------------------------------------------------------------------------
120 !
121 ! - vegetation: Ags Nitrogen-model parameters ('NIT', 'NCB' option)
122 !
123  REAL, POINTER, DIMENSION(:) :: XDATA_CE_NITRO ! leaf aera ratio sensitivity to
124 ! ! nitrogen concentration (m2/kg)
125  REAL, POINTER, DIMENSION(:) :: XDATA_CF_NITRO ! lethal minimum value of leaf area
126 ! ! ratio (m2/kg)
127  REAL, POINTER, DIMENSION(:) :: XDATA_CNA_NITRO ! nitrogen concentration of active
128 ! ! biomass (kg/kg)
129 !
130 !-------------------------------------------------------------------------------
131 !
132 ! - soil: primary parameters
133 !
134  REAL, POINTER, DIMENSION(:,:) :: XDATA_DG ! soil layer thicknesses (m)
135 ! ! NOTE: in Force-Restore mode, the
136 ! ! uppermost layer thickness is superficial
137 ! ! and is only explicitly used for soil
138 ! ! water phase changes (m)
139 !
140  REAL, POINTER,DIMENSION(:) :: XDATA_DICE ! depth of the soil column for the calculation
141 ! of the frozen soil fraction (m)
142 !
143 ! - bare soil albedo
144 !
145  REAL, POINTER, DIMENSION(:) :: XDATA_ALBNIR_SOIL ! soil near-infra-red albedo (-)
146  REAL, POINTER, DIMENSION(:) :: XDATA_ALBVIS_SOIL ! soil visible albedo (-)
147  REAL, POINTER, DIMENSION(:) :: XDATA_ALBUV_SOIL ! soil UV albedo (-)
148  REAL, POINTER, DIMENSION(:) :: XDATA_ALBNIR_DRY ! dry soil near-infra-red albedo (-)
149  REAL, POINTER, DIMENSION(:) :: XDATA_ALBVIS_DRY ! dry soil visible albedo (-)
150  REAL, POINTER, DIMENSION(:) :: XDATA_ALBUV_DRY ! dry soil UV albedo (-)
151  REAL, POINTER, DIMENSION(:) :: XDATA_ALBNIR_WET ! wet soil near-infra-red albedo (-)
152  REAL, POINTER, DIMENSION(:) :: XDATA_ALBVIS_WET ! wet soil visible albedo (-)
153  REAL, POINTER, DIMENSION(:) :: XDATA_ALBUV_WET ! wet soil UV albedo (-)
154 !
155 !-------------------------------------------------------------------------------
156 !
157 !- Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', 'NIT', or 'NCB') or prescribed (YPHOTO='NON', 'AGS' or 'AST')
158 !
159  REAL, POINTER, DIMENSION(:,:) :: XDATA_LAI ! Leaf Area Index (m2/m2)
160 !
161 !-------------------------------------------------------------------------------
162 !
163 
164 END TYPE data_teb_garden_t
165 
166 
167 
168  CONTAINS
169 
170 !
171 
172 
173 
174 
175 SUBROUTINE data_teb_garden_init(YDATA_TEB_GARDEN)
176 TYPE(data_teb_garden_t), INTENT(INOUT) :: ydata_teb_garden
177 REAL(KIND=JPRB) :: zhook_handle
178 IF (lhook) CALL dr_hook("MODD_DATA_TEB_GARDEN_N:DATA_TEB_GARDEN_INIT",0,zhook_handle)
179  nullify(ydata_teb_garden%XDATA_FRAC_HVEG)
180  nullify(ydata_teb_garden%XDATA_FRAC_LVEG)
181  nullify(ydata_teb_garden%XDATA_FRAC_NVEG)
182  nullify(ydata_teb_garden%XDATA_LAI_HVEG)
183  nullify(ydata_teb_garden%XDATA_LAI_LVEG)
184  nullify(ydata_teb_garden%XDATA_H_HVEG)
185  nullify(ydata_teb_garden%XDATA_VEGTYPE)
186  nullify(ydata_teb_garden%XDATA_Z0_O_Z0H)
187  nullify(ydata_teb_garden%XDATA_EMIS)
188  nullify(ydata_teb_garden%XDATA_Z0)
189  nullify(ydata_teb_garden%XDATA_ALBNIR_VEG)
190  nullify(ydata_teb_garden%XDATA_ALBVIS_VEG)
191  nullify(ydata_teb_garden%XDATA_ALBUV_VEG)
192  nullify(ydata_teb_garden%XDATA_VEG)
193  nullify(ydata_teb_garden%XDATA_WRMAX_CF)
194  nullify(ydata_teb_garden%XDATA_RSMIN)
195  nullify(ydata_teb_garden%XDATA_GAMMA)
196  nullify(ydata_teb_garden%XDATA_CV)
197  nullify(ydata_teb_garden%XDATA_RGL)
198  nullify(ydata_teb_garden%XDATA_ROOTFRAC)
199  nullify(ydata_teb_garden%XDATA_BSLAI)
200  nullify(ydata_teb_garden%XDATA_LAIMIN)
201  nullify(ydata_teb_garden%XDATA_SEFOLD)
202  nullify(ydata_teb_garden%XDATA_H_TREE)
203  nullify(ydata_teb_garden%XDATA_GMES)
204  nullify(ydata_teb_garden%XDATA_RE25)
205  nullify(ydata_teb_garden%LDATA_STRESS)
206  nullify(ydata_teb_garden%XDATA_F2I)
207  nullify(ydata_teb_garden%XDATA_GC)
208  nullify(ydata_teb_garden%XDATA_DMAX)
209  nullify(ydata_teb_garden%XDATA_BSLAI_ST)
210  nullify(ydata_teb_garden%XDATA_SEFOLD_ST)
211  nullify(ydata_teb_garden%XDATA_GMES_ST)
212  nullify(ydata_teb_garden%XDATA_GC_ST)
213  nullify(ydata_teb_garden%XDATA_DMAX_ST)
214  nullify(ydata_teb_garden%XDATA_CE_NITRO)
215  nullify(ydata_teb_garden%XDATA_CF_NITRO)
216  nullify(ydata_teb_garden%XDATA_CNA_NITRO)
217  nullify(ydata_teb_garden%XDATA_DG)
218  nullify(ydata_teb_garden%XDATA_DICE)
219  nullify(ydata_teb_garden%XDATA_ALBNIR_SOIL)
220  nullify(ydata_teb_garden%XDATA_ALBVIS_SOIL)
221  nullify(ydata_teb_garden%XDATA_ALBUV_SOIL)
222  nullify(ydata_teb_garden%XDATA_ALBNIR_DRY)
223  nullify(ydata_teb_garden%XDATA_ALBVIS_DRY)
224  nullify(ydata_teb_garden%XDATA_ALBUV_DRY)
225  nullify(ydata_teb_garden%XDATA_ALBNIR_WET)
226  nullify(ydata_teb_garden%XDATA_ALBVIS_WET)
227  nullify(ydata_teb_garden%XDATA_ALBUV_WET)
228  nullify(ydata_teb_garden%XDATA_LAI)
229 ydata_teb_garden%NTIME=0
230 IF (lhook) CALL dr_hook("MODD_DATA_TEB_GARDEN_N:DATA_TEB_GARDEN_INIT",1,zhook_handle)
231 END SUBROUTINE data_teb_garden_init
232 
233 
234 END MODULE modd_data_teb_garden_n
subroutine data_teb_garden_init(YDATA_TEB_GARDEN)