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

MODULE assim_model_mod

Contact: Jeff Anderson
Reviewers:  
Revision: $Revision: 1.1 $
Change Date: $Date: 2004/04/26 19:04:54 $
Change history: see CVS log

OVERVIEW

This is a standard interface between the DART framework and the standard model_mod wrapper that surrounds a model being incorporated into DART. Many of the interfaces are passed through nearly directly to the model_mod which is documented in detail in the DART views document.




OTHER MODULES USED

types_mod
location_mod
time_manager_mod
utilities_mod
model_mod



PUBLIC INTERFACE

use xxxxxxx, only : assim_model_type &
 static_init_assim_model &
 init_diag_output &
 get_model_size
 get_closest_state_time_to
 get_initial_condition
 get_state_meta_data
 get_close_states
 get_num_close_states
 get_model_time
 get_model_state_vector
 copy_assim_model
 advance_state
 interpolate
 set_model_time
 set_model_state_vector
 write_state_restart
 read_state_restart
 output_diagnostics
 end_assim_model
 assim_model_type
 init_diag_input
 input_diagnostics
 get_diag_input_copy_meta_data
 init_assim_model
 get_state_vector_ptr
 binary_restart_files
 finalize_diag_output
 aoutput_diagnostics
 aread_state_restart
 aget_closest_state_time_to
 awrite_state_restart
 Aadvance_state
 pert_model_state

NOTES

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




PUBLIC COMPONENTS




type assim_model_type
   private
   real(r8), pointer   :: state_vector(:) 
   type(time_type)     :: time
   integer             :: model_size
   integer             :: copyID
end type assim_model_type

Description

This type is used to represent both the state and time of a state from a model.

Component Description
state_vector A one dimensional representation of the model state vector.
time The time of the model state.
model_size Size of the model state vector.
copyID Not used in present implementation.


call static_init_assim_model()

Description

Initializes the assim_model class. Must be called before any other assim_model_mod interfaces are used. Also calls the static initialization for the underlying model.

Notes


ncFileID = init_diag_output(FileName, global_meta_data, copies_of_field_per_time, meta_data_per_copy)
character (len = *)                                                   ::  FileName 
character (len = *)                                                   ::  global_meta_data 
integer, intent(in)                                                   ::  copies_of_field_per_time 
character (len = *), intent(in), dimension(copies_of_field_per_time)  ::  bob 
integer                                                               ::  ncFileID 

Description

Initializes a netCDF file for output of state space diagnostics. A handle to the channel on which the file is opened is returned.

FileName     Name of file to open.
global_meta_data Global metadata that describes the contents of this file.
copies_of_field_per_time Number of copies of data to be written at each time. For instance, these could be the prior ensemble members, prior ensemble mean, prior ensemble spread, posterior ensemble members, posterior spread and mean, etc..
meta_data_per_copy Metadata describing each of the copies.
ncFileID Channel number on which file is opened.


var = get_model_size()
integer                               :: var 

Description

Returns the size of the model state vector. This is a direct pass through to the model_mod.


var = get_closest_state_time_to(assim_model, time)
type(assim_model_type), intent(in)                ::  assim_model 
type(time_type), intent(in)                       ::  time
type(time_type)                                   ::  get_closest_state_time_to 

Description

Returns the closest time that a model is capable of advancing a given state to a specified time. For instance, what is the closest time to 12GMT 01 January, 2004 that a model state at 00GMT 01 January, 2004 can be advanced?

assim_model     A model state vector and time that might be advanced.
time A time that one would like to get close to with the model.
var The closest time to which the model can be advanced is returned.




NAMELIST

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

namelist / lim_obs_seq_nml /  &
    ens_size, spin_up_steps, num_steps, output_start, ens_spin_up_steps, &
    obs_freq, cov_inflate, mean_inflate, restart, add_on, noise_amp

Discussion

This namelist is read in a file called input.nml

Contents Type Description
ens_size integer [default: 0] The number of "i" and "j" rows processed each time the modular physics is called.
spin_up_steps integer the month
num_steps real(r8) the day-of-month
output_start real(r4) the hour-of-day
ens_spin_up_steps real(r4) the minute
obs_freq, real(r4) the second
cov_inflate real(r8) uniformly monotonic time
mean_inflate character(len=80) the type of calendar being used
restart integer the type of calendar being used
add_on integer the type of calendar being used
noise_amp integer the type of calendar being used



FILES




REFERENCES


ERROR CODES and CONDITIONS

RoutineMessageComment
xxxx size of [argument] is incorrect The size of [argument] must be 1 and 4
xxxx yyyyy bad judgement
What were you thinking?



KNOWN BUGS




FUTURE PLANS




PRIVATE COMPONENTS

type location_type
   private
   real(r8) :: x
end type location_type

Discussion