mod_radiative_cooling Module

Module containing radiative cooling-related routines. This module is responsible for initialising the radiative cooling variables and a correct handling of the cooling curves. If an interpolated cooling curve is selected this module calls the interpolation module to create one.



Variables

Type Visibility Attributes Name Initial
type(settings_t), private, pointer :: settings => null()
type(background_t), private, pointer :: background => null()

Derived Types

type, public ::  cooling_t

Components

Type Visibility Attributes Name Initial
procedure(real(dp)), public, pointer, nopass :: lambdaT
procedure(real(dp)), public, pointer, nopass :: dlambdadT
logical, private :: is_initialised

Type-Bound Procedures

procedure, public :: initialise
procedure, public :: delete

Functions

public function new_cooling(settings_tgt, background_tgt) result(cooling)

Arguments

Type IntentOptional Attributes Name
type(settings_t), intent(in), target :: settings_tgt
type(background_t), intent(in), target :: background_tgt

Return Value type(cooling_t)

private function get_lambdaT(x)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)

private function get_dlambdadT(x)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)


Subroutines

private subroutine initialise(this)

Arguments

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

private subroutine delete(this)

Arguments

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