[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