PROGRAM closest_member_tool

DART project logo

Jump to DART Documentation Main Index
version information for this file:
$Id: closest_member_tool.html 11771 2017-06-27 16:19:58Z thoar@ucar.edu $

NAMELIST / MODULES / FILES / REFERENCES / ERRORS / PLANS / TERMS OF USE

Overview

Utility program to compare the ensemble mean to a group of ensemble member restart files. The program prints out a sorted order of which members are 'closest' to the mean, where the method used to determine 'close' is selectable by namelist option. It also creates a file with a single number or character string in it, for ease in scripting, which identifies the closest member.

The ensemble mean is optionally written out from filter by setting a namelist option in the filter namelist to output the ensemble mean in restart file format at the end of a run. The difference is computed point by point across the ensemble members. There is an option to restrict the computation to just a subset of the entire state vector by listing one or more generic kinds. In this case, only state vector items matching one of these kinds will contribute to the total difference value.

Available methods are:

1 - simple absolute difference:
The absolute value of the difference between each item in the mean vector and the corresponding item in each ensemble member, accumulated over the entire state vector.
2 - normalized absolute difference:
The absolute value of the difference between each item in the mean vector and the corresponding item in each ensemble member normalized by the mean value, accumulated over the entire state vector.
3 - simple RMS difference:
The square root of the accumulated sum of the square of the difference between each item in the mean vector and the corresponding item in each ensemble member.
4 - normalized RMS difference:
The square root of the accumulated sum of the square of the normalized difference between each item in the mean vector and the corresponding item in each ensemble member.

This program could be used to select one or more ensemble members to run a free model forecast forward in time after the assimilation is finished. Each member is an equally likely representation of the model state. Using the ensemble mean is not usually a good choice since the mean may not have self-consistent structures in the data.

In addition to printing out data about all members to both the console and to the dart log file, this program creates a single output file containing information about the closest member. If the input restart data is in a single file, the output file 'closest_restart' contains a single number which is the ensemble member number. If the input restart data is in separate files, the output file contains the full filename of the closest member, e.g. 'filter_restart.0004' if member 4 is closest. For scripting the contents of this file can be used to copy the corresponding member data and convert it to the model input format for a free forecast, for example.

Namelist interface &closest_member_tool_nml is read from file input.nml.

[top]

NAMELIST

This namelist is read from the file input.nml. Namelists start with an ampersand '&' and terminate with a slash '/'. Character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist.

&closest_member_tool_nml
   input_restart_file_list   = 'null'
   mean_restart_file_list    = 'null'
   output_file_name          = 'closest_restart'
   ens_size                  = 20
   single_restart_file_in    = .false.
   difference_method         = 4
   use_only_kinds            = ''
  /


Item Type Description
input_restart_file_list character(len=256),dimension(500) an array of filenames each containing a list DART restart data.
mean_restart_file_list character(len=256),dimension(500)
output_file_name character(len=256)
ens_size integer Total number of ensemble members.
single_restart_file_in logical Whether the input filename contains a single ensemble member per file or multiple members concatinated in the same file.
difference_method integer Select which method is used to compute 'distance' from mean:
  • 1 = simple absolute difference
  • 2 = normalized absolute difference
  • 3 = simple RMS difference
  • 4 = normalized RMS difference
use_only_kinds character(len=32) If unspecified, all items in the state vector contribute to the total difference. If one or more kinds are listed here, only items in the state vector of these kinds contribute to the total difference. These are the generic kinds, such as QTY_TEMPERATURE, QTY_U_WIND_COMPONENT, QTY_DENSITY, etc. and not specific types like RADIOSONDE_TEMPERATURE. Consult the model interface code to determine which possible kinds are returned by the get_state_meta_data() routine.


[top]

MODULES USED

types_mod
time_manager_mod
utilities_mod
sort_mod
assim_model_mod
mpi_utilities_mod
[top]

FILES

[top]

REFERENCES

[top]

ERROR CODES and CONDITIONS

RoutineMessageComment
closest_member_tool Invalid method number Values 1-4 are supported

KNOWN BUGS

none

[top]

FUTURE PLANS

none

[top]

Terms of Use

DART software - Copyright UCAR. This open source software is provided by UCAR, "as is", without charge, subject to all terms of use at http://www.image.ucar.edu/DAReS/DART/DART_download

Contact: DART core group
Revision: $Revision: 11771 $
Source: $URL: https://svn-dares-dart.cgd.ucar.edu/DART/releases/Manhattan/assimilation_code/programs/closest_member_tool/closest_member_tool.html $
Change Date: $Date: 2017-06-27 10:19:58 -0600 (Tue, 27 Jun 2017) $
Change history:  try "svn log" or "svn diff"