[Dart-dev] DART/branches Revision: 12608

dart at ucar.edu dart at ucar.edu
Tue May 29 16:45:29 MDT 2018


hendric at ucar.edu
2018-05-29 16:45:29 -0600 (Tue, 29 May 2018)
158

deallocating arrays that were no longer being used.
removing unused code and initializing file_list option
to null to work with set_multiple_filename_list.




Modified: DART/branches/rma_closest_member_tool/assimilation_code/programs/closest_member_tool/closest_member_tool.f90
===================================================================
--- DART/branches/rma_closest_member_tool/assimilation_code/programs/closest_member_tool/closest_member_tool.f90	2018-05-29 17:59:14 UTC (rev 12607)
+++ DART/branches/rma_closest_member_tool/assimilation_code/programs/closest_member_tool/closest_member_tool.f90	2018-05-29 22:45:29 UTC (rev 12608)
@@ -52,10 +52,8 @@
                                  send_sum_to
 
 use ensemble_manager_mod, only : ensemble_type, init_ensemble_manager, compute_copy_mean, &
-                                 get_my_vars, get_my_num_vars
+                                 get_my_vars, get_my_num_vars, end_ensemble_manager
 
-!>@todo needs to destroy ensemble before the end of the program
-
 implicit none
 
 ! version controlled file description for error handling, do not edit
@@ -90,7 +88,8 @@
 integer                        :: difference_method      = 4
 logical                        :: single_restart_file_in = .false.
 character(len = obstypelength) :: use_only_qtys(max_list_len) = ''
-character(len=256)             :: input_restart_file_list(MAX_NUM_DOMS) = 'null'
+character(len=256)             :: input_restart_file_list(MAX_NUM_DOMS) = ''
+character(len=256)             :: input_restart_files(MAX_FILES) = '' 
 character(len=256)             :: output_file_name
 
 !----------------------------------------------------------------
@@ -104,23 +103,22 @@
 !----------------------------------------------------------------
 
 namelist /closest_member_tool_nml/  &
-   input_restart_file_list,      &
-   output_file_name,             &
-   ens_size,                     &
-   single_restart_file_in,       &
-   difference_method,            &
+   input_restart_files,     &
+   input_restart_file_list, &
+   output_file_name,        &
+   ens_size,                &
+   single_restart_file_in,  &
+   difference_method,       &
    use_only_qtys         
 
 type(ensemble_type)             :: ens_handle
-type(stage_metadata_type)       :: input_restart_files
 character(len=256), allocatable :: file_array_input(:,:)
-character(len=256)              :: input_state_files(MAX_FILES) = '' 
 character(len=256)              :: my_base, my_desc
 integer(i8), allocatable        :: vars_array(:)
 integer(i8)                     :: owners_index
 integer                         :: num_domains, idom, imem
 integer                         :: ENS_MEAN_COPY 
-integer                         :: copies, my_num_vars
+integer                         :: copies, my_num_vars, num_copies
 real(r8), allocatable           :: total_diff(:)
 
 !----------------------------------------------------------------
@@ -158,19 +156,19 @@
 
 ! Given either a vector of in/output_state_files or a text file containing
 ! a list of files, return a vector of files containing the filenames.
-call set_multiple_filename_lists(input_state_files(:), &
+call set_multiple_filename_lists(input_restart_files(:), &
                                  input_restart_file_list(:), &
                                  num_domains, &
                                  ens_size, &
-                                 'filter','input_state_files','input_state_file_list')
+                                 'filter','input_restart_files','input_state_file_list')
 
 ! be ens_size but rather a single file (or multiple files if more than one domain)
 allocate(file_array_input(ens_size, num_domains))
 
-file_array_input  = RESHAPE(input_state_files,  (/ens_size,  num_domains/))
+file_array_input  = RESHAPE(input_restart_files,  (/ens_size,  num_domains/))
 
 if (1==2) then
-   print*, input_state_files,       'input_state_files'
+   print*, input_restart_files,     'input_restart_files'
    print*, input_restart_file_list, 'input_restart_file_list'
    print*, file_array_input,        'file_array_input'
 endif
@@ -195,8 +193,6 @@
                          io_flag = READ_COPY)
 enddo
 
-input_restart_files = get_stage_metadata(ens_file_info)
-
 ! Read the ensemble from files
 member_time = set_time_missing()
 call read_state(ens_handle, ens_file_info, read_time_from_file=.false., time=member_time)
@@ -259,6 +255,7 @@
 ! members and only add up differences for the qtys of interest.
 
 my_num_vars = get_my_num_vars(ens_handle)
+num_copies  = ens_handle%num_copies
 allocate(useindex(my_num_vars), vars_array(my_num_vars))
 call get_my_vars(ens_handle, vars_array)
 
@@ -301,7 +298,7 @@
 ! either loop over individual files or open a single file and read a member
 ! at a time.  same functionality; where the file open/close happens differs.


More information about the Dart-dev mailing list