56 USE yomhook
,ONLY : lhook, dr_hook
57 USE parkind1
,ONLY : jprb
68 INTEGER,
INTENT(IN) :: klu
69 INTEGER,
INTENT(IN) :: ksw
70 CHARACTER(LEN=6),
INTENT(IN):: hprogram
76 CHARACTER(LEN=12) :: yrec
77 REAL(KIND=JPRB) :: zhook_handle
83 IF (lhook) CALL dr_hook(
'DIAG_TEB_INIT_N',0,zhook_handle)
85 ALLOCATE(dgt%XDIAG_TS(klu))
88 IF (dgt%LSURF_BUDGET)
THEN
89 ALLOCATE(dgt%XRN (klu))
90 ALLOCATE(dgt%XH (klu))
91 ALLOCATE(dgt%XLE (klu))
92 ALLOCATE(dgt%XGFLUX (klu))
93 ALLOCATE(dgt%XSWD (klu))
94 ALLOCATE(dgt%XSWU (klu))
95 ALLOCATE(dgt%XSWBD (klu,ksw))
96 ALLOCATE(dgt%XSWBU (klu,ksw))
97 ALLOCATE(dgt%XLWD (klu))
98 ALLOCATE(dgt%XLWU (klu))
99 ALLOCATE(dgt%XFMU (klu))
100 ALLOCATE(dgt%XFMV (klu))
101 ALLOCATE(dgt%XSFCO2 (klu))
117 ALLOCATE(dgt%XRN (0))
119 ALLOCATE(dgt%XLE (0))
120 ALLOCATE(dgt%XGFLUX (0))
121 ALLOCATE(dgt%XSWD (0))
122 ALLOCATE(dgt%XSWU (0))
123 ALLOCATE(dgt%XSWBD (0,0))
124 ALLOCATE(dgt%XSWBU (0,0))
125 ALLOCATE(dgt%XLWD (0))
126 ALLOCATE(dgt%XLWU (0))
127 ALLOCATE(dgt%XFMU (0))
128 ALLOCATE(dgt%XFMV (0))
129 ALLOCATE(dgt%XSFCO2 (0))
135 ALLOCATE(dgt%XRI (klu))
136 ALLOCATE(dgt%XT2M (klu))
137 ALLOCATE(dgt%XT2M_MIN (klu))
138 ALLOCATE(dgt%XT2M_MAX (klu))
139 ALLOCATE(dgt%XQ2M (klu))
140 ALLOCATE(dgt%XHU2M (klu))
141 ALLOCATE(dgt%XHU2M_MIN(klu))
142 ALLOCATE(dgt%XHU2M_MAX(klu))
143 ALLOCATE(dgt%XZON10M (klu))
144 ALLOCATE(dgt%XMER10M (klu))
145 ALLOCATE(dgt%XWIND10M (klu))
146 ALLOCATE(dgt%XWIND10M_MAX(klu))
150 dgt%XT2M_MIN = xundef
151 dgt%XT2M_MAX = -xundef
154 dgt%XHU2M_MIN= xundef
155 dgt%XHU2M_MAX=-xundef
158 dgt%XWIND10M = xundef
159 dgt%XWIND10M_MAX = -xundef
161 ALLOCATE(dgt%XRI (0))
162 ALLOCATE(dgt%XT2M (0))
163 ALLOCATE(dgt%XT2M_MIN (0))
164 ALLOCATE(dgt%XT2M_MAX (0))
165 ALLOCATE(dgt%XQ2M (0))
166 ALLOCATE(dgt%XHU2M (0))
167 ALLOCATE(dgt%XHU2M_MIN(0))
168 ALLOCATE(dgt%XHU2M_MAX(0))
169 ALLOCATE(dgt%XZON10M (0))
170 ALLOCATE(dgt%XMER10M (0))
171 ALLOCATE(dgt%XWIND10M (0))
172 ALLOCATE(dgt%XWIND10M_MAX(0))
177 IF (dgt%N2M>0 .AND. dgut%LUTCI)
THEN
179 ALLOCATE(dgut%XUTCI_IN (klu))
180 ALLOCATE(dgut%XUTCI_OUTSUN (klu))
181 ALLOCATE(dgut%XUTCI_OUTSHADE (klu))
182 ALLOCATE(dgut%XTRAD_SUN (klu))
183 ALLOCATE(dgut%XTRAD_SHADE (klu))
184 ALLOCATE(dgut%XUTCIC_IN (klu,nutci_stress))
185 ALLOCATE(dgut%XUTCIC_OUTSUN (klu,nutci_stress))
186 ALLOCATE(dgut%XUTCIC_OUTSHADE(klu,nutci_stress))
188 dgut%XUTCI_IN = xundef
189 dgut%XUTCI_OUTSUN = xundef
190 dgut%XUTCI_OUTSHADE = xundef
191 dgut%XTRAD_SUN = xundef
192 dgut%XTRAD_SHADE = xundef
194 dgut%XUTCIC_OUTSUN = 0.
195 dgut%XUTCIC_OUTSHADE = 0.
198 ALLOCATE(dgut%XUTCI_IN (0))
199 ALLOCATE(dgut%XUTCI_OUTSUN (0))
200 ALLOCATE(dgut%XUTCI_OUTSHADE (0))
201 ALLOCATE(dgut%XTRAD_SUN (0))
202 ALLOCATE(dgut%XTRAD_SHADE (0))
203 ALLOCATE(dgut%XUTCIC_IN (0,0))
204 ALLOCATE(dgut%XUTCIC_OUTSUN (0,0))
205 ALLOCATE(dgut%XUTCIC_OUTSHADE(0,0))
211 ALLOCATE(dgt%XCD (klu))
212 ALLOCATE(dgt%XCH (klu))
213 ALLOCATE(dgt%XCE (klu))
214 ALLOCATE(dgt%XZ0 (klu))
215 ALLOCATE(dgt%XZ0H (klu))
223 ALLOCATE(dgt%XCD (0))
224 ALLOCATE(dgt%XCH (0))
225 ALLOCATE(dgt%XCE (0))
226 ALLOCATE(dgt%XZ0 (0))
227 ALLOCATE(dgt%XZ0H (0))
233 IF (dgt%LSURF_VARS)
THEN
234 ALLOCATE(dgt%XQS (klu))
238 ALLOCATE(dgt%XQS (0))
240 IF (lhook) CALL dr_hook(
'DIAG_TEB_INIT_N',1,zhook_handle)
subroutine diag_teb_init_n(DGT, DGUT, HPROGRAM, KLU, KSW)