UFO
ufo_crtm_utils_mod Module Reference

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

Data Types

type  crtm_conf
 
interface  calculate_aero_layer_factor
 
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, geo_hf)
 
subroutine, public get_var_name (n, varname)
 
real(kind=kind_real) function uv_to_wdir (u, v)
 Determines the wind direction from U and V components. More...
 
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, layer_factors)
 
subroutine calculate_aero_layer_factor_atm (atm, layer_factors)
 
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=maxvarlen), 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=maxvarlen), 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' ]
 
character(len=maxvarlen), dimension(2), parameter validsurfacewindgeovars = [character(len=MAXVARLEN) :: 'vector', 'uv']
 

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 1136 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)  layer_factors 
)
private

Definition at line 1177 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)  layer_factors 
)
private

Definition at line 1159 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 444 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 427 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 165 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 903 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 1260 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:

◆ 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 1197 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 963 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 513 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,
type(crtm_geometry_type), dimension(:), intent(inout), optional  geo_hf 
)

Definition at line 823 of file ufo_crtm_utils_mod.F90.

Here is the call graph for this function:
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 611 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 1366 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 1276 of file ufo_crtm_utils_mod.F90.

◆ 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 1344 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 1310 of file ufo_crtm_utils_mod.F90.

◆ 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 466 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 1239 of file ufo_crtm_utils_mod.F90.

Here is the caller graph for this function:

◆ uv_to_wdir()

real (kind=kind_real) function ufo_crtm_utils_mod::uv_to_wdir ( real (kind=kind_real), intent(in)  u,
real (kind=kind_real), intent(in)  v 
)
private

Determines the wind direction from U and V components.

uv_to_wdir Calculates the wind direction, as measured clockwise from north, similar to an azimuth angle. Takes the eastward and northward wind component magnitudes, respectively, as arguments. Due to the azimuthal convention used here, the inverse equations are: u = w * cos(wdir * deg2rad) v = w * sin(wdir * deg2rad) where w is the wind speed

Parameters
[in]ueastward_wind
[in]vnorthward_wind

Definition at line 926 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 43 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 43 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 111 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 121 of file ufo_crtm_utils_mod.F90.

◆ crtm_absorbers

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

Definition at line 108 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 139 of file ufo_crtm_utils_mod.F90.

◆ crtm_clouds

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

Definition at line 136 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 154 of file ufo_crtm_utils_mod.F90.

◆ esl

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

Definition at line 43 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 43 of file ufo_crtm_utils_mod.F90.

◆ max_string

integer, parameter, public ufo_crtm_utils_mod::max_string =800

Definition at line 55 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 43 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 43 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 43 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 43 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 43 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 103 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 128 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 150 of file ufo_crtm_utils_mod.F90.

◆ validsurfacewindgeovars

character(len=maxvarlen), dimension(2), parameter ufo_crtm_utils_mod::validsurfacewindgeovars = [character(len=MAXVARLEN) :: 'vector', 'uv']
private

Definition at line 158 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 43 of file ufo_crtm_utils_mod.F90.