Skip to content

mod_nan_check

Lines: 37 | Visibility: private

Utility module for checking NaN values in arrays.

This module provides subroutines to check for NaN (Not-a-Number) values in real arrays and abort the program with descriptive error messages when NaN values are detected.

Dependencies

Uses

module~~mod_nan_check~~UsesGraph module~mod_nan_check mod_nan_check ieee_arithmetic ieee_arithmetic module~mod_nan_check->ieee_arithmetic module~mod_io mod_io module~mod_nan_check->module~mod_io module~mod_precision mod_precision module~mod_nan_check->module~mod_precision module~mod_throw mod_throw module~mod_nan_check->module~mod_throw module~mod_io->module~mod_precision iso_fortran_env iso_fortran_env module~mod_io->iso_fortran_env module~mod_optional_args mod_optional_args module~mod_io->module~mod_optional_args iso_c_binding iso_c_binding module~mod_precision->iso_c_binding module~mod_precision->iso_fortran_env module~mod_throw->module~mod_io module~mod_throw->module~mod_precision module~mod_throw->iso_c_binding module~mod_throw->iso_fortran_env module~mod_mpi mod_mpi module~mod_throw->module~mod_mpi module~mod_sort mod_sort module~mod_throw->module~mod_sort module~mod_mpi->module~mod_precision mpi_f08 mpi_f08 module~mod_mpi->mpi_f08 module~mod_sort->module~mod_precision

Used By

module~~mod_nan_check~~UsedByGraph module~mod_nan_check mod_nan_check module~mod_abstractoptimizer mod_abstractoptimizer module~mod_abstractoptimizer->module~mod_nan_check module~mod_dense_layer mod_dense_layer module~mod_dense_layer->module~mod_nan_check module~mod_initialize_array mod_initialize_array module~mod_dense_layer->module~mod_initialize_array module~mod_parameter_file mod_parameter_file module~mod_parameter_file->module~mod_nan_check module~mod_abstract_kalman_filter mod_abstract_kalman_filter module~mod_abstract_kalman_filter->module~mod_abstractoptimizer module~mod_adam mod_adam module~mod_adam->module~mod_abstractoptimizer module~mod_learning_rate mod_learning_rate module~mod_adam->module~mod_learning_rate module~mod_dense_layer_with_single_activations mod_dense_layer_with_single_activations module~mod_dense_layer_with_single_activations->module~mod_dense_layer module~mod_gradient_descent mod_gradient_descent module~mod_gradient_descent->module~mod_abstractoptimizer module~mod_gradient_descent->module~mod_learning_rate module~mod_initialize mod_initialize module~mod_initialize->module~mod_abstractoptimizer module~mod_optimizers mod_optimizers module~mod_initialize->module~mod_optimizers module~mod_write_headers mod_write_headers module~mod_initialize->module~mod_write_headers module~mod_abstract_property_model mod_abstract_property_model module~mod_initialize->module~mod_abstract_property_model module~mod_elemental_property_model mod_elemental_property_model module~mod_initialize->module~mod_elemental_property_model module~mod_hdnn mod_hdnn module~mod_initialize->module~mod_hdnn module~mod_initialize_array->module~mod_parameter_file module~mod_kalman_filter mod_kalman_filter module~mod_kalman_filter->module~mod_abstractoptimizer module~mod_kalman_filter->module~mod_abstract_kalman_filter module~mod_kalman_filter_std mod_kalman_filter_std module~mod_kalman_filter_std->module~mod_abstractoptimizer module~mod_kalman_filter_std->module~mod_abstract_kalman_filter module~mod_layers mod_layers module~mod_layers->module~mod_dense_layer module~mod_layers->module~mod_dense_layer_with_single_activations module~mod_learning_rate->module~mod_abstractoptimizer module~mod_nada_opt mod_nada_opt module~mod_nada_opt->module~mod_abstractoptimizer module~mod_nada_opt->module~mod_learning_rate module~mod_optimizers->module~mod_abstractoptimizer module~mod_optimizers->module~mod_adam module~mod_optimizers->module~mod_gradient_descent module~mod_optimizers->module~mod_kalman_filter module~mod_optimizers->module~mod_kalman_filter_std module~mod_optimizers->module~mod_nada_opt module~mod_stochastic_gradient_descent mod_stochastic_gradient_descent module~mod_optimizers->module~mod_stochastic_gradient_descent module~mod_stochastic_gradient_descent->module~mod_abstractoptimizer module~mod_stochastic_gradient_descent->module~mod_learning_rate module~mod_train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch module~mod_train_4g_atomic_charges_structure_batch->module~mod_abstractoptimizer module~mod_train_helpers mod_train_helpers module~mod_train_4g_atomic_charges_structure_batch->module~mod_train_helpers module~mod_train_4g_atomic_charges_structure_batch->module~mod_abstract_property_model module~mod_forward_backward_batched mod_forward_backward_batched module~mod_train_4g_atomic_charges_structure_batch->module~mod_forward_backward_batched module~mod_forward_batched mod_forward_batched module~mod_train_4g_atomic_charges_structure_batch->module~mod_forward_batched module~mod_get_max_num_output_properties mod_get_max_num_output_properties module~mod_train_4g_atomic_charges_structure_batch->module~mod_get_max_num_output_properties module~mod_train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms module~mod_train_atomic_property_multiple_atoms->module~mod_abstractoptimizer module~mod_train_atomic_property_multiple_atoms->module~mod_train_helpers module~mod_train_atomic_property_multiple_atoms->module~mod_abstract_property_model module~mod_train_atomic_property_multiple_atoms->module~mod_forward_backward_batched module~mod_train_atomic_property_multiple_atoms->module~mod_forward_batched module~mod_train_energy_multiple_structures mod_train_energy_multiple_structures module~mod_train_energy_multiple_structures->module~mod_abstractoptimizer module~mod_train_energy_multiple_structures->module~mod_initialize module~mod_train_energy_multiple_structures->module~mod_train_helpers module~mod_train_energy_multiple_structures->module~mod_abstract_property_model module~mod_train_energy_multiple_structures->module~mod_forward_backward_batched module~mod_train_energy_multiple_structures->module~mod_forward_batched module~mod_train_energy_multiple_structures->module~mod_get_max_num_output_properties module~mod_train_forces_multiple_structures mod_train_forces_multiple_structures module~mod_train_forces_multiple_structures->module~mod_abstractoptimizer module~mod_train_forces_multiple_structures->module~mod_initialize module~mod_train_forces_multiple_structures->module~mod_train_energy_multiple_structures module~mod_train_forces_multiple_structures->module~mod_train_helpers module~mod_train_forces_multiple_structures->module~mod_abstract_property_model module~mod_forward_backward_gradient_batched mod_forward_backward_gradient_batched module~mod_train_forces_multiple_structures->module~mod_forward_backward_gradient_batched module~mod_forward_gradient_batched mod_forward_gradient_batched module~mod_train_forces_multiple_structures->module~mod_forward_gradient_batched module~mod_train_helpers->module~mod_abstractoptimizer module~mod_train_helpers->module~mod_abstract_property_model module~mod_train_loop_4g_charges mod_train_loop_4g_charges module~mod_train_loop_4g_charges->module~mod_abstractoptimizer module~mod_train_loop_4g_charges->module~mod_initialize module~mod_train_loop_4g_charges->module~mod_train_4g_atomic_charges_structure_batch module~mod_train_loop_4g_charges->module~mod_train_helpers module~mod_train_loop_4g_charges->module~mod_abstract_property_model module~mod_signal_handler mod_signal_handler module~mod_train_loop_4g_charges->module~mod_signal_handler module~mod_cost_calculator mod_cost_calculator module~mod_train_loop_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges mod_output_files_and_cost_4g_charges module~mod_train_loop_4g_charges->module~mod_output_files_and_cost_4g_charges module~mod_train_loop_atomic_property mod_train_loop_atomic_property module~mod_train_loop_atomic_property->module~mod_abstractoptimizer module~mod_train_loop_atomic_property->module~mod_initialize module~mod_train_loop_atomic_property->module~mod_train_atomic_property_multiple_atoms module~mod_train_loop_atomic_property->module~mod_train_helpers module~mod_train_loop_atomic_property->module~mod_abstract_property_model module~mod_train_loop_atomic_property->module~mod_signal_handler module~mod_train_loop_atomic_property->module~mod_cost_calculator module~mod_output_files_and_cost mod_output_files_and_cost module~mod_train_loop_atomic_property->module~mod_output_files_and_cost module~mod_train_loop_short_range mod_train_loop_short_range module~mod_train_loop_short_range->module~mod_abstractoptimizer module~mod_train_loop_short_range->module~mod_initialize module~mod_train_loop_short_range->module~mod_train_energy_multiple_structures module~mod_train_loop_short_range->module~mod_train_forces_multiple_structures module~mod_train_loop_short_range->module~mod_train_helpers module~mod_train_loop_short_range->module~mod_abstract_property_model module~mod_train_loop_short_range->module~mod_signal_handler module~mod_train_loop_short_range->module~mod_cost_calculator module~mod_train_loop_short_range->module~mod_get_max_num_output_properties module~mod_train_loop_short_range->module~mod_output_files_and_cost module~mod_output_files_and_cost_4g_short_range mod_output_files_and_cost_4g_short_range module~mod_train_loop_short_range->module~mod_output_files_and_cost_4g_short_range module~mod_predict_qeq_feature_calculator_multiple_structures mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_loop_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_train_mode mod_train_mode module~mod_train_mode->module~mod_abstractoptimizer module~mod_train_mode->module~mod_initialize module~mod_train_mode->module~mod_train_loop_4g_charges module~mod_train_mode->module~mod_train_loop_atomic_property module~mod_train_mode->module~mod_train_loop_short_range module~mod_train_mode->module~mod_abstract_property_model module~mod_dataset_statistics mod_dataset_statistics module~mod_train_mode->module~mod_dataset_statistics module~mod_dataset_statistics_chi_all_chunks mod_dataset_statistics_chi_all_chunks module~mod_train_mode->module~mod_dataset_statistics_chi_all_chunks module~mod_feature_map_scaling_all_chunks mod_feature_map_scaling_all_chunks module~mod_train_mode->module~mod_feature_map_scaling_all_chunks module~mod_precalc_coulomb_matrix_all_chunks mod_precalc_coulomb_matrix_all_chunks module~mod_train_mode->module~mod_precalc_coulomb_matrix_all_chunks module~mod_predict_4g_charges_training_qeq_multiple_structures mod_predict_4g_charges_training_qeq_multiple_structures module~mod_train_mode->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_predict_all_chunks mod_predict_all_chunks module~mod_train_mode->module~mod_predict_all_chunks module~mod_train_mode->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_write_outfiles_training mod_write_outfiles_training module~mod_train_mode->module~mod_write_outfiles_training module~mod_write_headers->module~mod_abstractoptimizer module~mod_write_headers->module~mod_abstract_property_model program~runner RuNNer program~runner->module~mod_abstractoptimizer program~runner->module~mod_initialize program~runner->module~mod_train_mode program~runner->module~mod_write_headers program~runner->module~mod_abstract_property_model module~mod_predict_mode mod_predict_mode program~runner->module~mod_predict_mode program~runner->module~mod_signal_handler module~mod_calculate_coulomb_matrix mod_calculate_coulomb_matrix program~runner->module~mod_calculate_coulomb_matrix module~mod_precompute_features_all_chunks mod_precompute_features_all_chunks program~runner->module~mod_precompute_features_all_chunks module~mod_precompute_global_features_all_chunks mod_precompute_global_features_all_chunks program~runner->module~mod_precompute_global_features_all_chunks module~mod_abstract_property_model->module~mod_initialize_array module~mod_elemental_property_model->module~mod_initialize_array module~mod_elemental_property_model->module~mod_abstract_property_model module~mod_hdnn->module~mod_initialize_array module~mod_hdnn->module~mod_abstract_property_model module~mod_neural_network mod_neural_network module~mod_hdnn->module~mod_neural_network module~mod_neural_network->module~mod_layers module~mod_predict_mode->module~mod_initialize module~mod_predict_mode->module~mod_abstract_property_model module~mod_predict_mode->module~mod_signal_handler module~mod_write_outfiles mod_write_outfiles module~mod_predict_mode->module~mod_write_outfiles module~mod_enforce_reading mod_enforce_reading module~mod_predict_mode->module~mod_enforce_reading module~mod_predict_multiple_structures mod_predict_multiple_structures module~mod_predict_mode->module~mod_predict_multiple_structures module~mod_runner_interface_bindings mod_runner_interface_bindings module~mod_runner_interface_bindings->module~mod_initialize module~mod_calc_atomic_properties mod_calc_atomic_properties module~mod_runner_interface_bindings->module~mod_calc_atomic_properties module~mod_runner_interface_bindings->module~mod_enforce_reading module~mod_runner_interface_bindings->module~mod_get_max_num_output_properties module~mod_runner_interface mod_runner_interface module~mod_runner_interface_bindings->module~mod_runner_interface module~mod_signal_handler->module~mod_write_headers module~mod_write_outfiles->module~mod_initialize module~mod_analyse_a_prime_matrix_eigenvalues mod_analyse_a_prime_matrix_eigenvalues module~mod_analyse_a_prime_matrix_eigenvalues->module~mod_abstract_property_model module~mod_calc_atomic_properties->module~mod_abstract_property_model module~mod_calc_atomic_properties->module~mod_forward_batched module~mod_calculate_coulomb_matrix->module~mod_signal_handler module~mod_cost_calculator->module~mod_abstract_property_model module~mod_cost_calculator->module~mod_write_outfiles_training module~mod_dataset_statistics->module~mod_abstract_property_model module~mod_dataset_statistics->module~mod_forward_batched module~mod_dataset_statistics_chi_all_chunks->module~mod_abstract_property_model module~mod_dataset_statistics_chi_all_chunks->module~mod_signal_handler module~mod_dataset_statistics_chi_all_chunks->module~mod_dataset_statistics module~mod_enforce_reading->module~mod_abstract_property_model module~mod_feature_map_scaling_all_chunks->module~mod_abstract_property_model module~mod_feature_map_scaling_all_chunks->module~mod_signal_handler module~mod_prediction_statistics mod_prediction_statistics module~mod_feature_map_scaling_all_chunks->module~mod_prediction_statistics module~mod_structure_batch_iterator mod_structure_batch_iterator module~mod_feature_map_scaling_all_chunks->module~mod_structure_batch_iterator module~mod_forward_backward_batched->module~mod_abstract_property_model module~mod_forward_backward_gradient_batched->module~mod_abstract_property_model module~mod_forward_batched->module~mod_abstract_property_model module~mod_forward_gradient_batched->module~mod_abstract_property_model module~mod_get_max_num_output_properties->module~mod_abstract_property_model module~mod_lammps_interface mod_lammps_interface module~mod_lammps_interface->module~mod_runner_interface_bindings module~mod_lammps_interface->module~mod_runner_interface module~mod_output_files_and_cost->module~mod_abstract_property_model module~mod_output_files_and_cost->module~mod_cost_calculator module~mod_output_files_and_cost->module~mod_predict_multiple_structures module~mod_output_files_and_cost_4g_charges->module~mod_abstract_property_model module~mod_output_files_and_cost_4g_charges->module~mod_cost_calculator module~mod_output_files_and_cost_4g_charges->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_abstract_property_model module~mod_output_files_and_cost_4g_short_range->module~mod_cost_calculator module~mod_predict_4g_short_range_training_qeq_multiple_structures mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_4g_short_range_training_qeq_multiple_structures module~mod_output_files_and_cost_4g_short_range->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_post_processing_wrapper_single_structure mod_post_processing_wrapper_single_structure module~mod_post_processing_wrapper_single_structure->module~mod_abstract_property_model module~mod_post_processing_wrapper_single_structure->module~mod_calc_atomic_properties module~mod_precalc_coulomb_matrix_all_chunks->module~mod_abstract_property_model module~mod_precalc_coulomb_matrix_all_chunks->module~mod_forward_batched module~mod_precalc_coulomb_matrix_all_chunks->module~mod_predict_4g_charges_training_qeq_multiple_structures module~mod_precompute_features_all_chunks->module~mod_signal_handler module~mod_precompute_global_features_all_chunks->module~mod_abstract_property_model module~mod_precompute_global_features_all_chunks->module~mod_signal_handler module~mod_precompute_global_features_all_chunks->module~mod_predict_qeq_feature_calculator_multiple_structures module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_abstract_property_model module~mod_predict_4g_charges_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_4g_no_force_trick_single_structure mod_predict_4g_no_force_trick_single_structure module~mod_predict_4g_no_force_trick_single_structure->module~mod_abstract_property_model module~mod_predict_4g_no_force_trick_single_structure->module~mod_calc_atomic_properties module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_abstract_property_model module~mod_predict_4g_short_range_training_qeq_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_all_chunks->module~mod_abstract_property_model module~mod_predict_all_chunks->module~mod_signal_handler module~mod_predict_all_chunks->module~mod_predict_multiple_structures module~mod_predict_multiple_structures->module~mod_abstract_property_model module~mod_predict_multiple_structures->module~mod_post_processing_wrapper_single_structure module~mod_predict_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_abstract_property_model module~mod_predict_qeq_feature_calculator_multiple_structures->module~mod_structure_batch_iterator module~mod_predict_single_structure mod_predict_single_structure module~mod_predict_single_structure->module~mod_abstract_property_model module~mod_predict_single_structure->module~mod_calc_atomic_properties module~mod_predict_single_structure->module~mod_get_max_num_output_properties module~mod_predict_single_structure->module~mod_post_processing_wrapper_single_structure module~mod_prediction_statistics->module~mod_abstract_property_model module~mod_prediction_statistics->module~mod_calc_atomic_properties module~mod_prediction_statistics->module~mod_get_max_num_output_properties module~mod_runner_interface->module~mod_abstract_property_model module~mod_structure_batch_iterator->module~mod_abstract_property_model module~mod_structure_batch_iterator->module~mod_calc_atomic_properties module~mod_structure_batch_iterator->module~mod_get_max_num_output_properties module~mod_write_outfiles_training->module~mod_abstract_property_model module~mod_write_outfiles_training->module~mod_write_outfiles module~mod_feature_calc_interface mod_feature_calc_interface module~mod_feature_calc_interface->module~mod_runner_interface module~mod_generic_interface mod_generic_interface module~mod_feature_calc_interface->module~mod_generic_interface module~mod_generic_interface->module~mod_predict_single_structure module~mod_generic_interface->module~mod_runner_interface

Procedures Summary

Name Type Description
check_nan_1d Subroutine Check for NaN values in a 1D array and abort if found. This subroutine checks every element of...
check_nan_2d Subroutine Check for NaN values in a 2D array and abort if found. This subroutine checks every element of...

Procedure Details

subroutine check_nan_1d

subroutine check_nan_1d( &
    array, &
    context &
)

Check for NaN values in a 1D array and abort if found.

This subroutine checks every element of a 1D array for NaN values. If any NaN is found, the program is aborted with a descriptive error message indicating the context and position of the NaN.

Arguments

  • array : real(DP) (dim: (:)) [in]– The array to check for NaN values.
  • context : character [in]– A descriptive string indicating where the check is performed (e.g., "reading weights from file", "after optimizer update").

Called By

proc~~check_nan_1d~~CalledByGraph proc~check_nan_1d mod_nan_check::check_nan_1d proc~read_parameterfile mod_parameter_file::ParameterFile%read_parameterfile proc~read_parameterfile->proc~check_nan_1d proc~set_parameters_denselayer mod_dense_layer::DenseLayer%set_parameters_denselayer proc~set_parameters_denselayer->proc~check_nan_1d proc~step_abstractoptimizer_mpi mod_abstractoptimizer::AbstractOptimizer%step_abstractoptimizer_mpi proc~step_abstractoptimizer_mpi->proc~check_nan_1d proc~write_parameterfile mod_parameter_file::ParameterFile%write_parameterfile proc~write_parameterfile->proc~check_nan_1d proc~set_parameters_neuralnetwork mod_neural_network::NeuralNetwork%set_parameters_neuralnetwork proc~set_parameters_neuralnetwork->proc~set_parameters_denselayer proc~update_optimizers_multiple_models mod_train_helpers::update_optimizers_multiple_models proc~update_optimizers_multiple_models->proc~step_abstractoptimizer_mpi proc~update_optimizers_single_model mod_train_helpers::update_optimizers_single_model proc~update_optimizers_single_model->proc~step_abstractoptimizer_mpi interface~update_optimizers mod_train_helpers::update_optimizers interface~update_optimizers->proc~update_optimizers_multiple_models interface~update_optimizers->proc~update_optimizers_single_model proc~set_parameters_hdnn mod_hdnn::HDNN%set_parameters_hdnn proc~set_parameters_hdnn->proc~set_parameters_neuralnetwork proc~train_4g_atomic_charges_structure_batch mod_train_4g_atomic_charges_structure_batch::train_4g_atomic_charges_structure_batch proc~train_4g_atomic_charges_structure_batch->interface~update_optimizers proc~train_atomic_property_multiple_atoms mod_train_atomic_property_multiple_atoms::train_atomic_property_multiple_atoms proc~train_atomic_property_multiple_atoms->interface~update_optimizers proc~train_energy_multiple_structures mod_train_energy_multiple_structures::train_energy_multiple_structures proc~train_energy_multiple_structures->interface~update_optimizers proc~train_forces_multiple_structures mod_train_forces_multiple_structures::train_forces_multiple_structures proc~train_forces_multiple_structures->interface~update_optimizers proc~train_forces_multiple_structures->proc~train_energy_multiple_structures proc~train_loop_4g_charges mod_train_loop_4g_charges::train_loop_4g_charges proc~train_loop_4g_charges->proc~train_4g_atomic_charges_structure_batch proc~train_loop_atomic_property mod_train_loop_atomic_property::train_loop_atomic_property proc~train_loop_atomic_property->proc~train_atomic_property_multiple_atoms proc~train_loop_short_range mod_train_loop_short_range::train_loop_short_range proc~train_loop_short_range->proc~train_energy_multiple_structures proc~train_loop_short_range->proc~train_forces_multiple_structures proc~train_mode mod_train_mode::train_mode proc~train_mode->proc~train_loop_4g_charges proc~train_mode->proc~train_loop_atomic_property proc~train_mode->proc~train_loop_short_range program~runner RuNNer program~runner->proc~train_mode

subroutine check_nan_2d

subroutine check_nan_2d( &
    array, &
    context &
)

Check for NaN values in a 2D array and abort if found.

This subroutine checks every element of a 2D array for NaN values. If any NaN is found, the program is aborted with a descriptive error message indicating the context and position of the NaN.

Arguments

  • array : real(DP) (dim: (:,:)) [in]– The 2D array to check for NaN values.
  • context : character [in]– A descriptive string indicating where the check is performed.

Called By

proc~~check_nan_2d~~CalledByGraph proc~check_nan_2d mod_nan_check::check_nan_2d proc~set_parameters_denselayer mod_dense_layer::DenseLayer%set_parameters_denselayer proc~set_parameters_denselayer->proc~check_nan_2d proc~set_parameters_neuralnetwork mod_neural_network::NeuralNetwork%set_parameters_neuralnetwork proc~set_parameters_neuralnetwork->proc~set_parameters_denselayer proc~set_parameters_hdnn mod_hdnn::HDNN%set_parameters_hdnn proc~set_parameters_hdnn->proc~set_parameters_neuralnetwork