PartMC  2.6.1
Data Types | Functions/Subroutines
pmc_gas_state Module Reference

The gas_state_t structure and associated subroutines. More...

Data Types

type  gas_state_t
 Current state of the gas mixing ratios in the system. More...
 

Functions/Subroutines

logical function gas_state_is_allocated (gas_state)
 Determine whether the gas_state is correctly allocated. More...
 
subroutine gas_state_set_size (gas_state, n_spec)
 Sets the sizes of the gas state. More...
 
subroutine gas_state_zero (gas_state)
 Zeros the state. More...
 
subroutine gas_state_scale (gas_state, alpha)
 Scale a gas state. More...
 
subroutine gas_state_add (gas_state, gas_state_delta)
 Adds the given gas_state_delta. More...
 
subroutine gas_state_add_scaled (gas_state, gas_state_delta, alpha)
 Adds the given gas_state_delta scaled by alpha. More...
 
subroutine gas_state_sub (gas_state, gas_state_delta)
 Subtracts the given gas_state_delta. More...
 
subroutine gas_state_ensure_nonnegative (gas_state)
 Set any negative values to zero. More...
 
subroutine gas_state_mole_dens_to_ppb (gas_state, env_state)
 Convert (mol m^{-3}) to (ppb). More...
 
subroutine gas_state_interp_1d (gas_state_list, time_list, rate_list, time, gas_state, rate)
 Determine the current gas_state and rate by interpolating at the current time with the lists of gas_states and rates. More...
 
subroutine gas_state_mix (val)
 Average val over all processes. More...
 
subroutine gas_state_reduce_avg (val)
 Average val over all processes, with the result only on the root process. More...
 
integer function pmc_mpi_pack_size_gas_state (val)
 Determines the number of bytes required to pack the given value. More...
 
subroutine pmc_mpi_pack_gas_state (buffer, position, val)
 Packs the given value into the buffer, advancing position. More...
 
subroutine pmc_mpi_unpack_gas_state (buffer, position, val)
 Unpacks the given value from the buffer, advancing position. More...
 
subroutine pmc_mpi_reduce_avg_gas_state (val, val_avg)
 Computes the average of val across all processes, storing the result in val_avg on the root process. More...
 
subroutine gas_state_input_netcdf (gas_state, ncid, gas_data)
 Read full state. More...
 

Detailed Description

The gas_state_t structure and associated subroutines.

Function/Subroutine Documentation

◆ gas_state_add()

subroutine pmc_gas_state::gas_state_add ( type(gas_state_t), intent(inout)  gas_state,
type(gas_state_t), intent(in)  gas_state_delta 
)

Adds the given gas_state_delta.

Parameters
[in,out]gas_stateExisting gas state.
[in]gas_state_deltaIncremental state.

Definition at line 101 of file gas_state.F90.

◆ gas_state_add_scaled()

subroutine pmc_gas_state::gas_state_add_scaled ( type(gas_state_t), intent(inout)  gas_state,
type(gas_state_t), intent(in)  gas_state_delta,
real(kind=dp), intent(in)  alpha 
)

Adds the given gas_state_delta scaled by alpha.

Does gas_state += alpha * gas_state_delta.

Parameters
[in,out]gas_stateExisting gas state.
[in]gas_state_deltaIncremental state.
[in]alphaScale factor.

Definition at line 123 of file gas_state.F90.

◆ gas_state_ensure_nonnegative()

subroutine pmc_gas_state::gas_state_ensure_nonnegative ( type(gas_state_t gas_state)

Set any negative values to zero.

Parameters
gas_stateGas state.

Definition at line 166 of file gas_state.F90.

◆ gas_state_input_netcdf()

subroutine pmc_gas_state::gas_state_input_netcdf ( type(gas_state_t), intent(inout)  gas_state,
integer, intent(in)  ncid,
type(gas_data_t), intent(in)  gas_data 
)

Read full state.

Parameters
[in,out]gas_stateGas state to read.
[in]ncidNetCDF file ID, in data mode.
[in]gas_dataGas data.

Definition at line 629 of file gas_state.F90.

◆ gas_state_interp_1d()

subroutine pmc_gas_state::gas_state_interp_1d ( type(gas_state_t), dimension(:), intent(in)  gas_state_list,
real(kind=dp), dimension(size(gas_state_list)), intent(in)  time_list,
real(kind=dp), dimension(size(gas_state_list)), intent(in)  rate_list,
real(kind=dp), intent(in)  time,
type(gas_state_t), intent(inout)  gas_state,
real(kind=dp), intent(out)  rate 
)

Determine the current gas_state and rate by interpolating at the current time with the lists of gas_states and rates.

Parameters
[in]gas_state_listGas states.
[in]time_listTimes (s).
[in]rate_listRates (s^{-1}).
[in]timeCurrent time (s).
[in,out]gas_stateCurrent gas state.
[out]rateCurrent rate (s^{-1}).

Definition at line 245 of file gas_state.F90.

◆ gas_state_is_allocated()

logical function pmc_gas_state::gas_state_is_allocated ( type(gas_state_t), intent(in)  gas_state)

Determine whether the gas_state is correctly allocated.

Parameters
[in]gas_stateGas state to check.

Definition at line 43 of file gas_state.F90.

◆ gas_state_mix()

subroutine pmc_gas_state::gas_state_mix ( type(gas_state_t), intent(inout)  val)

Average val over all processes.

Parameters
[in,out]valValue to average.

Definition at line 479 of file gas_state.F90.

◆ gas_state_mole_dens_to_ppb()

subroutine pmc_gas_state::gas_state_mole_dens_to_ppb ( type(gas_state_t), intent(inout)  gas_state,
type(env_state_t), intent(in)  env_state 
)

Convert (mol m^{-3}) to (ppb).

Parameters
[in,out]gas_stateGas state.
[in]env_stateEnvironment state.

Definition at line 180 of file gas_state.F90.

◆ gas_state_reduce_avg()

subroutine pmc_gas_state::gas_state_reduce_avg ( type(gas_state_t), intent(inout)  val)

Average val over all processes, with the result only on the root process.

Parameters
[in,out]valValue to average.

Definition at line 498 of file gas_state.F90.

◆ gas_state_scale()

subroutine pmc_gas_state::gas_state_scale ( type(gas_state_t), intent(inout)  gas_state,
real(kind=dp), intent(in)  alpha 
)

Scale a gas state.

Parameters
[in,out]gas_stateExisting gas state.
[in]alphaScale factor.

Definition at line 85 of file gas_state.F90.

◆ gas_state_set_size()

subroutine pmc_gas_state::gas_state_set_size ( type(gas_state_t), intent(inout)  gas_state,
integer, intent(in)  n_spec 
)

Sets the sizes of the gas state.

Parameters
[in,out]gas_stateGas state to be allocated.
[in]n_specNumber of species.

Definition at line 55 of file gas_state.F90.

◆ gas_state_sub()

subroutine pmc_gas_state::gas_state_sub ( type(gas_state_t), intent(inout)  gas_state,
type(gas_state_t), intent(in)  gas_state_delta 
)

Subtracts the given gas_state_delta.

Parameters
[in,out]gas_stateExisting gas state.
[in]gas_state_deltaIncremental state.

Definition at line 146 of file gas_state.F90.

◆ gas_state_zero()

subroutine pmc_gas_state::gas_state_zero ( type(gas_state_t), intent(inout)  gas_state)

Zeros the state.

Parameters
[in,out]gas_stateGas state.

Definition at line 71 of file gas_state.F90.

◆ pmc_mpi_pack_gas_state()

subroutine pmc_gas_state::pmc_mpi_pack_gas_state ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(gas_state_t), intent(in)  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 531 of file gas_state.F90.

◆ pmc_mpi_pack_size_gas_state()

integer function pmc_gas_state::pmc_mpi_pack_size_gas_state ( type(gas_state_t), intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 518 of file gas_state.F90.

◆ pmc_mpi_reduce_avg_gas_state()

subroutine pmc_gas_state::pmc_mpi_reduce_avg_gas_state ( type(gas_state_t), intent(in)  val,
type(gas_state_t), intent(inout)  val_avg 
)

Computes the average of val across all processes, storing the result in val_avg on the root process.

Parameters
[in]valValue to average.
[in,out]val_avgResult.

Definition at line 578 of file gas_state.F90.

◆ pmc_mpi_unpack_gas_state()

subroutine pmc_gas_state::pmc_mpi_unpack_gas_state ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(gas_state_t), intent(inout)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 554 of file gas_state.F90.