PUBLIC INTERFACE / ROUTINES / NAMELIST / ERRORS


module atmosphere_mod

     Contact:   B. Wyman
     Reviewers:
     Change history: WebCVS Log for shallow/atmosphere.f90


OVERVIEW


     Atmospheric driver for the B-grid dynamical core using
     forcing from a simple shallow water test case.

     The B-grid dynamical core can be run as a shallow water model by
     setting the number of model levels to ONE.  Since the same computer
     code is used for the shallow water version, some prognostic variables
     represent different fields. The surface pressure (ps) now represents
     the free surface geopotential height and temperature becomes another
     tracer.  The zonal and meridional wind components (u,v) are the same.
     
     Not all terms can be applied in the shallow water version.
     Namelist values should be set to turn off these terms.
     Here is a list of terms that should not be used:
        * vertical advection (set to NONE)
        * slope correction in bgrid_horiz_diff (set to zero)
        * energy conservation (set to FALSE)
        * pgf scheme should be set to default
        * sponge should probably not be used

     Diagnostic fields have not been modified for the shallow water version.
     Some fields have no meaning in the one level model.
     (For example: zsurf, omega, pres_full, pres_half.)


OTHER MODULES USED


   bgrid_horiz_mod
   bgrid_vert_mod
   bgrid_prog_var_mod
   bgrid_halo_mod
   bgrid_change_grid_mod
   bgrid_core_driver_mod
   shallow_physics_mod
   time_manager_mod
   fms_mod


PUBLIC INTERFACE


  use atmosphere_mod [,only: atmosphere_init,       atmosphere_end,
                             atmosphere,
                             atmosphere_resolution, atmosphere_boundary,
                             get_atmosphere_axes  ]

  NOTES

     1)  Optional namelist interface &atmosphere_nml may be
         read from file input.nml.
                                

PUBLIC ROUTINES


call atmosphere_init ( Time_init, Time, Time_step )

DESCRIPTION
   Initialization routine for running the bgrid dynamical core.

INPUT
   Time_init   The base (or initial) time for the experiment.
               The base time is usually subtracted from the current time
               when outputting time in diagnostic routines.
                 [time_type]

   Time        The current time.  [time_type]

   Time_step   The atmospheric model/physics time step.  [time_type]



call atmosphere_end DESCRIPTION This routine terminates the module. There are no arguments to this routine.
call atmosphere ( Time ) DESCRIPTION Advances the B-grid prognostic variables one time step forward. The dynamical core, forcing for shallow water model, diagnostics, and time differencing are all called. This routine should only be called once per time step. INPUT Time The current time. [time_type] NOTE The prognostic variables are stored in a private data structure (i.e., derived-type variable) defined in the specification section of this module. --------------------------------------------------------------------- call get_atmosphere_axes ( axes ) OUTPUT axes Axis identifiers for the atmospheric grids as returned by the diagnostics manager. The size of axes must be: 1 <= size(axes) <= 4. The axes returned are ordered: (/ x, y, p_full, p_half /). [integer, dimension(:)]
call atmosphere_resolution ( nlon, nlat [, global] ) DESCRIPTION Returns the resolution of compute domain for either the current processor or the global domain. OUTPUT nlon The number of longitude points in the compute domain. [integer] nlat The number of latitude points in the compute domain. [integer] OPTIONAL INPUT global Flag that specifies whether the returned compute domain size is for the global grid (TRUE) or for the current processor (FALSE). [logical, default: FALSE]
call atmosphere_boundary ( blon, blat [, global] ) DESCRIPTION Returns the grid box edges of compute domain for either the current processor or the global domain. OUTPUT blon The west-to-east longitude edges of grid boxes (in radians). [real, dimension(nlon+1)] blat The south-to-north latitude edges of grid boxes (in radians). [real, dimension(nlat+1)] OPTIONAL INPUT global Flag that specifies whether the returned grid box edges are for the global grid (TRUE) or for the current processor (FALSE). [logical, default: FALSE] NOTE The size of the output arguments, blon and blat, must be +1 more than the output arguments for call atmosphere_resolution, nlon+1 and nlat+1, respectively.

NAMELIST


&atmosphere_nml

 physics_window  The number of "i" and "j" rows processed each time
                 the modular physics is called. To process the entire
                 domain use physics_window = 0,0.
                    [integer, default: physics_window = 0,0]


ERROR MESSAGES


FATAL errors in atmosphere_mod

    number of model levels not correct for shallow water version
        This version of atmosphere runs a shallow water version of the B-grid core.
        There must be only ONE model level used.  Check your namelist value or
        restart file.

    size of argument is incorrect
        The size of the argument to get_atmosphere_axes must be
        between 1 and 4.