!
! This is a null module to be used when no atmospheric model is required.
!
! This code allows a user to easily implement tracer code in the FMS
! framework. The tracer and tracer tendency arrays are supplied along
! with longtitude, latitude, wind, temperature, and pressure
! information which allows a user to implement sources and sinks of the
! tracer which depend on these parameters.
!
! In the following example, radon being implemented in the atmosphere
! will be used as an example of how to implement a tracer in the FMS
! framework.
!
! Within the global scope of tracer_driver_mod a use
! statement should be inserted for each tracer to be added.
! use radon_mod, only : radon_sourcesink, radon_init, radon_end
!
! An integer parameter, which will be used as an identifier for the
! tracer, should be assigned.
!
! integer :: nradon
!
! Within tracer_driver_init a call to the tracer manager is needed in
! order to identify which tracer it has set the tracer as.
!
! nradon = get_tracer_index(MODEL_ATMOS,'radon')
!
! Here MODEL_ATMOS is a parameter defined in field_manager.
! 'radon' is the name of the tracer within the field_table.
!
! If the tracer exists then the integer returned will be positive and it
! can be used to call the initialization routines for the individual
! tracers.
!
! if (nradon > 0) then
! call radon_init(Argument list)
! endif
!
!
! Within tracer_driver the user can also use the identifier to surround
! calls to the source-sink routines for the tracer of interest.
!
!
! if (nradon > 0 .and. nradon <= nt) then
! call radon_sourcesink (Argument list)
! rdt(:,:,:,nradon)=rdt(:,:,:,nradon)+rtnd(:,:,:)
! endif
!
!
! It is the users responsibility to add the tendency generated by the
! sourcesink routine.
!
! Within tracer_driver_end the user can add calls to the
! terminators for the appropriate source sink routines.
!
! call radon_end
!
! This may simply be a deallocation statement or a routine to send
! output to the logfile stating that the termination routine has been
! called.
!
!-----------------------------------------------------------------------
use time_manager_mod, only : time_type
implicit none
private
!-----------------------------------------------------------------------
!----- interfaces -------
public atmos_tracer_driver, atmos_tracer_flux_init
public atmos_tracer_driver_init, atmos_tracer_driver_end
public atmos_tracer_driver_gather_data
!-----------------------------------------------------------------------
!----------- namelist -------------------
!-----------------------------------------------------------------------
!
! When initializing additional tracers, the user needs to make the
! following changes.
!
! Add an integer variable below for each additional tracer.
! This should be initialized to zero.
!
!-----------------------------------------------------------------------
character(len=6), parameter :: module_name = 'tracer'
logical :: module_is_initialized = .FALSE.
!---- version number -----
character(len=128) :: version = '$Id: atmos_tracer_driver.F90,v 15.0 2007/08/14 03:52:31 fms Exp $'
character(len=128) :: tagname = '$Name: mom4p1_pubrel_dec2009_nnz $'
!-----------------------------------------------------------------------
contains
!#######################################################################
!