118 subroutine read_postxconfig()
120 use rqstfld_mod,
only: num_post_afld,mxlvl,lvlsxml
121 use ctlblk_mod,
only:tprec,tclod,trdlw,trdsw,tsrfc &
122 ,tmaxmin,td3d,me,filenameflat
127 integer paramset_count, param_count
131 integer level_array_count
133 integer level2_array_count
134 integer scale_array_count
138 character(len=80) testcharname
144 open(unit=22,file=trim(filenameflat), &
145 form=
"formatted", access=
"sequential", &
146 status=
"old", position=
"rewind")
149 read(22,*)paramset_count
160 do i = paramset_count, 1, -1
161 read(22,*)param_count
163 allocate(
paramset(i)%param(param_count))
167 num_post_afld = num_post_afld + param_count
171 if(
allocated(lvlsxml))
deallocate(lvlsxml)
172 allocate(lvlsxml(mxlvl,num_post_afld))
175 do i = 1, paramset_count
180 call filter_char_inp(
paramset(i)%datset)
182 param_count =
size (
paramset(i)%param)
186 call filter_char_inp(
paramset(i)%sub_center)
188 call filter_char_inp(
paramset(i)%version_no)
189 read(22,*)
paramset(i)%local_table_vers_no
190 call filter_char_inp(
paramset(i)%local_table_vers_no)
192 call filter_char_inp(
paramset(i)%sigreftime)
194 call filter_char_inp(
paramset(i)%prod_status)
196 call filter_char_inp(
paramset(i)%data_type)
198 call filter_char_inp(
paramset(i)%gen_proc_type)
199 read(22,*)
paramset(i)%time_range_unit
200 call filter_char_inp(
paramset(i)%time_range_unit)
202 call filter_char_inp(
paramset(i)%orig_center)
204 call filter_char_inp(
paramset(i)%gen_proc)
205 read(22,*)
paramset(i)%packing_method
206 call filter_char_inp(
paramset(i)%packing_method)
207 read(22,*)
paramset(i)%order_of_sptdiff
208 read(22,*)
paramset(i)%field_datatype
209 call filter_char_inp(
paramset(i)%field_datatype)
211 call filter_char_inp(
paramset(i)%comprs_type)
212 if(
paramset(i)%gen_proc_type==
'ens_fcst')
then
214 call filter_char_inp(
paramset(i)%type_ens_fcst)
224 do j = 1, param_count
225 read(22,*)
paramset(i)%param(j)%post_avblfldidx
226 read(22,*)
paramset(i)%param(j)%shortname
227 read(22,
'(A300)')
paramset(i)%param(j)%longname
228 call filter_char_inp(
paramset(i)%param(j)%longname)
230 read(22,*)
paramset(i)%param(j)%mass_windpoint
231 read(22,*)
paramset(i)%param(j)%pdstmpl
232 read(22,*)
paramset(i)%param(j)%pname
233 call filter_char_inp(
paramset(i)%param(j)%pname)
235 read(22,*)
paramset(i)%param(j)%table_info
236 call filter_char_inp(
paramset(i)%param(j)%table_info)
237 read(22,*)
paramset(i)%param(j)%stats_proc
238 call filter_char_inp(
paramset(i)%param(j)%stats_proc)
239 read(22,*)
paramset(i)%param(j)%fixed_sfc1_type
240 call filter_char_inp(
paramset(i)%param(j)%fixed_sfc1_type)
244 allocate(
paramset(i)%param(j)%scale_fact_fixed_sfc1(1))
248 deallocate(
paramset(i)%param(j)%scale_fact_fixed_sfc1)
250 allocate(
paramset(i)%param(j)%scale_fact_fixed_sfc1(cc))
251 read(22,*)
paramset(i)%param(j)%scale_fact_fixed_sfc1
255 paramset(i)%param(j)%scale_fact_fixed_sfc1(1)=0
260 read(22,*)level_array_count
261 allocate(
paramset(i)%param(j)%level(1))
262 if (level_array_count > 0)
then
263 deallocate(
paramset(i)%param(j)%level)
264 allocate(
paramset(i)%param(j)%level(level_array_count))
265 read(22,*)
paramset(i)%param(j)%level
271 read(22,*)
paramset(i)%param(j)%fixed_sfc2_type
272 call filter_char_inp(
paramset(i)%param(j)%fixed_sfc2_type)
274 allocate(
paramset(i)%param(j)%scale_fact_fixed_sfc2(1))
276 deallocate(
paramset(i)%param(j)%scale_fact_fixed_sfc2)
277 allocate(
paramset(i)%param(j)%scale_fact_fixed_sfc2(cv))
278 read(22,*)
paramset(i)%param(j)%scale_fact_fixed_sfc2
280 paramset(i)%param(j)%scale_fact_fixed_sfc2(1)=0
284 read(22,*)level2_array_count
285 if (level2_array_count > 0)
then
286 allocate(
paramset(i)%param(j)%level2(level2_array_count))
287 read(22,*)
paramset(i)%param(j)%level2
292 read(22,*)
paramset(i)%param(j)%aerosol_type
293 call filter_char_inp(
paramset(i)%param(j)%aerosol_type)
294 read(22,*)
paramset(i)%param(j)%prob_type
295 call filter_char_inp(
paramset(i)%param(j)%prob_type)
296 read(22,*)
paramset(i)%param(j)%typ_intvl_size
297 call filter_char_inp(
paramset(i)%param(j)%typ_intvl_size)
299 read(22,*)
paramset(i)%param(j)%scale_fact_1st_size
300 read(22,*)
paramset(i)%param(j)%scale_val_1st_size
301 read(22,*)
paramset(i)%param(j)%scale_fact_2nd_size
302 read(22,*)
paramset(i)%param(j)%scale_val_2nd_size
303 read(22,*)
paramset(i)%param(j)%typ_intvl_wvlen
304 call filter_char_inp(
paramset(i)%param(j)%typ_intvl_wvlen)
306 read(22,*)
paramset(i)%param(j)%scale_fact_1st_wvlen
307 read(22,*)
paramset(i)%param(j)%scale_val_1st_wvlen
308 read(22,*)
paramset(i)%param(j)%scale_fact_2nd_wvlen
309 read(22,*)
paramset(i)%param(j)%scale_val_2nd_wvlen
310 read(22,*)
paramset(i)%param(j)%scale_fact_lower_limit
311 read(22,*)
paramset(i)%param(j)%scale_val_lower_limit
312 read(22,*)
paramset(i)%param(j)%scale_fact_upper_limit
313 read(22,*)
paramset(i)%param(j)%scale_val_upper_limit
314 read(22,*)scale_array_count
315 allocate(
paramset(i)%param(j)%scale(1))
316 if (scale_array_count > 0)
then
317 deallocate(
paramset(i)%param(j)%scale)
318 allocate(
paramset(i)%param(j)%scale(scale_array_count))
319 read(22,*)
paramset(i)%param(j)%scale
324 read(22,*)
paramset(i)%param(j)%stat_miss_val
325 read(22,*)
paramset(i)%param(j)%leng_time_range_prev
326 read(22,*)
paramset(i)%param(j)%time_inc_betwn_succ_fld
327 read(22,*)
paramset(i)%param(j)%type_of_time_inc
329 call filter_char_inp(
paramset(i)%param(j)%type_of_time_inc)
330 read(22,*)
paramset(i)%param(j)%stat_unit_time_key_succ
331 call filter_char_inp(
paramset(i)%param(j)%stat_unit_time_key_succ)
332 read(22,*)
paramset(i)%param(j)%bit_map_flag
333 call filter_char_inp(
paramset(i)%param(j)%bit_map_flag)