[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