pmc_aero_dist Namespace Reference

The aero_dist_t structure and associated subroutines. More...


Classes

struct  aero_mode_t
 An aerosol size distribution mode. More...
struct  aero_dist_t
 A complete aerosol distribution con. More...

Functions

subroutine aero_mode_alloc (aero_mode, n_bin, n_spec)
 Allocates an aero_mode.
subroutine aero_mode_free (aero_mode)
 Free all storage.
subroutine aero_mode_copy (aero_mode_from, aero_mode_to)
 Copy an aero_mode.
subroutine aero_mode_add (aero_mode, aero_mode_delta)
 aero_mode += aero_mode_delta
subroutine aero_mode_scale (aero_mode, alpha)
 Scale an aero_mode.
subroutine aero_dist_alloc (aero_dist, n_mode, n_bin, n_spec)
 Allocates an aero_dist.
subroutine aero_dist_free (aero_dist)
 Free all storage.
subroutine aero_dist_copy (aero_dist_from, aero_dist_to)
 Copy an aero_dist.
subroutine aero_dist_add (aero_dist, aero_dist_delta)
 aero_dist += aero_dist_delta
subroutine aero_dist_scale (aero_dist, alpha)
 aero_dist *= alpha
real *8 aero_dist_total_num_den (bin_grid, aero_dist)
 Returns the total number concentration in #/m^3 of a distribution. (#/m^3).
subroutine num_den_log_normal (mean_radius, log_sigma, bin_grid, num_den)
 Compute a log-normal distribution, normalized so that sum(num_den(k) * dlnr) = 1.
subroutine num_den_exp (mean_radius, bin_grid, num_den)
 Exponential distribution in volume n(v) = 1 / mean_vol * exp(- v / mean_vol) Normalized so that sum(num_den(k) * dlnr) = 1.
subroutine num_den_mono (radius, bin_grid, num_den)
 Mono-disperse distribution. Normalized so that sum(num_den(k) * dlnr) = 1.
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 inout_write_aero_mode (file, aero_mode)
 Write full state.
subroutine inout_write_aero_dist (file, aero_dist)
 Write full state.
subroutine inout_read_aero_mode (file, aero_mode)
 Read full state.
subroutine inout_read_aero_dist (file, aero_dist)
 Read full state.
subroutine spec_read_vol_frac (file, aero_data, vol_frac)
 Read volume fractions from a data file.
subroutine spec_read_aero_mode_shape (file, aero_data, bin_grid, num_den)
 Read the shape (number density) of one mode of an aerosol distribution.
subroutine spec_read_aero_mode (file, aero_data, bin_grid, aero_mode)
 Read one mode of an aerosol distribution (number density and volume fractions).
subroutine spec_read_aero_dist (file, aero_data, bin_grid, aero_dist)
 Read continuous aerosol distribution composed of several modes.
subroutine spec_read_aero_dist_filename (file, aero_data, bin_grid, name, dist)
 Read aerosol distribution from filename on line in file.
subroutine spec_read_aero_dists_times_rates (file, aero_data, bin_grid, name, times, rates, aero_dists)
 Read an array of aero_dists with associated times and rates from the given file.
subroutine aero_mode_average (aero_mode_vec, aero_mode_avg)
 Computes the average of an array of aero_mode.
subroutine aero_dist_average (aero_dist_vec, aero_dist_avg)
 Computes the average of an array of aero_dist.
integer pmc_mpi_pack_size_aero_mode (val)
 Determines the number of bytes required to pack the given value.
integer pmc_mpi_pack_size_aero_dist (val)
 Determines the number of bytes required to pack the given value.
subroutine pmc_mpi_pack_aero_mode (buffer, position, val)
 Packs the given value into the buffer, advancing position.
subroutine pmc_mpi_pack_aero_dist (buffer, position, val)
 Packs the given value into the buffer, advancing position.
subroutine pmc_mpi_unpack_aero_mode (buffer, position, val)
 Unpacks the given value from 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 density distribution to an actual number of particles ready for a particle-resolved simulation.

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


Function Documentation

subroutine pmc_aero_dist::aero_dist_add ( type(aero_dist_t),intent(inout)  aero_dist,
type(aero_dist_t),intent(in)  aero_dist_delta 
)

aero_dist += aero_dist_delta

Parameters:
aero_dist  Aero_dist.
aero_dist_delta  Increment.

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

Allocates an aero_dist.

Parameters:
aero_dist  Aerosol distribution.
n_mode  Number of modes.
n_bin  Number of bins.
n_spec  Number of species.

subroutine pmc_aero_dist::aero_dist_average ( type(aero_dist_t),dimension(:),intent(in)  aero_dist_vec,
type(aero_dist_t),intent(out)  aero_dist_avg 
)

Computes the average of an array of aero_dist.

Parameters:
aero_dist_vec  Array of aero_dist.
aero_dist_avg  Avg of aero_dist_vec.

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_from  Aero_dist original.
aero_dist_to  Aero_dist copy.

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

Free all storage.

Parameters:
aero_dist  Aerosol distribution.

subroutine pmc_aero_dist::aero_dist_interp_1d ( type(aero_dist_t),dimension(:),intent(in)  aero_dist_list,
real*8,dimension(size(aero_dist_list),intent(in)  time_list,
real*8,dimension(size(aero_dist_list),intent(in)  rate_list,
real*8,intent(in)  time,
type(aero_dist_t),intent(inout)  aero_dist,
real*8,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_list  Gas states.
time_list  Times (s).
rate_list  Rates (s^{-1}).
time  Current time (s).
aero_dist  Current gas state.
rate  Current rate (s^{-1}).

subroutine pmc_aero_dist::aero_dist_scale ( type(aero_dist_t),intent(inout)  aero_dist,
real*8,intent(in)  alpha 
)

aero_dist *= alpha

Parameters:
aero_dist  Aero_dist.
alpha  Scale factor.

real*8 pmc_aero_dist::aero_dist_total_num_den ( type(bin_grid_t),intent(in)  bin_grid,
type(aero_dist_t),intent(in)  aero_dist 
)

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

Parameters:
bin_grid  Bin grid.
aero_dist  Aerosol distribution.

subroutine pmc_aero_dist::aero_mode_add ( type(aero_mode_t),intent(inout)  aero_mode,
type(aero_mode_t),intent(in)  aero_mode_delta 
)

aero_mode += aero_mode_delta

Parameters:
aero_mode  Aerosol mode.
aero_mode_delta  Increment.

subroutine pmc_aero_dist::aero_mode_alloc ( type(aero_mode_t),intent(out)  aero_mode,
integer,intent(in)  n_bin,
integer,intent(in)  n_spec 
)

Allocates an aero_mode.

Parameters:
aero_mode  Aerosol mode.
n_bin  Number of bins.
n_spec  Number of species.

subroutine pmc_aero_dist::aero_mode_average ( type(aero_mode_t),dimension(:),intent(in)  aero_mode_vec,
type(aero_mode_t),intent(out)  aero_mode_avg 
)

Computes the average of an array of aero_mode.

Parameters:
aero_mode_vec  Array of aero_mode.
aero_mode_avg  Avg of aero_mode_vec.

subroutine pmc_aero_dist::aero_mode_copy ( type(aero_mode_t),intent(in)  aero_mode_from,
type(aero_mode_t),intent(inout)  aero_mode_to 
)

Copy an aero_mode.

Parameters:
aero_mode_from  Aerosol mode original.
aero_mode_to  Aerosol mode copy.

subroutine pmc_aero_dist::aero_mode_free ( type(aero_mode_t),intent(inout)  aero_mode  ) 

Free all storage.

Parameters:
aero_mode  Aerosol mode.

subroutine pmc_aero_dist::aero_mode_scale ( type(aero_mode_t),intent(inout)  aero_mode,
real*8,intent(in)  alpha 
)

Scale an aero_mode.

Parameters:
aero_mode  Aerosol mode.
alpha  Scale factor.

subroutine pmc_aero_dist::inout_read_aero_dist ( type(inout_file_t),intent(inout)  file,
type(aero_dist_t),intent(out)  aero_dist 
)

Read full state.

Parameters:
file  File to read from.
aero_dist  Aero_dist to read.

subroutine pmc_aero_dist::inout_read_aero_mode ( type(inout_file_t),intent(inout)  file,
type(aero_mode_t),intent(out)  aero_mode 
)

Read full state.

Parameters:
file  File to read from.
aero_mode  Aero_mode to read.

subroutine pmc_aero_dist::inout_write_aero_dist ( type(inout_file_t),intent(inout)  file,
type(aero_dist_t),intent(in)  aero_dist 
)

Write full state.

Parameters:
file  File to write to.
aero_dist  Aero_dist to write.

subroutine pmc_aero_dist::inout_write_aero_mode ( type(inout_file_t),intent(inout)  file,
type(aero_mode_t),intent(in)  aero_mode 
)

Write full state.

Parameters:
file  File to write to.
aero_mode  Aero_mode to write.

subroutine pmc_aero_dist::num_den_exp ( real*8,intent(in)  mean_radius,
type(bin_grid_t),intent(in)  bin_grid,
real*8,dimension(bin_grid%n_bin),intent(out)  num_den 
)

Exponential distribution in volume n(v) = 1 / mean_vol * exp(- v / mean_vol) Normalized so that sum(num_den(k) * dlnr) = 1.

Parameters:
mean_radius  Mean radius (m).
bin_grid  Bin grid.
num_den  Num den (#(ln(r))d(ln(r))).

subroutine pmc_aero_dist::num_den_log_normal ( real*8,intent(in)  mean_radius,
real*8,intent(in)  log_sigma,
type(bin_grid_t),intent(in)  bin_grid,
real*8,dimension(bin_grid%n_bin),intent(out)  num_den 
)

Compute a log-normal distribution, normalized so that sum(num_den(k) * dlnr) = 1.

Parameters:
mean_radius  Geometric mean radius (m).
log_sigma  log_10(geom. std dev) (1).
bin_grid  Bin grid.
num_den  Normalized number density (#(ln(r))d(ln(r))).

subroutine pmc_aero_dist::num_den_mono ( real*8,intent(in)  radius,
type(bin_grid_t),intent(in)  bin_grid,
real*8,dimension(bin_grid%n_bin),intent(out)  num_den 
)

Mono-disperse distribution. Normalized so that sum(num_den(k) * dlnr) = 1.

Parameters:
radius  Radius of each particle (m^3).
bin_grid  Bin grid.
num_den  Num den (#(ln(r))d(ln(r))).

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:
buffer  Memory buffer.
position  Current buffer position.
val  Value to pack.

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

Packs the given value into the buffer, advancing position.

Parameters:
buffer  Memory buffer.
position  Current buffer position.
val  Value to pack.

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:
val  Value to pack.

integer pmc_aero_dist::pmc_mpi_pack_size_aero_mode ( type(aero_mode_t),intent(in)  val  ) 

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

Parameters:
val  Value to pack.

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

Unpacks the given value from the buffer, advancing position.

Parameters:
buffer  Memory buffer.
position  Current buffer position.
val  Value to pack.

subroutine pmc_aero_dist::pmc_mpi_unpack_aero_mode ( character,dimension(:),intent(inout)  buffer,
integer,intent(inout)  position,
type(aero_mode_t),intent(out)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters:
buffer  Memory buffer.
position  Current buffer position.
val  Value to pack.

subroutine pmc_aero_dist::spec_read_aero_dist ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
type(aero_dist_t),intent(inout)  aero_dist 
)

Read continuous aerosol distribution composed of several modes.

Parameters:
file  Inout file.
aero_data  Aero_data data.
bin_grid  Bin grid.
aero_dist  Aerosol dist,.

subroutine pmc_aero_dist::spec_read_aero_dist_filename ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
character(len=*),intent(in)  name,
type(aero_dist_t),intent(inout)  dist 
)

Read aerosol distribution from filename on line in file.

Parameters:
file  Inout file.
aero_data  Aero_data data.
bin_grid  Bin grid.
name  Name of data line for filename.
dist  Aerosol distribution.

subroutine pmc_aero_dist::spec_read_aero_dists_times_rates ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
character(len=*),intent(in)  name,
real*8,dimension(:),pointer  times,
real*8,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:
file  Inout file.
aero_data  Aero data.
bin_grid  Bin grid.
name  Name of data line for filename.
times  Times (s).
rates  Rates (s^{-1}).
aero_dists  Aero dists.

subroutine pmc_aero_dist::spec_read_aero_mode ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
type(aero_mode_t),intent(inout)  aero_mode 
)

Read one mode of an aerosol distribution (number density and volume fractions).

Parameters:
file  Inout file.
aero_data  Aero_data data.
bin_grid  Bin grid.
aero_mode  Aerosol mode (will be allocated).

subroutine pmc_aero_dist::spec_read_aero_mode_shape ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
type(bin_grid_t),intent(in)  bin_grid,
real*8,dimension(bin_grid%n_bin)  num_den 
)

Read the shape (number density) of one mode of an aerosol distribution.

Parameters:
file  Inout file.
aero_data  Aero_data data.
bin_grid  Bin grid.
num_den  Mode density.

subroutine pmc_aero_dist::spec_read_vol_frac ( type(inout_file_t),intent(inout)  file,
type(aero_data_t),intent(in)  aero_data,
real*8,dimension(:),intent(out)  vol_frac 
)

Read volume fractions from a data file.

Parameters:
file  Inout file.
aero_data  Aero_data data.
vol_frac  Aerosol species volume fractions.


Generated on Sun Feb 17 10:31:02 2008 for PartMC by  doxygen 1.5.4