learn_microphysics_procedures Program

Uses

  • program~~learn_microphysics_procedures~~UsesGraph program~learn_microphysics_procedures learn_microphysics_procedures assert_m assert_m program~learn_microphysics_procedures->assert_m iso_fortran_env iso_fortran_env program~learn_microphysics_procedures->iso_fortran_env module~inference_engine_m inference_engine_m program~learn_microphysics_procedures->module~inference_engine_m module~thompson_tensors_m thompson_tensors_m program~learn_microphysics_procedures->module~thompson_tensors_m sourcery_m sourcery_m program~learn_microphysics_procedures->sourcery_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~thompson_tensors_m->assert_m module~thompson_tensors_m->module~inference_engine_m module~module_mp_thompson module_mp_thompson module~thompson_tensors_m->module~module_mp_thompson 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->sourcery_m module~tensor_range_m->module~tensor_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

Train a neural network proxies for procedures in the Thompson microphysics model in of ICAR (https://github.com/BerkeleyLab/icar).


Calls

program~~learn_microphysics_procedures~~CallsGraph program~learn_microphysics_procedures learn_microphysics_procedures assert assert program~learn_microphysics_procedures->assert bin_t bin_t program~learn_microphysics_procedures->bin_t bins bins program~learn_microphysics_procedures->bins cost cost program~learn_microphysics_procedures->cost desired_outputs desired_outputs program~learn_microphysics_procedures->desired_outputs file_t file_t program~learn_microphysics_procedures->file_t first first program~learn_microphysics_procedures->first flag_value flag_value program~learn_microphysics_procedures->flag_value infer infer program~learn_microphysics_procedures->infer input_output_pairs input_output_pairs program~learn_microphysics_procedures->input_output_pairs inputs inputs program~learn_microphysics_procedures->inputs interface~shuffle shuffle program~learn_microphysics_procedures->interface~shuffle intrinsic_array_t intrinsic_array_t program~learn_microphysics_procedures->intrinsic_array_t last last program~learn_microphysics_procedures->last mini_batches mini_batches program~learn_microphysics_procedures->mini_batches nodes_per_layer nodes_per_layer program~learn_microphysics_procedures->nodes_per_layer num_inputs num_inputs program~learn_microphysics_procedures->num_inputs num_outputs num_outputs program~learn_microphysics_procedures->num_outputs output_sizes output_sizes program~learn_microphysics_procedures->output_sizes proc~open_plot_file_for_appending open_plot_file_for_appending program~learn_microphysics_procedures->proc~open_plot_file_for_appending proc~output~2 output program~learn_microphysics_procedures->proc~output~2 proc~perturbed_identity_network~2 perturbed_identity_network program~learn_microphysics_procedures->proc~perturbed_identity_network~2 proc~print_diagnostics print_diagnostics program~learn_microphysics_procedures->proc~print_diagnostics proc~y~2 y program~learn_microphysics_procedures->proc~y~2 random_init random_init program~learn_microphysics_procedures->random_init random_numbers random_numbers program~learn_microphysics_procedures->random_numbers string string program~learn_microphysics_procedures->string string_t string_t program~learn_microphysics_procedures->string_t to_inference_engine to_inference_engine program~learn_microphysics_procedures->to_inference_engine train train program~learn_microphysics_procedures->train values values program~learn_microphysics_procedures->values proc~open_plot_file_for_appending->file_t proc~open_plot_file_for_appending->string proc~open_plot_file_for_appending->string_t lines lines proc~open_plot_file_for_appending->lines interface~to_json~5 inference_engine_t%to_json proc~output~2->interface~to_json~5 write_lines write_lines proc~output~2->write_lines proc~perturbed_identity_network~2->string_t proc~e~2 e proc~perturbed_identity_network~2->proc~e~2 proc~y~2->assert interface~values tensor_t%values proc~y~2->interface~values proc~rsif RSIF proc~y~2->proc~rsif proc~rslf RSLF proc~y~2->proc~rslf

Variables

Type Attributes Name Initial
integer(kind=int64) :: clock_rate
type(command_line_t) :: command_line
integer(kind=int64) :: counter_end
integer(kind=int64) :: counter_start
type(string_t) :: network_file

Functions

pure function e(j, n) result(unit_vector)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: j
integer, intent(in) :: n

Return Value real, allocatable, (:)

function perturbed_identity_network(perturbation_magnitude, n) result(trainable_engine)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: perturbation_magnitude
integer, intent(in) :: n(:)

Return Value type(trainable_engine_t)


Subroutines

subroutine open_plot_file_for_appending(plot_file_name, plot_unit, previous_epoch, previous_clock)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: plot_file_name
integer, intent(out) :: plot_unit
integer, intent(out) :: previous_epoch
real, intent(out) :: previous_clock

subroutine output(inference_engine, file_name)

Arguments

Type IntentOptional Attributes Name
type(inference_engine_t), intent(in) :: inference_engine
type(string_t), intent(in) :: file_name

subroutine print_diagnostics(plot_file_unit, epoch, cost, clock, nodes)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: plot_file_unit
integer, intent(in) :: epoch
real, intent(in) :: cost
real, intent(in) :: clock
integer, intent(in) :: nodes(:)