MONC
|
Performs time averaged, time manipulation and only returns a value if the output frequency determines one should be. More...
Data Types | |
type | time_averaged_completed_type |
The completed time averaged values. More... | |
Functions/Subroutines | |
subroutine, public | init_time_averaged_manipulation () |
Initialises the reduction action. More... | |
subroutine, public | finalise_time_averaged_manipulation () |
Finalises the reduction action, waiting for all outstanding requests and then freeing data. More... | |
logical function, public | is_time_averaged_time_manipulation_ready_to_write (latest_time, output_frequency, write_time, latest_timestep, write_timestep) |
type(data_values_type) function, public | perform_timeaveraged_time_manipulation (instant_values, output_frequency, field_name, timestep, time) |
Performs the time averaged manipulation and only returns values if these are to be stored (i.e. past an output frequency) More... | |
subroutine | time_average (timeaveraged_value, instant_values, time) |
Does the time averaging itself. More... | |
integer(kind=8) function, public | prepare_to_serialise_time_averaged_state () |
Prepares to serialise the time averaged state values. Both determines the storage size required and also issue locks. More... | |
subroutine, public | serialise_time_averaged_state (byte_data) |
Serialises the state of this manipulator so that it can be restarted later on. Releases any locks issue during preparation. More... | |
subroutine, public | unserialise_time_averaged_state (byte_data) |
Unserialises some byte data to initialise the state from some previous version. More... | |
integer(kind=8) function | prepare_to_serialise_time_averaged_completed_value (time_av_value) |
Prepares to serialise a time averaged completed value, both determines the storage size and also issue any locks. More... | |
subroutine | serialise_time_averaged_completed_value (time_av_value, byte_data, current_data_point) |
Serialises a specific time averaged completed value, releases any locks issued during preparation. More... | |
type(time_averaged_completed_type) function, pointer | unserialise_time_averaged_completed_value (byte_data) |
Will create a specific time averaged completed value based upon the provided serialised data. More... | |
type(time_averaged_completed_type) function, pointer | find_or_add_timeaveraged_value (timestep, field_name) |
Retrieves or creates (and retrieves) a time averaged value based upon the information provided. More... | |
type(time_averaged_completed_type) function, pointer | find_timeaveraged_value (field_name, issue_read_lock) |
Finds a time averaged value based upon its field name. More... | |
Variables | |
type(hashmap_type), volatile | timeaveraged_values |
integer, volatile | timeaveraged_value_rw_lock |
Performs time averaged, time manipulation and only returns a value if the output frequency determines one should be.
subroutine, public timeaveraged_time_manipulation_mod::finalise_time_averaged_manipulation | ( | ) |
Finalises the reduction action, waiting for all outstanding requests and then freeing data.
io_configuration | Configuration state of the IO server |
Definition at line 46 of file timeaveraged_manipulation.F90.
|
private |
Retrieves or creates (and retrieves) a time averaged value based upon the information provided.
timestep | The corresponding timestep |
field_name | The corresponding field name |
Definition at line 281 of file timeaveraged_manipulation.F90.
|
private |
Finds a time averaged value based upon its field name.
field_name | The corresponding field name |
issue_read_lock | Optional flag whether we should issue a read lock during this operation, if omitted then issues lock |
Definition at line 313 of file timeaveraged_manipulation.F90.
subroutine, public timeaveraged_time_manipulation_mod::init_time_averaged_manipulation | ( | ) |
Initialises the reduction action.
Definition at line 40 of file timeaveraged_manipulation.F90.
logical function, public timeaveraged_time_manipulation_mod::is_time_averaged_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 51 of file timeaveraged_manipulation.F90.
type(data_values_type) function, public timeaveraged_time_manipulation_mod::perform_timeaveraged_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 time averaged manipulation and only returns values if these are to be stored (i.e. past an output frequency)
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 66 of file timeaveraged_manipulation.F90.
|
private |
Prepares to serialise a time averaged completed value, both determines the storage size and also issue any locks.
time_av_value | The time averaged completed value to prepare for serialisation |
Definition at line 214 of file timeaveraged_manipulation.F90.
integer(kind=8) function, public timeaveraged_time_manipulation_mod::prepare_to_serialise_time_averaged_state | ( | ) |
Prepares to serialise the time averaged state values. Both determines the storage size required and also issue locks.
Definition at line 128 of file timeaveraged_manipulation.F90.
|
private |
Serialises a specific time averaged completed value, releases any locks issued during preparation.
time_av_value | The time averaged completed value to serialise |
byte_data | Resulting byte data that holds a representation of this |
current_data_point | The current write point in the byte data, is updated during call so represents next point on return |
Definition at line 228 of file timeaveraged_manipulation.F90.
subroutine, public timeaveraged_time_manipulation_mod::serialise_time_averaged_state | ( | character, dimension(:), intent(inout), allocatable | byte_data | ) |
Serialises the state of this manipulator so that it can be restarted later on. Releases any locks issue during preparation.
byte_data | The byte data that represents the serialised state |
Definition at line 153 of file timeaveraged_manipulation.F90.
|
private |
Does the time averaging itself.
timeaveraged_value | The time averaged value to update |
instant_values | The instant values to integrate in |
time | The model time |
Definition at line 96 of file timeaveraged_manipulation.F90.
|
private |
Will create a specific time averaged completed value based upon the provided serialised data.
byte_data | The serialised byte data to read and initialise from |
Definition at line 250 of file timeaveraged_manipulation.F90.
subroutine, public timeaveraged_time_manipulation_mod::unserialise_time_averaged_state | ( | character, dimension(:), intent(in) | byte_data | ) |
Unserialises some byte data to initialise the state from some previous version.
byte_data | The byte data to read from and initialise from |
Definition at line 188 of file timeaveraged_manipulation.F90.
|
private |
Definition at line 31 of file timeaveraged_manipulation.F90.
|
private |
Definition at line 30 of file timeaveraged_manipulation.F90.