tem_status_module Module

This module handles the various status bits and performs the relevant communications. For example if one process ends, this information is stored in a bit and communicated to all other processors.


Uses

  • module~~tem_status_module~~UsesGraph module~tem_status_module tem_status_module module~tem_comm_env_module tem_comm_env_module module~tem_status_module->module~tem_comm_env_module mpi mpi module~tem_status_module->mpi module~tem_comm_env_module->mpi

Used by

  • module~~tem_status_module~~UsedByGraph module~tem_status_module tem_status_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_status_module module~tem_simcontrol_module tem_simControl_module module~tem_tracking_module->module~tem_simcontrol_module module~tem_general_module tem_general_module module~tem_general_module->module~tem_status_module module~tem_general_module->module~tem_simcontrol_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_general_module->module~tem_abortcriteria_module module~tem_simcontrol_module->module~tem_status_module module~tem_convergence_module tem_convergence_module module~tem_simcontrol_module->module~tem_convergence_module module~tem_simcontrol_module->module~tem_abortcriteria_module module~tem_convergence_module->module~tem_status_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_general_module module~tem_utestenv_module tem_utestEnv_module program~tem_varsys_stfunvar_test->module~tem_utestenv_module program~tem_varsys_statevar_test tem_varSys_stateVar_test program~tem_varsys_statevar_test->module~tem_general_module program~tem_varsys_statevar_test->module~tem_utestenv_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_general_module program~tem_varsys_derivevar_test->module~tem_utestenv_module program~tem_sparta_test tem_sparta_test program~tem_sparta_test->module~tem_general_module program~tem_sparta_test->module~tem_utestenv_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_general_module program~tem_variable_evaltype_test->module~tem_utestenv_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_general_module program~tem_varsys_test->module~tem_utestenv_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_general_module program~tem_spacetime_fun_test->module~tem_utestenv_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_general_module program~tem_logical_opertor_test->module~tem_utestenv_module program~bin_search_test bin_search_test program~bin_search_test->module~tem_general_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_general_module program~tem_variable_extract_test->module~tem_utestenv_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_general_module program~tem_variable_combine_test->module~tem_utestenv_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_module program~tem_face_test tem_face_test program~tem_face_test->module~tem_general_module program~tem_face_test->module~tem_utestenv_module module~tem_abortcriteria_module->module~tem_convergence_module program~tem_face_test~2 tem_face_test program~tem_face_test~2->module~tem_general_module program~tem_face_test~2->module~tem_utestenv_module module~tem_utestenv_module->module~tem_general_module program~tem_face_test~3 tem_face_test program~tem_face_test~3->module~tem_general_module program~tem_face_test~3->module~tem_utestenv_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_general_module program~tem_varsys_opvar_test->module~tem_utestenv_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: tem_stat_nFlags =10

Number of available status flags.

integer, public, parameter:: tem_stat_interval =1

Indicator for the overall steering interval to being reached.

integer, public, parameter:: tem_stat_steady_state =2

A steady state condition has been reached.

integer, public, parameter:: tem_stat_run_terminate =3

The application is to terminate abnormally.

integer, public, parameter:: tem_stat_global_error =4

Some global error occurred.

integer, public, parameter:: tem_stat_nan_detected =5

A NaN was detected during the computation.

integer, public, parameter:: tem_stat_nonPhysical =6

A non-physical state was detected during the computation.

integer, public, parameter:: tem_stat_max_sim =7

The maximal simulation time has been reached.

integer, public, parameter:: tem_stat_max_iter =8

The maximal number of iterations has been reached.

integer, public, parameter:: tem_stat_max_clock =9

The maximall wall-clock time was reached.

integer, public, parameter:: tem_stat_stop_file =10

A stop file was encountered.


Derived Types

type, public :: tem_status_type

Define an array to hold all status flags

Components

TypeVisibilityAttributesNameInitial
integer, private :: check_request =MPI_REQUEST_NULL
logical, private :: bits(tem_stat_nFlags) =.false.
logical, private :: oldbits(tem_stat_nFlags) =.false.

Functions

public function tem_status_run_end(me) result(run_end)

Decide if the simulation run should end based on the status flags.

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(in) :: me

Status to check if the run has to end.

Return Value logical

Result indicating if the run should come to a regular end.

public function tem_status_run_terminate(me) result(run_terminate)

Decide if the simulation run should abnormally terminate based on the status flags.

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(in) :: me

Status to check for an extraordinary termination of the run.

Return Value logical

Result indicating if the run should com to an irregular end.


Subroutines

public subroutine tem_status_clear(me)

Clear (unset) all status bits.

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(inout) :: me

Status type to initialize.

public subroutine tem_status_dump(me, outUnit)

Write the status in me to outUnit.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(in) :: me

Status to write on outunit.

integer, intent(in) :: outUnit

The file unit to write to.

public subroutine tem_status_communicate(me, comm)

Perform the communication of status bits

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(inout) :: me

Status to communicate.

integer, intent(in) :: comm

Communicator to use for the MPI reduction operation.

public subroutine tem_status_communicate_delayed(me, comm)

Perform the communication of status bits with a nonblocking allreduce resulting in an delayed communication by one check_iter interval.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_status_type), intent(inout) :: me
integer, intent(in) :: comm

Communicator to use for the MPI reduction operation.