[Dart-dev] DART/branches Revision: 11811
dart at ucar.edu
dart at ucar.edu
Thu Jul 13 11:05:11 MDT 2017
hendric at ucar.edu
2017-07-13 11:05:11 -0600 (Thu, 13 Jul 2017)
65
error checking for the stages and the number of restart files.
Modified: DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-12 21:09:32 UTC (rev 11810)
+++ DART/branches/rma_file_list_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-13 17:05:11 UTC (rev 11811)
@@ -77,8 +77,8 @@
use io_filenames_mod, only : io_filenames_init, file_info_type, &
combine_file_info, set_file_metadata, &
- set_member_file_metadata, &
- set_io_copy_flag, check_file_info_variable_shape, &
+ set_member_file_metadata, set_io_copy_flag, &
+ check_file_info_variable_shape, check_num_restarts, &
query_copy_present, COPY_NOT_PRESENT, &
READ_COPY, WRITE_COPY, READ_WRITE_COPY, &
file_info_dump
@@ -514,6 +514,8 @@
file_info_output)
call check_file_info_variable_shape(file_info_output, state_ens_handle)
+call check_num_restarts(file_info_input, state_ens_handle, ens_size)
+call check_num_restarts(file_info_output, state_ens_handle, ens_size)
call set_inflation_mean_copy( prior_inflate, PRIOR_INF_COPY )
call set_inflation_sd_copy( prior_inflate, PRIOR_INF_SD_COPY )
@@ -2338,10 +2340,45 @@
my_stage = stages(i)
call to_upper(my_stage)
if (trim(my_stage) /= trim('NULL')) then
- call set_stage_to_write(stages(i),.true.)
- write(msgstring,*)"filter will write stage : "//trim(stages(i))
- call error_handler(E_MSG,'parse_stages_to_write:', &
+ SELECT CASE (my_stage)
+ CASE ('INPUT')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
msgstring,source,revision,revdate)
+ CASE ('FORECAST')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate)
+ CASE ('PREASSIM')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate)
+ CASE ('POSTASSIM')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate)
+ CASE ('ANALYSIS')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate)
+ CASE ('OUTPUT')
+ call set_stage_to_write(stages(i),.true.)
+ write(msgstring,*)"filter will write stage : "//trim(stages(i))
+ call error_handler(E_MSG,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate)
+ CASE DEFAULT
+ write(msgstring,*)"unknown stage : "//trim(stages(i))
+ call error_handler(E_ERR,'parse_stages_to_write:', &
+ msgstring,source,revision,revdate, &
+ text2="currently supported stages include :",&
+ text3="input, forecast, preassim, postassim, analysis, output")
+ END SELECT
+
endif
enddo
@@ -2419,18 +2456,9 @@
endif
! Check the dimensions input_state_file_list and output_state_file_list
-call check_file_list_dimensions(input_state_file_list, 'input_state_file_list')
+call check_file_list_dimensions( input_state_file_list, 'input_state_file_list')
call check_file_list_dimensions(output_state_file_list, 'output_state_file_list')
-!#! print*, 'fsource :: ', fsource, MAX_NUM_DOMS
-!#!
-!#! print*, 'input_state_file_list :: "', trim(input_state_file_list(1)), '"'
-!#! print*, ''
-!#! print*, 'file_array_input(1) :: "', trim(file_array_input(1)), '"'
-!#! print*, 'file_array_input(2) :: "', trim(file_array_input(2)), '"'
-!#! print*, 'file_array_input(3) :: "', trim(file_array_input(3)), '"'
-!#! print*, 'file_array_input(4) :: "', trim(file_array_input(4)), '"'
-
! set input files
nfiles = 0 ! number of files from a text state_file_list
tfiles = 1 ! cummulative sum of files (with multiple domains)
@@ -2439,7 +2467,6 @@
nfiles = set_filename_list(file_array_input(:), input_state_file_list(i), 'filter')
file_input(tfiles:tfiles+nfiles-1) = file_array_input(1:nfiles)
-
tfiles = tfiles + nfiles
! clear file_array_input array, so that we can fill the next set of input files
More information about the Dart-dev
mailing list