|
MONC
|
Performs instantaneous time manipulation and only returns a value if the output frequency determines one should be. More...
Functions/Subroutines | |
| subroutine, public | init_instantaneous_manipulation () |
| Initialises the instantaneous time manipulation. More... | |
| subroutine, public | finalise_instantaneous_manipulation () |
| Finalises the instantaneous time manipulation. More... | |
| logical function, public | is_instantaneous_time_manipulation_ready_to_write (latest_time, output_frequency, write_time, latest_timestep, write_timestep) |
| type(data_values_type) function, public | perform_instantaneous_time_manipulation (instant_values, output_frequency, field_name, timestep, time) |
| Performs the instantaneous time manipulation and returns data only if this is to be written to the storage. Internally a state is maintained which tracks when the write was last done to allow for flexibility in the time criteria. More... | |
| logical function | deduce_whether_to_issue_values (field_name, output_frequency, time) |
| Determines whether to issue values for write or not. This depends on the time and output frequency. More... | |
| integer(kind=8) function, public | prepare_to_serialise_instantaneous_state () |
| Prepares to serialise the instantaneous state, both determines the byte storage size and issues any locks. More... | |
| subroutine, public | serialise_instantaneous_state (byte_data) |
| Will serialise the state of this manipulator so that it can be later restarted. Any locks issued during preparation are released here. More... | |
| subroutine, public | unserialise_instantaneous_state (byte_data) |
| Unpacks some serialised byte data to initialise this manipulator to some previous state. More... | |
Variables | |
| integer, volatile | existing_instantaneous_writes_mutex |
| type(hashmap_type), volatile | existing_instantaneous_writes |
Performs instantaneous time manipulation and only returns a value if the output frequency determines one should be.
|
private |
Determines whether to issue values for write or not. This depends on the time and output frequency.
| field_name | The field name that we are manipulating |
| output_frequency | Configured output time frequency |
| time | The current model time |
Definition at line 74 of file instantaneous_manipulation.F90.

| subroutine, public instantaneous_time_manipulation_mod::finalise_instantaneous_manipulation | ( | ) |
Finalises the instantaneous time manipulation.
Definition at line 34 of file instantaneous_manipulation.F90.


| subroutine, public instantaneous_time_manipulation_mod::init_instantaneous_manipulation | ( | ) |
Initialises the instantaneous time manipulation.
Definition at line 29 of file instantaneous_manipulation.F90.


| logical function, public instantaneous_time_manipulation_mod::is_instantaneous_time_manipulation_ready_to_write | ( | real, intent(in) | latest_time, |
| real, intent(in) | output_frequency, | ||
| real, intent(in) | write_time, | ||
| integer, intent(in) | latest_timestep, | ||
| integer, intent(in) | write_timestep | ||
| ) |
Definition at line 39 of file instantaneous_manipulation.F90.
| type(data_values_type) function, public instantaneous_time_manipulation_mod::perform_instantaneous_time_manipulation | ( | real(kind=default_precision), dimension(:), intent(in) | instant_values, |
| real, intent(in) | output_frequency, | ||
| character(len=*), intent(in) | field_name, | ||
| integer, intent(in) | timestep, | ||
| real(kind=default_precision), intent(in) | time | ||
| ) |
Performs the instantaneous time manipulation and returns data only if this is to be written to the storage. Internally a state is maintained which tracks when the write was last done to allow for flexibility in the time criteria.
| instant_values | The instantaneous values to work with |
| output_frequency | The output frequency configuration option |
| field_name | The field name |
| timestep | The timestep |
| time | The model time |
Definition at line 56 of file instantaneous_manipulation.F90.

| integer(kind=8) function, public instantaneous_time_manipulation_mod::prepare_to_serialise_instantaneous_state | ( | ) |
Prepares to serialise the instantaneous state, both determines the byte storage size and issues any locks.
Definition at line 100 of file instantaneous_manipulation.F90.

| subroutine, public instantaneous_time_manipulation_mod::serialise_instantaneous_state | ( | character, dimension(:), intent(inout), allocatable | byte_data | ) |
Will serialise the state of this manipulator so that it can be later restarted. Any locks issued during preparation are released here.
| byte_data | The state of this manipulator is written into here |
Definition at line 111 of file instantaneous_manipulation.F90.


| subroutine, public instantaneous_time_manipulation_mod::unserialise_instantaneous_state | ( | character, dimension(:), intent(in), allocatable | byte_data | ) |
Unpacks some serialised byte data to initialise this manipulator to some previous state.
| byte_data | The byte data to unpack and reinitialise from |
Definition at line 131 of file instantaneous_manipulation.F90.


|
private |
Definition at line 20 of file instantaneous_manipulation.F90.
|
private |
Definition at line 19 of file instantaneous_manipulation.F90.
1.8.14