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

MODULE xxxxxxx

Contact: Jeff Anderson
Reviewers:  
Revision: $Revision: 1.7 $
Release Name: $Name: pre_hawaii $
Change Date: $Date: 2004/12/22 20:48:12 $
Change history: see CVS log (cop-out, I know)

OVERVIEW

A note about documentation style. Optional arguments are enclosed in brackets [like this].

Atmospheric driver for the dry B-grid dynamical core and Held-Suarez benchmark (aka simple_physics).




OTHER MODULES USED

types_mod
model_mod
assim_tools_mod
time_manager_mod
fms_mod



PUBLIC INTERFACE

use xxxxxxx, only : yyypubtype1
 yyyroutine1
 yyyroutine2
 yyyroutine3

NOTES

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




PUBLIC COMPONENTS

fill in text here




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

Description

The location type is essential to the fabric of the universe. If we don't know where we are, how do we know which exit to take?

Component Description
x is the nondimensional distance [0,1]



type time_type
   private
   integer           :: year
   integer           :: month
   integer           :: day
   integer           :: hour
   integer           :: minute
   integer           :: second
   real(r8)          :: umt
   character(len=80) :: calendar
end type time_type

Description

The time type is ubiquitous throughout the module. Given the value of calendar, everything should be pretty clear. calendar may take on several values: julian, nondimensional, uniformleap, threesixty.

Component Description
year the (non-negative) year
month the month
day the day-of-month
hour the hour-of-day
minute the minute
second the second
umt uniformly monotonic time
calendar the type of calendar being used


call yyyroutine1( var1, var2, var3 [,global] )
type(time_type),          intent(in)    ::  var1 
real(r8), dimension(:),   intent(inout) ::  var2 
real(r8), dimension(:,:), intent(out)   ::  var3 
real(r8), OPTIONAL,       intent(in)    ::  global 

Description

Returns the resolution of compute domain for either the current processor or the global domain.

This is the best thing since sliced bread. All you have to do is throw some arguments in the call and the subroutine automatically slices, dices and makes julienne fries. But wait! There's more!

var1 is the number of spark plugs in a '67 Cuda.
var2 is used for both input and output. Upon input, this contains the furlongs per weekday for every vertical level. Upon exit, we now have the number of spotted gobies per square hectare at that level.
var3 The leftmost dimension pertains to the number of feet in an orange-footed brush fowl, indiginous to Australia. The next dimension is the number of feathers on said fowl, naturally.
global is really, REALLY useful in certain situations.

Notes

would go here


var = yyyroutine2( var1, var2, var3, [,bob] )
type(time_type),          intent(in)  ::  var1 
real(r8), dimension(:),   intent(in)  ::  var2 
real(r8), dimension(:,:), intent(in)  ::  var3 
real(r8), OPTIONAL,       intent(in)  ::  bob 
integer, dimension(size(var2))        ::  var 

Description

Returns the resolution of compute domain for either the current processor or the global domain. All input variables are not changed. Otherwise, this would be a subroutine.

This is the second-best thing since sliced bread. All you have to do is throw some arguments in the call and the function automatically deep fries.

var1     the first time you changed your oil.
var2 miles between every oil change you've ever done. Don't lie.
var3 the distances you've ridden. Each row corresponds to the hour-of-day, each column is a different day-of-the-week.
bob mean time between failures. in msec.
var number of gray hairs as a function of time. in kilohairs.

Notes

would go here




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