PartMC  2.6.1
Data Types | Functions/Subroutines
pmc_aero_binned Module Reference

The aero_binned_t structure and associated subroutines. More...

Data Types

type  aero_binned_t
 Aerosol number and volume distributions stored per bin. More...
 

Functions/Subroutines

logical function aero_binned_is_allocated (aero_binned)
 Determine whether the aero_binned is correctly allocated. More...
 
subroutine aero_binned_set_sizes (aero_binned, n_bin, n_spec)
 Set the number of bins and species in an aero_binned_t. More...
 
subroutine aero_binned_zero (aero_binned)
 Set all internal data in an aero_binned_t structure to zero. More...
 
subroutine aero_binned_add (aero_binned, aero_binned_delta)
 Add two aero_binned_t structures together. More...
 
subroutine aero_binned_add_scaled (aero_binned, aero_binned_delta, alpha)
 Add a scaled aero_binned_t structure to an existing one. More...
 
subroutine aero_binned_sub (aero_binned, aero_binned_delta)
 Subtract one aero_binned_t structure from another. More...
 
subroutine aero_binned_scale (aero_binned, alpha)
 Scale an aero_binned_t by a real number. More...
 
subroutine aero_binned_scale_by_array (aero_binned, alpha_array)
 Scales an aero_binned_t element-wise by an array of reals. More...
 
subroutine aero_binned_add_aero_dist (aero_binned, bin_grid, aero_data, aero_dist)
 Add an aero_dist_t to an aero_binned_t. More...
 
integer function pmc_mpi_pack_size_aero_binned (val)
 Determine the number of bytes required to pack the structure. More...
 
subroutine pmc_mpi_pack_aero_binned (buffer, position, val)
 Pack the structure into the buffer and advance position. More...
 
subroutine pmc_mpi_unpack_aero_binned (buffer, position, val)
 Unpack the structure from the buffer and advance position. More...
 
subroutine pmc_mpi_reduce_avg_aero_binned (val, val_avg)
 Computes the average of the structure across all processes, storing the result on the root process. More...
 
subroutine aero_binned_input_netcdf (aero_binned, ncid, bin_grid, aero_data)
 Read full state. More...
 

Detailed Description

The aero_binned_t structure and associated subroutines.

Function/Subroutine Documentation

◆ aero_binned_add()

subroutine pmc_aero_binned::aero_binned_add ( type(aero_binned_t), intent(inout)  aero_binned,
type(aero_binned_t), intent(in)  aero_binned_delta 
)

Add two aero_binned_t structures together.

Symbolically does aero_binned = aero_binned + aero_binned_delta.

Parameters
[in,out]aero_binnedBase aero_binned_t structure that will be added to.
[in]aero_binned_deltaStructure to add to aero_binned.

Definition at line 109 of file aero_binned.F90.

◆ aero_binned_add_aero_dist()

subroutine pmc_aero_binned::aero_binned_add_aero_dist ( type(aero_binned_t), intent(inout)  aero_binned,
type(bin_grid_t), intent(in)  bin_grid,
type(aero_data_t), intent(in)  aero_data,
type(aero_dist_t), intent(in)  aero_dist 
)

Add an aero_dist_t to an aero_binned_t.

Symbolically does aero_binned = aero_binned + aero_dist.

Parameters
[in,out]aero_binnedBase aero_binned_t structure to add to.
[in]bin_gridBin grid.
[in]aero_dataAerosol data.
[in]aero_distThe aero_dist_t structure to add.

Definition at line 227 of file aero_binned.F90.

◆ aero_binned_add_scaled()

subroutine pmc_aero_binned::aero_binned_add_scaled ( type(aero_binned_t), intent(inout)  aero_binned,
type(aero_binned_t), intent(in)  aero_binned_delta,
real(kind=dp), intent(in)  alpha 
)

Add a scaled aero_binned_t structure to an existing one.

Symbolically does aero_binned = aero_binned + alpha * aero_binned_delta.

Parameters
[in,out]aero_binnedBase aero_binned_t structure that will be added to.
[in]aero_binned_deltaStructure to add to aero_binned.
[in]alphaScale factor.

Definition at line 135 of file aero_binned.F90.

◆ aero_binned_input_netcdf()

subroutine pmc_aero_binned::aero_binned_input_netcdf ( type(aero_binned_t), intent(inout)  aero_binned,
integer, intent(in)  ncid,
type(bin_grid_t), intent(in)  bin_grid,
type(aero_data_t), intent(in)  aero_data 
)

Read full state.

Parameters
[in,out]aero_binnedAero_binned to write.
[in]ncidNetCDF file ID, in data mode.
[in]bin_gridbin_grid structure.
[in]aero_dataaero_data structure.

Definition at line 465 of file aero_binned.F90.

◆ aero_binned_is_allocated()

logical function pmc_aero_binned::aero_binned_is_allocated ( type(aero_binned_t), intent(in)  aero_binned)

Determine whether the aero_binned is correctly allocated.

Parameters
[in]aero_binnedAerosol binned to check.

Definition at line 52 of file aero_binned.F90.

◆ aero_binned_scale()

subroutine pmc_aero_binned::aero_binned_scale ( type(aero_binned_t), intent(inout)  aero_binned,
real(kind=dp), intent(in)  alpha 
)

Scale an aero_binned_t by a real number.

Symbolically does aero_binned = aero_binned * alpha.

Parameters
[in,out]aero_binnedBase aero_binned to scale.
[in]alphaScale factor.

Definition at line 189 of file aero_binned.F90.

◆ aero_binned_scale_by_array()

subroutine pmc_aero_binned::aero_binned_scale_by_array ( type(aero_binned_t), intent(inout)  aero_binned,
real(kind=dp), dimension(:), intent(in), allocatable  alpha_array 
)

Scales an aero_binned_t element-wise by an array of reals.

Parameters
[in,out]aero_binnedBase aero_binned_t structure that will be scaled.
[in]alpha_arrayStructure to scale aero_binned.

Definition at line 206 of file aero_binned.F90.

◆ aero_binned_set_sizes()

subroutine pmc_aero_binned::aero_binned_set_sizes ( type(aero_binned_t), intent(inout)  aero_binned,
integer, intent(in)  n_bin,
integer, intent(in)  n_spec 
)

Set the number of bins and species in an aero_binned_t.

Parameters
[in,out]aero_binnedStructure to be allocated.
[in]n_binNumber of aerosol bins to allocate (typically bin_grid%n_bin).
[in]n_specNumber of aerosol species to allocate (typically aero_data%n_spec).

Definition at line 71 of file aero_binned.F90.

◆ aero_binned_sub()

subroutine pmc_aero_binned::aero_binned_sub ( type(aero_binned_t), intent(inout)  aero_binned,
type(aero_binned_t), intent(in)  aero_binned_delta 
)

Subtract one aero_binned_t structure from another.

Symbolically does aero_binned = aero_binned - aero_binned_delta.

Parameters
[in,out]aero_binnedBase aero_binned_t structure that will be subtracted from.
[in]aero_binned_deltaStructure to subtract from aero_binned.

Definition at line 163 of file aero_binned.F90.

◆ aero_binned_zero()

subroutine pmc_aero_binned::aero_binned_zero ( type(aero_binned_t), intent(inout)  aero_binned)

Set all internal data in an aero_binned_t structure to zero.

Parameters
[in,out]aero_binnedStructure to zero.

Definition at line 92 of file aero_binned.F90.

◆ pmc_mpi_pack_aero_binned()

subroutine pmc_aero_binned::pmc_mpi_pack_aero_binned ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(aero_binned_t), intent(in)  val 
)

Pack the structure into the buffer and advance position.

See pmc_mpi for usage details.

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

Definition at line 278 of file aero_binned.F90.

◆ pmc_mpi_pack_size_aero_binned()

integer function pmc_aero_binned::pmc_mpi_pack_size_aero_binned ( type(aero_binned_t), intent(in)  val)

Determine the number of bytes required to pack the structure.

See pmc_mpi for usage details.

Parameters
[in]valStructure to pack.

Definition at line 262 of file aero_binned.F90.

◆ pmc_mpi_reduce_avg_aero_binned()

subroutine pmc_aero_binned::pmc_mpi_reduce_avg_aero_binned ( type(aero_binned_t), intent(in)  val,
type(aero_binned_t), intent(inout)  val_avg 
)

Computes the average of the structure across all processes, storing the result on the root process.

Parameters
[in]valPer-process value to average.
[in,out]val_avgAveraged result (only valid on root process).

Definition at line 329 of file aero_binned.F90.

◆ pmc_mpi_unpack_aero_binned()

subroutine pmc_aero_binned::pmc_mpi_unpack_aero_binned ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(aero_binned_t), intent(inout)  val 
)

Unpack the structure from the buffer and advance position.

See pmc_mpi for usage details.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valStructure to unpack into (must not be allocated).

Definition at line 304 of file aero_binned.F90.