PUBLIC INTERFACE / ROUTINES / NAMELIST / ERRORS


module atmosphere_mod

     Contact:   Bruce Wyman
     Reviewers:
     Change history: WebCVS Log for solo/atmosphere.f90


OVERVIEW


     Atmospheric driver for a dry B-grid dynamical core using
     forcing from the Held-Suarez benchmark.
     This module provides the standard interface to the B-grid dynamical
     core.  The complexity of a GCM with full physics and land/sea interaction
     has been replaced with relatively very simple forcing by the
     Held-Suarez benchmark code.


OTHER MODULES USED


   bgrid_horiz_mod
   bgrid_vert_mod
   bgrid_prog_var_mod
   bgrid_halo_mod
   bgrid_change_grid_mod
   bgrid_core_driver_mod
   forcing_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 call for running the bgrid dynamical with the
   Held-Suarez GCM forcing.

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 Termination call for the bgrid dynamical with Held-Suarez GCM forcing. There are no arguments to this routine.
call atmosphere ( Time ) DESCRIPTION Advances the B-grid prognostic variables one time step forward. The dynamical core, Held-Suarez forcing, 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 from get_atmosphere_axes in atmosphere_mod

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