PUBLIC INTERFACE / ROUTINES / NAMELIST / CHANGES / ERRORS / REFERENCES / NOTES

Last updated on .

## Module fv_advection_mod

         Contact: Isaac Held,  Peter Phillips

#### OVERVIEW

#### OTHER MODULES USED

    fms_mod
    constants_mod
    mpp_domains_mod

#### PUBLIC INTERFACE

    use fv_advection_mod [,only: fv_advection_init,      &
                                 a_grid_horiz_advection, &
                                 fv_advection_end        ]

    fv_advection_init     : initializes module
    a_grid_horiz_advection: computes advection tendencies
    fv_advection_end      : deallocates array space allocated for use by this module.

    Notes:

     1) There is no namelist
     2) No restart files are needed or generated by this module.
     3) No data files are needed.

#### PUBLIC ROUTINES

    call fv_advection_init(lon_max, lat_max, lat_boundaries, degrees_lon, advection_layout)

    input:

      integer :: lon_max -- Number of longitude points in global grid.

      integer :: lat_max -- Number of latitude  points in global grid.

      real, dimension(lat_max+1) :: lat_boundaries -- The latitudinal boundaries of
                                    the global grid. (radians)

      real :: degrees_lon -- Size of longitudinal domain. (degrees)
                             Examples:
                             degrees_lon=360. if global domain is entire sphere.
                             degrees_lon=60.  if global domain is a sector of 1/6'th of sphere.

    optional:

      integer, dimension(2) :: advection_layout -- determines decomposition of the global
                               grid across processors. If not present then the decomposition
                               will be computed automatically.
                               Currently, it is not recommended that the automatic
                               decomposition be overridden.

     call a_grid_horiz_advection(u, v, q, dt, dq_dt, flux)

    input:

      real, dimension(:,:,:) :: u,v -- wind components.

      real, dimension(:,:,:) :: q -- field for which advection tendency is computed.

      real :: dt -- time step.

    intent(inout):

      real, dimension(:,:,:) :: dq_dt -- advection tendency of q is added to input values.

    optional;

      logical :: flux -- If true then tendency of flux form is computed.
                         If flux is not present then it becomes .false. by default.

    call fv_advection_end

      Deallocates array space allocated for use by this module.

#### NAMELIST

    no namelist

#### CHANGE HISTORY

#### ERROR MESSAGES

      Fatal error if a_grid_horiz_advection is called prior to fv_advection_init

#### REFERENCES

#### NOTES

#### FUTURE PLANS