MONC
Modules | Functions/Subroutines | Variables
netcdf_filetype.F90 File Reference

Go to the source code of this file.

Modules

module  netcdf_filetype_writer_mod
 The NetCDF file type writer which performs actual writing of NetCDF files to the parallel filesystem. These are opened by all IO servers and all IO servers can participate as variables might be located across the different IO processes.
 

Functions/Subroutines

subroutine, public netcdf_filetype_writer_mod::initialise_netcdf_filetype ()
 Initialises the NetCDF writing functionality. More...
 
subroutine, public netcdf_filetype_writer_mod::finalise_netcdf_filetype ()
 Finalises the NetCDF writing functionality. More...
 
subroutine, public netcdf_filetype_writer_mod::define_netcdf_file (io_configuration, file_writer_information, timestep, time, time_points, termination_write)
 Defines a NetCDF file - which creates it, defines all dimensions and variables. This must be called by all IO server processes as the NetCDF operations here are collective. More...
 
subroutine, public netcdf_filetype_writer_mod::store_io_server_state (io_configuration, writer_entries, time_points, file_writer_information, timestep)
 Stores the IO server state in the NetCDF file. More...
 
type(writer_type) function, pointer, public netcdf_filetype_writer_mod::get_writer_entry_from_netcdf (field_name, timestep, terminated)
 Looks up and retrieves the writer entry that corresponds to this NetCDF file state. More...
 
subroutine, public netcdf_filetype_writer_mod::close_netcdf_file (io_configuration, field_name, timestep)
 Call back for the inter IO reduction which actually does the NetCDF file closing which is a collective (synchronous) operation. This also cleans up the file state as it is no longer required. More...
 
subroutine, public netcdf_filetype_writer_mod::write_variable (io_configuration, field_to_write_information, filename, timestep, time)
 Writes the contents of a variable to the NetCDF file. This also removes the written entries from the field information type in order to conserve memory. More...
 
integer function netcdf_filetype_writer_mod::get_dimension_identifier (dim_name, is_auto_dimension)
 Translates a dimension name to its numeric corresponding identifier. More...
 
integer function netcdf_filetype_writer_mod::get_dimension_original_size (dim_name, dimension_store)
 Retrieves the original size of a specific dimension (which is auto) More...
 
subroutine netcdf_filetype_writer_mod::write_coordinate_variable (file_state, coord_var_id, field_values)
 Writes a coordinate variable into the NetCDF file. More...
 
subroutine netcdf_filetype_writer_mod::write_condition_variable (file_state, c_var_id, field_values)
 Writes the conditional diagnostic variable names into the NetCDF file. More...
 
subroutine netcdf_filetype_writer_mod::write_contiguous_collective_variable_to_diagnostics (io_configuration, field_to_write_information, timestep, time, file_state)
 Writes contiguous collective variable blocks into the NetCDF files. These are blocks of data spanning multiple variables and multiple time points, the idea being to minimise the number of overall writes into the file. These variables are defined collective, so it might be that other IO servers have less contiguous data and hence more writes, therefore empty writes might need to be issued (at the end) to match up against these other servers. More...
 
type(write_field_collective_descriptor_type) function, pointer netcdf_filetype_writer_mod::get_next_collective_descriptor (iterator)
 Retrieves the next collective descriptor based upon the iterator. More...
 
type(write_field_collective_monc_info_type) function, pointer netcdf_filetype_writer_mod::get_next_specific_monc_info (iterator)
 Retrieves the next specific monc information item from the iterator. More...
 
subroutine netcdf_filetype_writer_mod::write_collective_variable_to_diagnostics (io_configuration, field_to_write_information, timestep, time, file_state)
 Writes collective variables, where we are working with the values from multiple MONCs and storing these in their own specific relative location in the diagnostics file. More...
 
subroutine netcdf_filetype_writer_mod::write_independent_variable_to_diagnostics (field_to_write_information, timestep, time, file_state)
 Writes independent variables to the diagnostics file. This writes the entire variable and works by writing all the memory up and then doing the write in one call. More...
 
subroutine netcdf_filetype_writer_mod::write_out_number_values (field_to_write_information, timestep, time, file_state)
 
subroutine netcdf_filetype_writer_mod::write_out_map (field_to_write_information, timestep, time, file_state)
 
subroutine netcdf_filetype_writer_mod::write_out_options (io_configuration, file_state)
 Writes out the options_database defining this model run. More...
 
subroutine netcdf_filetype_writer_mod::define_time_series_dimensions (file_state, file_writer_information, time, time_points, termination_write)
 Defines dimensions for all required dimensions. This is usually the number required plus one, but in some cases is entirely required depending how the output frequency and diagnostics write times match up. More...
 
integer function netcdf_filetype_writer_mod::get_number_timeseries_entries (time_points, previous_write_time, output_frequency, timestep_frequency, termination_write, last_write_entry)
 Retrieves the number of timeseries entries for a specific frequency and previous write time. This is based on the range of time points that are provided to the call. More...
 
integer function netcdf_filetype_writer_mod::define_coordinate_variable (file_state, coord_name)
 Defines a coordinate variable in the NetCDF file. More...
 
integer function netcdf_filetype_writer_mod::define_options_database_variable (file_state)
 Defines the options_database variable in the NetCDF file. More...
 
subroutine netcdf_filetype_writer_mod::define_variables (io_configuration, file_state, file_writer_information)
 Defines all variables in the file writer state. More...
 
integer function netcdf_filetype_writer_mod::retrieve_time_series_dimension_id_for_field (file_state, file_writer_information, field_index)
 For a specific field will retrieve the NetCDF id of the time series dimension most appropriate for this field. If a dimension can not be located then an error is raised. More...
 
type(netcdf_diagnostics_timeseries_type) function, pointer netcdf_filetype_writer_mod::get_specific_timeseries_dimension (file_state, output_frequency, timestep_frequency)
 Given the file state and the output frequency of a field will retrive the appropriate time series dimension entry that corresponds to this or null if none can be found. More...
 
subroutine netcdf_filetype_writer_mod::define_dimensions (file_state, dimension_sizing)
 Defines spatial dimensions in the diagnostics file. More...
 
type(netcdf_diagnostics_type) function, pointer netcdf_filetype_writer_mod::get_file_state (filename, timestep, dolock)
 Retrieves a file state based upon its timestep or null if none is found. More...
 
character(len=string_length) function netcdf_filetype_writer_mod::get_field_key (field_to_write_information)
 Retrieves the field key, corresponding to the field name in the NetCDF file and what we store against the id in the NetCDF file state internally. This is either the field name itself or the manipulation type appended if there is duplication. More...
 
subroutine netcdf_filetype_writer_mod::generate_unique_filename (old_name, new_name, configured_write_time, timestep)
 Generates a unique filename based upon the base one specified and the number of completed timesteps. More...
 
subroutine netcdf_filetype_writer_mod::write_out_global_attributes (io_configuration, ncid, file_writer_information, timestep, time)
 Writes out global attributes into the checkpoint. More...
 

Variables

type(hashmap_type), volatile netcdf_filetype_writer_mod::file_states
 
integer, volatile netcdf_filetype_writer_mod::file_states_rwlock
 
integer, volatile netcdf_filetype_writer_mod::netcdf_mutex
 
logical netcdf_filetype_writer_mod::l_nc_dim
 
logical netcdf_filetype_writer_mod::l_nd_dim
 
integer netcdf_filetype_writer_mod::nc_dim_id
 
integer netcdf_filetype_writer_mod::nd_dim_id
 
integer netcdf_filetype_writer_mod::nopt_dim_id
 
integer netcdf_filetype_writer_mod::nc_var_id_s
 
integer netcdf_filetype_writer_mod::nd_var_id_s
 
integer netcdf_filetype_writer_mod::nc_var_id_l
 
integer netcdf_filetype_writer_mod::nd_var_id_l
 
integer netcdf_filetype_writer_mod::nopt_var_id