PartMC  2.3.0
Data Types | Public Member Functions | List of all members
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...
 

Public Member Functions

subroutine gas_state_allocate (gas_state)
 Allocate storage for gas species. More...
 
subroutine gas_state_allocate_size (gas_state, n_spec)
 Allocate storage for gas species of the given size. More...
 
subroutine gas_state_deallocate (gas_state)
 Free all storage. More...
 
subroutine gas_state_zero (gas_state)
 Zeros the state. More...
 
subroutine gas_state_copy (from_state, to_state)
 Copy to an already allocated to_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.

Definition at line 9 of file gas_state.F90.

Member Function/Subroutine Documentation

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 120 of file gas_state.F90.

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 136 of file gas_state.F90.

subroutine pmc_gas_state::gas_state_allocate ( type(gas_state_t), intent(out)  gas_state)

Allocate storage for gas species.

Parameters
[out]gas_stateGas state to be allocated.

Definition at line 36 of file gas_state.F90.

subroutine pmc_gas_state::gas_state_allocate_size ( type(gas_state_t), intent(out)  gas_state,
integer, intent(in)  n_spec 
)

Allocate storage for gas species of the given size.

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

Definition at line 48 of file gas_state.F90.

subroutine pmc_gas_state::gas_state_copy ( type(gas_state_t), intent(in)  from_state,
type(gas_state_t), intent(inout)  to_state 
)

Copy to an already allocated to_state.

Parameters
[in]from_stateExisting gas state.
[in,out]to_stateMust be allocated already.

Definition at line 87 of file gas_state.F90.

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

Free all storage.

Parameters
[in,out]gas_stateGas state to be freed.

Definition at line 63 of file gas_state.F90.

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.

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 597 of file gas_state.F90.

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 194 of file gas_state.F90.

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 445 of file gas_state.F90.

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 178 of file gas_state.F90.

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 465 of file gas_state.F90.

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 106 of file gas_state.F90.

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 152 of file gas_state.F90.

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 75 of file gas_state.F90.

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 499 of file gas_state.F90.

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 486 of file gas_state.F90.

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 546 of file gas_state.F90.

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 522 of file gas_state.F90.


The documentation for this module was generated from the following file: