PartMC  2.8.0
Functions/Subroutines
pmc_mosaic Module Reference

Interface to the MOSAIC aerosol and gas phase chemistry code. More...

Functions/Subroutines

logical function mosaic_support ()
 Whether MOSAIC support is compiled in. More...
 
subroutine mosaic_init (env_state, aero_data, del_t, do_optical)
 Initialize all MOSAIC data-structures. More...
 
subroutine mosaic_cleanup ()
 Clean-up after running MOSAIC, deallocating memory. More...
 
subroutine mosaic_from_partmc (env_state, aero_data, aero_state, gas_data, gas_state)
 Map all data PartMC -> MOSAIC. More...
 
subroutine mosaic_to_partmc (env_state, aero_data, aero_state, gas_data, gas_state, uuid)
 Map all data MOSAIC -> PartMC. More...
 
subroutine mosaic_timestep (env_state, aero_data, aero_state, gas_data, gas_state, do_optical, uuid)
 Do one timestep with MOSAIC. More...
 
subroutine mosaic_aero_optical (env_state, aero_data, aero_state, gas_data, gas_state)
 Compute the optical properties of each aerosol particle. FIXME: currently disabled. More...
 
subroutine mosaic_aero_optical_init (env_state, aero_data, aero_state, gas_data, gas_state)
 Compute the optical properties of each aerosol particle for initial timestep. More...
 
subroutine mosaic_aero_optical_single_wavelength (env_state, aero_data, aero_state, gas_data, gas_state, i_wavelength)
 Compute the optical properties of each aerosol particle for a single wavelength selected by index when MOSAIC has multiple wavelengths enabled. More...
 
subroutine mosaic_optical_wavelengths (aero_data)
 Fetch the wavelengths that optical cross-sections are calculated at in MOSAIC. If not using multiple wavelengths, the wavelength is the default value of 550 nm. More...
 

Detailed Description

Interface to the MOSAIC aerosol and gas phase chemistry code.

Function/Subroutine Documentation

◆ mosaic_aero_optical()

subroutine pmc_mosaic::mosaic_aero_optical ( type(env_state_t), intent(in)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state 
)

Compute the optical properties of each aerosol particle. FIXME: currently disabled.

At the moment we are computing the aerosol optical properties every timestep from withing mosaic_timestep. This decision should be re-evaluated at some point in the future.

Parameters
[in]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in]gas_stateGas state.

Definition at line 483 of file mosaic.F90.

◆ mosaic_aero_optical_init()

subroutine pmc_mosaic::mosaic_aero_optical_init ( type(env_state_t), intent(in)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state 
)

Compute the optical properties of each aerosol particle for initial timestep.

Parameters
[in]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in]gas_stateGas state.

Definition at line 562 of file mosaic.F90.

◆ mosaic_aero_optical_single_wavelength()

subroutine pmc_mosaic::mosaic_aero_optical_single_wavelength ( type(env_state_t), intent(in)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state,
integer, intent(in)  i_wavelength 
)

Compute the optical properties of each aerosol particle for a single wavelength selected by index when MOSAIC has multiple wavelengths enabled.

Parameters
[in]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in]gas_stateGas state.
[in]i_wavelengthWavelength index to compute properties.

Definition at line 614 of file mosaic.F90.

◆ mosaic_cleanup()

subroutine pmc_mosaic::mosaic_cleanup

Clean-up after running MOSAIC, deallocating memory.

Definition at line 130 of file mosaic.F90.

◆ mosaic_from_partmc()

subroutine pmc_mosaic::mosaic_from_partmc ( type(env_state_t), intent(in)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(in)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(in)  gas_state 
)

Map all data PartMC -> MOSAIC.

Parameters
[in]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in]aero_stateAerosol state.
[in]gas_dataGas data.
[in]gas_stateGas state.

Definition at line 147 of file mosaic.F90.

◆ mosaic_init()

subroutine pmc_mosaic::mosaic_init ( type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(in)  aero_data,
real(kind=dp), intent(in)  del_t,
logical, intent(in)  do_optical 
)

Initialize all MOSAIC data-structures.

Parameters
[in,out]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in]del_tTimestep for coagulation.
[in]do_opticalWhether to compute optical properties.

Definition at line 38 of file mosaic.F90.

◆ mosaic_optical_wavelengths()

subroutine pmc_mosaic::mosaic_optical_wavelengths ( type(aero_data_t), intent(inout)  aero_data)

Fetch the wavelengths that optical cross-sections are calculated at in MOSAIC. If not using multiple wavelengths, the wavelength is the default value of 550 nm.

Definition at line 678 of file mosaic.F90.

◆ mosaic_support()

logical function pmc_mosaic::mosaic_support

Whether MOSAIC support is compiled in.

Definition at line 25 of file mosaic.F90.

◆ mosaic_timestep()

subroutine pmc_mosaic::mosaic_timestep ( type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(inout)  gas_state,
logical, intent(in)  do_optical,
character(len=pmc_uuid_len), intent(in)  uuid 
)

Do one timestep with MOSAIC.

We currently also compute aerosol optical properties within this subroutine. In principle this could be done at data analysis time, rather than inside the timestepper. It's not clear if this really matters, however. Because of this mosaic_aero_optical() is currently disabled.

Parameters
[in,out]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in,out]gas_stateGas state.
[in]do_opticalWhether to compute optical properties.
[in]uuidUUID for this simulation.

Definition at line 411 of file mosaic.F90.

◆ mosaic_to_partmc()

subroutine pmc_mosaic::mosaic_to_partmc ( type(env_state_t), intent(inout)  env_state,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_data_t), intent(in)  gas_data,
type(gas_state_t), intent(inout)  gas_state,
character(len=pmc_uuid_len), intent(in)  uuid 
)

Map all data MOSAIC -> PartMC.

Parameters
[in,out]env_stateEnvironment state.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in]gas_dataGas data.
[in,out]gas_stateGas state.
[in]uuidUUID for this simulation.

Definition at line 279 of file mosaic.F90.