PUBLIC INTERFACE / DATA / ROUTINES / NAMELIST / ERRORS


module atmosphere_mod

     Contact: Isaac Held
     Reviewers: Peter Phillipps

OVERVIEW

   A spectral transform model for the shallow water equations on the sphere

DESCRIPTION

   Integrates the shallow water equations for hydrostatic flow in a thin layer
   of homogeneous fluid on the sphere, using the spectral transform technique.
   Also allows for the inclusion of a passive tracer advected by the 
   spectral advection algorithm as the vorticity, and a gridpoint tracer 
   advected with a finite volume algorithm on the transform grid.  
   The default experiment is forced by a "monsoonal" mass source, starting
   from a state of rest.
   
   For a full description of the model and algorithms used, see shallow.ps

   The interfaces in this module are the generic intefaces required by the
   main program that can be used to drive various idealized atmospheric
   models within FMS. Model resolution and related parameters are set in
   namelists within the modules shallow_xxx.

OTHER MODULES USED

     fms_mod
     constants_mod
     transforms_mod
     time_manager_mod
     diag_manager_mod
     shallow_dynamics_mod
     shallow_physics_mod
     shallow_diagnostics_mod

PUBLIC INTERFACE

  use atmosphere_mod [,only: atmosphere_init,       
                             atmosphere,
			     atmosphere_end]

PUBLIC DATA

  There are no public data types

PUBLIC ROUTINES

subroutine atmosphere_init. Initializes the model.
subroutine atmosphere.      Integrates forward one time step
subroutine atmosphere_end.  Terminates model, cleaning up memory and finalizing diagnostics.


 subroutine atmosphere_init(Time_init, Time, Time_step)

   input:

   type(time_type) :: Time_init -- Initial model time

   type(time_type) :: Time      -- Model time

   type(time_type) :: Time_step -- Time step

   When Time=Time_init, the first time step is a forward
   step rather than leap frog because a cold start is assumed.

   The FMS main program that runs the solo atmospheric models
   obtains Time_init from the diag_table and Time from its namelist.
       


subroutine atmosphere(Time) input: type(time_type) :: Time -- Model time Integrates forward one time step
subroutine atmosphere_end No calling arguments. Terminates model, cleaning up memory and finalizing diagnostics

NAMELIST

&atmosphere_nml

   print_interval, integer : time interval in seconds 
   between prints of global mean energy and enstrophy to standard output

ERROR MESSAGES

  Fatal error message if subroutine atmosphere or atmosphere_end
  is called prior to atmosphere_init.