UFO
ufo_crtm_utils_mod Module Reference

Fortran module to provide code shared between nonlinear and tlm/adm radiance calculations. More...

Data Types

interface  calculate_aero_layer_factor
 
type  crtm_conf
 
interface  qsmith
 

Functions/Subroutines

subroutine, public crtm_conf_setup (conf, f_confOpts, f_confOper)
 
subroutine, public crtm_conf_delete (conf)
 
subroutine, public crtm_comm_stat_check (stat, PROGRAM_NAME, message, f_comm)
 
subroutine, public ufo_crtm_skip_profiles (n_Profiles, n_Channels, channels, obss, Skip_Profiles)
 
subroutine, public load_atm_data (n_Profiles, n_Layers, geovals, atm, conf)
 
subroutine, public load_sfc_data (n_Profiles, n_Channels, channels, geovals, sfc, chinfo, obss, conf)
 
subroutine, public load_geom_data (obss, geo)
 
subroutine, public get_var_name (n, varname)
 
subroutine, public load_aerosol_data (n_profiles, n_layers, geovals, aerosol_option, atm)
 
subroutine, public assign_aerosol_names (aerosol_option, var_aerosols)
 
subroutine calculate_aero_layer_factor_atm_profile (atm, ugkg_kgm2)
 
subroutine calculate_aero_layer_factor_atm (atm, ugkg_kgm2)
 
real(kind_real) function gocart_aerosol_size (itype, rh)
 
character(len(str)) function, public upper2lower (str)
 
integer function getindex (names, usrname)
 
subroutine qsmith_atm (atm, rh)
 
subroutine qsmith_profiles (t, sphum, p, rh)
 
subroutine qsmith_init (table, des)
 
subroutine qs_table (n, table)
 

Variables

real(kind_real), parameter rdgas = 2.8704e+2_kind_real
 
real(kind_real), parameter rvgas = 4.6150e+2_kind_real
 
real(kind_real), parameter, public rv_rd = rvgas/rdgas
 
real(kind_real), parameter esl = 0.621971831
 
real(kind_real), parameter zvir = rv_rd - 1_kind_real
 
real(kind_real), parameter tice = 273.16_kind_real
 
real(kind_real), parameter, public grav = 9.81_kind_real
 
real(kind_real), parameter, public aerosol_concentration_minvalue =1.e-16_kind_real
 
real(kind_real), parameter, public aerosol_concentration_minvalue_layer =tiny(rdgas)
 
real(kind_real), parameter ozone_default_value =1.e-3_kind_real
 
integer, parameter, public max_string =800
 
character(len=maxvarlen), dimension(3), parameter ufo_absorbers = [ var_mixr, var_co2, var_oz ]
 
character(len= *), dimension(n_valid_absorber_ids), parameter crtm_absorbers = ABSORBER_ID_NAME(1:N_VALID_ABSORBER_IDS)
 
integer, dimension(n_valid_absorber_ids), parameter crtm_absorber_id = [ H2O_ID, CO2_ID, O3_ID, N2O_ID, CO_ID, CH4_ID, O2_ID, NO_ID, SO2_ID, NO2_ID, NH3_ID, HNO3_ID, OH_ID, HF_ID, HCl_ID, HBr_ID, HI_ID, ClO_ID, OCS_ID, H2CO_ID, HOCl_ID, N2_ID, HCN_ID, CH3l_ID, H2O2_ID, C2H2_ID, C2H6_ID, PH3_ID, COF2_ID, SF6_ID, H2S_ID,HCOOH_ID ]
 
integer, dimension(3), parameter crtm_absorber_units = [ MASS_MIXING_RATIO_UNITS , VOLUME_MIXING_RATIO_UNITS , VOLUME_MIXING_RATIO_UNITS ]
 
character(len=maxvarlen), dimension(n_valid_cloud_categories, 2), parameter ufo_clouds = reshape( [ var_clw, var_cli, var_clr, var_cls, var_clg, var_clh, var_clwefr, var_cliefr, var_clrefr, var_clsefr, var_clgefr, var_clhefr ], [N_VALID_CLOUD_CATEGORIES,2] )
 
character(len= *), dimension(n_valid_cloud_categories), parameter crtm_clouds = CLOUD_CATEGORY_NAME(1:N_VALID_CLOUD_CATEGORIES)
 
integer, dimension(n_valid_cloud_categories), parameter crtm_cloud_id = [ WATER_CLOUD, ICE_CLOUD, RAIN_CLOUD, SNOW_CLOUD, GRAUPEL_CLOUD, HAIL_CLOUD ]
 
character(len=maxvarlen), dimension(4), parameter ufo_surfaces = [ var_sfc_wtmp, var_sfc_wspeed,var_sfc_wdir, var_sfc_sss]
 
character(len=maxvarlen), dimension(4), parameter crtm_surfaces = [ character(len=MAXVARLEN):: 'Water_Temperature', 'Wind_Speed', 'Wind_Direction', 'Salinity' ]
 

Detailed Description

Fortran module to provide code shared between nonlinear and tlm/adm radiance calculations.

Function/Subroutine Documentation

◆ assign_aerosol_names()

subroutine, public ufo_crtm_utils_mod::assign_aerosol_names ( character(*), intent(in)  aerosol_option,
character(len=maxvarlen), dimension(:), intent(out), allocatable  var_aerosols 
)

Definition at line 1007 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ calculate_aero_layer_factor_atm()

subroutine ufo_crtm_utils_mod::calculate_aero_layer_factor_atm ( type(crtm_atmosphere_type), dimension(:), intent(in)  atm,
real(kind_real), dimension(:,:), intent(out)  ugkg_kgm2 
)
private

Definition at line 1050 of file ufo_crtm_utils_mod.F90.

◆ calculate_aero_layer_factor_atm_profile()

subroutine ufo_crtm_utils_mod::calculate_aero_layer_factor_atm_profile ( type(crtm_atmosphere_type), intent(in)  atm,
real(kind_real), dimension(:), intent(out)  ugkg_kgm2 
)
private

Definition at line 1030 of file ufo_crtm_utils_mod.F90.

◆ crtm_comm_stat_check()

subroutine, public ufo_crtm_utils_mod::crtm_comm_stat_check ( integer, intent(in)  stat,
character(*), intent(in)  PROGRAM_NAME,
character(*), intent(in)  message,
type(fckit_mpi_comm), intent(in)  f_comm 
)

Definition at line 427 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ crtm_conf_delete()

subroutine, public ufo_crtm_utils_mod::crtm_conf_delete ( type(crtm_conf), intent(inout)  conf)

Definition at line 410 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ crtm_conf_setup()

subroutine, public ufo_crtm_utils_mod::crtm_conf_setup ( type(crtm_conf), intent(inout)  conf,
type(fckit_configuration), intent(in)  f_confOpts,
type(fckit_configuration), intent(in)  f_confOper 
)

Definition at line 160 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_var_name()

subroutine, public ufo_crtm_utils_mod::get_var_name ( integer, intent(in)  n,
character(len=*), intent(out)  varname 
)

Definition at line 819 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ getindex()

integer function ufo_crtm_utils_mod::getindex ( character(len=*), dimension(:), intent(in)  names,
character(len=*), intent(in)  usrname 
)
private

Definition at line 1135 of file ufo_crtm_utils_mod.F90.

◆ gocart_aerosol_size()

real(kind_real) function ufo_crtm_utils_mod::gocart_aerosol_size ( integer, intent(in)  itype,
real(kind_real), intent(in)  rh 
)
private

Definition at line 1072 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ load_aerosol_data()

subroutine, public ufo_crtm_utils_mod::load_aerosol_data ( integer, intent(in)  n_profiles,
integer, intent(in)  n_layers,
type(ufo_geovals), intent(in)  geovals,
character(*)  aerosol_option,
type(crtm_atmosphere_type), dimension(:), intent(inout)  atm 
)

Definition at line 834 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_atm_data()

subroutine, public ufo_crtm_utils_mod::load_atm_data ( integer, intent(in)  n_Profiles,
integer, intent(in)  n_Layers,
type(ufo_geovals), intent(in)  geovals,
type(crtm_atmosphere_type), dimension(:), intent(inout)  atm,
type(crtm_conf conf 
)

Definition at line 496 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_geom_data()

subroutine, public ufo_crtm_utils_mod::load_geom_data ( type(c_ptr), intent(in), value  obss,
type(crtm_geometry_type), dimension(:), intent(inout)  geo 
)

Definition at line 769 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ load_sfc_data()

subroutine, public ufo_crtm_utils_mod::load_sfc_data ( integer, intent(in)  n_Profiles,
integer, intent(in)  n_Channels,
integer(c_int), dimension(:), intent(in)  channels,
type(ufo_geovals), intent(in)  geovals,
type(crtm_surface_type), dimension(:), intent(inout)  sfc,
type(crtm_channelinfo_type), dimension(:), intent(in)  chinfo,
type(c_ptr), intent(in), value  obss,
type(crtm_conf), intent(in)  conf 
)

Definition at line 588 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qs_table()

subroutine ufo_crtm_utils_mod::qs_table ( integer, intent(in)  n,
real, dimension (n)  table 
)
private

Definition at line 1241 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ qsmith_atm()

subroutine ufo_crtm_utils_mod::qsmith_atm ( type(crtm_atmosphere_type), dimension(:), intent(in)  atm,
real(kind_real), dimension(:,:), intent(out)  rh 
)
private

Definition at line 1151 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:

◆ qsmith_init()

subroutine ufo_crtm_utils_mod::qsmith_init ( real, dimension(:), intent(out), allocatable  table,
real, dimension(:), intent(out), allocatable  des 
)
private

Definition at line 1219 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qsmith_profiles()

subroutine ufo_crtm_utils_mod::qsmith_profiles ( real(kind_real), dimension(:,:), intent(in)  t,
real(kind_real), dimension(:,:), intent(in)  sphum,
real(kind_real), dimension(:,:), intent(in)  p,
real(kind_real), dimension(:,:), intent(out)  rh 
)
private

Definition at line 1185 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:

◆ ufo_crtm_skip_profiles()

subroutine, public ufo_crtm_utils_mod::ufo_crtm_skip_profiles ( integer, intent(in)  n_Profiles,
integer, intent(in)  n_Channels,
integer(c_int), dimension(:), intent(in)  channels,
type(c_ptr), intent(in), value  obss,
logical, dimension(:), intent(inout)  Skip_Profiles 
)

Definition at line 449 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ upper2lower()

character(len(str)) function, public ufo_crtm_utils_mod::upper2lower ( character(*), intent(in)  str)

Definition at line 1114 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

Variable Documentation

◆ aerosol_concentration_minvalue

real(kind_real), parameter, public ufo_crtm_utils_mod::aerosol_concentration_minvalue =1.e-16_kind_real

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ aerosol_concentration_minvalue_layer

real(kind_real), parameter, public ufo_crtm_utils_mod::aerosol_concentration_minvalue_layer =tiny(rdgas)

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ crtm_absorber_id

integer, dimension(n_valid_absorber_ids), parameter ufo_crtm_utils_mod::crtm_absorber_id = [ H2O_ID, CO2_ID, O3_ID, N2O_ID, CO_ID, CH4_ID, O2_ID, NO_ID, SO2_ID, NO2_ID, NH3_ID, HNO3_ID, OH_ID, HF_ID, HCl_ID, HBr_ID, HI_ID, ClO_ID, OCS_ID, H2CO_ID, HOCl_ID, N2_ID, HCN_ID, CH3l_ID, H2O2_ID, C2H2_ID, C2H6_ID, PH3_ID, COF2_ID, SF6_ID, H2S_ID,HCOOH_ID ]
private

Definition at line 109 of file ufo_crtm_utils_mod.F90.

◆ crtm_absorber_units

integer, dimension(3), parameter ufo_crtm_utils_mod::crtm_absorber_units = [ MASS_MIXING_RATIO_UNITS , VOLUME_MIXING_RATIO_UNITS , VOLUME_MIXING_RATIO_UNITS ]
private

Definition at line 119 of file ufo_crtm_utils_mod.F90.

◆ crtm_absorbers

character(len=*), dimension(n_valid_absorber_ids), parameter ufo_crtm_utils_mod::crtm_absorbers = ABSORBER_ID_NAME(1:N_VALID_ABSORBER_IDS)
private

Definition at line 106 of file ufo_crtm_utils_mod.F90.

◆ crtm_cloud_id

integer, dimension(n_valid_cloud_categories), parameter ufo_crtm_utils_mod::crtm_cloud_id = [ WATER_CLOUD, ICE_CLOUD, RAIN_CLOUD, SNOW_CLOUD, GRAUPEL_CLOUD, HAIL_CLOUD ]
private

Definition at line 137 of file ufo_crtm_utils_mod.F90.

◆ crtm_clouds

character(len=*), dimension(n_valid_cloud_categories), parameter ufo_crtm_utils_mod::crtm_clouds = CLOUD_CATEGORY_NAME(1:N_VALID_CLOUD_CATEGORIES)
private

Definition at line 134 of file ufo_crtm_utils_mod.F90.

◆ crtm_surfaces

character(len=maxvarlen), dimension(4), parameter ufo_crtm_utils_mod::crtm_surfaces = [ character(len=MAXVARLEN):: 'Water_Temperature', 'Wind_Speed', 'Wind_Direction', 'Salinity' ]
private

Definition at line 152 of file ufo_crtm_utils_mod.F90.

◆ esl

real(kind_real), parameter ufo_crtm_utils_mod::esl = 0.621971831
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ grav

real(kind_real), parameter, public ufo_crtm_utils_mod::grav = 9.81_kind_real

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ max_string

integer, parameter, public ufo_crtm_utils_mod::max_string =800

Definition at line 54 of file ufo_crtm_utils_mod.F90.

◆ ozone_default_value

real(kind_real), parameter ufo_crtm_utils_mod::ozone_default_value =1.e-3_kind_real
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ rdgas

real(kind_real), parameter ufo_crtm_utils_mod::rdgas = 2.8704e+2_kind_real
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ rv_rd

real(kind_real), parameter, public ufo_crtm_utils_mod::rv_rd = rvgas/rdgas

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ rvgas

real(kind_real), parameter ufo_crtm_utils_mod::rvgas = 4.6150e+2_kind_real
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ tice

real(kind_real), parameter ufo_crtm_utils_mod::tice = 273.16_kind_real
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.

◆ ufo_absorbers

character(len=maxvarlen), dimension(3), parameter ufo_crtm_utils_mod::ufo_absorbers = [ var_mixr, var_co2, var_oz ]
private

Definition at line 101 of file ufo_crtm_utils_mod.F90.

◆ ufo_clouds

character(len=maxvarlen), dimension(n_valid_cloud_categories,2), parameter ufo_crtm_utils_mod::ufo_clouds = reshape( [ var_clw, var_cli, var_clr, var_cls, var_clg, var_clh, var_clwefr, var_cliefr, var_clrefr, var_clsefr, var_clgefr, var_clhefr ], [N_VALID_CLOUD_CATEGORIES,2] )
private

Definition at line 126 of file ufo_crtm_utils_mod.F90.

◆ ufo_surfaces

character(len=maxvarlen), dimension(4), parameter ufo_crtm_utils_mod::ufo_surfaces = [ var_sfc_wtmp, var_sfc_wspeed,var_sfc_wdir, var_sfc_sss]
private

Definition at line 148 of file ufo_crtm_utils_mod.F90.

◆ zvir

real(kind_real), parameter ufo_crtm_utils_mod::zvir = rv_rd - 1_kind_real
private

Definition at line 42 of file ufo_crtm_utils_mod.F90.