PartMC
2.6.1
|
Write full state.
[in] | aero_state | aero_state to write. |
[in] | ncid | NetCDF file ID, in data mode. |
[in] | aero_data | aero_data structure. |
[in] | record_removals | Whether to output particle removal info. |
[in] | record_optical | Whether to output aerosol optical properties. |
The aerosol state consists of a set of individual aerosol particles, each with its own individual properties. The properties of all particles are stored in arrays, one per property. For example, aero_absorb_cross_sect(i)
gives the absorption cross section of particle number i
, while aero_particle_mass(i,s)
gives the mass of species s
in particle i
. The aerosol species are described in Output File Format: Aerosol Material Data.
Each aerosol particle i
represents a number concentration given by aero_num_conc(i)
. Multiplying a per-particle quantity by the respective number concentration gives the concentration of that quantity contributed by the particle. For example, summing aero_particle_mass(i,s) * aero_num_conc(i)
over all i
gives the total mass concentration of species s
in kg/m^3. Similarly, summing aero_absorb_cross_sect(i) * aero_num_conc(i)
over all i
will give the concentration of scattering cross section in m^2/m^3.
FIXME: the aero_weight is also output
The aerosol state uses the aero_species
NetCDF dimension as specified in the Output File Format: Aerosol Material Data section, as well as the NetCDF dimension:
The aerosol state NetCDF variables are:
aero_particle
): dummy dimension variable (no useful value)aero_particle x aero_species
): constituent masses of each aerosol particle - aero_particle_mass(i,s)
gives the mass of species s
in particle i
aero_particle x aero_source
): number of original particles from each source that formed each aerosol particle - aero_n_orig_part(i,s)
is the number of particles from source s
that contributed to particle i
- when particle i
first enters the simulation (by emissions, dilution, etc.) it has aero_n_orig_part(i,s) = 1
for the source number s
it came from (otherwise zero) and when two particles coagulate, their values of aero_n_orig_part
are added (the number of coagulation events that formed each particle is thus sum(aero_n_orig_part(i,:)) - 1
)aero_particle
): weight group number (1 to aero_weight_group
) of each aerosol particleaero_particle
): weight class number (1 to aero_weight_class
) of each aerosol particleaero_particle
): optical absorption cross sections of each aerosol particleaero_particle
): optical scattering cross sections of each aerosol particleaero_particle
): optical asymmetry parameters of each aerosol particleaero_particle
): real part of the refractive indices of the shell of each aerosol particleaero_particle
): imaginary part of the refractive indices of the shell of each aerosol particleaero_particle
): real part of the refractive indices of the core of each aerosol particleaero_particle
): imaginary part of the refractive indices of the core of each aerosol particleaero_particle
): volume of the optical cores of each aerosol particleaero_particle
): integers specifying which leg of the water hysteresis curve each particle is on, using the MOSAIC numbering conventionaero_particle
): number concentration associated with each particleaero_particle
): unique ID number of each aerosol particleaero_particle
): least (earliest) creation time of any original constituent particles that coagulated to form each particle, measured from the start of the simulation - a particle is said to be created when it first enters the simulation (by emissions, dilution, etc.)aero_particle
): greatest (latest) creation time of any original constituent particles that coagulated to form each particle, measured from the start of the simulation - a particle is said to be created when it first enters the simulation (by emissions, dilution, etc.)