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

Module lw_gases_stdtf_mod

Contact:  fil
Reviewers:  ds
Change History: WebCVS Log


OVERVIEW

Module that computes longwave gas transmission functions



OTHER MODULES USED

          fms_mod
fms_io_mod
rad_utilities_mod
gas_tf_mod

PUBLIC INTERFACE

lw_gases_stdtf_init:
Subroutine to initialize longwave gas transmission function calculation
lw_gases_stdtf_time_vary:
Allocate transmission function memory tables
ch4_lblinterp:
Subroutine to interpolate ch4 transmission function to user specified pressure levels and ch4 concentration
co2_lblinterp:
Subroutine to interpolate co2 transmission function to user specified pressure levels and co2 concentration
n2o_lblinterp:
Subroutine to interpolate n2o transmission function to user specified pressure levels and n2o concentration
lw_gases_stdtf_dealloc:
Subroutine to deallocate long wave gas transmission functions
cfc_exact:
cfc_exact computes exact cool-to-space transmission function for cfc for the desired band (given by index).
cfc_exact_part:
cfc_exact computes exact cool-to-space transmission function at levels below klevel for cfc for the band given by index.
cfc_indx8:
cfc_indx8 computes transmission function for cfc for the band 8.
cfc_indx8_part:
cfc_indx8 computes transmission function for cfc for the band 8.
cfc_overod:
cfc_overod computes transmission function for cfc that is used with overod variable in the 15 um (560-800 cm-1) band.
cfc_overod_part:
cfc_overod computes transmission function for cfc that is used with overod variable in the 15 um (560-800 cm-1) band from klevel down.
lw_gases_stdtf_end:
lw_gases_stdtf_end is the destructor for lw_gases_stdtf_mod.
std_lblpressures:
calculation of pa -- the "table" of (NSTDCO2LVLS) grid pressures
approx_fn:
Subroutine to compute co2 approximation function
approx_fn_std:
Subroutine to compute co2 approximation function
gasins:
gasins processes transmission functions to produce "consolidated" functions over the specific frequency band ranges needed by the SEA code, and the derivatives needed by the SEA algorithm.
gasint:
gasint interpolates carbon dioxide transmission functions from the standard level grid,for which the transmission functions have been pre-calculated, to the grid structure specified by the user.
coeint:
Subroutine to inverse coefficients from transmission functions using newton method
intcoef_1d:
Subroutine to inverse coefficients from transmission functions using newton method (1 dimensional)
intcoef_2d:
Subroutine to inverse coefficients from transmission functions using newton method (2 dimensional)
intcoef_2d_std:
Subroutine to inverse coefficients from transmission functions using newton method (2 dimensional)
interp_error:
Subroutine to examine error associated with interpolation onto pressure grids.
interp_error_r:
Subroutine to examine error associated with interpolation onto pressure grids.
pathv1:
Subroutine to compute the path function for the co2 interpolation pgm. between a pressure (press_lo) and a variable pressure (press_hi)
rctrns:
Subroutine to compute co2 transmission functions for actual co2 concentration
read_lbltfs:
Subroutine to read gas transmission functions from input file
allocate_interp_arrays:
Subroutine to allocate interpolation arrays


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. lw_gases_stdtf_init

    call lw_gases_stdtf_init ( pref)
    DESCRIPTION
    Subroutine to initialize longwave gas transmission function calculation


    INPUT
    pref    reference level pressure array
       [real]

  2. lw_gases_stdtf_time_vary

    call lw_gases_stdtf_time_vary 
    
    DESCRIPTION
    Allocate transmission function memory tables


  3. ch4_lblinterp

    call ch4_lblinterp (ch4_vmr)
    DESCRIPTION
    this routine is 1) a standalone program for a ch4 interpolation to user-specified pressure levels and ch4 concentration; 2) an interface between a GCM and ch4 interpolation


    INPUT
    ch4_vmr    ch4 volume mixing ratio
       [real]

  4. co2_lblinterp

    call co2_lblinterp (co2_vmr)
    DESCRIPTION
    this routine is 1) a standalone program for a co2 interpolation to user-specified pressure levels and co2 concentration; 2) an interface between a GCM and co2 interpolation


    INPUT
    co2_vmr    co2 volume mixing ratio
       [real]

  5. n2o_lblinterp

    call n2o_lblinterp (n2o_vmr)
    DESCRIPTION
    this routine is 1) a standalone program for a n2o interpolation to user-specified pressure levels and n2o concentration; 2) an interface between a GCM and n2o interpolation


    INPUT
    n2o_vmr    n2o volume mixing ratio
       [real]

  6. lw_gases_stdtf_dealloc

    call lw_gases_stdtf_dealloc 
    
    DESCRIPTION
    Subroutine to deallocate long wave gas transmission functions


  7. cfc_exact

    call cfc_exact (index, Optical, cfc_tf)
    DESCRIPTION
    cfc_exact computes exact cool-to-space transmission function for cfc for the desired band (given by index).


    INPUT
    index    the spectral index where exact CTS transmision function is computed
       [integer]
    Optical    The CFC gas optical depth
       [optical_depth_type]

    OUTPUT
    cfc_tf    exact CTS transmission function output
       [real]

  8. cfc_exact_part

    call cfc_exact_part (index, Optical, cfc_tf, klevel)
    DESCRIPTION
    cfc_exact computes exact cool-to-space transmission function at levels below klevel for cfc for the band given by index.


    INPUT
    index    The spectral index where exact CTS transmision function is computed
       [integer]
    Optical    The CFC gas optical depth
       [optical_depth_type]
    klevel    The level below which exact CTS transmision function is computed
       [integer]

    OUTPUT
    cfc_tf    exact CTS transmission function output
       [real]

  9. cfc_indx8

    call cfc_indx8 (index, Optical, tcfc8)
    DESCRIPTION
    cfc_indx8 computes transmission function for cfc for the band 8.


    INPUT
    index    The spectral index where exact CTS transmision function is computed
       [integer]
    Optical    The CFC gas optical depth
       [optical_depth_type]

    OUTPUT
    tcfc8    exact CTS transmission function output for the band 8
       [real]

  10. cfc_indx8_part

    call cfc_indx8_part (index, Optical, tcfc8, klevel)
    DESCRIPTION
    cfc_indx8 computes transmission function for cfc for the band 8.


    INPUT
    index    The spectral index where exact CTS transmision function is computed
       [integer]
    Optical    The CFC gas optical depth
       [optical_depth_type]
    klevel    The level below which exact CTS transmision function is computed
       [integer]

    OUTPUT
    tcfc8    exact CTS transmission function output for the band 8
       [real]

  11. cfc_overod

    call cfc_overod (Optical, cfc_tf)
    DESCRIPTION
    cfc_overod computes transmission function for cfc that is used with overod variable in the 15 um (560-800 cm-1) band.


    INPUT
    Optical    CFC optical depth values
       [optical_path_type]

    OUTPUT
    cfc_tf    CFC transmission function
       [real]

  12. cfc_overod_part

    call cfc_overod_part (Optical, cfc_tf, klevel)
    DESCRIPTION
    cfc_overod computes transmission function for cfc that is used with overod variable in the 15 um (560-800 cm-1) band from klevel down.


    INPUT
    Optical    CFC optical depth values
       [optical_path_type]
    klevel    The level below which exact CTS transmision function is computed
       [integer]

    OUTPUT
    cfc_tf    CFC transmission function
       [real]

  13. lw_gases_stdtf_end

    call lw_gases_stdtf_end 
    
    DESCRIPTION
    lw_gases_stdtf_end is the destructor for lw_gases_stdtf_mod.


  14. std_lblpressures

    call std_lblpressures 
    
    DESCRIPTION
    calculation of pa -- the "table" of (NSTDCO2LVLS) grid pressures


  15. approx_fn

    call approx_fn (press_hi_app, press_lo_app, do_triangle, & nklo, nkhi, nkplo, nkphi, & ca_app, sexp_app, xa_app, uexp_app, approx)
    DESCRIPTION
    Subroutine to compute co2 approximation function


    INPUT
    press_hi_app    high standard pressure array
       [real]
    press_lo_app    low standard pressure array
       [real]
    do_triangle    state variable of interpolation scheme
       [logical]
    nklo, nkhi    vertical level pairs: the upper and lower level index
       [integer]
    nkplo, nkphi    pressure level pairs: the upper and lower level index
       [integer]
    ca_app, sexp_app, xa_app, uexp_app    The interpolation coefficients
       [real]

    OUTPUT
    approx    co2 approximation function
       [real]

  16. approx_fn_std

    call approx_fn_std (press_hi_app, press_lo_app, do_triangle, & ca_app, sexp_app, xa_app, uexp_app, approx)
    DESCRIPTION
    Subroutine to compute co2 approximation function


    INPUT
    press_hi_app    high standard pressure array
       [real]
    press_lo_app    low standard pressure array
       [real]
    do_triangle    state variable of interpolation scheme
       [logical]
    ca_app, sexp_app, xa_app, uexp_app    The interpolation coefficients
       [real]

    OUTPUT
    approx    co2 approximation function
       [real]

  17. gasins

    call gasins (gas_type, do_lvlcalc, do_lvlctscalc, do_lyrcalc, & nf, ntbnd, ndimkp, ndimk, & dgasdt10_lvl, dgasdt10_lvlcts, dgasdt10_lyr, & gasp10_lvl, gasp10_lvlcts, gasp10_lyr, & d2gast10_lvl, d2gast10_lvlcts, d2gast10_lyr, & dgasdt8_lvl, dgasdt8_lvlcts, dgasdt8_lyr , & gasp8_lvl, gasp8_lvlcts, gasp8_lyr , & d2gast8_lvl, d2gast8_lvlcts, d2gast8_lyr )
    DESCRIPTION
    gasins processes transmission functions to produce "consolidated" functions over the specific frequency band ranges needed by the SEA code, and the derivatives needed by the SEA algorithm.


    INPUT
    gas_type    Gas type information
       [character]
    do_lvlcalc, do_lvlctscalc, do_lyrcalc    State variables that determines calculation paths do_lvlcalc : compute level co2 transmissivities if true. do_lyrcalc : compute layer co2 transmissivities if true. do_lvlctscalc : compute cts level co2 transmissivities if true
       [logical]
    nf    frequency band number
       [integer]
    ntbnd    temperature index of the frequency band
       [integer]
    ndimkp, ndimk    extents of dimensions for output interpolation transmissivity arrays.
       [integer]

    OUTPUT
    dgasdt10_lvl gasp10_lvl d2gast10_lvl dgasdt8_lvl gasp8_lvl d2gast8_lvl    variables used in do_lvlcalc calculation path
       [real]
    dgasdt10_lvlcts gasp10_lvlcts d2gast10_lvlcts dgasdt8_lvlcts gasp8_lvlcts d2gast8_lvlcts    variables used in do_lvlctscalc calculation path
       [real]
    dgasdt10_lyr gasp10_lyr d2gast10_lyr dgasdt8_lyr gasp8_lyr d2gast8_lyr    variables used in do_lyrcalc calculation path
       [real]

  18. gasint

    call gasint (gas_type, co2_vmr, co2_std_lo, co2_std_hi, & callrctrns, do_lvlcalc, do_lvlctscalc, do_lyrcalc, & nf, nt)
    DESCRIPTION
    gasint interpolates carbon dioxide transmission functions from the standard level grid,for which the transmission functions have been pre-calculated, to the grid structure specified by the user.


    INPUT
    gas_type    Gas type information
       [character]
    do_lvlcalc, do_lvlctscalc, do_lyrcalc    State variables that determine calculation paths do_lvlcalc : compute level co2 transmissivities if true. do_lyrcalc : compute layer co2 transmissivities if true. do_lvlctscalc : compute cts level co2 transmissivities if true
       [logical]
    nf    frequency band number
       [integer]
    nt    temperature index of the frequency band
       [integer]
    co2_vmr    co2 volume mixing ratio
       [real]
    co2_std_lo, co2_std_hi    standard co2 high and low volume mixing ratio (ppmv) pair
       [real]
    callrctrns    state variable that determines calculation path
       [logical]

  19. coeint

    call coeint (gas_type, nf, trns_val, ca, sexp, xa, uexp)
    DESCRIPTION
    Subroutine to inverse coefficients from transmission functions using newton method


    INPUT
    gas_type    Gas type information
       [character]
    nf    number of frequency band
       [integer]
    trns_val    transmission function array
       [real]

    OUTPUT
    ca, xa, sexp, uexp    coefficients in the transmission function between two pressure levels
       [real]

  20. intcoef_1d

    call intcoef_1d (press_hi, press_lo, cav, sexpv, xav, uexpv)
    DESCRIPTION
    Subroutine to inverse coefficients from transmission functions using newton method (1 dimensional)


    INPUT
    press_hi, press_lo    high and low pressure pair
       [real]

    OUTPUT
    cav, xav, sexpv, uexpv    coefficients in the transmission function between two pressure levels
       [real]

  21. intcoef_2d

    call intcoef_2d (press_hiv, press_lov, do_triangle, & nklo, nkhi, nkplo, nkphi, & indx_hiv, indx_lov, & caintv, sexpintv, xaintv, uexpintv)
    DESCRIPTION
    Subroutine to inverse coefficients from transmission functions using newton method (2 dimensional)


    INPUT
    press_hiv, press_lov    high and low pressure pair
       [real]
    do_triangle    State variable of triangle interpolation scheme
       [logical]
    nklo, nkhi, nkplo, nkphi    the high and low level and pressure pairs
       [integer]
    indx_hiv, indx_lov    the high and low index pair
       [integer]

    OUTPUT
    caintv, xaintv, sexpintv, uexpintv    coefficients in the transmission function between two pressure levels
       [real]

  22. intcoef_2d_std

    call intcoef_2d_std 
    
    DESCRIPTION
    Subroutine to inverse coefficients from transmission functions using newton method (2 dimensional)


    INPUT
    press_hiv, press_lov    high and low pressure pair
       [real]
    nf    number of frequency bands
       [integer]
    nt    number of temperature values
       [integer]
    do_triangle    State variable of triangle interpolation scheme
       [logical]
    nklo, nkhi, nkplo, nkphi    the high and low level and pressure pairs
       [integer]
    indx_hiv, indx_lov    the high and low index pair
       [integer]

    OUTPUT
    caintv, xaintv, sexpintv, uexpintv    coefficients in the transmission function between two pressure levels
       [real]

  23. interp_error

    call interp_error (error, pressint_hiv, pressint_lov, & indx_press_hiv, indx_press_lov, & do_triangle, nklo, nkhi, nkplo, nkphi, & errorint)
    DESCRIPTION
    Subroutine to examine error associated with interpolation onto pressure grids.


    INPUT
    error    interpolation error at standard pa grid. evaluated on a (NSTDCO2LVLS,NSTDCO2LVLS) grid when kp ge k).
       [real]
    pressint_hiv, pressint_lov    pressint_hiv = pressure of high(kp) interpolated pressure pressint_lov = pressure of low (kp) interpolated pressure
       [real]
    indx_press_hiv, indx_press_lov    indx_press_hiv = pressure on std pa grid of high (kp) pressure indx_press_lov = pressure on std pa grid of low (kp) pressure
       [real]
    do_triangle    state variable that determines the interpolation scheme
       [logical]
    nkl, nkhi, nkplo, nkphi    The index of level and pressure high/low pair
       [integer]

    OUTPUT
    errorint    error at interpolated grid
       [real]

  24. interp_error_r

    call interp_error_r (error, pressint_hiv, pressint_lov, & indx_press_hiv, indx_press_lov, & do_triangle, errorint)
    DESCRIPTION
    Subroutine to examine error associated with interpolation onto pressure grids.


    INPUT
    error    interpolation error at standard pa grid. evaluated on a (NSTDCO2LVLS,NSTDCO2LVLS) grid when kp ge k).
       [real]
    pressint_hiv, pressint_lov    pressint_hiv = pressure of high(kp) interpolated pressure pressint_lov = pressure of low (kp) interpolated pressure
       [real]
    indx_press_hiv, indx_press_lov    indx_press_hiv = pressure on std pa grid of high (kp) pressure indx_press_lov = pressure on std pa grid of low (kp) pressure
       [real]
    do_triangle    state variable that determines the interpolation scheme
       [logical]

    OUTPUT
    errorint    error at interpolated grid
       [real]

  25. pathv1

    call pathv1 (press_hi, press_lo, ndimlo, ndimhi, upath)
    DESCRIPTION
    Subroutine to compute the path function for the co2 interpolation pgm. between a pressure (press_lo) and a variable pressure (press_hi)


    INPUT
    press_hi, press_lo    The reference pressure levels
       [real]
    ndimlo, ndimhi    the index of pressure level bound
       [integer]

    OUTPUT
    upath    The path function for the co2 interpolation pgm.
       [real]

  26. rctrns

    call rctrns (gas_type, co2_std_lo, co2_std_hi, co2_vmr, & nf, nt, trns_vmr)
    DESCRIPTION
    Subroutine to compute co2 transmission functions for actual co2 concentration


  27. read_lbltfs

    call read_lbltfs (gas_type, callrctrns, nstd_lo, nstd_hi, nf, & ntbnd, trns_std_hi_nf, trns_std_lo_nf )
    DESCRIPTION
    Subroutine to read gas transmission functions from input file


  28. allocate_interp_arrays

    call allocate_interp_arrays 
    
    DESCRIPTION
    Subroutine to allocate interpolation arrays



DATA SETS

None.


ERROR MESSAGES

None.


top