PartMC  2.2.0
Data Types | Public Member Functions | Public Attributes
pmc_aero_particle Module Reference

The aero_particle_t structure and associated subroutines. More...

List of all members.

Data Types

type  aero_particle_t
 Single aerosol particle data structure. More...

Public Member Functions

subroutine aero_particle_allocate (aero_particle)
 Allocates memory in an aero_particle_t.
subroutine aero_particle_allocate_size (aero_particle, n_spec, n_source)
 Allocates an aero_particle_t of the given size.
subroutine aero_particle_deallocate (aero_particle)
 Deallocates memory associated with an aero_particle_t.
subroutine aero_particle_copy (aero_particle_from, aero_particle_to)
 Copies a particle.
subroutine aero_particle_shift (aero_particle_from, aero_particle_to)
 Shift data from one aero_particle_t to another and free the first one.
subroutine aero_particle_zero (aero_particle)
 Resets an aero_particle to be zero.
subroutine aero_particle_new_id (aero_particle)
 Assigns a globally-unique new ID number to the particle.
subroutine aero_particle_set_create_time (aero_particle, create_time)
 Sets the creation times for the particle.
subroutine aero_particle_set_vols (aero_particle, vols)
 Sets the aerosol particle volumes.
subroutine aero_particle_set_source (aero_particle, i_source)
 Sets the aerosol particle source.
subroutine aero_particle_set_group (aero_particle, i_group)
 Sets the aerosol particle weight group.
elemental real(kind=dp) function aero_particle_mass (aero_particle, aero_data)
 Total mass of the particle (kg).
elemental real(kind=dp) function aero_particle_species_mass (aero_particle, i_spec, aero_data)
 Mass of a single species in the particle (kg).
elemental real(kind=dp) function aero_particle_moles (aero_particle, aero_data)
 Total moles in the particle (1).
elemental real(kind=dp) function aero_particle_volume (aero_particle)
 Total volume of the particle (m^3).
elemental real(kind=dp) function aero_particle_dry_volume (aero_particle, aero_data)
 Total dry volume of the particle (m^3).
elemental real(kind=dp) function aero_particle_volume_maybe_dry (aero_particle, aero_data, dry_volume)
 Total volume (dry or wet) of the particle (m^3).
elemental real(kind=dp) function aero_particle_radius (aero_particle)
 Total radius of the particle (m).
elemental real(kind=dp) function aero_particle_dry_radius (aero_particle, aero_data)
 Total dry radius of the particle (m).
elemental real(kind=dp) function aero_particle_diameter (aero_particle)
 Total diameter of the particle (m).
elemental real(kind=dp) function aero_particle_dry_diameter (aero_particle, aero_data)
 Total dry diameter of the particle (m).
real(kind=dp) function aero_particle_density (aero_particle, aero_data)
 Average density of the particle (kg/m^3).
real(kind=dp) function aero_particle_average_solute_quantity (aero_particle, aero_data, quantity)
 Returns the volume-average of the non-water elements of quantity.
real(kind=dp) function aero_particle_total_solute_quantity (aero_particle, aero_data, quantity)
 Returns the volume-total of the non-water elements of quantity.
real(kind=dp) function aero_particle_average_water_quantity (aero_particle, aero_data, quantity)
 Returns the water element of quantity.
real(kind=dp) function aero_particle_total_water_quantity (aero_particle, aero_data, quantity)
 Returns the volume-total of the water element of quantity.
real(kind=dp) function aero_particle_water_molec_weight (aero_data)
 Returns the water molecular weight. (kg/mole)
real(kind=dp) function aero_particle_solute_molec_weight (aero_particle, aero_data)
 Returns the average of the solute molecular weight (kg/mole).
real(kind=dp) function aero_particle_solute_num_ions (aero_particle, aero_data)
 Returns the average of the solute ion number (1).
real(kind=dp) function aero_particle_water_density (aero_data)
 Returns the water density (kg/m^3).
real(kind=dp) function aero_particle_solute_density (aero_particle, aero_data)
 Returns the average of the solute densities (kg/m^3).
real(kind=dp) function aero_particle_water_mass (aero_particle, aero_data)
 Returns the water mass (kg).
real(kind=dp) function aero_particle_solute_mass (aero_particle, aero_data)
 Returns the total solute mass (kg).
real(kind=dp) function aero_particle_solute_volume (aero_particle, aero_data)
 Returns the total solute volume (m^3).
real(kind=dp) function aero_particle_solute_radius (aero_particle, aero_data)
 Returns the total solute radius (m).
real(kind=dp) function aero_particle_solute_kappa (aero_particle, aero_data)
 Returns the average of the solute kappas (1).
subroutine aero_particle_coagulate (aero_particle_1, aero_particle_2, aero_particle_new)
 Coagulate two particles together to make a new one. The new particle will not have its ID set.
integer function pmc_mpi_pack_size_aero_particle (val)
 Determines the number of bytes required to pack the given value.
subroutine pmc_mpi_pack_aero_particle (buffer, position, val)
 Packs the given value into the buffer, advancing position.
subroutine pmc_mpi_unpack_aero_particle (buffer, position, val)
 Unpacks the given value from the buffer, advancing position.

Public Attributes

integer, save next_id = 1
 Next unique ID number to use for a particle.

Detailed Description

The aero_particle_t structure and associated subroutines.

Definition at line 9 of file aero_particle.F90.


Member Function/Subroutine Documentation

subroutine pmc_aero_particle::aero_particle_allocate ( type(aero_particle_t), intent(out)  aero_particle)

Allocates memory in an aero_particle_t.

Parameters:
[out]aero_particleParticle to init.

Definition at line 63 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_allocate_size ( type(aero_particle_t), intent(out)  aero_particle,
integer, intent(in)  n_spec,
integer, intent(in)  n_source 
)

Allocates an aero_particle_t of the given size.

Parameters:
[out]aero_particleParticle to init.
[in]n_specNumber of species.
[in]n_sourceNumber of sources.

Definition at line 77 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_average_solute_quantity ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), dimension(:), intent(in)  quantity 
)

Returns the volume-average of the non-water elements of quantity.

Parameters:
[in]aero_particleAerosol particle.
[in]aero_dataAerosol data.
[in]quantityQuantity to average.

Definition at line 453 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_average_water_quantity ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), dimension(:), intent(in)  quantity 
)

Returns the water element of quantity.

Parameters:
[in]aero_particleAerosol particle.
[in]aero_dataAerosol data.
[in]quantityQuantity to average.

Definition at line 502 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_coagulate ( type(aero_particle_t), intent(in)  aero_particle_1,
type(aero_particle_t), intent(in)  aero_particle_2,
type(aero_particle_t), intent(inout)  aero_particle_new 
)

Coagulate two particles together to make a new one. The new particle will not have its ID set.

Parameters:
[in]aero_particle_1First particle.
[in]aero_particle_2Second particle.
[in,out]aero_particle_newResult particle.

Definition at line 724 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_copy ( type(aero_particle_t), intent(in)  aero_particle_from,
type(aero_particle_t), intent(inout)  aero_particle_to 
)

Copies a particle.

Parameters:
[in]aero_particle_fromReference particle.
[in,out]aero_particle_toDestination particle (already alloced on entry).

Definition at line 108 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_deallocate ( type(aero_particle_t), intent(inout)  aero_particle)

Deallocates memory associated with an aero_particle_t.

Parameters:
[in,out]aero_particleParticle to free.

Definition at line 95 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_density ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Average density of the particle (kg/m^3).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 438 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_diameter ( type(aero_particle_t), intent(in)  aero_particle)

Total diameter of the particle (m).

Parameters:
[in]aero_particleParticle.

Definition at line 410 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_dry_diameter ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Total dry diameter of the particle (m).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 422 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_dry_radius ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Total dry radius of the particle (m).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 394 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_dry_volume ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Total dry volume of the particle (m^3).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 337 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_mass ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Total mass of the particle (kg).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 278 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_moles ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Total moles in the particle (1).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.

Definition at line 310 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_new_id ( type(aero_particle_t), intent(inout)  aero_particle)

Assigns a globally-unique new ID number to the particle.

Parameters:
[in,out]aero_particleParticle to set ID for.

Definition at line 208 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_radius ( type(aero_particle_t), intent(in)  aero_particle)

Total radius of the particle (m).

Parameters:
[in]aero_particleParticle.

Definition at line 382 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_set_create_time ( type(aero_particle_t), intent(inout)  aero_particle,
real(kind=dp), intent(in)  create_time 
)

Sets the creation times for the particle.

Parameters:
[in,out]aero_particleParticle to set time for.
[in]create_timeCreation time.

Definition at line 221 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_set_group ( type(aero_particle_t), intent(inout)  aero_particle,
integer, intent(in)  i_group 
)

Sets the aerosol particle weight group.

Parameters:
[in,out]aero_particleParticle.
[in]i_groupWeight group number for the particle.

Definition at line 264 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_set_source ( type(aero_particle_t), intent(inout)  aero_particle,
integer, intent(in)  i_source 
)

Sets the aerosol particle source.

Parameters:
[in,out]aero_particleParticle.
[in]i_sourceSource number for the particle.

Definition at line 250 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_set_vols ( type(aero_particle_t), intent(inout)  aero_particle,
real(kind=dp), dimension(size(aero_particle%vol)), intent(in)  vols 
)

Sets the aerosol particle volumes.

Parameters:
[in,out]aero_particleParticle.
[in]volsNew volumes.

Definition at line 236 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_shift ( type(aero_particle_t), intent(inout)  aero_particle_from,
type(aero_particle_t), intent(inout)  aero_particle_to 
)

Shift data from one aero_particle_t to another and free the first one.

This is roughly equivalent to aero_particle_copy(from, to) followed by aero_particle_deallocate(from), but faster and with different memory allocation requirements.

Parameters:
[in,out]aero_particle_fromReference particle (will be deallocated on return).
[in,out]aero_particle_toDestination particle (not allocated on entry).

Definition at line 154 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_density ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the average of the solute densities (kg/m^3).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 602 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_kappa ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the average of the solute kappas (1).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 687 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_mass ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the total solute mass (kg).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 635 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_molec_weight ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the average of the solute molecular weight (kg/mole).

Parameters:
[in]aero_particleAerosol particle.
[in]aero_dataAerosol data.

Definition at line 555 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_num_ions ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the average of the solute ion number (1).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 572 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_radius ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the total solute radius (m).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 671 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_solute_volume ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the total solute volume (m^3).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 651 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_species_mass ( type(aero_particle_t), intent(in)  aero_particle,
integer, intent(in)  i_spec,
type(aero_data_t), intent(in)  aero_data 
)

Mass of a single species in the particle (kg).

Parameters:
[in]aero_particleParticle.
[in]i_specSpecies number to find mass of.
[in]aero_dataAerosol data.

Definition at line 292 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_total_solute_quantity ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), dimension(:), intent(in)  quantity 
)

Returns the volume-total of the non-water elements of quantity.

Parameters:
[in]aero_particleAerosol particle.
[in]aero_dataAerosol data.
[in]quantityQuantity to total.

Definition at line 476 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_total_water_quantity ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), dimension(:), intent(in)  quantity 
)

Returns the volume-total of the water element of quantity.

Parameters:
[in]aero_particleAerosol particle.
[in]aero_dataAerosol data.
[in]quantityQuantity to total.

Definition at line 520 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_volume ( type(aero_particle_t), intent(in)  aero_particle)

Total volume of the particle (m^3).

Parameters:
[in]aero_particleParticle.

Definition at line 325 of file aero_particle.F90.

elemental real(kind=dp) function pmc_aero_particle::aero_particle_volume_maybe_dry ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data,
logical, intent(in)  dry_volume 
)

Total volume (dry or wet) of the particle (m^3).

Parameters:
[in]aero_particleParticle.
[in]aero_dataAerosol data.
[in]dry_volumeWhether the desired volume is dry (otherwise wet).

Definition at line 360 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_water_density ( type(aero_data_t), intent(in)  aero_data)

Returns the water density (kg/m^3).

Parameters:
[in]aero_dataAerosol data.

Definition at line 589 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_water_mass ( type(aero_particle_t), intent(in)  aero_particle,
type(aero_data_t), intent(in)  aero_data 
)

Returns the water mass (kg).

Parameters:
[in]aero_dataAerosol data.
[in]aero_particleAerosol particle.

Definition at line 619 of file aero_particle.F90.

real(kind=dp) function pmc_aero_particle::aero_particle_water_molec_weight ( type(aero_data_t), intent(in)  aero_data)

Returns the water molecular weight. (kg/mole)

Parameters:
[in]aero_dataAerosol data.

Definition at line 541 of file aero_particle.F90.

subroutine pmc_aero_particle::aero_particle_zero ( type(aero_particle_t), intent(inout)  aero_particle)

Resets an aero_particle to be zero.

Parameters:
[in,out]aero_particleParticle to zero.

Definition at line 184 of file aero_particle.F90.

subroutine pmc_aero_particle::pmc_mpi_pack_aero_particle ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(aero_particle_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 796 of file aero_particle.F90.

integer function pmc_aero_particle::pmc_mpi_pack_size_aero_particle ( type(aero_particle_t), intent(in)  val)

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

Parameters:
[in]valValue to pack.

Definition at line 771 of file aero_particle.F90.

subroutine pmc_aero_particle::pmc_mpi_unpack_aero_particle ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(aero_particle_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 831 of file aero_particle.F90.


Member Data Documentation

integer, save pmc_aero_particle::next_id = 1

Next unique ID number to use for a particle.

Definition at line 56 of file aero_particle.F90.


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