Line data Source code
1 : !-----------------------------------------------------------------------
2 : ! $Id$
3 : !===============================================================================
4 : module stats_lh_zt_module
5 :
6 : implicit none
7 :
8 : private ! Default Scope
9 :
10 : public :: stats_init_lh_zt
11 :
12 : ! Constant parameters
13 : integer, parameter, public :: nvarmax_lh_zt = 100 ! Maximum variables allowed
14 :
15 : contains
16 :
17 : !-----------------------------------------------------------------------
18 0 : subroutine stats_init_lh_zt( vars_lh_zt, & ! intent(in)
19 : l_error, & ! intent(inout)
20 : stats_metadata, stats_lh_zt ) ! intent(inout)
21 :
22 : ! Description:
23 : ! Initializes array indices for stats_zt
24 :
25 : ! Note:
26 : ! All code that is within subroutine stats_init_zt, including variable
27 : ! allocation code, is not called if l_stats is false. This subroutine is
28 : ! called only when l_stats is true.
29 :
30 : !-----------------------------------------------------------------------
31 :
32 : use constants_clubb, only: &
33 : fstderr ! Constant(s)
34 :
35 : use stats_type_utilities, only: &
36 : stat_assign ! Procedure
37 :
38 : use stats_type, only: &
39 : stats ! Type
40 :
41 : use stats_variables, only: &
42 : stats_metadata_type
43 :
44 : implicit none
45 :
46 : type (stats), target, intent(inout) :: &
47 : stats_lh_zt
48 :
49 : ! External
50 : intrinsic :: trim
51 :
52 : ! Local Constants
53 : integer, parameter :: &
54 : silhs_num_importance_categories = 8
55 :
56 : !--------------------- Input Variable ---------------------
57 : character(len= * ), dimension(nvarmax_lh_zt), intent(in) :: &
58 : vars_lh_zt
59 :
60 : !--------------------- InOut Variables ---------------------
61 : type (stats_metadata_type), intent(inout) :: &
62 : stats_metadata
63 :
64 : logical, intent(inout) :: l_error
65 :
66 : !--------------------- Local Varables ---------------------
67 : integer :: i, k, tot_loops, icategory
68 :
69 : character( len = 1 ) :: category_num_as_string
70 :
71 : !--------------------- Begin Code ---------------------
72 :
73 : ! Default initialization for array indices for stats_lh_zt is zero (see module
74 : ! stats_variables)
75 :
76 : ! If any of the index arrays are allocated, then we have called this before
77 : ! to set up stats_metadata, so all we want to do is set stats_lh_zt via stats_assign
78 0 : if ( .not. allocated(stats_metadata%isilhs_variance_category) ) then
79 0 : allocate( stats_metadata%isilhs_variance_category(silhs_num_importance_categories), &
80 0 : stats_metadata%ilh_samp_frac_category(silhs_num_importance_categories) )
81 : end if
82 :
83 0 : stats_metadata%isilhs_variance_category(:) = 0
84 0 : stats_metadata%ilh_samp_frac_category(:) = 0
85 :
86 : ! Assign pointers for statistics variables stats_zt
87 :
88 0 : tot_loops = stats_lh_zt%num_output_fields
89 :
90 0 : if ( any( vars_lh_zt == "silhs_variance_category" ) ) then
91 : ! Correct for number of variables found under "silhs_variance_category".
92 : ! Subtract 1 from the loop size for each SILHS importance category.
93 0 : tot_loops = tot_loops - silhs_num_importance_categories
94 : ! Add 1 for "silhs_variance_category" to the loop size.
95 0 : tot_loops = tot_loops + 1
96 : end if
97 :
98 0 : if ( any( vars_lh_zt == "lh_samp_frac_category" ) ) then
99 : ! Correct for number of variables found under "lh_samp_frac_category".
100 : ! Subtract 1 from the loop size for each SILHS importance category.
101 0 : tot_loops = tot_loops - silhs_num_importance_categories
102 : ! Add 1 for "lh_samp_frac_category" to the loop size.
103 0 : tot_loops = tot_loops + 1
104 : end if
105 :
106 0 : k = 1
107 0 : do i = 1, tot_loops
108 :
109 0 : select case ( trim( vars_lh_zt(i) ) )
110 : case ( 'AKm' ) ! Vince Larson 22 May 2005
111 0 : stats_metadata%iAKm = k
112 : call stat_assign( var_index=stats_metadata%iAKm, var_name="AKm", & ! intent(in)
113 : var_description="Analytic Kessler ac [kg/kg]", var_units="kg/kg", & ! intent(in)
114 : l_silhs=.true., & ! intent(in)
115 0 : grid_kind=stats_lh_zt ) ! intent(inout)
116 0 : k = k + 1
117 :
118 : case ( 'lh_AKm' ) ! Vince Larson 22 May 2005
119 0 : stats_metadata%ilh_AKm = k
120 :
121 : call stat_assign( var_index=stats_metadata%ilh_AKm, var_name="lh_AKm", & ! intent(in)
122 : var_description="LH Kessler estimate [kg/kg/s]", var_units="kg/kg/s", & ! intent(in)
123 : l_silhs=.true., & ! intent(in)
124 0 : grid_kind=stats_lh_zt ) ! intent(inout)
125 0 : k = k + 1
126 :
127 : case ( 'AKstd' )
128 0 : stats_metadata%iAKstd = k
129 :
130 : call stat_assign( var_index=stats_metadata%iAKstd, var_name="AKstd", & ! intent(in)
131 : var_description="Exact standard deviation of gba Kessler [kg/kg/s]", & ! intent(in)
132 : var_units="kg/kg/s", l_silhs=.true., & ! intent(in)
133 0 : grid_kind=stats_lh_zt ) ! intent(inout)
134 0 : k = k + 1
135 :
136 : case ( 'AKstd_cld' )
137 0 : stats_metadata%iAKstd_cld = k
138 :
139 : call stat_assign( var_index=stats_metadata%iAKstd_cld, var_name="AKstd_cld", & ! intent(in)
140 : var_description="Exact w/in cloud std of gba Kessler [kg/kg/s]", & ! intent(in)
141 : var_units="kg/kg/s", l_silhs=.true., & ! intent(in)
142 0 : grid_kind=stats_lh_zt ) ! intent(inout)
143 0 : k = k + 1
144 :
145 : case ( 'AKm_rcm' )
146 0 : stats_metadata%iAKm_rcm = k
147 :
148 : call stat_assign( var_index=stats_metadata%iAKm_rcm, var_name="AKm_rcm", & ! intent(in)
149 : var_description="Exact local gba auto based on rcm [kg/kg/s]", & ! intent(in)
150 : var_units="kg/kg/s", & ! intent(in)
151 : l_silhs=.true., & ! intent(in)
152 0 : grid_kind=stats_lh_zt ) ! intent(inout)
153 0 : k = k + 1
154 :
155 : case ( 'AKm_rcc' )
156 0 : stats_metadata%iAKm_rcc = k
157 :
158 : call stat_assign( var_index=stats_metadata%iAKm_rcc, var_name="AKm_rcc", & ! intent(in)
159 : var_description="Exact local gba based on w/in cloud rc [kg/kg/s]", & ! intent(in)
160 : var_units="kg/kg/s", l_silhs=.true., & ! intent(in)
161 0 : grid_kind=stats_lh_zt ) ! intent(inout)
162 0 : k = k + 1
163 :
164 : case ( 'lh_rvm_mc' )
165 0 : stats_metadata%ilh_rvm_mc = k
166 :
167 : call stat_assign( var_index=stats_metadata%ilh_rvm_mc, var_name="lh_rvm_mc", & ! intent(in)
168 : var_description="Latin hypercube estimate of rvm_mc [kg/kg/s]", & ! intent(in)
169 : var_units="kg/kg/s", & ! intent(in)
170 : l_silhs=.true., & ! intent(in)
171 0 : grid_kind=stats_lh_zt ) ! intent(inout)
172 0 : k = k + 1
173 :
174 : case ( 'lh_thlm_mc' )
175 0 : stats_metadata%ilh_thlm_mc = k
176 :
177 : call stat_assign( var_index=stats_metadata%ilh_thlm_mc, var_name="lh_thlm_mc", & ! intent(in)
178 : var_description="Latin hypercube estimate of thlm_mc [kg/kg/s]", & ! intent(in)
179 : var_units="kg/kg/s", l_silhs=.true., & ! intent(in)
180 0 : grid_kind=stats_lh_zt ) ! intent(inout)
181 0 : k = k + 1
182 :
183 : case ( 'lh_rcm_mc' )
184 0 : stats_metadata%ilh_rcm_mc = k
185 :
186 : call stat_assign( var_index=stats_metadata%ilh_rcm_mc, var_name="lh_rcm_mc", & ! intent(in)
187 : var_description="Latin hypercube estimate of rcm_mc [kg/kg/s]", & ! intent(in)
188 : var_units="kg/kg/s", & ! intent(in)
189 : l_silhs=.true., & ! intent(in)
190 0 : grid_kind=stats_lh_zt ) ! intent(inout)
191 0 : k = k + 1
192 :
193 : case ( 'lh_Ncm_mc' )
194 0 : stats_metadata%ilh_Ncm_mc = k
195 :
196 : call stat_assign( var_index=stats_metadata%ilh_Ncm_mc, var_name="lh_Ncm_mc", & ! intent(in)
197 : var_description="Latin hypercube estimate of Ncm_mc [kg/kg/s]", & ! intent(in)
198 : var_units="kg/kg/s", & ! intent(in)
199 : l_silhs=.true., & ! intent(in)
200 0 : grid_kind=stats_lh_zt ) ! intent(inout)
201 0 : k = k + 1
202 :
203 : case ( 'lh_rrm_mc' )
204 0 : stats_metadata%ilh_rrm_mc = k
205 :
206 : call stat_assign( var_index=stats_metadata%ilh_rrm_mc, var_name="lh_rrm_mc", & ! intent(in)
207 : var_description="Latin hypercube estimate of rrm_mc [kg/kg/s]", & ! intent(in)
208 : var_units="kg/kg/s", & ! intent(in)
209 : l_silhs=.true., & ! intent(in)
210 0 : grid_kind=stats_lh_zt ) ! intent(inout)
211 0 : k = k + 1
212 :
213 : case ( 'lh_Nrm_mc' )
214 0 : stats_metadata%ilh_Nrm_mc = k
215 :
216 : call stat_assign( var_index=stats_metadata%ilh_Nrm_mc, var_name="lh_Nrm_mc", & ! intent(in)
217 : var_description="Latin hypercube estimate of Nrm_mc [kg/kg/s]", & ! intent(in)
218 : var_units="kg/kg/s", & ! intent(in)
219 : l_silhs=.true., & ! intent(in)
220 0 : grid_kind=stats_lh_zt ) ! intent(inout)
221 0 : k = k + 1
222 :
223 : case('lh_rsm_mc')
224 0 : stats_metadata%ilh_rsm_mc = k
225 :
226 : call stat_assign( var_index=stats_metadata%ilh_rsm_mc, var_name="lh_rsm_mc", & ! intent(in)
227 : var_description="Latin hypercube estimate of rsm_mc [kg/kg/s]", & ! intent(in)
228 : var_units="kg/kg/s", & ! intent(in)
229 : l_silhs=.true., & ! intent(in)
230 0 : grid_kind=stats_lh_zt ) ! intent(inout)
231 0 : k = k + 1
232 :
233 : case ( 'lh_Nsm_mc' )
234 0 : stats_metadata%ilh_Nsm_mc = k
235 :
236 : call stat_assign( var_index=stats_metadata%ilh_Nsm_mc, var_name="lh_Nsm_mc", & ! intent(in)
237 : var_description="Latin hypercube estimate of Nsm_mc [kg/kg/s]", & ! intent(in)
238 : var_units="kg/kg/s", & ! intent(in)
239 : l_silhs=.true., & ! intent(in)
240 0 : grid_kind=stats_lh_zt ) ! intent(inout)
241 0 : k = k + 1
242 :
243 : case ( 'lh_rgm_mc' )
244 0 : stats_metadata%ilh_rgm_mc = k
245 :
246 : call stat_assign( var_index=stats_metadata%ilh_rgm_mc, var_name="lh_rgm_mc", & ! intent(in)
247 : var_description="Latin hypercube estimate of rgm_mc [kg/kg/s]", & ! intent(in)
248 : var_units="kg/kg/s", & ! intent(in)
249 : l_silhs=.true., & ! intent(in)
250 0 : grid_kind=stats_lh_zt ) ! intent(inout)
251 0 : k = k + 1
252 :
253 : case ( 'lh_Ngm_mc' )
254 0 : stats_metadata%ilh_Ngm_mc = k
255 :
256 : call stat_assign( var_index=stats_metadata%ilh_Ngm_mc, var_name="lh_Ngm_mc", & ! intent(in)
257 : var_description="Latin hypercube estimate of Ngm_mc [kg/kg/s]", & ! intent(in)
258 : var_units="kg/kg/s", & ! intent(in)
259 : l_silhs=.true., & ! intent(in)
260 0 : grid_kind=stats_lh_zt ) ! intent(inout)
261 0 : k = k + 1
262 :
263 : case ( 'lh_rim_mc' )
264 0 : stats_metadata%ilh_rim_mc = k
265 :
266 : call stat_assign( var_index=stats_metadata%ilh_rim_mc, var_name="lh_rim_mc", & ! intent(in)
267 : var_description="Latin hypercube estimate of rim_mc [kg/kg/s]", & ! intent(in)
268 : var_units="kg/kg/s", & ! intent(in)
269 : l_silhs=.true., & ! intent(in)
270 0 : grid_kind=stats_lh_zt ) ! intent(inout)
271 0 : k = k + 1
272 :
273 : case ( 'lh_Nim_mc' )
274 0 : stats_metadata%ilh_Nim_mc = k
275 :
276 : call stat_assign( var_index=stats_metadata%ilh_Nim_mc, var_name="lh_Nim_mc", & ! intent(in)
277 : var_description="Latin hypercube estimate of Nim_mc [kg/kg/s]", & ! intent(in)
278 : var_units="kg/kg/s", & ! intent(in)
279 : l_silhs=.true., & ! intent(in)
280 0 : grid_kind=stats_lh_zt ) ! intent(inout)
281 0 : k = k + 1
282 :
283 : case ( 'lh_Vrr' )
284 0 : stats_metadata%ilh_Vrr = k
285 :
286 : call stat_assign( var_index=stats_metadata%ilh_Vrr, var_name="lh_Vrr", & ! intent(in)
287 : var_description="Latin hypercube estimate of rrm sedimentation velocity [m/s]", & !In
288 : var_units="m/s", & ! intent(in)
289 : l_silhs=.true., & ! intent(in)
290 0 : grid_kind=stats_lh_zt ) ! intent(inout)
291 0 : k = k + 1
292 :
293 : case ( 'lh_VNr' )
294 0 : stats_metadata%ilh_VNr = k
295 :
296 : call stat_assign( var_index=stats_metadata%ilh_VNr, var_name="lh_VNr", & ! intent(in)
297 : var_description="Latin hypercube estimate of Nrm sedimentation velocity [m/s]", & ! In
298 : var_units="m/s", & ! intent(in)
299 : l_silhs=.true., & ! intent(in)
300 0 : grid_kind=stats_lh_zt ) ! intent(inout)
301 0 : k = k + 1
302 :
303 : case ( 'lh_rcm_avg' )
304 0 : stats_metadata%ilh_rcm_avg = k
305 :
306 : call stat_assign( var_index=stats_metadata%ilh_rcm_avg, var_name="lh_rcm_avg", & ! intent(in)
307 : var_description="Latin hypercube average estimate of rcm [kg/kg]", & ! intent(in)
308 : var_units="kg/kg", & ! intent(in)
309 : l_silhs=.true., & ! intent(in)
310 0 : grid_kind=stats_lh_zt ) ! intent(inout)
311 :
312 0 : k = k + 1
313 :
314 : case ( 'lh_rrm' )
315 0 : stats_metadata%ilh_rrm = k
316 :
317 : call stat_assign( var_index=stats_metadata%ilh_rrm, var_name="lh_rrm", & ! intent(in)
318 : var_description="Latin hypercube estimate of rrm [kg/kg]", & ! intent(in)
319 : var_units="kg/kg", & ! intent(in)
320 : l_silhs=.true., & ! intent(in)
321 0 : grid_kind=stats_lh_zt ) ! intent(inout)
322 0 : k = k + 1
323 :
324 : case ( 'lh_Nrm' )
325 0 : stats_metadata%ilh_Nrm = k
326 :
327 : call stat_assign( var_index=stats_metadata%ilh_Nrm, var_name="lh_Nrm", & ! intent(in)
328 : var_description="Latin hypercube estimate of Nrm [count/kg]", & ! intent(in)
329 : var_units="count/kg", & ! intent(in)
330 : l_silhs=.true., & ! intent(in)
331 0 : grid_kind=stats_lh_zt ) ! intent(inout)
332 0 : k = k + 1
333 :
334 : case ( 'lh_rim' )
335 0 : stats_metadata%ilh_rim = k
336 :
337 : call stat_assign( var_index=stats_metadata%ilh_rim, var_name="lh_rim", & ! intent(in)
338 : var_description="Latin hypercube estimate of rim [kg/kg]", & ! intent(in)
339 : var_units="kg/kg", & ! intent(in)
340 : l_silhs=.true., & ! intent(in)
341 0 : grid_kind=stats_lh_zt ) ! intent(inout)
342 0 : k = k + 1
343 :
344 : case ( 'lh_Nim' )
345 0 : stats_metadata%ilh_Nim = k
346 :
347 : call stat_assign( var_index=stats_metadata%ilh_Nim, var_name="lh_Nim", & ! intent(in)
348 : var_description="Latin hypercube estimate of Nim [count/kg]", & ! intent(in)
349 : var_units="count/kg", & ! intent(in)
350 : l_silhs=.true., & ! intent(in)
351 0 : grid_kind=stats_lh_zt ) ! intent(inout)
352 0 : k = k + 1
353 :
354 : case ( 'lh_rsm' )
355 0 : stats_metadata%ilh_rsm = k
356 :
357 : call stat_assign( var_index=stats_metadata%ilh_rsm, var_name="lh_rsm", & ! intent(in)
358 : var_description="Latin hypercube estimate of rsm [kg/kg]", & ! intent(in)
359 : var_units="kg/kg", & ! intent(in)
360 : l_silhs=.true., & ! intent(in)
361 0 : grid_kind=stats_lh_zt ) ! intent(inout)
362 0 : k = k + 1
363 :
364 : case ( 'lh_Nsm' )
365 0 : stats_metadata%ilh_Nsm = k
366 :
367 : call stat_assign( var_index=stats_metadata%ilh_Nsm, var_name="lh_Nsm", & ! intent(in)
368 : var_description="Latin hypercube estimate of Nsm [count/kg]", & ! intent(in)
369 : var_units="count/kg", & ! intent(in)
370 : l_silhs=.true., & ! intent(in)
371 0 : grid_kind=stats_lh_zt ) ! intent(inout)
372 0 : k = k + 1
373 :
374 :
375 : case ( 'lh_rgm' )
376 0 : stats_metadata%ilh_rgm = k
377 :
378 : call stat_assign( var_index=stats_metadata%ilh_rgm, var_name="lh_rgm", & ! intent(in)
379 : var_description="Latin hypercube estimate of rgm [kg/kg]", & ! intent(in)
380 : var_units="kg/kg", & ! intent(in)
381 : l_silhs=.true., & ! intent(in)
382 0 : grid_kind=stats_lh_zt ) ! intent(inout)
383 0 : k = k + 1
384 :
385 : case ( 'lh_Ngm' )
386 0 : stats_metadata%ilh_Ngm = k
387 :
388 : call stat_assign( var_index=stats_metadata%ilh_Ngm, var_name="lh_Ngm", & ! intent(in)
389 : var_description="Latin hypercube estimate of Ngm [kg/kg]", & ! intent(in)
390 : var_units="kg/kg", & ! intent(in)
391 : l_silhs=.true., & ! intent(in)
392 0 : grid_kind=stats_lh_zt ) ! intent(inout)
393 0 : k = k + 1
394 :
395 : case ( 'lh_thlm' )
396 0 : stats_metadata%ilh_thlm = k
397 :
398 : call stat_assign( var_index=stats_metadata%ilh_thlm, var_name="lh_thlm", & ! intent(in)
399 : var_description="Latin hypercube estimate of thlm [K]", var_units="K", & ! intent(in)
400 : l_silhs=.true., & ! intent(in)
401 0 : grid_kind=stats_lh_zt ) ! intent(inout)
402 0 : k = k + 1
403 :
404 : case ( 'lh_rcm' )
405 0 : stats_metadata%ilh_rcm = k
406 :
407 : call stat_assign( var_index=stats_metadata%ilh_rcm, var_name="lh_rcm", & ! intent(in)
408 : var_description="Latin hypercube estimate of rcm [kg/kg]", & ! intent(in)
409 : var_units="kg/kg", & ! intent(in)
410 : l_silhs=.true., & ! intent(in)
411 0 : grid_kind=stats_lh_zt ) ! intent(inout)
412 0 : k = k + 1
413 :
414 : case ( 'lh_Ncm' )
415 0 : stats_metadata%ilh_Ncm = k
416 :
417 : call stat_assign( var_index=stats_metadata%ilh_Ncm, var_name="lh_Ncm", & ! intent(in)
418 : var_description="Latin hypercube estimate of Ncm [count/kg]", & ! intent(in)
419 : var_units="count/kg", & ! intent(in)
420 : l_silhs=.true., & ! intent(in)
421 0 : grid_kind=stats_lh_zt ) ! intent(inout)
422 0 : k = k + 1
423 :
424 : case ( 'lh_Ncnm' )
425 0 : stats_metadata%ilh_Ncnm = k
426 :
427 : call stat_assign( var_index=stats_metadata%ilh_Ncnm, var_name="lh_Ncnm", & ! intent(in)
428 : var_description="Latin hypercube estimate of Ncnm [count/kg]", & ! intent(in)
429 : var_units="count/kg", & ! intent(in)
430 : l_silhs=.true., & ! intent(in)
431 0 : grid_kind=stats_lh_zt ) ! intent(inout)
432 0 : k = k + 1
433 :
434 :
435 : case ( 'lh_rvm' )
436 0 : stats_metadata%ilh_rvm = k
437 :
438 : call stat_assign( var_index=stats_metadata%ilh_rvm, var_name="lh_rvm", & ! intent(in)
439 : var_description="Latin hypercube estimate of rvm [kg/kg]", & ! intent(in)
440 : var_units="kg/kg", & ! intent(in)
441 : l_silhs=.true., & ! intent(in)
442 0 : grid_kind=stats_lh_zt ) ! intent(inout)
443 0 : k = k + 1
444 :
445 : case ( 'lh_wm' )
446 0 : stats_metadata%ilh_wm = k
447 :
448 : call stat_assign( var_index=stats_metadata%ilh_wm, var_name="lh_wm", & ! intent(in)
449 : var_description="Latin hypercube estimate of vertical velocity [m/s]", & ! intent(in)
450 : var_units="m/s", & ! intent(in)
451 : l_silhs=.true., & ! intent(in)
452 0 : grid_kind=stats_lh_zt ) ! intent(inout)
453 0 : k = k + 1
454 :
455 : case ( 'lh_cloud_frac' )
456 0 : stats_metadata%ilh_cloud_frac = k
457 :
458 : ! Note: count is the udunits compatible unit
459 : call stat_assign( var_index=stats_metadata%ilh_cloud_frac, var_name="lh_cloud_frac", & ! intent(in)
460 : var_description="Latin hypercube estimate of cloud fraction [count]", & ! intent(in)
461 : var_units="count", & ! intent(in)
462 : l_silhs=.true., & ! intent(in)
463 0 : grid_kind=stats_lh_zt ) ! intent(inout)
464 0 : k = k + 1
465 :
466 : case ( 'lh_cloud_frac_unweighted' )
467 0 : stats_metadata%ilh_cloud_frac_unweighted = k
468 :
469 : call stat_assign( var_index=stats_metadata%ilh_cloud_frac_unweighted, & ! intent(in)
470 : var_name="lh_cloud_frac_unweighted", var_description="Unweighted fraction of &
471 : &silhs sample points that are in cloud [-]", var_units="-", l_silhs=.false., &
472 0 : grid_kind=stats_lh_zt ) ! intent(inout)
473 0 : k = k + 1
474 :
475 : case ( 'lh_chi' )
476 0 : stats_metadata%ilh_chi = k
477 : call stat_assign( var_index=stats_metadata%ilh_chi, var_name="lh_chi", & ! intent(in)
478 : var_description="Latin hypercube estimate of Mellor's s (extended liq) [kg/kg]", & !In
479 : var_units="kg/kg", & ! intent(in)
480 : l_silhs=.true., & ! intent(in)
481 0 : grid_kind=stats_lh_zt ) ! intent(inout)
482 0 : k = k + 1
483 :
484 : case ( 'lh_eta' )
485 0 : stats_metadata%ilh_eta = k
486 : call stat_assign( var_index=stats_metadata%ilh_eta, var_name="lh_eta", & ! intent(in)
487 : var_description="Latin hypercube estimate of Mellor's t [kg/kg]", & ! intent(in)
488 : var_units="kg/kg", & ! intent(in)
489 : l_silhs=.true., & ! intent(in)
490 0 : grid_kind=stats_lh_zt ) ! intent(inout)
491 0 : k = k + 1
492 :
493 : case ( 'lh_chip2' )
494 0 : stats_metadata%ilh_chip2 = k
495 : call stat_assign( var_index=stats_metadata%ilh_chip2, var_name="lh_chip2", & ! intent(in)
496 : var_description="Latin hypercube estimate of variance of chi(s) [kg/kg]", &!intent(in)
497 : var_units="kg/kg", & ! intent(in)
498 : l_silhs=.true., & ! intent(in)
499 0 : grid_kind=stats_lh_zt ) ! intent(inout)
500 0 : k = k + 1
501 :
502 : case ( 'lh_wp2_zt' )
503 0 : stats_metadata%ilh_wp2_zt = k
504 : call stat_assign( var_index=stats_metadata%ilh_wp2_zt, var_name="lh_wp2_zt", & ! intent(in)
505 : var_description="Variance of the latin hypercube estimate of w [m^2/s^2]",&!intent(in)
506 : var_units="m^2/s^2", & ! intent(in)
507 : l_silhs=.true., & ! intent(in)
508 0 : grid_kind=stats_lh_zt ) ! intent(inout)
509 0 : k = k + 1
510 :
511 : case ( 'lh_Ncnp2_zt' )
512 0 : stats_metadata%ilh_Ncnp2_zt = k
513 : call stat_assign( var_index=stats_metadata%ilh_Ncnp2_zt, var_name="lh_Ncnp2_zt", & ! intent(in)
514 : var_description="Variance of the latin hypercube estimate of Ncn [count^2/kg^2]", &!In
515 : var_units="count^2/kg^2", & ! intent(in)
516 : l_silhs=.true., & ! intent(in)
517 0 : grid_kind=stats_lh_zt ) ! intent(inout)
518 0 : k = k + 1
519 :
520 : case ( 'lh_Ncp2_zt' )
521 0 : stats_metadata%ilh_Ncp2_zt = k
522 : call stat_assign( var_index=stats_metadata%ilh_Ncp2_zt, var_name="lh_Ncp2_zt", & ! intent(in)
523 : var_description="Variance of the latin hypercube estimate of Nc [count^2/kg^2]", & !In
524 : var_units="count^2/kg^2", & ! intent(in)
525 : l_silhs=.true., & ! intent(in)
526 0 : grid_kind=stats_lh_zt ) ! intent(inout)
527 0 : k = k + 1
528 :
529 : case ( 'lh_Nrp2_zt' )
530 0 : stats_metadata%ilh_Nrp2_zt = k
531 : call stat_assign( var_index=stats_metadata%ilh_Nrp2_zt, var_name="lh_Nrp2_zt", & ! intent(in)
532 : var_description="Variance of the latin hypercube estimate of Nr [count^2/kg^2]", &!In
533 : var_units="count^2/kg^2", & ! intent(in)
534 : l_silhs=.true., & ! intent(in)
535 0 : grid_kind=stats_lh_zt ) ! intent(inout)
536 0 : k = k + 1
537 :
538 : case ( 'lh_rcp2_zt' )
539 0 : stats_metadata%ilh_rcp2_zt = k
540 : call stat_assign( var_index=stats_metadata%ilh_rcp2_zt, var_name="lh_rcp2_zt", & ! intent(in)
541 : var_description="Variance of the latin hypercube estimate of rc [kg^2/kg^2]", & ! In
542 : var_units="kg^2/kg^2", & ! intent(in)
543 : l_silhs=.true., & ! intent(in)
544 0 : grid_kind=stats_lh_zt ) ! intent(inout)
545 0 : k = k + 1
546 :
547 : case ( 'lh_rtp2_zt' )
548 0 : stats_metadata%ilh_rtp2_zt = k
549 : call stat_assign( var_index=stats_metadata%ilh_rtp2_zt, var_name="lh_rtp2_zt", & ! intent(in)
550 : var_description="Variance of the latin hypercube estimate of rt [kg^2/kg^2]", & ! In
551 : var_units="kg^2/kg^2", & ! intent(in)
552 : l_silhs=.true., & ! intent(in)
553 0 : grid_kind=stats_lh_zt ) ! intent(inout)
554 0 : k = k + 1
555 :
556 : case ( 'lh_thlp2_zt' )
557 0 : stats_metadata%ilh_thlp2_zt = k
558 : call stat_assign( var_index=stats_metadata%ilh_thlp2_zt, var_name="lh_thlp2_zt", & ! intent(in)
559 : var_description="Variance of the latin hypercube estimate of thl [K^2]", & !intent(in)
560 : var_units="K^2", & ! intent(in)
561 : l_silhs=.true., & ! intent(in)
562 0 : grid_kind=stats_lh_zt ) ! intent(inout)
563 0 : k = k + 1
564 :
565 : case ( 'lh_rrp2_zt' )
566 0 : stats_metadata%ilh_rrp2_zt = k
567 : call stat_assign( var_index=stats_metadata%ilh_rrp2_zt, var_name="lh_rrp2_zt", & ! intent(in)
568 : var_description="Variance of the latin hypercube estimate of rr [kg^2/kg^2]", & ! In
569 : var_units="kg^2/kg^2", & ! intent(in)
570 : l_silhs=.true., & ! intent(in)
571 0 : grid_kind=stats_lh_zt ) ! intent(inout)
572 0 : k = k + 1
573 :
574 : case ( 'lh_rrm_auto' )
575 0 : stats_metadata%ilh_rrm_auto = k
576 : call stat_assign( var_index=stats_metadata%ilh_rrm_auto, var_name="lh_rrm_auto", & ! intent(in)
577 : var_description="Latin hypercube estimate of autoconversion [kg/kg/s]", & ! intent(in)
578 : var_units="kg/kg/s", & ! intent(in)
579 : l_silhs=.true., & ! intent(in)
580 0 : grid_kind=stats_lh_zt ) ! intent(inout)
581 0 : k = k + 1
582 :
583 : case ( 'lh_rrm_accr' )
584 0 : stats_metadata%ilh_rrm_accr = k
585 : call stat_assign( var_index=stats_metadata%ilh_rrm_accr, var_name="lh_rrm_accr", & ! intent(in)
586 : var_description="Latin hypercube estimate of accretion [kg/kg/s]", & ! intent(in)
587 : var_units="kg/kg/s", l_silhs=.true., & ! intent(in)
588 0 : grid_kind=stats_lh_zt ) ! intent(inout)
589 0 : k = k + 1
590 :
591 : case ( 'lh_rrm_evap' )
592 0 : stats_metadata%ilh_rrm_evap = k
593 : call stat_assign( var_index=stats_metadata%ilh_rrm_evap, var_name="lh_rrm_evap", & ! intent(in)
594 : var_description="Latin hypercube estimate of evaporation [kg/kg/s]", & ! intent(in)
595 : var_units="kg/kg/s", & ! intent(in)
596 : l_silhs=.true., & ! intent(in)
597 0 : grid_kind=stats_lh_zt ) ! intent(inout)
598 0 : k = k + 1
599 :
600 : case ( 'lh_Nrm_auto' )
601 0 : stats_metadata%ilh_Nrm_auto = k
602 : call stat_assign( var_index=stats_metadata%ilh_Nrm_auto, var_name="lh_Nrm_auto", & ! intent(in)
603 : var_description="Latin hypercube estimate of Nrm autoconversion [num/kg/s]", & ! In
604 : var_units="num/kg/s", & ! intent(in)
605 : l_silhs=.true., & ! intent(in)
606 0 : grid_kind=stats_lh_zt ) ! intent(inout)
607 0 : k = k + 1
608 :
609 : case ( 'lh_Nrm_evap' )
610 0 : stats_metadata%ilh_Nrm_evap = k
611 : call stat_assign( var_index=stats_metadata%ilh_Nrm_evap, var_name="lh_Nrm_evap", & ! intent(in)
612 : var_description="Latin hypercube estimate of Nrm evaporation [num/kg/s]", & ! In
613 : var_units="num/kg/s", & ! intent(in)
614 : l_silhs=.true., & ! intent(in)
615 0 : grid_kind=stats_lh_zt ) ! intent(inout)
616 0 : k = k + 1
617 :
618 : case ( 'lh_rrm_src_adj' )
619 0 : stats_metadata%ilh_rrm_src_adj = k
620 : call stat_assign( var_index=stats_metadata%ilh_rrm_src_adj, var_name="lh_rrm_src_adj", & ! intent(in)
621 : var_description="Latin hypercube estimate of source adjustment (KK only!) [kg/kg/s]",&
622 : var_units="kg/kg/s", & ! intent(in)
623 : l_silhs=.true., & ! intent(in)
624 0 : grid_kind=stats_lh_zt ) ! intent(inout)
625 0 : k = k + 1
626 :
627 : case ( 'lh_rrm_evap_adj' )
628 0 : stats_metadata%ilh_rrm_evap_adj = k
629 : call stat_assign( var_index=stats_metadata%ilh_rrm_evap_adj, var_name="lh_rrm_evap_adj", & ! intent(in)
630 : var_description="Latin hypercube estimate of evap adjustment (KK only!) [kg/kg/s]", &
631 : var_units="kg/kg/s", & ! intent(in)
632 : l_silhs=.true., & ! intent(in)
633 0 : grid_kind=stats_lh_zt ) ! intent(inout)
634 0 : k = k + 1
635 :
636 : case ( 'lh_Nrm_src_adj' )
637 0 : stats_metadata%ilh_Nrm_src_adj = k
638 : call stat_assign( var_index=stats_metadata%ilh_Nrm_src_adj, var_name="lh_Nrm_src_adj", & ! intent(in)
639 : var_description="Latin hypercube estimate of Nrm source adjustment (KK only!) &
640 : &[kg/kg/s]", &
641 : var_units="kg/kg/s", & ! intent(in)
642 : l_silhs=.true., & ! intent(in)
643 0 : grid_kind=stats_lh_zt ) ! intent(inout)
644 0 : k = k + 1
645 :
646 : case ( 'lh_Nrm_evap_adj' )
647 0 : stats_metadata%ilh_Nrm_evap_adj = k
648 : call stat_assign( var_index=stats_metadata%ilh_Nrm_evap_adj, var_name="lh_Nrm_evap_adj", & ! intent(in)
649 : var_description="Latin hypercube estimate of Nrm evap adjustment (KK only!) &
650 : &[kg/kg/s]", &
651 : var_units="kg/kg/s", & ! intent(in)
652 : l_silhs=.true., & ! intent(in)
653 0 : grid_kind=stats_lh_zt ) ! intent(inout)
654 0 : k = k + 1
655 :
656 : case ( 'lh_precip_frac' )
657 0 : stats_metadata%ilh_precip_frac = k
658 : call stat_assign( var_index=stats_metadata%ilh_precip_frac, var_name="lh_precip_frac", & ! intent(in)
659 : var_description="Latin hypercube estimate of precipitation fraction [-]", & ! In
660 : var_units="-", & ! intent(in)
661 : l_silhs=.true., & ! intent(in)
662 0 : grid_kind=stats_lh_zt ) ! intent(inout)
663 0 : k = k + 1
664 :
665 : case ( 'lh_precip_frac_unweighted' )
666 0 : stats_metadata%ilh_precip_frac_unweighted = k
667 : call stat_assign( var_index=stats_metadata%ilh_precip_frac_unweighted, & ! intent(in)
668 : var_name="lh_precip_frac_unweighted", & ! intent(in)
669 : var_description="Unweighted fraction of sample points in precipitation [-]", & ! In
670 : var_units="-", & ! intent(in)
671 : l_silhs=.true., & ! intent(in)
672 0 : grid_kind=stats_lh_zt ) ! intent(inout)
673 0 : k = k + 1
674 :
675 : case ( 'lh_mixt_frac' )
676 0 : stats_metadata%ilh_mixt_frac = k
677 : call stat_assign( var_index=stats_metadata%ilh_mixt_frac, var_name="lh_mixt_frac", & ! intent(in)
678 : var_description="Latin hypercube estimate of mixture fraction (weight of 1st PDF &
679 : &component [-]", &
680 : var_units="-", & ! intent(in)
681 : l_silhs=.true., & ! intent(in)
682 0 : grid_kind=stats_lh_zt ) ! intent(inout)
683 0 : k = k + 1
684 :
685 : case ( 'lh_mixt_frac_unweighted' )
686 0 : stats_metadata%ilh_mixt_frac_unweighted = k
687 : call stat_assign( var_index=stats_metadata%ilh_mixt_frac_unweighted, & ! intent(in)
688 : var_name="lh_mixt_frac_unweighted", & ! intent(in)
689 : var_description="Unweighted fraction of sample points in first PDF component [-]",&!In
690 : var_units="-", & ! intent(in)
691 : l_silhs=.true., & ! intent(in)
692 0 : grid_kind=stats_lh_zt ) ! intent(inout)
693 0 : k = k + 1
694 :
695 : case ( 'lh_m_vol_rad_rain' )
696 0 : stats_metadata%ilh_m_vol_rad_rain = k
697 : call stat_assign( var_index=stats_metadata%ilh_m_vol_rad_rain, var_name="lh_m_vol_rad_rain", & !intent(in)
698 : var_description="SILHS est. of rain radius", var_units="m", & ! intent(in)
699 : l_silhs=.true., & ! intent(in)
700 0 : grid_kind=stats_lh_zt ) ! intent(inout)
701 0 : k = k + 1
702 :
703 : case ( 'lh_rrm_mc_nonadj' )
704 0 : stats_metadata%ilh_rrm_mc_nonadj = k
705 : call stat_assign( var_index=stats_metadata%ilh_rrm_mc_nonadj, var_name="lh_rrm_mc_nonadj", & ! intent(in)
706 : var_description="SILHS est. of rrm_mc_nonadj [kg/kg/s]", var_units="kg/kg/s", & ! In
707 : l_silhs=.true., & ! intent(in)
708 0 : grid_kind=stats_lh_zt ) ! intent(inout)
709 0 : k = k + 1
710 :
711 : case ( 'silhs_variance_category' )
712 :
713 0 : do icategory=1, silhs_num_importance_categories
714 :
715 0 : stats_metadata%isilhs_variance_category(icategory) = k
716 0 : write(category_num_as_string,'(I1)') icategory
717 0 : call stat_assign( var_index=stats_metadata%isilhs_variance_category(icategory), & ! intent(in)
718 : var_name="silhs_var_cat_"//category_num_as_string, & ! intent(in)
719 : var_description="Variance of SILHS variable in importance category " // &!intent(in)
720 : category_num_as_string, var_units="various", & ! intent(in)
721 : l_silhs=.false., & ! intent(in)
722 0 : grid_kind=stats_lh_zt ) ! intent(inout)
723 0 : k = k + 1
724 :
725 : end do
726 :
727 : case ( 'lh_samp_frac_category' )
728 :
729 0 : do icategory=1, silhs_num_importance_categories
730 :
731 0 : stats_metadata%ilh_samp_frac_category(icategory) = k
732 0 : write(category_num_as_string,'(I1)') icategory
733 0 : call stat_assign( var_index=stats_metadata%ilh_samp_frac_category(icategory), & ! intent(in)
734 : var_name="lh_samp_frac_"//category_num_as_string, & ! intent(in)
735 : var_description="Number of samples in importance category " // & ! intent(in)
736 : category_num_as_string // " [-]", var_units="-", l_silhs=.false., & ! intent(in)
737 0 : grid_kind=stats_lh_zt ) ! intent(inout)
738 0 : k = k + 1
739 :
740 : end do
741 :
742 : case default
743 :
744 0 : write(fstderr,*) 'Error: unrecognized variable in vars_lh_zt: ', trim( vars_lh_zt(i) )
745 :
746 0 : l_error = .true. ! This will stop the run.
747 :
748 : end select
749 :
750 : end do ! i = 1, stats_lh_zt%num_output_fields
751 :
752 0 : return
753 : end subroutine stats_init_lh_zt
754 :
755 : end module stats_lh_zt_module
|