PUBLIC COMPONENTS / NAMELIST / FILES / REFERENCES / ERRORS / BUGS / PLANS / PRIVATE COMPONENTS

PROGRAM filter

Contact: Jeff Anderson
Reviewers:  
Revision: $Revision: 1.11 $
Release Name: $Name: post_iceland $
Change Date: $Date: 2006/02/22 23:23:18 $
Change history: see CVS log

OVERVIEW

Main program for driving ensemble filter assimilations. This program provides a number of options that are driven from its namelist. The number of assimilation steps to be done are controlled by the input observation sequence and by the time-stepping capabilities of the model being used in the assimilation. This documentation was created for the I-release of DART.

Quality control flags for observations are set in filter. If forward observation operators cannot be computed for any ensemble member, the quality control flag for the observation is incremented by 1000 for the prior and 100000 for a violation when computing posterior diagnostics.

The filter also performs an outlier test on observations which set the quality control flags (see outlier_threshold in namelist).

Optional namelist interface &filter_nml may be read from file input.nml.




OTHER MODULES USED

types_mod
obs_sequence_mod
obs_def_mod
time_manager_mod
utilities_mod
assim_model_mod
random_seq_mod
assim_tools_mod
obs_model_mod
ensemble_manager_mod
adaptive_inflate_mod



NAMELIST

We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/'.

namelist / filter_nml /  &
      async, adv_ens_command, ens_size, 
      start_from_restart, output_restart, 
      obs_sequence_in_name, obs_sequence_out_name, 
      restart_in_file_name, restart_out_file_name, 
      init_time_days, init_time_seconds, 
      output_state_ens_mean, output_state_ens_spread, 
      output_obs_ens_mean,   output_obs_ens_spread, 
      num_output_state_members, num_output_obs_members, 
      output_interval,  num_groups, outlier_threshold 

Discussion

This namelist is read in a file called input.nml

Contents Type Description
async integer Controls whether models are advanced via a subroutine call or by writing initial condition files for ensemble members to disk and having shellscript advance the model.
0 = advance by subroutine. Default
1 = shell advance using shell script piped to filter.
2 = advance by F90 calls to shell to advance model.
3 = model advanced when signalled by a signal file, which is is written out by filter (used for running filter on a compute node separate from the model advances).
ens_size integer Number of ensemble members to be integrated. Default is 20.
start_from_restart logical Should initial ensemble states come from (a) restart file(s). Default is .false.
output_restart logical Should (a) restart file(s) be written out for all ensemble members? Default is .false.
obs_sequence_file_name character(len=129) File name that contains an observation sequence file. Default is 'obs_seq.out'.
restart_in_file_name character(len=129) File name (root) for a file(s) containing restart state for all ensemble members. Multiple files have extensions ".####", where #### is a 4 digit number representing the ensemble member. Default is 'filter_ics'.
restart_out_file_name character(len = 129) File name (root) for output restart file(s). See restart_in_file_name for multiple file information. Default is 'filter_restart'.
init_time_days integer Initial time of model (time is in days and seconds; see time_manager. If init_time_days and init_time_seconds are less than 0, the initial time comes from the time in the restart file. Default value is 0.
init_time_seconds integer Initial time of model in seconds. Default is 0.
output_state_ens_mean logical Output ensemble mean in state diagnostic files.
output_state_ens_spread logical Output ensemble spread in state diagnostic files.
output_obs_ens_mean logical Output ensemble mean in observation output file.
output_obs_ens_spread logical Output ensemble spread in observation output file.
num_output_state_members integer This number of ensemble members is output to the state diagnostics file. If this is less than the total number of ensemble members the first subset is output. Default is 0.
num_output_obs_members integer This number of ensemble members is output to the observation output file. If this is less than the total number of ensemble members the first subset is output. Default is 0.
output_interval integer The frequency with which output state diagnostics are written. Units are in assimilation times. Default value is 1 meaning output is written at every observation time.
num_groups integer Number of groups for hierarchical group filter. Should be a divisor of the ensemble size. Default is 1.
outlier_threshold real(r8) Discard all observations where the prior ensemble mean and the observation value differ by more than this many of the expected standard deviations. A quality control flag value is incremented by 100 if this check is violated for the prior ensemble mean and by 400 it this check is violated for the posterior ensemble mean. Negative value means no quality control of this kind is performed. Default value is -1.0



FILES




REFERENCES


ERROR CODES and CONDITIONS

RoutineMessageComment
filter_generate_copy_meta_data output metadata in filter needs ensemble size < 10000 Ensemble sizes greater than require modifications to output ensemble code.
filter_get_obs_info Did not find observation copy with metadata "observations" None of the copies of data in the obs_seq file is an "observation"



KNOWN BUGS




FUTURE PLANS

Further development to better support observations that can only be computed once is needed.

Discussion