+!
+! 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
+public atmos_tracer_driver_gather_data_down
+public atmos_tracer_has_surf_setl_flux, get_atmos_tracer_surf_setl_flux
+
+!-----------------------------------------------------------------------
+!----------- 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$'
+character(len=128) :: tagname = '$Name$'
+!-----------------------------------------------------------------------
+
+contains
+
+!#######################################################################
+
+!