[Dart-dev] DART/branches Revision: 11833
dart at ucar.edu
dart at ucar.edu
Tue Jul 18 15:39:28 MDT 2017
hendric at ucar.edu
2017-07-18 15:39:24 -0600 (Tue, 18 Jul 2017)
181
removing check_variable_list. This is now done in set_multiple_filename_list.
need to have different variables for the number of input and output files
for the single file case.
Modified: DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90
===================================================================
--- DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-18 19:29:35 UTC (rev 11832)
+++ DART/branches/rma_array_nml/assimilation_code/modules/assimilation/filter_mod.f90 2017-07-18 21:39:24 UTC (rev 11833)
@@ -2394,7 +2394,7 @@
type(file_info_type), intent(out) :: file_info_analysis
type(file_info_type), intent(out) :: file_info_output
-integer :: noutput_members, next_file, nfiles, ninput_files, ndomains, idom, i
+integer :: noutput_members, next_file, ninput_files, noutput_files, ndomains, idom
character(len=64) :: fsource
character(len=256), allocatable :: file_array_input(:,:), file_array_output(:,:)
@@ -2401,43 +2401,27 @@
! local variable to shorten the name for function input
noutput_members = num_output_state_members
ndomains = get_num_domains()
+noutput_files = ens_size ! number of incomming ensemble members
ninput_files = ens_size ! number of incomming ensemble members
-if (perturb_from_single_instance) ninput_files = 1
+if (perturb_from_single_instance .or. single_file_in) ninput_files = 1
+if (single_file_out) noutput_files = 1
-if (input_state_files(1) == '' .and. input_state_file_list(1) == '') then
- call error_handler(E_ERR, 'initialize_file_information', source,revision,revdate,&
- text2='must specify either input_state_files in the namelist,)', &
- text3='or a input_state_file_list file containing a list of names')
-
-endif
-
-! make sure the namelist specifies one or the other but not both
-if (input_state_files(1) /= '' .and. input_state_file_list(1) /= '') then
- call error_handler(E_ERR, 'initialize_file_information', source,revision,revdate,&
- text2='cannot specify both input_state_files in the namelist ', &
- text3='and a input_state_files_list containing a list of names')
-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(output_state_file_list, 'output_state_file_list')
-
call set_multiple_filename_lists(input_state_files(:), &
input_state_file_list(:), &
ndomains, &
ninput_files, &
- 'filter')
+ 'filter','input_state_files','input_state_file_list')
call set_multiple_filename_lists(output_state_files(:), &
output_state_file_list(:), &
ndomains, &
- ens_size, &
- 'filter')
+ noutput_files, &
+ 'filter','output_state_files','output_state_file_list')
! Allocate space for file arrays. contains a matrix of files (num_ens x num_domains)
! If perturbing from a single instance the number of input files does not have to
! be ens_size but rather a single file (or multiple files if more than one domain)
-allocate(file_array_input(ninput_files, ndomains), file_array_output(ens_size, ndomains))
+allocate(file_array_input(ninput_files, ndomains), file_array_output(noutput_files, ndomains))
if (perturb_from_single_instance .and. ndomains > 1) then
do idom = 1, ndomains
@@ -2447,7 +2431,7 @@
file_array_input = RESHAPE(input_state_files, (/ninput_files, ndomains/))
endif
-file_array_output = RESHAPE(output_state_files, (/ens_size, ndomains/))
+file_array_output = RESHAPE(output_state_files, (/noutput_files, ndomains/))
! Allocate space for the filename handles
@@ -2477,7 +2461,7 @@
! Set filename metadata information
! Input Files
-call set_filename_info(file_info_input, 'input', ens_size, CURRENT_COPIES )
+call set_filename_info(file_info_input, 'input', ens_size, CURRENT_COPIES )
! Output Files
if (get_stage_to_write('input')) &
@@ -2491,12 +2475,11 @@
if (get_stage_to_write('analysis')) &
call set_filename_info(file_info_analysis, 'analysis', noutput_members, ANALYSIS_COPIES )
-! we are expecting a list of output restart files so ens_size = 0.
-call set_filename_info(file_info_output, 'output', ens_size, CURRENT_COPIES )
+call set_filename_info(file_info_output, 'output', ens_size, CURRENT_COPIES )
! Set file IO information
! Input Files
-call set_input_file_info( file_info_input, ens_size, CURRENT_COPIES )
+call set_input_file_info( file_info_input, ens_size, CURRENT_COPIES )
! Output Files
call set_output_file_info( file_info_mean_sd, &
@@ -2539,31 +2522,6 @@
!-----------------------------------------------------------
More information about the Dart-dev
mailing list