PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module atmos_tracer_utilities_mod

Contact:  William Cooke
Reviewers:  Bruce Wyman
Change History: WebCVS Log


OVERVIEW

This code provides some utility routines for atmospheric tracers in the FMS framework.

This module gives utility routines which can be used to provide consistent removal mechanisms for atmospheric tracers.

In particular it provides schemes for wet and dry deposiiton that can be easily utilized.



OTHER MODULES USED

           fms_mod
time_manager_mod
diag_manager_mod
tracer_manager_mod
field_manager_mod
horiz_interp_mod
monin_obukhov_mod
constants_mod
interpolator_mod

PUBLIC INTERFACE

atmos_tracer_utilities_init:
This is a routine to create and register the dry and wet deposition fields of the tracers.
dry_deposition:
Routine to calculate the fraction of tracer to be removed by dry deposition.
wet_deposition:
Routine to calculate the fraction of tracer removed by wet deposition
get_wetdep_param:
Routine to initialize the parameters for the wet deposition scheme.
interp_emiss:
A routine to interpolate emission fields of arbitrary resolution onto the resolution of the model.
tracer_utilities_end:
The destructor routine for the tracer utilities module.


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. atmos_tracer_utilities_init

    call atmos_tracer_utilities_init (lonb,latb, mass_axes, Time)
    DESCRIPTION
    This routine creates diagnostic names for dry and wet deposition fields of the tracers. It takes the tracer name and appends "ddep" for the dry deposition field and "wdep" for the wet deposition field. This names can then be entered in the diag_table for diagnostic output of the tracer dry and wet deposition. The module name associated with these fields in "tracers". The units of the deposition fields are assumed to be kg/m2/s.


    INPUT
    lonb    The longitudes for the local domain.
       [real, dimension(:)]
    latb    The latitudes for the local domain.
       [real, dimension(:)]
    mass_axes    The axes relating to the tracer array.
       [integer, dimension(3)]
    Time    Model time.
       [type(time_type)]

  2. dry_deposition

    call dry_deposition ( n, is, js, u, v, T, pwt, pfull, dz, u_star, landmask, dsinku, tracer, Time, drydep_data)
    DESCRIPTION
    There are three types of dry deposition coded.

    1) Wind driven derived dry deposition velocity.

    2) Fixed dry deposition velocity.

    3) Dry deposition velocities read in from input file

    The theory behind the wind driven dry deposition velocity calculation assumes that the deposition can be modeled as a parallel resistance type problem.

    Total resistance to HNO3-type dry deposition,
           R = Ra + Rb
      resisa = aerodynamic resistance
      resisb = surface resistance (laminar layer + uptake)
             = 5/u*  [s/cm]        for neutral stability
          Vd = 1/R
    For the fixed dry deposition velocity, there is no change in the deposition velocity but the variation of the depth of the surface layer implies that there is variation in the amount deposited.

    To utilize this section of code add one of the following lines as a method for the tracer of interest in the field table.
     "dry_deposition","wind_driven","surfr=XXX"
         where XXX is the total resistance defined above.
    
     "dry_deposition","fixed","land=XXX, sea=YYY"
         where XXX is the dry deposition velocity (m/s) over land
           and YYY is the dry deposition velocity (m/s) over sea.
    
     "dry_deposition","file","FILENAME.NC"
         where FILENAME.NC is the NetCDF file name.


    INPUT
    n    The tracer number.
       [integer]
    is, js    Start indices for array (computational indices).
       [integer]
    u    U wind field.
       [real, dimension(:,:)]
    v    V wind field.
       [real, dimension(:,:)]
    T    Temperature.
       [real, dimension(:,:)]
    pwt    Pressure differential of half levels.
       [real, dimension(:,:)]
    pfull    Full pressure levels.
       [real, dimension(:,:)]
    u_star    Friction velocity.
       [real, dimension(:,:)]
    landmask    Land - sea mask.
       [logical]

    INPUT/OUTPUT
    drydep_data    Dry deposition data interpolated from input file.
       [interpolate_type]

    OUTPUT
    dsinku    The amount of tracer in the surface layer which is dry deposited per second.
       [real, dimension(:,:)]

  3. wet_deposition

    call wet_deposition ( n, T, pfull, phalf, zfull, zhalf, & rain, snow, qdt, cloud, rain3d, snow3d, & tracer, tracer_dt, Time, cloud_param, is, js, dt )
    DESCRIPTION
    Schemes allowed here are

    1) Deposition removed in the same fractional amount as the modeled precipitation rate is to a standardized precipitation rate. Basically this scheme assumes that a fractional area of the gridbox is affected by precipitation and that this precipitation rate is due to a cloud of standardized cloud liquid water content. Removal is constant throughout the column where precipitation is occuring.

    2) Removal according to Henry's Law. This law states that the ratio of the concentation in cloud water and the partial pressure in the interstitial air is a constant. If tracer is in VMR, the units for Henry's constant are mole/L/Pa (normally it is mole/L/atm). Parameters for a large number of species can be found at http://www.mpch-mainz.mpg.de/~sander/res/henry.html

    3) Aerosol removal, using specified in-cloud tracer fraction To utilize this section of code add one of the following lines as a method for the tracer of interest in the field table.
     "wet_deposition","henry","henry=XXX, dependence=YYY"
         where XXX is the Henry's constant for the tracer in question
           and YYY is the temperature dependence of the Henry's Law constant.
    
     "wet_deposition","fraction","lslwc=XXX, convlwc=YYY"
         where XXX is the liquid water content of a standard large scale cloud
           and YYY is the liquid water content of a standard convective cloud.


    INPUT
    n    Tracer number
       [integer]
    is, js    start indices for array (computational indices)
       [integer]
    T    Temperature
       [real, dimension(:,:,:)]
    pfull    Full level pressure field (Pa)
       [real, dimension(:,:,:)]
    phalf    Half level pressure field (Pa)
       [real, dimension(:,:,:)]
    zfull    Full level height field (m)
       [real, dimension(:,:,:)]
    zhalf    Half level height field (m)
       [real, dimension(:,:,:)]
    rain    Precipitation in the form of rain
       [real, dimension(:,:)]
    snow    Precipitation in the form of snow
       [real, dimension(:,:)]
    qdt    The tendency of the specific humidity (+ condenstate) due to the cloud parametrization (kg/kg/s)
       [real, dimension(:,:,:)]
    cloud    Cloud amount (liquid + ice) (kg/kg)
       [real, dimension(:,:,:)]
    rain3d    Precipitation in the form of rain (kg/m2/s)
       [real, dimension(:,:,:)]
    snow3d    Precipitation in the form of snow (kg/m2/s)
       [real, dimension(:,:,:)]
    tracer    The tracer field
       [real, dimension(:,:,:)]
    Time    The time structure for submitting wet deposition as a diagnostic
       [type(time_type)]
    cloud_param    Is this a convective (convect) or large scale (lscale) cloud parametrization?
       [character]
    dt    The model timestep (in seconds)
       [real]

    OUTPUT
    tracer_dt    The tendency of the tracer field due to wet deposition
       [real, dimension(:,:,:)]

  4. get_wetdep_param

    call get_wetdep_param (text_in_scheme, text_in_param, scheme,& henry_constant, henry_temp, & frac_in_cloud, alpha_r, alpha_s)
    DESCRIPTION


    INPUT
    text_in_scheme    Text read from the tracer table which provides information on which wet deposition scheme to use.
       [character]
    text_in_param    Parameters associated with the wet deposition scheme. These will be parsed in this routine.
       [character]

    OUTPUT
    scheme    Wet deposition scheme to use. Choices are: None, Fraction, Henry, Henry_below, Aerosol, Aerosol_below
       [character]
    henry_constant    Henry's Law constant for the tracer (see wet_deposition for explanation of Henry's Law)
       [real]
    henry_temp    The temperature dependence of the Henry's Law constant.
       [real]

  5. interp_emiss

    call interp_emiss (global_source, start_lon, start_lat, & lon_resol, lat_resol, data_out)
    DESCRIPTION
    Routine to interpolate emission fields (or any 2D field) to the model resolution. The local section of the global field is returned to the local processor.


    INPUT
    global_source    Global emission field.
       [real, dimension(:,:)]
    start_lon    Longitude of starting point of emission field (in radians). This is the westernmost boundary of the global field.
       [real]
    start_lat    Latitude of starting point of emission field (in radians). This is the southern boundary of the global field.
       [real]
    lon_resol    Longitudinal resolution of the emission data (in radians).
       [real]
    lat_resol    Latitudinal resolution of the emission data (in radians).
       [real]

    OUTPUT
    data_out    Interpolated emission field on the local PE.
       [real, dimension(:,:)]

  6. tracer_utilities_end

    DESCRIPTION
    This subroutine writes the version name to logfile and exits.



DATA SETS

None.


ERROR MESSAGES

FATAL in wet_deposition
Unsupported tracer units
Tracer units must be either VMR or MMR


top