UFO
ufo_radiancerttov_utils_mod Module Reference

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

Data Types

type  ufo_rttov_io
 
type  rttov_conf
 

Functions/Subroutines

subroutine, public rttov_conf_setup (conf, f_confOpts, f_confOper)
 
subroutine, public rttov_conf_delete (conf)
 
subroutine set_options_rttov (self, f_confOpts)
 
subroutine setup_rttov (self, f_confOpts)
 
subroutine get_var_name (n, varname)
 
subroutine ufo_rttov_setup_rtprof (self, geovals, obss, conf, ob_info)
 
subroutine ufo_rttov_check_rtprof (self, conf, iprof, i_inst, errorstatus)
 
subroutine ufo_rttov_print_rtprof (self, conf, iprof, i_inst)
 
subroutine ufo_rttov_alloc_direct (self, errorstatus, conf, nprofiles, nchannels, nlevels, init, asw)
 
subroutine ufo_rttov_alloc_k (self, errorstatus, conf, nprofiles, nchannels, nlevels, init, asw)
 
subroutine ufo_rttov_alloc_profiles (self, errorstatus, conf, nprofiles, nlevels, init, asw)
 
subroutine ufo_rttov_alloc_profiles_k (self, errorstatus, conf, nprofiles, nlevels, init, asw)
 
subroutine ufo_rttov_zero_k (self)
 
subroutine ufo_rttov_init_emissivity (self, conf, prof_start)
 
subroutine set_defaults_rttov (self, default_opts_set)
 
subroutine, public populate_hofxdiags (RTProf, chanprof, conf, prof_start, hofxdiags)
 
subroutine, public parse_hofxdiags (hofxdiags, jacobian_needed)
 

Variables

integer, parameter, public max_string =800
 
integer, parameter, public maxvarin = 50
 
character(len=maxvarlen), dimension(maxvarin), public varin_temp
 
character(len=max_string), public message
 
integer, public nvars_in
 
integer, public rttov_errorstatus
 
character(len=maxvarlen), dimension(:), allocatable ystr_diags
 
character(len=maxvarlen), dimension(:), allocatable xstr_diags
 
integer, dimension(:), allocatable ch_diags
 
real(c_double) missing
 
character(len=maxvarlen), dimension(21), target varin_default_crtm = (/var_ts, var_prs, var_prsi, var_sfc_wfrac, var_sfc_lfrac, var_sfc_ifrac, var_sfc_sfrac, var_sfc_wtmp, var_sfc_ltmp, var_sfc_itmp, var_sfc_stmp, var_sfc_vegfrac, var_sfc_wspeed, var_sfc_wdir, var_sfc_lai, var_sfc_soilm, var_sfc_soilt, var_sfc_landtyp, var_sfc_vegtyp, var_sfc_soiltyp, var_sfc_sdepth/)
 
character(len=maxvarlen), dimension(9), target varin_default_satrad = (/var_prs, var_ts, var_q, var_sfc_t2m, var_sfc_u10, var_sfc_v10, var_sfc_p2m, var_sfc_q2m, var_sfc_tskin /)
 
character(len=maxvarlen), dimension(:), pointer, public varin_default
 
character(len= *), dimension(ngases_max+2), parameter rttov_absorbers = [gas_name(1:ngases_max),'CLW', 'CIW']
 
integer, dimension(ngases_max+2), parameter rttov_absorber_id = [gas_id_mixed, gas_id_watervapour, gas_id_ozone, gas_id_wvcont, gas_id_co2, gas_id_n2o, gas_id_co, gas_id_ch4, gas_id_so2, 0, 0]
 
real(kind_real), dimension(0:ngases_max), parameter gas_unit_conv = [1.0_kind_real, 1.0_kind_real, q_mixratio_to_ppmv, o3_mixratio_to_ppmv, 1.0_kind_real, co2_mixratio_to_ppmv, n2o_mixratio_to_ppmv, co_mixratio_to_ppmv, ch4_mixratio_to_ppmv, so2_mixratio_to_ppmv]
 
character(len=maxvarlen), parameter null_str = ''
 
character(len=maxvarlen), dimension(ngases_max+2), parameter ufo_absorbers = [ null_str, var_mixr, var_oz, null_str, var_co2, 'mole_fraction_of_nitrous_oxide_in_air', 'mole_fraction_of_carbon_monoxide_in_air', 'mole_fraction_of_methane_in_air', 'mole_fraction_of_sulfur_dioxide_in_air', var_clw, var_cli]
 
integer, public nchan_inst
 
integer, public nchan_sim
 
integer, public nlocs_total
 
logical, public debug
 
integer iprof
 

Detailed Description

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

Function/Subroutine Documentation

◆ get_var_name()

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

Definition at line 722 of file ufo_radiancerttov_utils_mod.F90.

◆ parse_hofxdiags()

subroutine, public ufo_radiancerttov_utils_mod::parse_hofxdiags ( type(ufo_geovals), intent(inout)  hofxdiags,
logical, intent(out)  jacobian_needed 
)

Definition at line 1934 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ populate_hofxdiags()

subroutine, public ufo_radiancerttov_utils_mod::populate_hofxdiags ( type(ufo_rttov_io), intent(in)  RTProf,
type(rttov_chanprof), dimension(:), intent(in)  chanprof,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  prof_start,
type(ufo_geovals), intent(inout)  hofxdiags 
)

Definition at line 1713 of file ufo_radiancerttov_utils_mod.F90.

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

◆ rttov_conf_delete()

subroutine, public ufo_radiancerttov_utils_mod::rttov_conf_delete ( type(rttov_conf), intent(inout)  conf)

Definition at line 392 of file ufo_radiancerttov_utils_mod.F90.

Here is the caller graph for this function:

◆ rttov_conf_setup()

subroutine, public ufo_radiancerttov_utils_mod::rttov_conf_setup ( type(rttov_conf), intent(inout)  conf,
type(fckit_configuration), intent(in)  f_confOpts,
type(fckit_configuration), intent(in)  f_confOper 
)

Definition at line 195 of file ufo_radiancerttov_utils_mod.F90.

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

◆ set_defaults_rttov()

subroutine ufo_radiancerttov_utils_mod::set_defaults_rttov ( class(rttov_conf), intent(inout)  self,
character(10), intent(in)  default_opts_set 
)
private

MW-only radiative transfer options

HTFRTC options structure

Definition at line 1569 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:

◆ set_options_rttov()

subroutine ufo_radiancerttov_utils_mod::set_options_rttov ( class(rttov_conf), intent(inout)  self,
type(fckit_configuration), intent(in)  f_confOpts 
)
private
Parameters
[in]f_confoptsSwitch to enable atmospheric refraction
[in]f_confoptsSwitch for input units in AD/K models
[in]f_confoptsSwitch to enable use of 2m q variable
[in]f_confoptsSwitch for setting Lambertian reflection (IR and MW)
[in]f_confoptsSwitch for fixed/parameterised effective angle for Lambertian option
[in]f_confoptsSwitch to ignore atmospheric curvature
[in]f_confoptsLinear-in-tau or layer-mean for downwelling radiances
[in]f_confoptsSwitch to apply dtau test in transmit/integrate calculations
[in]f_confoptsFASTEM version (0-6); 0 => TESSEM2
[in]f_confoptsSupply a foam fraction to FASTEM
[in]f_confoptsSwitch to enable input of cloud liquid water profile
[in]f_confoptsMW CLW scheme: 1 => Liebe, 2 => Rosenkranz, 3 => TKC
[in]f_confoptsApply MW CLW calculations on coef/user levels (true/false resp.)
[in]f_confoptsLower pressure limit for MW CLW calculations (hPa)
[in]f_confoptsApply band-correction for Planck radiance and BT calculations
[in]f_confoptsSwitch to enable RTTOV interpolator
[in]f_confoptsInterpolation mode (1-5, see user guide)
[in]f_confoptsSwitch to make pressure an active variable in TL/AD/K models
[in]f_confoptsSwitch to assume space boundary at top-most input pressure l
[in]f_confoptsSwitch to extrapolate input profiles using regression limits
[in]f_confoptsSolar sea BRDF model (1-2)
[in]f_confoptsIR sea emissivity model (1-2)
[in]f_confoptsSwitch to enable solar simulations
[in]f_confoptsSwitch to enable Rayleigh single-scattering for VIS/NIR channel
[in]f_confoptsSwitch to enable NLTE bias correction
[in]f_confoptsSwitch to enable IR aerosol calculations
[in]f_confoptsSwitch to supply aerosol optical properties explicitly per channel
[in]f_confoptsSwitch to enable IR cloudy calculations
[in]f_confoptsSwitch to supply cloud optical properties explicitly per channel
[in]f_confoptsSwitch to supply grid-box average cloud concentration or cloud
[in]f_confoptsIgnore cloud streams with weights lower than this
[in]f_confoptsSwitch for simplified cloud stream option - USE WITH CAUTION
[in]f_confoptsUpper pressure limit for cldstr_simple option (hPa)
[in]f_confoptsIR scattering model to use
[in]f_confoptsVIS/NIR scattering model to use
[in]f_confoptsNumber of DOM streams, must be even and not less than 2
[in]f_confoptsConvergence criterion for termination of DOM azimuthal loop
[in]f_confoptsDOM ignores levels below this optical depth:
[in]f_confoptsSwitch to enable input of O3 profile
[in]f_confoptsSwitch to enable input of CO2 profile
[in]f_confoptsSwitch to enable input of N2O profile
[in]f_confoptsSwitch to enable input of CO profile
[in]f_confoptsSwitch to enable input of CH4 profile
[in]f_confoptsSwitch to enable input of SO2 profile

Definition at line 423 of file ufo_radiancerttov_utils_mod.F90.

◆ setup_rttov()

subroutine ufo_radiancerttov_utils_mod::setup_rttov ( class(rttov_conf), intent(inout)  self,
type(fckit_configuration), intent(in)  f_confOpts 
)
private

Definition at line 674 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_alloc_direct()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_alloc_direct ( class(ufo_rttov_io), intent(inout), target  self,
integer, intent(out)  errorstatus,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  nprofiles,
integer, intent(in)  nchannels,
integer, intent(in)  nlevels,
logical, intent(in), optional  init,
integer, intent(in)  asw 
)
private

Definition at line 1283 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_alloc_k()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_alloc_k ( class(ufo_rttov_io), intent(inout), target  self,
integer, intent(out)  errorstatus,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  nprofiles,
integer, intent(in)  nchannels,
integer, intent(in)  nlevels,
logical, intent(in), optional  init,
integer, intent(in)  asw 
)
private

Definition at line 1337 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_alloc_profiles()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_alloc_profiles ( class(ufo_rttov_io), intent(inout), target  self,
integer, intent(out)  errorstatus,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  nprofiles,
integer, intent(in)  nlevels,
logical, intent(in), optional  init,
integer, intent(in)  asw 
)
private

Definition at line 1399 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_alloc_profiles_k()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_alloc_profiles_k ( class(ufo_rttov_io), intent(inout), target  self,
integer, intent(out)  errorstatus,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  nprofiles,
integer, intent(in)  nlevels,
logical, intent(in), optional  init,
integer, intent(in)  asw 
)
private

Definition at line 1448 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_check_rtprof()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_check_rtprof ( class(ufo_rttov_io), intent(inout), target  self,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  iprof,
integer, intent(in)  i_inst,
integer, intent(out)  errorstatus 
)

Definition at line 1236 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_init_emissivity()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_init_emissivity ( class(ufo_rttov_io), intent(inout)  self,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  prof_start 
)
private

Definition at line 1509 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_print_rtprof()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_print_rtprof ( class(ufo_rttov_io), intent(inout), target  self,
type(rttov_conf), intent(in)  conf,
integer, intent(in)  iprof,
integer, intent(in)  i_inst 
)
private

Definition at line 1264 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_rttov_setup_rtprof()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_setup_rtprof ( class(ufo_rttov_io), intent(inout), target  self,
type(ufo_geovals), intent(in)  geovals,
type(c_ptr), intent(in), value  obss,
type(rttov_conf), intent(in)  conf,
type(ufo_rttovonedvarcheck_ob), intent(inout), optional  ob_info 
)
private

Definition at line 736 of file ufo_radiancerttov_utils_mod.F90.

Here is the call graph for this function:

◆ ufo_rttov_zero_k()

subroutine ufo_radiancerttov_utils_mod::ufo_rttov_zero_k ( class(ufo_rttov_io), intent(inout), target  self)
private

Definition at line 1493 of file ufo_radiancerttov_utils_mod.F90.

Variable Documentation

◆ ch_diags

integer, dimension(:), allocatable ufo_radiancerttov_utils_mod::ch_diags
private

Definition at line 57 of file ufo_radiancerttov_utils_mod.F90.

◆ debug

logical, public ufo_radiancerttov_utils_mod::debug

Definition at line 121 of file ufo_radiancerttov_utils_mod.F90.

◆ gas_unit_conv

real(kind_real), dimension(0:ngases_max), parameter ufo_radiancerttov_utils_mod::gas_unit_conv = [1.0_kind_real, 1.0_kind_real, q_mixratio_to_ppmv, o3_mixratio_to_ppmv, 1.0_kind_real, co2_mixratio_to_ppmv, n2o_mixratio_to_ppmv, co_mixratio_to_ppmv, ch4_mixratio_to_ppmv, so2_mixratio_to_ppmv]
private

Definition at line 96 of file ufo_radiancerttov_utils_mod.F90.

◆ iprof

integer ufo_radiancerttov_utils_mod::iprof
private

Definition at line 123 of file ufo_radiancerttov_utils_mod.F90.

◆ max_string

integer, parameter, public ufo_radiancerttov_utils_mod::max_string =800

Definition at line 40 of file ufo_radiancerttov_utils_mod.F90.

◆ maxvarin

integer, parameter, public ufo_radiancerttov_utils_mod::maxvarin = 50

Definition at line 41 of file ufo_radiancerttov_utils_mod.F90.

◆ message

character(len=max_string), public ufo_radiancerttov_utils_mod::message

Definition at line 46 of file ufo_radiancerttov_utils_mod.F90.

◆ missing

real(c_double) ufo_radiancerttov_utils_mod::missing
private

Definition at line 59 of file ufo_radiancerttov_utils_mod.F90.

◆ nchan_inst

integer, public ufo_radiancerttov_utils_mod::nchan_inst

Definition at line 118 of file ufo_radiancerttov_utils_mod.F90.

◆ nchan_sim

integer, public ufo_radiancerttov_utils_mod::nchan_sim

Definition at line 119 of file ufo_radiancerttov_utils_mod.F90.

◆ nlocs_total

integer, public ufo_radiancerttov_utils_mod::nlocs_total

Definition at line 120 of file ufo_radiancerttov_utils_mod.F90.

◆ null_str

character(len=maxvarlen), parameter ufo_radiancerttov_utils_mod::null_str = ''
private

Definition at line 109 of file ufo_radiancerttov_utils_mod.F90.

◆ nvars_in

integer, public ufo_radiancerttov_utils_mod::nvars_in

Definition at line 48 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_absorber_id

integer, dimension(ngases_max+2), parameter ufo_radiancerttov_utils_mod::rttov_absorber_id = [gas_id_mixed, gas_id_watervapour, gas_id_ozone, gas_id_wvcont, gas_id_co2, gas_id_n2o, gas_id_co, gas_id_ch4, gas_id_so2, 0, 0]
private

Definition at line 84 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_absorbers

character(len=*), dimension(ngases_max+2), parameter ufo_radiancerttov_utils_mod::rttov_absorbers = [gas_name(1:ngases_max),'CLW', 'CIW']
private

Definition at line 79 of file ufo_radiancerttov_utils_mod.F90.

◆ rttov_errorstatus

integer, public ufo_radiancerttov_utils_mod::rttov_errorstatus

Definition at line 49 of file ufo_radiancerttov_utils_mod.F90.

◆ ufo_absorbers

character(len=maxvarlen), dimension(ngases_max+2), parameter ufo_radiancerttov_utils_mod::ufo_absorbers = [ null_str, var_mixr, var_oz, null_str, var_co2, 'mole_fraction_of_nitrous_oxide_in_air', 'mole_fraction_of_carbon_monoxide_in_air', 'mole_fraction_of_methane_in_air', 'mole_fraction_of_sulfur_dioxide_in_air', var_clw, var_cli]
private

Definition at line 112 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default

character(len=maxvarlen), dimension(:), pointer, public ufo_radiancerttov_utils_mod::varin_default

Definition at line 76 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default_crtm

character(len=maxvarlen), dimension(21), target ufo_radiancerttov_utils_mod::varin_default_crtm = (/var_ts, var_prs, var_prsi, var_sfc_wfrac, var_sfc_lfrac, var_sfc_ifrac, var_sfc_sfrac, var_sfc_wtmp, var_sfc_ltmp, var_sfc_itmp, var_sfc_stmp, var_sfc_vegfrac, var_sfc_wspeed, var_sfc_wdir, var_sfc_lai, var_sfc_soilm, var_sfc_soilt, var_sfc_landtyp, var_sfc_vegtyp, var_sfc_soiltyp, var_sfc_sdepth/)
private

Definition at line 61 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_default_satrad

character(len=maxvarlen), dimension(9), target ufo_radiancerttov_utils_mod::varin_default_satrad = (/var_prs, var_ts, var_q, var_sfc_t2m, var_sfc_u10, var_sfc_v10, var_sfc_p2m, var_sfc_q2m, var_sfc_tskin /)
private

Definition at line 71 of file ufo_radiancerttov_utils_mod.F90.

◆ varin_temp

character(len=maxvarlen), dimension(maxvarin), public ufo_radiancerttov_utils_mod::varin_temp

Definition at line 45 of file ufo_radiancerttov_utils_mod.F90.

◆ xstr_diags

character(len=maxvarlen), dimension(:), allocatable ufo_radiancerttov_utils_mod::xstr_diags
private

Definition at line 56 of file ufo_radiancerttov_utils_mod.F90.

◆ ystr_diags

character(len=maxvarlen), dimension(:), allocatable ufo_radiancerttov_utils_mod::ystr_diags
private

Definition at line 53 of file ufo_radiancerttov_utils_mod.F90.