SURFEX v8.1
General documentation of Surfex
diag_teb_veg_initn.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 ! #########
6  SUBROUTINE diag_teb_veg_init_n(DK, DEK, DECK, DMK, KLU, KSNOW_LAYER)
7  ! #####################
8 !
9 USE modd_surf_par, ONLY : xundef
10 !
11 USE mode_diag
12 !
13 USE modd_diag_n, ONLY : diag_t
16 !
17 USE yomhook ,ONLY : lhook, dr_hook
18 USE parkind1 ,ONLY : jprb
19 !
20 IMPLICIT NONE
21 !
22 TYPE(diag_t), INTENT(INOUT) :: DK
23 TYPE(diag_evap_isba_t), INTENT(INOUT) :: DEK
24 TYPE(diag_evap_isba_t), INTENT(INOUT) :: DECK
25 TYPE(diag_misc_isba_t), INTENT(INOUT) :: DMK
26 INTEGER, INTENT(IN) :: KLU
27 INTEGER, INTENT(IN) :: KSNOW_LAYER
28 !
29 REAL(KIND=JPRB) :: ZHOOK_HANDLE
30 !
31 IF (lhook) CALL dr_hook('DIAG_TEB_VEG_INIT',0,zhook_handle)
32 !
33 ! Main diag
34 !
35 !general
36 ALLOCATE(dk%XRN (klu))
37 ALLOCATE(dk%XH (klu))
38 ALLOCATE(dk%XLE (klu))
39 ALLOCATE(dk%XLEI (klu))
40 ALLOCATE(dk%XGFLUX(klu))
41 ALLOCATE(dk%XEVAP (klu))
42 ALLOCATE(dk%XSUBL (klu))
43 !
44 dk%XRN (:) = xundef
45 dk%XH (:) = xundef
46 dk%XLE (:) = xundef
47 dk%XLEI (:) = xundef
48 dk%XGFLUX(:) = xundef
49 dk%XEVAP (:) = xundef
50 dk%XSUBL (:) = xundef
51 !
52 !
53 ALLOCATE(dk%XRI(klu))
54 !
55 dk%XRI(:) = xundef
56 !
57 !
58 ALLOCATE(dk%XCD (klu))
59 ALLOCATE(dk%XCH (klu))
60 ALLOCATE(dk%XZ0 (klu))
61 ALLOCATE(dk%XZ0H(klu))
62 !
63 dk%XCD (:) = xundef
64 dk%XCH (:) = xundef
65 dk%XZ0 (:) = xundef
66 dk%XZ0H(:) = xundef
67 !
68 !
69 ALLOCATE(dk%XZ0EFF(klu))
70 ALLOCATE(dk%XCDN (klu))
71 ALLOCATE(dk%XHUG (klu))
72 ALLOCATE(dk%XHU (klu))
73 ALLOCATE(dk%XQS (klu))
74 !
75 dk%XZ0EFF(:) = xundef
76 dk%XCDN (:) = xundef
77 dk%XHUG (:) = xundef
78 dk%XHU (:) = xundef
79 dk%XQS (:) = xundef
80 !
81 !
82 ALLOCATE(dk%XTS (klu))
83 ALLOCATE(dk%XTSRAD(klu))
84 ALLOCATE(dk%XALBT (klu))
85 !
86 dk%XTS (:) = xundef
87 dk%XTSRAD(:) = xundef
88 dk%XALBT (:) = xundef
89 !
90 !---------------------------
91 !
92 ! Evaporation diag
93 !
94 ! general
95 ALLOCATE(dek%XLEG (klu))
96 ALLOCATE(dek%XLEGI(klu))
97 ALLOCATE(dek%XLEV (klu))
98 ALLOCATE(dek%XLES (klu))
99 ALLOCATE(dek%XLESL(klu))
100 ALLOCATE(dek%XLER (klu))
101 ALLOCATE(dek%XLETR(klu))
102 !
103 dek%XLEG (:) = xundef
104 dek%XLEGI(:) = xundef
105 dek%XLEV (:) = xundef
106 dek%XLES (:) = xundef
107 dek%XLESL(:) = xundef
108 dek%XLER (:) = xundef
109 dek%XLETR(:) = xundef
110 !
111 !
112 ALLOCATE(dek%XDRAIN (klu))
113 ALLOCATE(dek%XRUNOFF(klu))
114 ALLOCATE(dek%XHORT (klu))
115 ALLOCATE(dek%XQSB (klu))
116 ALLOCATE(dek%XIRRIG_FLUX(klu))
117 !
118 dek%XDRAIN (:) = xundef
119 dek%XRUNOFF(:) = xundef
120 dek%XHORT (:) = xundef
121 dek%XQSB (:) = xundef
122 dek%XIRRIG_FLUX(:) = xundef
123 !
124 !
125 ALLOCATE(dek%XDRIP (klu))
126 ALLOCATE(dek%XRRVEG(klu))
127 !
128 dek%XDRIP (:) = xundef
129 dek%XRRVEG(:) = xundef
130 !
131 !
132 ALLOCATE(dek%XMELT (klu))
133 ALLOCATE(dek%XMELTADV (klu))
134 ALLOCATE(dek%XRESTORE (klu))
135 ALLOCATE(dek%XSNDRIFT (klu))
136 ALLOCATE(dek%XSWNET_N (klu))
137 ALLOCATE(dek%XSWNET_NS(klu))
138 ALLOCATE(dek%XLWNET_N (klu))
139 !
140 dek%XMELT (:) = xundef
141 dek%XMELTADV (:) = xundef
142 dek%XRESTORE (:) = xundef
143 dek%XSNDRIFT (:) = xundef
144 dek%XSWNET_N (:) = xundef
145 dek%XSWNET_NS(:) = xundef
146 dek%XLWNET_N (:) = xundef
147 !
148 !
149 ALLOCATE(dek%XLE_FLOOD (klu))
150 ALLOCATE(dek%XLEI_FLOOD(klu))
151 ALLOCATE(dek%XPFLOOD (klu))
152 ALLOCATE(dek%XIFLOOD (klu))
153 !
154 dek%XLE_FLOOD (:) = xundef
155 dek%XLEI_FLOOD(:) = xundef
156 dek%XPFLOOD (:) = xundef
157 dek%XIFLOOD (:) = xundef
158 !
159 !
160 ALLOCATE(dek%XGPP (klu))
161 ALLOCATE(dek%XRESP_ECO (klu))
162 ALLOCATE(dek%XRESP_AUTO(klu))
163 !
164 dek%XGPP (:) = xundef
165 dek%XRESP_ECO (:) = xundef
166 dek%XRESP_AUTO(:) = xundef
167 !
168 !
169 ALLOCATE(dek%XRN_SN_FR (klu))
170 ALLOCATE(dek%XH_SN_FR (klu))
171 ALLOCATE(dek%XLEI_SN_FR (klu))
172 ALLOCATE(dek%XLE_SN_FR (klu))
173 ALLOCATE(dek%XGFLUX_SN_FR(klu))
174 ALLOCATE(dek%XLEG_SN_FR (klu))
175 ALLOCATE(dek%XLEGI_SN_FR (klu))
176 ALLOCATE(dek%XLEV_SN_FR (klu))
177 ALLOCATE(dek%XLETR_SN_FR (klu))
178 ALLOCATE(dek%XUSTAR_SN_FR(klu))
179 ALLOCATE(dek%XLER_SN_FR (klu))
180 !
181 dek%XRN_SN_FR (:) = xundef
182 dek%XH_SN_FR (:) = xundef
183 dek%XLEI_SN_FR (:) = xundef
184 dek%XLE_SN_FR (:) = xundef
185 dek%XGFLUX_SN_FR(:) = xundef
186 dek%XLEG_SN_FR (:) = xundef
187 dek%XLEGI_SN_FR (:) = xundef
188 dek%XLEV_SN_FR (:) = xundef
189 dek%XLETR_SN_FR (:) = xundef
190 dek%XUSTAR_SN_FR(:) = xundef
191 dek%XLER_SN_FR (:) = xundef
192 !
193 !
194 ALLOCATE(deck%XDRAIN (klu))
195 ALLOCATE(deck%XRUNOFF(klu))
196 !
197 deck%XDRAIN (:) = 0.
198 deck%XRUNOFF(:) = 0.
199 !
200 !--------------------------------------
201 !
202 ! Misc diag
203 !
204 ALLOCATE(dmk%XC1 (klu))
205 ALLOCATE(dmk%XC2 (klu))
206 ALLOCATE(dmk%XWGEQ(klu))
207 ALLOCATE(dmk%XCG (klu))
208 ALLOCATE(dmk%XCT (klu))
209 ALLOCATE(dmk%XRS (klu))
210 ALLOCATE(dmk%XHV (klu))
211 ALLOCATE(dmk%XGRNDFLUX (klu))
212 ALLOCATE(dmk%XSNOWTEMP (klu,ksnow_layer))
213 ALLOCATE(dmk%XSNOWHMASS(klu))
214 ALLOCATE(dmk%XSNOWLIQ (klu,ksnow_layer))
215 ALLOCATE(dmk%XSNOWDZ (klu,ksnow_layer))
216 ALLOCATE(dmk%XSRSFC (klu))
217 ALLOCATE(dmk%XRRSFC (klu))
218 ALLOCATE(dmk%XRNSNOW (klu))
219 ALLOCATE(dmk%XHSNOW (klu))
220 ALLOCATE(dmk%XGFLUXSNOW(klu))
221 ALLOCATE(dmk%XHPSNOW (klu))
222 ALLOCATE(dmk%XUSTARSNOW(klu))
223 ALLOCATE(dmk%XCDSNOW (klu))
224 ALLOCATE(dmk%XCHSNOW (klu))
225 !
226 dmk%XC1 = xundef
227 dmk%XC2 = xundef
228 dmk%XWGEQ = xundef
229 dmk%XCG = xundef
230 dmk%XCT = xundef
231 dmk%XRS = xundef
232 dmk%XHV = xundef
233 dmk%XGRNDFLUX = xundef
234 dmk%XSNOWTEMP = xundef
235 dmk%XSNOWHMASS = xundef
236 dmk%XSNOWLIQ = xundef
237 dmk%XSNOWDZ = xundef
238 dmk%XSRSFC = xundef
239 dmk%XRRSFC = xundef
240 dmk%XRNSNOW = xundef
241 dmk%XHSNOW = xundef
242 dmk%XGFLUXSNOW = xundef
243 dmk%XHPSNOW = xundef
244 dmk%XUSTARSNOW = xundef
245 dmk%XCDSNOW = xundef
246 dmk%XCHSNOW = xundef
247 !
248 ! LPROSNOW = .FALSE. for GARDEN GREENROOF
249 ALLOCATE(dmk%XSNOWDEND(0,0))
250 !
251 IF (lhook) CALL dr_hook('DIAG_TEB_VEG_INIT',1,zhook_handle)
252 !
253 END SUBROUTINE diag_teb_veg_init_n
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine diag_teb_veg_init_n(DK, DEK, DECK, DMK, KLU, KSNOW_LAYE
logical lhook
Definition: yomhook.F90:15