PartMC  2.6.1
Functions/Subroutines | Variables
pmc_output Module Reference

Write data in NetCDF format. More...

Functions/Subroutines

subroutine output_state (prefix, output_type, aero_data, aero_state, gas_data, gas_state, env_state, index, time, del_t, i_repeat, record_removals, record_optical, uuid)
 Write the current state. More...
 
subroutine make_filename (filename, prefix, suffix, index, i_repeat, write_rank, write_n_proc)
 Make a filename from a given prefix and other information. More...
 
subroutine write_time (ncid, time, del_t, index)
 Helper routine to write time variables. Do not call directly. More...
 
subroutine send_output_state_central (aero_state, gas_state, env_state)
 Send the state for the "central" output method to the root process. More...
 
subroutine recv_output_state_central (prefix, aero_data, gas_data, index, time, del_t, i_repeat, record_removals, record_optical, uuid, remote_proc)
 Receive the state for the "central" output method on the root process. More...
 
subroutine input_state (filename, index, time, del_t, i_repeat, uuid, aero_data, aero_state, gas_data, gas_state, env_state)
 Read the current state. More...
 
subroutine input_filename_list (prefix, filename_list)
 Find all NetCDF (.nc) filenames that match the given prefix. More...
 
subroutine input_n_files (prefix, n_repeat, n_index)
 Find the number of repeats and indices for the given prefix. More...
 
subroutine output_sectional (prefix, bin_grid, aero_data, aero_binned, gas_data, gas_state, env_state, index, time, del_t, uuid)
 Write the current sectional data. More...
 
subroutine input_sectional (filename, index, time, del_t, uuid, bin_grid, aero_data, aero_binned, gas_data, gas_state, env_state)
 Input sectional data. More...
 

Variables

character(len=100), parameter partmc_version = "2.6.1"
 PartMC verson number. More...
 
integer, parameter output_type_invalid = 0
 Type code for undefined or invalid output. More...
 
integer, parameter output_type_central = 1
 Type code for centralized output (one file per process, all written by process 0). More...
 
integer, parameter output_type_dist = 2
 Type code for distributed output (one file per process, written by each process). More...
 
integer, parameter output_type_single = 3
 Type code for single output (one file for all processes, written by process 0). More...
 
integer, parameter tag_output_state_central = 4341
 Internal-use variable only. More...
 
integer, parameter tag_output_state_single = 4342
 Internal-use variable only. More...
 

Detailed Description

Write data in NetCDF format.

Function/Subroutine Documentation

◆ input_filename_list()

subroutine pmc_output::input_filename_list ( character(len=*), intent(in)  prefix,
character(len=*), dimension(:), intent(inout), allocatable  filename_list 
)

Find all NetCDF (.nc) filenames that match the given prefix.

Parameters
[in]prefixFilename prefix to search for.
[in,out]filename_listFilename list.

Definition at line 567 of file output.F90.

◆ input_n_files()

subroutine pmc_output::input_n_files ( character(len=*), intent(in)  prefix,
integer, intent(out)  n_repeat,
integer, intent(out)  n_index 
)

Find the number of repeats and indices for the given prefix.

Parameters
[in]prefixFilename prefix to search for.
[out]n_repeatNumber of repeats found.
[out]n_indexNumber of indices found.

Definition at line 608 of file output.F90.

◆ input_sectional()

subroutine pmc_output::input_sectional ( character(len=*), intent(in)  filename,
integer, intent(out)  index,
real(kind=dp), intent(out)  time,
real(kind=dp), intent(out)  del_t,
character(len=pmc_uuid_len), intent(out)  uuid,
type(bin_grid_t), intent(inout), optional  bin_grid,
type(aero_data_t), intent(inout), optional  aero_data,
type(aero_binned_t), intent(inout), optional  aero_binned,
type(gas_data_t), intent(inout), optional  gas_data,
type(gas_state_t), intent(inout), optional  gas_state,
type(env_state_t), intent(inout), optional  env_state 
)

Input sectional data.

Parameters
[in]filenameFilename to read.
[out]indexFilename index.
[out]timeCurrent time (s).
[out]del_tCurrent output time-step (s).
[out]uuidUUID of the simulation.
[in,out]bin_gridBin grid.
[in,out]aero_dataAerosol data.
[in,out]aero_binnedBinned aerosol data.
[in,out]gas_dataGas data.
[in,out]gas_stateGas state.
[in,out]env_stateEnvironment state.

Definition at line 714 of file output.F90.

◆ input_state()

subroutine pmc_output::input_state ( character(len=*), intent(in)  filename,
integer, intent(out)  index,
real(kind=dp), intent(out)  time,
real(kind=dp), intent(out)  del_t,
integer, intent(out)  i_repeat,
character(len=pmc_uuid_len), intent(out)  uuid,
type(aero_data_t), intent(inout), optional  aero_data,
type(aero_state_t), intent(inout), optional  aero_state,
type(gas_data_t), intent(inout), optional  gas_data,
type(gas_state_t), intent(inout), optional  gas_state,
type(env_state_t), intent(inout), optional  env_state 
)

Read the current state.

Parameters
[in]filenamePrefix of state file.
[out]indexFilename index.
[out]timeCurrent time (s).
[out]del_tCurrent timestep (s).
[out]i_repeatCurrent repeat number.
[out]uuidUUID of the simulation.
[in,out]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in,out]gas_dataGas data.
[in,out]gas_stateGas state.
[in,out]env_stateEnvironment state.

Definition at line 496 of file output.F90.

◆ make_filename()

subroutine pmc_output::make_filename ( character(len=*), intent(out)  filename,
character(len=*), intent(in)  prefix,
character(len=*), intent(in)  suffix,
integer, intent(in), optional  index,
integer, intent(in), optional  i_repeat,
integer, intent(in), optional  write_rank,
integer, intent(in), optional  write_n_proc 
)

Make a filename from a given prefix and other information.

Parameters
[out]filenameFilename to create.
[in]prefixFilename prefix.
[in]suffixFilename suffix.
[in]indexFilename index.
[in]i_repeatCurrent repeat number.
[in]write_rankRank to write into file.
[in]write_n_procNumber of processes to write into file.

Definition at line 207 of file output.F90.

◆ output_sectional()

subroutine pmc_output::output_sectional ( character(len=*), intent(in)  prefix,
type(bin_grid_t), intent(in)  bin_grid,
type(aero_data_t), intent(in)  aero_data,
type(aero_binned_t), intent(in)  aero_binned,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state,
type(env_state_t), intent(in)  env_state,
integer, intent(in)  index,
real(kind=dp), intent(in)  time,
real(kind=dp), intent(in)  del_t,
character(len=pmc_uuid_len), intent(in)  uuid 
)

Write the current sectional data.

Parameters
[in]prefixPrefix of filename to write
[in]bin_gridBin grid.
[in]aero_dataAerosol data.
[in]aero_binnedBinned aerosol data.
[in]gas_dataGas data.
[in]gas_stateGas state.
[in]env_stateEnvironment state.
[in]indexFilename index.
[in]timeCurrent time (s).
[in]del_tCurrent output time-step (s).
[in]uuidUUID of the simulation.

Definition at line 663 of file output.F90.

◆ output_state()

subroutine pmc_output::output_state ( character(len=*), intent(in)  prefix,
integer, intent(in)  output_type,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(in)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state,
type(env_state_t), intent(in)  env_state,
integer, intent(in)  index,
real(kind=dp), intent(in)  time,
real(kind=dp), intent(in)  del_t,
integer, intent(in)  i_repeat,
logical, intent(in)  record_removals,
logical, intent(in)  record_optical,
character(len=pmc_uuid_len), intent(in)  uuid 
)

Write the current state.

Parameters
[in]prefixPrefix of state file.
[in]output_typeOutput type for parallel runs (see module constants).
[in]aero_dataAerosol data.
[in]aero_stateAerosol state.
[in]gas_dataGas data.
[in]gas_stateGas state.
[in]env_stateEnvironment state.
[in]indexFilename index.
[in]timeCurrent time (s).
[in]del_tCurrent timestep (s).
[in]i_repeatCurrent repeat number.
[in]record_removalsWhether to output particle removal info.
[in]record_opticalWhether to output aerosol optical properties.
[in]uuidUUID of the simulation.

Definition at line 109 of file output.F90.

◆ recv_output_state_central()

subroutine pmc_output::recv_output_state_central ( character(len=*), intent(in)  prefix,
type(aero_data_t), intent(in)  aero_data,
type(gas_data_t), intent(in)  gas_data,
integer, intent(in)  index,
real(kind=dp), intent(in)  time,
real(kind=dp), intent(in)  del_t,
integer, intent(in)  i_repeat,
logical, intent(in)  record_removals,
logical, intent(in)  record_optical,
character(len=pmc_uuid_len), intent(in)  uuid,
integer, intent(in)  remote_proc 
)

Receive the state for the "central" output method on the root process.

Parameters
[in]prefixPrefix of state file.
[in]aero_dataAerosol data.
[in]gas_dataGas data.
[in]indexFilename index.
[in]timeCurrent time (s).
[in]del_tCurrent timestep (s).
[in]i_repeatCurrent repeat number.
[in]record_removalsWhether to output particle removal info.
[in]record_opticalWhether to output aerosol_optical_properties.
[in]uuidUUID of the simulation.
[in]remote_procProcess number to receive from.

Definition at line 427 of file output.F90.

◆ send_output_state_central()

subroutine pmc_output::send_output_state_central ( type(aero_state_t), intent(in)  aero_state,
type(gas_state_t), intent(in)  gas_state,
type(env_state_t), intent(in)  env_state 
)

Send the state for the "central" output method to the root process.

Parameters
[in]aero_stateAerosol state.
[in]gas_stateGas state.
[in]env_stateEnvironment state.

Definition at line 386 of file output.F90.

◆ write_time()

subroutine pmc_output::write_time ( integer, intent(in)  ncid,
real(kind=dp), intent(in)  time,
real(kind=dp), intent(in)  del_t,
integer, intent(in)  index 
)

Helper routine to write time variables. Do not call directly.

Parameters
[in]ncidNetCDF file ID, in data mode.
[in]timeCurrent time (s).
[in]del_tCurrent timestep (s).
[in]indexFilename index.

Definition at line 253 of file output.F90.

Variable Documentation

◆ output_type_central

integer, parameter pmc_output::output_type_central = 1

Type code for centralized output (one file per process, all written by process 0).

Definition at line 91 of file output.F90.

◆ output_type_dist

integer, parameter pmc_output::output_type_dist = 2

Type code for distributed output (one file per process, written by each process).

Definition at line 94 of file output.F90.

◆ output_type_invalid

integer, parameter pmc_output::output_type_invalid = 0

Type code for undefined or invalid output.

Definition at line 88 of file output.F90.

◆ output_type_single

integer, parameter pmc_output::output_type_single = 3

Type code for single output (one file for all processes, written by process 0).

Definition at line 97 of file output.F90.

◆ partmc_version

character(len=100), parameter pmc_output::partmc_version = "2.6.1"

PartMC verson number.

Definition at line 85 of file output.F90.

◆ tag_output_state_central

integer, parameter pmc_output::tag_output_state_central = 4341

Internal-use variable only.

Definition at line 100 of file output.F90.

◆ tag_output_state_single

integer, parameter pmc_output::tag_output_state_single = 4342

Internal-use variable only.

Definition at line 102 of file output.F90.