saturated_mixing_ratio_m Module

This module supports the program in the file example/learn-saturated-mixing-ratio.f90. The saturated_mixing_ratio function in this module resulted from refactoring the sat_mr function in the Intermediate Complexity Atmospheric Research (ICAR) model file src/physics/mp_simple.f90. ICAR is distributed under the above MIT license. See https://github.com/ncar/icar.


Uses

  • module~~saturated_mixing_ratio_m~~UsesGraph module~saturated_mixing_ratio_m saturated_mixing_ratio_m assert_m assert_m module~saturated_mixing_ratio_m->assert_m module~inference_engine_m inference_engine_m module~saturated_mixing_ratio_m->module~inference_engine_m module~activation_strategy_m activation_strategy_m module~inference_engine_m->module~activation_strategy_m module~differentiable_activation_strategy_m differentiable_activation_strategy_m module~inference_engine_m->module~differentiable_activation_strategy_m module~hyperparameters_m hyperparameters_m module~inference_engine_m->module~hyperparameters_m module~inference_engine_m_ inference_engine_m_ module~inference_engine_m->module~inference_engine_m_ module~input_output_pair_m input_output_pair_m module~inference_engine_m->module~input_output_pair_m module~kind_parameters_m kind_parameters_m module~inference_engine_m->module~kind_parameters_m module~mini_batch_m mini_batch_m module~inference_engine_m->module~mini_batch_m module~network_configuration_m network_configuration_m module~inference_engine_m->module~network_configuration_m module~relu_m relu_m module~inference_engine_m->module~relu_m module~sigmoid_m sigmoid_m module~inference_engine_m->module~sigmoid_m module~step_m step_m module~inference_engine_m->module~step_m module~swish_m swish_m module~inference_engine_m->module~swish_m module~tensor_m tensor_m module~inference_engine_m->module~tensor_m module~tensor_range_m tensor_range_m module~inference_engine_m->module~tensor_range_m module~trainable_engine_m trainable_engine_m module~inference_engine_m->module~trainable_engine_m module~training_configuration_m training_configuration_m module~inference_engine_m->module~training_configuration_m module~ubounds_m ubounds_m module~inference_engine_m->module~ubounds_m module~activation_strategy_m->module~kind_parameters_m sourcery_string_m sourcery_string_m module~activation_strategy_m->sourcery_string_m module~differentiable_activation_strategy_m->module~activation_strategy_m module~hyperparameters_m->module~kind_parameters_m module~hyperparameters_m->sourcery_string_m module~inference_engine_m_->module~activation_strategy_m module~inference_engine_m_->module~differentiable_activation_strategy_m module~inference_engine_m_->module~kind_parameters_m module~inference_engine_m_->module~tensor_m module~inference_engine_m_->module~tensor_range_m sourcery_file_m sourcery_file_m module~inference_engine_m_->sourcery_file_m module~inference_engine_m_->sourcery_string_m module~input_output_pair_m->module~kind_parameters_m module~input_output_pair_m->module~tensor_m module~mini_batch_m->module~input_output_pair_m module~mini_batch_m->module~kind_parameters_m module~network_configuration_m->sourcery_string_m module~relu_m->module~differentiable_activation_strategy_m module~relu_m->module~kind_parameters_m module~relu_m->sourcery_string_m module~sigmoid_m->module~differentiable_activation_strategy_m module~sigmoid_m->module~kind_parameters_m module~sigmoid_m->sourcery_string_m module~step_m->module~activation_strategy_m module~step_m->module~kind_parameters_m module~step_m->sourcery_string_m module~swish_m->module~differentiable_activation_strategy_m module~swish_m->module~kind_parameters_m module~swish_m->sourcery_string_m module~tensor_m->module~kind_parameters_m module~tensor_range_m->module~tensor_m sourcery_m sourcery_m module~tensor_range_m->sourcery_m module~trainable_engine_m->module~differentiable_activation_strategy_m module~trainable_engine_m->module~inference_engine_m_ module~trainable_engine_m->module~kind_parameters_m module~trainable_engine_m->module~mini_batch_m module~trainable_engine_m->module~tensor_m module~trainable_engine_m->module~tensor_range_m module~trainable_engine_m->module~training_configuration_m module~trainable_engine_m->sourcery_string_m module~training_configuration_m->module~differentiable_activation_strategy_m module~training_configuration_m->module~hyperparameters_m module~training_configuration_m->module~kind_parameters_m module~training_configuration_m->module~network_configuration_m module~training_configuration_m->sourcery_file_m module~training_configuration_m->sourcery_string_m

Used by

  • module~~saturated_mixing_ratio_m~~UsedByGraph module~saturated_mixing_ratio_m saturated_mixing_ratio_m program~train_saturated_mixture_ratio train_saturated_mixture_ratio program~train_saturated_mixture_ratio->module~saturated_mixing_ratio_m

Variables

Type Visibility Attributes Name Initial
real, public, parameter :: T(*) = [(real(i)/real(resolution), i=0, resolution)]
real, public, parameter :: p(*) = [(real(i)/real(resolution), i=0, resolution)]
real, private, parameter :: T_max = 307.610779
real, private, parameter :: T_min = 236.352524
real, private, parameter :: freezing_threshold = 273.15
integer, private :: i
real, private, parameter :: p_max = 98596.7578
real, private, parameter :: p_min = 29671.1348
integer, private, parameter :: resolution = 10

Functions

public elemental function y(x_in) result(a)

Arguments

Type IntentOptional Attributes Name
type(tensor_t), intent(in) :: x_in

Return Value type(tensor_t)

private pure function saturated_mixing_ratio(T_normalized, p_normalized) result(sat_mr)

Calculate the saturated mixing ratio for normalized tempetatures (k) and pressures (Pa)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: T_normalized
real, intent(in) :: p_normalized

Return Value real