mo_gas_optics_rrtmgp_kernels Module


Uses

    • mo_rte_util_array
    • mo_rte_kind
  • module~~mo_gas_optics_rrtmgp_kernels~2~~UsesGraph module~mo_gas_optics_rrtmgp_kernels~2 mo_gas_optics_rrtmgp_kernels mo_rte_util_array mo_rte_util_array module~mo_gas_optics_rrtmgp_kernels~2->mo_rte_util_array mo_rte_kind mo_rte_kind module~mo_gas_optics_rrtmgp_kernels~2->mo_rte_kind

Contents


Interfaces

interface

  • public subroutine compute_Planck_source(ncol, nlay, nbnd, ngpt, nflav, neta, npres, ntemp, nPlanckTemp, tlay, tlev, tsfc, sfc_lay, fmajor, jeta, tropo, jtemp, jpress, gpoint_bands, band_lims_gpt, pfracin, temp_ref_min, totplnk_delta, totplnk, gpoint_flavor, sfc_src, lay_src, lev_src, sfc_source_Jac) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol

    input dimensions

    integer, intent(in) :: nlay

    input dimensions

    integer, intent(in) :: nbnd

    input dimensions

    integer, intent(in) :: ngpt

    input dimensions

    integer, intent(in) :: nflav

    table dimensions

    integer, intent(in) :: neta

    table dimensions

    integer, intent(in) :: npres

    table dimensions

    integer, intent(in) :: ntemp

    table dimensions

    integer, intent(in) :: nPlanckTemp

    table dimensions

    real(kind=wp), intent(in), dimension(ncol,nlay ):: tlay

    temperature at layer centers (K)

    real(kind=wp), intent(in), dimension(ncol,nlay+1):: tlev

    temperature at interfaces (K)

    real(kind=wp), intent(in), dimension(ncol ):: tsfc

    surface temperture

    integer, intent(in) :: sfc_lay

    index into surface layer

    real(kind=wp), intent(in), dimension(2,2,2,ncol,nlay,nflav):: fmajor

    interpolation weights for major gases - computed in interpolation()

    integer, intent(in), dimension(2, ncol,nlay,nflav):: jeta

    interpolation indexes in eta - computed in interpolation()

    logical(kind=wl), intent(in), dimension( ncol,nlay):: tropo

    use upper- or lower-atmospheric tables?

    integer, intent(in), dimension( ncol,nlay):: jtemp

    interpolation indexes in temperature and pressure - computed in interpolation()

    integer, intent(in), dimension( ncol,nlay):: jpress

    interpolation indexes in temperature and pressure - computed in interpolation()

    integer, intent(in), dimension(ngpt):: gpoint_bands

    band to which each g-point belongs

    integer, intent(in), dimension(2, nbnd):: band_lims_gpt

    start and end g-point for each band

    real(kind=wp), intent(in), dimension(ntemp,neta,npres+1,ngpt):: pfracin

    Fraction of the Planck function in each g-point

    real(kind=wp), intent(in) :: temp_ref_min

    interpolation constants

    real(kind=wp), intent(in) :: totplnk_delta

    interpolation constants

    real(kind=wp), intent(in), dimension(nPlanckTemp,nbnd):: totplnk

    Total Planck function by band at each temperature

    integer, intent(in), dimension(2,ngpt):: gpoint_flavor

    major gas flavor (pair) by upper/lower, g-point

    real(kind=wp), intent(out), dimension(ncol, ngpt):: sfc_src

    Planck emssion from the surface

    real(kind=wp), intent(out), dimension(ncol,nlay, ngpt):: lay_src

    Planck emssion from layer centers

    real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt):: lev_src

    Planck emission at layer boundaries

    real(kind=wp), intent(out), dimension(ncol, ngpt):: sfc_source_Jac

    Jacobian (derivative) of the surface Planck source with respect to surface temperature

interface

  • public subroutine compute_tau_absorption(ncol, nlay, nbnd, ngpt, ngas, nflav, neta, npres, ntemp, nminorlower, nminorklower, nminorupper, nminorkupper, idx_h2o, gpoint_flavor, band_lims_gpt, kmajor, kminor_lower, kminor_upper, minor_limits_gpt_lower, minor_limits_gpt_upper, minor_scales_with_density_lower, minor_scales_with_density_upper, scale_by_complement_lower, scale_by_complement_upper, idx_minor_lower, idx_minor_upper, idx_minor_scaling_lower, idx_minor_scaling_upper, kminor_start_lower, kminor_start_upper, tropo, col_mix, fmajor, fminor, play, tlay, col_gas, jeta, jtemp, jpress, tau) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol

    array sizes

    integer, intent(in) :: nlay

    array sizes

    integer, intent(in) :: nbnd

    array sizes

    integer, intent(in) :: ngpt

    array sizes

    integer, intent(in) :: ngas

    tables sizes

    integer, intent(in) :: nflav

    tables sizes

    integer, intent(in) :: neta

    tables sizes

    integer, intent(in) :: npres

    tables sizes

    integer, intent(in) :: ntemp

    tables sizes

    integer, intent(in) :: nminorlower

    table sizes

    integer, intent(in) :: nminorklower

    table sizes

    integer, intent(in) :: nminorupper

    table sizes

    integer, intent(in) :: nminorkupper

    table sizes

    integer, intent(in) :: idx_h2o

    index of water vapor in col_gas

    integer, intent(in), dimension(2,ngpt):: gpoint_flavor

    major gas flavor (pair) by upper/lower, g-point

    integer, intent(in), dimension(2,nbnd):: band_lims_gpt

    beginning and ending g-point for each band

    real(kind=wp), intent(in), dimension(ntemp,neta,npres+1,ngpt):: kmajor

    absorption coefficient table - major gases

    real(kind=wp), intent(in), dimension(ntemp,neta,nminorklower):: kminor_lower

    absorption coefficient table - minor gases, lower atmosphere

    real(kind=wp), intent(in), dimension(ntemp,neta,nminorkupper):: kminor_upper

    absorption coefficient table - minor gases, upper atmosphere

    integer, intent(in), dimension(2,nminorlower):: minor_limits_gpt_lower

    beginning and ending g-point for each minor gas

    integer, intent(in), dimension(2,nminorupper):: minor_limits_gpt_upper
    logical(kind=wl), intent(in), dimension( nminorlower):: minor_scales_with_density_lower

    generic treatment of minor gases - scales with density (e.g. continuum, collision-induced absorption)?

    logical(kind=wl), intent(in), dimension( nminorupper):: minor_scales_with_density_upper
    logical(kind=wl), intent(in), dimension( nminorlower):: scale_by_complement_lower

    generic treatment of minor gases - scale by density (e.g. self-continuum) or complement?

    logical(kind=wl), intent(in), dimension( nminorupper):: scale_by_complement_upper
    integer, intent(in), dimension( nminorlower):: idx_minor_lower

    index of each minor gas in col_gas

    integer, intent(in), dimension( nminorupper):: idx_minor_upper
    integer, intent(in), dimension( nminorlower):: idx_minor_scaling_lower

    for this minor gas, index of the "scaling gas" in col_gas

    integer, intent(in), dimension( nminorupper):: idx_minor_scaling_upper
    integer, intent(in), dimension( nminorlower):: kminor_start_lower

    starting g-point index in minor gas absorption table

    integer, intent(in), dimension( nminorupper):: kminor_start_upper
    logical(kind=wl), intent(in), dimension(ncol,nlay):: tropo

    use upper- or lower-atmospheric tables?

    real(kind=wp), intent(in), dimension(2, ncol,nlay,nflav ):: col_mix

    combination of major species's column amounts - computed in interpolation()

    real(kind=wp), intent(in), dimension(2,2,2,ncol,nlay,nflav ):: fmajor

    interpolation weights for major gases - computed in interpolation()

    real(kind=wp), intent(in), dimension(2,2, ncol,nlay,nflav ):: fminor

    interpolation weights for minor gases - computed in interpolation()

    real(kind=wp), intent(in), dimension( ncol,nlay ):: play

    input temperature and pressure

    real(kind=wp), intent(in), dimension( ncol,nlay ):: tlay

    input temperature and pressure

    real(kind=wp), intent(in), dimension( ncol,nlay,0:ngas):: col_gas

    input column gas amount (molecules/cm^2)

    integer, intent(in), dimension(2, ncol,nlay,nflav ):: jeta

    interpolation indexes in eta - computed in interpolation()

    integer, intent(in), dimension( ncol,nlay ):: jtemp

    interpolation indexes in temperature - computed in interpolation()

    integer, intent(in), dimension( ncol,nlay ):: jpress

    interpolation indexes in pressure - computed in interpolation()

    real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau

    aborption optional depth

interface

  • public subroutine compute_tau_rayleigh(ncol, nlay, nbnd, ngpt, ngas, nflav, neta, npres, ntemp, gpoint_flavor, band_lims_gpt, krayl, idx_h2o, col_dry, col_gas, fminor, jeta, tropo, jtemp, tau_rayleigh) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol

    input dimensions

    integer, intent(in) :: nlay

    input dimensions

    integer, intent(in) :: nbnd

    input dimensions

    integer, intent(in) :: ngpt

    input dimensions

    integer, intent(in) :: ngas

    table dimensions

    integer, intent(in) :: nflav

    table dimensions

    integer, intent(in) :: neta

    table dimensions

    integer, intent(in) :: npres

    table dimensions

    integer, intent(in) :: ntemp

    table dimensions

    integer, intent(in), dimension(2,ngpt):: gpoint_flavor

    major gas flavor (pair) by upper/lower, g-point

    integer, intent(in), dimension(2,nbnd):: band_lims_gpt

    start and end g-point for each band

    real(kind=wp), intent(in), dimension(ntemp,neta,ngpt,2):: krayl

    Rayleigh scattering coefficients

    integer, intent(in) :: idx_h2o

    index of water vapor in col_gas

    real(kind=wp), intent(in), dimension(ncol,nlay):: col_dry

    column amount of dry air

    real(kind=wp), intent(in), dimension(ncol,nlay,0:ngas):: col_gas

    input column gas amount (molecules/cm^2)

    real(kind=wp), intent(in), dimension(2,2,ncol,nlay,nflav):: fminor

    interpolation weights for major gases - computed in interpolation()

    integer, intent(in), dimension(2, ncol,nlay,nflav):: jeta

    interpolation indexes in eta - computed in interpolation()

    logical(kind=wl), intent(in), dimension(ncol,nlay):: tropo

    use upper- or lower-atmospheric tables?

    integer, intent(in), dimension(ncol,nlay):: jtemp

    interpolation indexes in temperature - computed in interpolation()

    real(kind=wp), intent(out), dimension(ncol,nlay,ngpt):: tau_rayleigh

    Rayleigh optical depth

interface

  • public subroutine interpolation(ncol, nlay, ngas, nflav, neta, npres, ntemp, flavor, press_ref_log, temp_ref, press_ref_log_delta, temp_ref_min, temp_ref_delta, press_ref_trop_log, vmr_ref, play, tlay, col_gas, jtemp, fmajor, fminor, col_mix, tropo, jeta, jpress) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol

    physical domain size

    integer, intent(in) :: nlay

    physical domain size

    integer, intent(in) :: ngas

    k-distribution table dimensions

    integer, intent(in) :: nflav

    k-distribution table dimensions

    integer, intent(in) :: neta

    k-distribution table dimensions

    integer, intent(in) :: npres

    k-distribution table dimensions

    integer, intent(in) :: ntemp

    k-distribution table dimensions

    integer, intent(in), dimension(2,nflav):: flavor

    index into vmr_ref of major gases for each flavor

    real(kind=wp), intent(in), dimension(npres):: press_ref_log

    log of pressure dimension in RRTMGP tables

    real(kind=wp), intent(in), dimension(ntemp):: temp_ref

    temperature dimension in RRTMGP tables

    real(kind=wp), intent(in) :: press_ref_log_delta

    constants related to RRTMGP tables

    real(kind=wp), intent(in) :: temp_ref_min

    constants related to RRTMGP tables

    real(kind=wp), intent(in) :: temp_ref_delta

    constants related to RRTMGP tables

    real(kind=wp), intent(in) :: press_ref_trop_log

    constants related to RRTMGP tables

    real(kind=wp), intent(in), dimension(2,0:ngas,ntemp):: vmr_ref

    reference volume mixing ratios used in compute "binary species parameter" eta

    real(kind=wp), intent(in), dimension(ncol,nlay):: play

    input pressure (Pa?) and temperature (K)

    real(kind=wp), intent(in), dimension(ncol,nlay):: tlay

    input pressure (Pa?) and temperature (K)

    real(kind=wp), intent(in), dimension(ncol,nlay,0:ngas):: col_gas

    input column gas amount - molecules/cm^2

    integer, intent(out), dimension(ncol,nlay):: jtemp

    temperature and pressure interpolation indexes

    real(kind=wp), intent(out), dimension(2,2,2,ncol,nlay,nflav):: fmajor

    Interpolation weights in pressure, eta, strat/trop

    real(kind=wp), intent(out), dimension(2,2, ncol,nlay,nflav):: fminor

    Interpolation fraction in eta, strat/trop

    real(kind=wp), intent(out), dimension(2, ncol,nlay,nflav):: col_mix

    combination of major species's column amounts (first index is strat/trop)

    logical(kind=wl), intent(out), dimension(ncol,nlay):: tropo

    use lower (or upper) atmosphere tables

    integer, intent(out), dimension(2, ncol,nlay,nflav):: jeta

    Index for binary species interpolation

    integer, intent(out), dimension(ncol,nlay):: jpress

    temperature and pressure interpolation indexes