GFDL - Geophysical Fluid Dynamics Laboratory

module atmosphere_mod

Contact: Isaac Held
Reviewers: Peter Phillipps


OVERVIEW

A spectral transform model for two-dimensional, non-divergent flow on the surface of the sphere.


DESCRIPTION

Integrates the barotropic vorticity equation for nondivergent flow on the
sphere using the spectral transform technique. Also allows for the
inclusion of a passive tracer advected by the same spectral advection
algorithm as the vorticity, and a gridpoint tracer advected with a finite
volume algorithm on the transform grid. The default initial condition
provided as an example is a zonal flow resembling that in the Northern
winter, plus a sinusoidal disurbance localized in midlatitudes.

For a full description of the model and algorithms used, see barotropic.pdf

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 paramters are set in
namelists within the modules barotropic_xxx.


OTHER MODULES USED

     fms_mod
     constants_mod
     transforms_mod
     time_manager_mod
     diag_manager_mod
     barotropic_dynamics_mod
     barotropic_physics_mod
     barotopic_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(Atmos) 
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 any public routine is called prior to atmosphere_init