MADE3  3.0
Modal Aerosol Dynamics for Europe, adapted for global applications, 3rd generation
 All Classes Functions Variables Pages
messy_made3_si Module Reference

MADE3 interface module. More...

+ Collaboration diagram for messy_made3_si:

Data Types

type  t_aerspec
 Aerosol specs type. More...
 
type  t_emis
 Emission data type. More...
 
type  t_emis_cpl
 Type for emissions assignment via namelist. More...
 
type  t_gas
 Gas specs type. More...
 
type  t_gas_cpl
 Gas coupling type. More...
 
type  t_mode
 Mode specs type. More...
 

Public Member Functions

subroutine, public made3_initialize
 Initializes MADE3 parameters. More...
 
subroutine, public made3_new_tracer
 Creates MADE3 tracers. More...
 
subroutine, public made3_init_memory
 Creates the MADE3 channel (incl. objects) More...
 
subroutine, public made3_init_coupling
 Checks and initializes requested couplings. More...
 
subroutine, public made3_vdiff
 Distributes online SS and DU emissions among species and modes. More...
 
subroutine, public made3_physc
 Entry point to MADE3 core routines. More...
 
subroutine, public made3_free_memory
 Deallocates memory allocated in messy_made3_si::made3_init_memory. More...
 

Private Member Functions

subroutine, private made3_read_nml_cpl (status, iou)
 Reads MADE3 CPL namelist. More...
 
subroutine, private echam_to_made3 (blksize, numcells, rhoair, cblk)
 Converts ``ECHAM units'' to ``MADE3 units''. More...
 
subroutine, private made3_to_echam (blksize, numcells, rhoair, cblk)
 Converts ``MADE3 units'' to ``ECHAM units''. More...
 
subroutine, private update_xte (blksize, numcells, cblk, cblk_m1, jk, ptmst)
 Updates MADE3 tracer tendencies. More...
 

Private Attributes

type(t_gas_cpl), dimension(ngas) gas_cpl
 Gas phase coupling (NOTE: gas_cpl(5) is ProdH2SO4 here, not SOA!)
 
type(t_emis_cpl), dimension(n_max_emis_cpl) emis_cpl
 Emissions coupling.
 
logical l_bctime = .FALSE.
 Enable calculation of externally mixed BC and DU lifetimes.
 
character(len=strlen_fname),
dimension(nspec *nmod) 
notrac
 Names of unnecessary tracers.
 

Detailed Description

Authors
Axel Lauer, DLR Oberpfaffenhofen, 2001-2003 (axel..nosp@m.laue.nosp@m.r@dlr.nosp@m..de)
  • inclusion of MADE in ECHAM4
  • creation of MADE interface to the MESSy framework
Valentina Aquila, DLR Oberpfaffenhofen, 2008/09 (valen.nosp@m.tina.nosp@m..aqui.nosp@m.la@d.nosp@m.lr.de)
  • development of MADE-in on the basis of MADE (and under the name MADE)
Christopher Kaiser, DLR Oberpfaffenhofen, 2012-2016 (chris.nosp@m.toph.nosp@m.er.ka.nosp@m.iser.nosp@m.@dlr..nosp@m.de)
  • adaptation of MADE-in to MESSy2
  • development of MADE3 on the basis of MADE-in
Version
2.1
  • redesign of emissions coupling
2.0
  • first working version of the MADE3 interface

Member Function/Subroutine Documentation

subroutine, private messy_made3_si::echam_to_made3 ( integer, intent(in)  blksize,
integer, intent(in)  numcells,
real(dp), dimension(blksize), intent(in)  rhoair,
real(dp), dimension(dim1_cblk,dim2_cblk,blksize), intent(inout)  cblk 
)
private

Converts from [mol mol-1] and [# mol-1] to [ug m-3] and [# m-3], respectively.

Parameters
[in]blksizeSize of input arrays
[in]numcellsNumber of grid cells in input arrays
[in]rhoairAir density [kg m-3]
[in,out]cblkTracer array (input in ``ECHAM units'', output in ``MADE3 units'')
subroutine, public messy_made3_si::made3_free_memory ( )

Deallocates 5D array pointers that were used for MADE3-internal memory management.

subroutine, public messy_made3_si::made3_init_coupling ( )

Checks if tracers and channel objects requested for couplings (i.e., chemistry and emissions) are available and stores the corresponding tracer indices or associates the corresponding pointers, respectively. Writes relevant coupling information to standard output.

subroutine, public messy_made3_si::made3_init_memory ( )

Creates new dimension for modes and representations that use this dimension; creates the MADE3 channel (made3_gp) and the objects for

  • wet radius (wetradius, wetrad_xx),
  • dry radius (dryradius, dryrad_xx),
  • particle density (densaer, densaer_xx),
  • deliquescence history (rhhist, rhhist_xx),
  • BC and DU aging related variables, and
  • modal standard deviations (sigma).

The `xx' stands for the mode name abbreviation as described under Couplings and output. The subroutine also sets the channel object `sigma' to the values from messy_made3.

subroutine, public messy_made3_si::made3_initialize ( )

Reads CTRL and CPL namelists, broadcasts results, calls messy_made3::made3_initialize_core, and sets further MADE3 constants that are used in the interface.

subroutine, public messy_made3_si::made3_new_tracer ( )

Creates tracers for MADE3 aerosol components and numbers (and dummy gas phase tracers in case coupling to the gas phase is switched off), and sets their attributes.

subroutine, public messy_made3_si::made3_physc ( )

Calculates current value of relative humidity in cloud-free area of grid box, reads or calculates other environmental and tracer data from various MESSy variables (and converts their units to ``MADE3 units''), calls messy_made3::made3_main, calls the subroutine messy_made3_si::update_xte to update MESSy tracer tendencies, and stores updated MADE3 variables in the MADE3 channel objects.

subroutine, private messy_made3_si::made3_read_nml_cpl ( integer, intent(out)  status,
integer, intent(in)  iou 
)
private

Opens, reads, checks, and closes the MADE3 coupling namelist.

subroutine, private messy_made3_si::made3_to_echam ( integer, intent(in)  blksize,
integer, intent(in)  numcells,
real(dp), dimension(blksize), intent(in)  rhoair,
real(dp), dimension(dim1_cblk,dim2_cblk,blksize), intent(inout)  cblk 
)
private

Converts from [ug m-3] and [# m-3] to [mol mol-1] and [# mol-1], respectively.

Parameters
[in]blksizeSize of input arrays
[in]numcellsNumber of grid cells in input arrays
[in]rhoairAir density [kg m-3]
[in,out]cblkTracer array (input in ``MADE3 units'', output in ``ECHAM units'')
subroutine, public messy_made3_si::made3_vdiff ( )

Assigns online sea spray emissions to the soluble accumulation and coarse modes and distributes them among the Na and Cl tracers; assigns online dust emissions to the insoluble accumulation and coarse modes and calculates the number fluxes from the mass fluxes.

subroutine, private messy_made3_si::update_xte ( integer, intent(in)  blksize,
integer, intent(in)  numcells,
real(dp), dimension(dim1_cblk,dim2_cblk,blksize), intent(in)  cblk,
real(dp), dimension(dim1_cblk,dim2_cblk,blksize), intent(in)  cblk_m1,
integer, intent(in)  jk,
real(dp), intent(in)  ptmst 
)
private

Updates tracer tendencies (XTE) for all MADE3 tracers for a given model level (jk).

Parameters
[in]blksizeSize of input arrays
[in]numcellsNumber of grid cells in input arrays
[in]cblkTracer array (NEW values in ``ECHAM units'')
[in]cblk_m1Tracer array (OLD values in ``ECHAM units'')
[in]jkModel level index
[in]ptmstTime step [s]