radiation_spectral_definition Module


Uses

  • module~~radiation_spectral_definition~~UsesGraph module~radiation_spectral_definition radiation_spectral_definition module~parkind1~2 PARKIND1 module~radiation_spectral_definition->module~parkind1~2

Contents


Variables

Type Visibility Attributes Name Initial
real(kind=jprb), public, parameter :: SolarReferenceTemperature = 5777.0_jprb
real(kind=jprb), public, parameter :: TerrestrialReferenceTemperature = 273.15_jprb

Derived Types

type, public ::  spectral_definition_type

Components

Type Visibility Attributes Name Initial
integer, public :: nwav = 0
integer, public :: ng = 0
real(kind=jprb), public, allocatable :: wavenumber1(:)
real(kind=jprb), public, allocatable :: wavenumber2(:)
real(kind=jprb), public, allocatable :: gpoint_fraction(:,:)
integer, public :: nband = 0
real(kind=jprb), public, allocatable :: wavenumber1_band(:)
real(kind=jprb), public, allocatable :: wavenumber2_band(:)
integer, public, allocatable :: i_band_number(:)

Type-Bound Procedures

procedure , public :: read => read_spectral_definition Subroutine
procedure , public :: allocate_bands_only Subroutine
procedure , public :: deallocate Subroutine
procedure , public :: find => find_wavenumber Function
procedure , public :: calc_mapping Subroutine
procedure , public :: calc_mapping_from_bands Subroutine
procedure , public :: calc_mapping_from_wavenumber_bands Subroutine
procedure , public :: print_mapping_from_bands Subroutine
procedure , public :: max_wavenumber Function
procedure , public :: min_wavenumber Function

Functions

publicpure function find_wavenumber(this, wavenumber)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this
real(kind=jprb), intent(in) :: wavenumber

Return Value integer

publicpure function min_wavenumber(this)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this

Return Value real(kind=jprb)

publicpure function max_wavenumber(this)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this

Return Value real(kind=jprb)

publicelemental function calc_planck_function_wavenumber(wavenumber, temperature)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: wavenumber
real(kind=jprb), intent(in) :: temperature

Return Value real(kind=jprb)


Subroutines

public subroutine read_spectral_definition(this, file)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(inout) :: this
type(netcdf_file), intent(inout) :: file

public subroutine allocate_bands_only(this, wavenumber1, wavenumber2)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(inout) :: this
real(kind=jprb), intent(in), dimension(:) :: wavenumber1
real(kind=jprb), intent(in), dimension(:) :: wavenumber2

public subroutine deallocate(this)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(inout) :: this

public subroutine calc_mapping(this, temperature, wavenumber, mapping, use_bands)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this
real(kind=jprb), intent(in) :: temperature
real(kind=jprb), intent(in) :: wavenumber(:)
real(kind=jprb), intent(inout), allocatable :: mapping(:,:)
logical, intent(in), optional :: use_bands

public subroutine calc_mapping_from_bands(this, temperature, wavelength_bound, i_intervals, mapping, use_bands, use_fluxes)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this
real(kind=jprb), intent(in) :: temperature
real(kind=jprb), intent(in) :: wavelength_bound(:)
integer, intent(in) :: i_intervals(:)
real(kind=jprb), intent(inout), allocatable :: mapping(:,:)
logical, intent(in), optional :: use_bands
logical, intent(in), optional :: use_fluxes

public subroutine calc_mapping_from_wavenumber_bands(this, temperature, wavenumber1, wavenumber2, mapping, use_bands, use_fluxes)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this
real(kind=jprb), intent(in) :: temperature
real(kind=jprb), intent(in) :: wavenumber1(:)
real(kind=jprb), intent(in) :: wavenumber2(:)
real(kind=jprb), intent(inout), allocatable :: mapping(:,:)
logical, intent(in), optional :: use_bands
logical, intent(in), optional :: use_fluxes

public subroutine print_mapping_from_bands(this, mapping, use_bands)

Arguments

Type IntentOptional Attributes Name
class(spectral_definition_type), intent(in) :: this
real(kind=jprb), intent(in), allocatable :: mapping(:,:)
logical, intent(in), optional :: use_bands