PartMC 2.1.2
Data Types | Functions/Subroutines
pmc_aero_dist Module Reference

The aero_dist_t structure and associated subroutines. More...

Data Types

type  aero_dist_t
 A complete aerosol distribution, consisting of several modes. More...

Functions/Subroutines

subroutine aero_dist_allocate (aero_dist)
 Allocates an aero_dist.
subroutine aero_dist_allocate_size (aero_dist, n_mode, n_spec)
 Allocates an aero_dist of the given size.
subroutine aero_dist_deallocate (aero_dist)
 Free all storage.
subroutine aero_dist_copy (aero_dist_from, aero_dist_to)
 Copy an aero_dist.
real(kind=dp) aero_dist_total_num_conc (aero_dist)
 Returns the total number concentration of a distribution. (#/m^3)
real(kind=dp) aero_dist_weighted_num_conc (aero_dist, aero_weight)
 Returns the total weighted number concentration of a distribution. (#/m^3)
subroutine aero_dist_num_conc (aero_dist, bin_grid, aero_data, num_conc)
 Return the binned number concentration for an aero_dist.
subroutine aero_dist_vol_conc (aero_dist, bin_grid, aero_data, vol_conc)
 Return the binned per-species volume concentration for an aero_dist.
subroutine aero_dist_interp_1d (aero_dist_list, time_list, rate_list, time, aero_dist, rate)
 Determine the current aero_dist and rate by interpolating at the current time with the lists of aero_dists and rates.
subroutine spec_file_read_aero_dist (file, aero_data, aero_dist)
 Read continuous aerosol distribution composed of several modes.
subroutine spec_file_read_aero_dists_times_rates (file, aero_data, bin_grid, times, rates, aero_dists)
 Read an array of aero_dists with associated times and rates from the given file.
integer pmc_mpi_pack_size_aero_dist (val)
 Determines the number of bytes required to pack the given value.
subroutine pmc_mpi_pack_aero_dist (buffer, position, val)
 Packs the given value into the buffer, advancing position.
subroutine pmc_mpi_unpack_aero_dist (buffer, position, val)
 Unpacks the given value from the buffer, advancing position.

Detailed Description

The aero_dist_t structure and associated subroutines.

The initial size distributions are computed as number densities, so they can be used for both sectional and particle-resolved simulations. The routine dist_to_n() converts a number concentration distribution to an actual number of particles ready for a particle-resolved simulation.

Initial distributions should be normalized so that sum(n_den) = 1/log_width.


Function/Subroutine Documentation

subroutine pmc_aero_dist::aero_dist_allocate ( type(aero_dist_t),intent(out)  aero_dist)

Allocates an aero_dist.

Parameters:
aero_distAerosol distribution.

Definition at line 45 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_allocate_size ( type(aero_dist_t),intent(out)  aero_dist,
integer,intent(in)  n_mode,
integer,intent(in)  n_spec 
)

Allocates an aero_dist of the given size.

Parameters:
aero_distAerosol distribution.
n_modeNumber of modes.
n_specNumber of species.

Definition at line 60 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_copy ( type(aero_dist_t),intent(in)  aero_dist_from,
type(aero_dist_t),intent(inout)  aero_dist_to 
)

Copy an aero_dist.

Parameters:
aero_dist_fromAero_dist original.
aero_dist_toAero_dist copy.

Definition at line 99 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_deallocate ( type(aero_dist_t),intent(inout)  aero_dist)

Free all storage.

Parameters:
aero_distAerosol distribution.

Definition at line 82 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_interp_1d ( type(aero_dist_t),dimension(:),intent(in)  aero_dist_list,
real(kind=dp),dimension(size(aero_dist_list)),intent(in)  time_list,
real(kind=dp),dimension(size(aero_dist_list)),intent(in)  rate_list,
real(kind=dp),intent(in)  time,
type(aero_dist_t),intent(inout)  aero_dist,
real(kind=dp),intent(out)  rate 
)

Determine the current aero_dist and rate by interpolating at the current time with the lists of aero_dists and rates.

Parameters:
aero_dist_listGas states.
time_listTimes (s).
rate_listRates (s^{-1}).
timeCurrent time (s).
aero_distCurrent gas state.
rateCurrent rate (s^{-1}).

Definition at line 215 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_num_conc ( type(aero_dist_t),intent(in)  aero_dist,
type(bin_grid_t),intent(in)  bin_grid,
type(aero_data_t),intent(in)  aero_data,
real(kind=dp),dimension(bin_grid%n_bin),intent(out)  num_conc 
)

Return the binned number concentration for an aero_dist.

Parameters:
aero_distAero dist for which to compute number concentration.
bin_gridBin grid.
aero_dataAerosol data.
num_concNumber concentration (#(ln(r))d(ln(r))).

Definition at line 159 of file aero_dist.F90.

real(kind=dp) pmc_aero_dist::aero_dist_total_num_conc ( type(aero_dist_t),intent(in)  aero_dist)

Returns the total number concentration of a distribution. (#/m^3)

Parameters:
aero_distAerosol distribution.

Definition at line 124 of file aero_dist.F90.

subroutine pmc_aero_dist::aero_dist_vol_conc ( type(aero_dist_t),intent(in)  aero_dist,
type(bin_grid_t),intent(in)  bin_grid,
type(aero_data_t),intent(in)  aero_data,
real(kind=dp),dimension(bin_grid%n_bin, aero_data%n_spec),intent(out)  vol_conc 
)

Return the binned per-species volume concentration for an aero_dist.

Parameters:
aero_distAero dist for which to compute volume concentration.
bin_gridBin grid.
aero_dataAerosol data.
vol_concVolume concentration (V(ln(r))d(ln(r))).

Definition at line 187 of file aero_dist.F90.

real(kind=dp) pmc_aero_dist::aero_dist_weighted_num_conc ( type(aero_dist_t),intent(in)  aero_dist,
type(aero_weight_t),intent(in)  aero_weight 
)

Returns the total weighted number concentration of a distribution. (#/m^3)

Parameters:
aero_distAerosol distribution.
aero_weightAerosol weight.

Definition at line 137 of file aero_dist.F90.

subroutine pmc_aero_dist::pmc_mpi_pack_aero_dist ( character,dimension(:),intent(inout)  buffer,
integer,intent(inout)  position,
type(aero_dist_t),intent(in)  val 
)

Packs the given value into the buffer, advancing position.

Parameters:
bufferMemory buffer.
positionCurrent buffer position.
valValue to pack.

Definition at line 465 of file aero_dist.F90.

integer pmc_aero_dist::pmc_mpi_pack_size_aero_dist ( type(aero_dist_t),intent(in)  val)

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

Parameters:
valValue to pack.

Definition at line 447 of file aero_dist.F90.

subroutine pmc_aero_dist::pmc_mpi_unpack_aero_dist ( character,dimension(:),intent(inout)  buffer,
integer,intent(inout)  position,
type(aero_dist_t),intent(inout)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters:
bufferMemory buffer.
positionCurrent buffer position.
valValue to pack.

Definition at line 491 of file aero_dist.F90.

subroutine pmc_aero_dist::spec_file_read_aero_dist ( type(spec_file_t),intent(inout)  file,
type(aero_data_t),intent(inout)  aero_data,
type(aero_dist_t),intent(inout)  aero_dist 
)

Read continuous aerosol distribution composed of several modes.

Parameters:
fileSpec file to read data from.
aero_dataAero_data data.
aero_distAerosol dist.

Definition at line 255 of file aero_dist.F90.

subroutine pmc_aero_dist::spec_file_read_aero_dists_times_rates ( type(spec_file_t),intent(inout)  file,
type(aero_data_t),intent(inout)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
real(kind=dp),dimension(:),pointer  times,
real(kind=dp),dimension(:),pointer  rates,
type(aero_dist_t),dimension(:),pointer  aero_dists 
)

Read an array of aero_dists with associated times and rates from the given file.

Parameters:
fileSpec file to read data from.
aero_dataAero data.
bin_gridBin grid.
timesTimes (s).
ratesRates (s^{-1}).
aero_distsAero dists.

Definition at line 312 of file aero_dist.F90.