Difference between revisions of "TOMAS aerosol microphysics"

From Geos-chem
Jump to: navigation, search
(Validation)
(Aerophys)
Line 178: Line 178:
 
=== Aerophys ===
 
=== Aerophys ===
 
The aerophys routine is where each individual microphysical process is called within the code. To efficiently calculate the competition between nucleation and condensation for H2SO4, H2SO4
 
The aerophys routine is where each individual microphysical process is called within the code. To efficiently calculate the competition between nucleation and condensation for H2SO4, H2SO4
concentrations are calculated using a pseudo-steady state approach as described in Pierce and Adams, 2009, ''AS&T''. Within this routine, nucleation, condensation, and coagulation are calculated at each time step. <tt>Cond_nuc</tt> is called for coupled nucleation-condensation. Nucleation schemes can either be binary (Vehkamaki et al 2002) or ternary (Napari et al 2002). There is a switch for this in the variable declarations. For nucleation, a parameterization (Kerminen et al 2004) is used to determine the flux of new particles to the first size bin.
+
concentrations are calculated using a pseudo-steady state approach as described in Pierce and Adams, 2009, ''AS&T''. Within this routine, nucleation, condensation, and coagulation are calculated at each time step. <tt>Cond_nuc</tt> is called for coupled nucleation-condensation. Nucleation schemes can either be binary (Vehkamaki et al 2002) or ternary (Napari et al 2002). There is a switch for this in the variable declarations.  
 
+
 
--[[User:Dan Westervelt|Dan W.]] 22:36, 28 January 2010 (EST)
 
--[[User:Dan Westervelt|Dan W.]] 22:36, 28 January 2010 (EST)
  

Revision as of 19:15, 22 September 2010

This page describes the TOMAS aerosol microphysics option in GEOS-Chem. TOMAS is one of two aerosol microphysics packages being incorporated into GEOS-Chem, the other being APM.

Overview

The TwO-Moment Aerosol Sectional (TOMAS) microphysics package was developed for implementation into GEOS-Chem at Carnegie-Mellon University. Using a moving sectional and moment-based approach, TOMAS tracks two independent moments (number and mass) of the aerosol size distribution for 30 size bins. It also contains codes to simulate nucleation, condensation, and coagulation processes. The aerosol species that are considered with 30-bin size resolution are sulfate, sea-salt, OC, EC, and dust.

Authors and collaborators

Questions regarding TOMAS can be directed at Dan (e-mail linked above).

--Dan W. 11:53, 27 January 2010 (EST)

TOMAS User Groups

User Group Personnel Projects
Carnegie-Mellon University Peter Adams
Dan Westervelt
...
Dalhousie University Jeffrey Pierce ...
Add yours here... ... ...

Tracers

TOMAS is a simulation type 3 and utilizes 310 tracers. Each aerosol species requires 30 tracers for the 30 bin size resolution. Here is the (abbreviated) default setup in input.geos (see run.Tomas directory):

Tracer #   Description        
40         H2SO4              
41-70      Number             
71-100     Sulfate            
101-130    Sea-salt           
131-160    Hydrophilic EC     
161-190    Hydrophobic EC     
191-210    Hydrophilic OC     
211-240    Hydrophobic OC     
241-271    Mineral dust       
271-310    Aerosol water      

--Dan W. 21:08, 28 January 2010 (EST)

Implementation notes

TOMAS validation in GEOS-Chem v8-03-01 was completed on 24 Feb 2010.

Code structure

The main-level Code directory has now been divided into several subdirectories:

GeosCore/    GEOS-Chem "core" routines
GeosTomas/   Parallel copies of GEOS-Chem routines that reference TOMAS
GeosUtil/    "Utility" modules (e.g. error_mod.f, file_mod.f, time_mod.f, etc.
Headers/     Header files (define.h, CMN_SIZE, CMN_DIAG, etc.)
KPP/         KPP solver directory structure
bin/         Directory where executables are placed
doc/         Directory where documentation is created
help/        Directory for GEOS-Chem Help Screen
lib/         Directory where library files are placed
mod/         Directory where module files are placed
obsolete/    Directory where obsolete versions of code are archived

Because there were a lot of TOMAS-related modifications in several GEOS-Chem "core" routines, the routines that need to "talk" to TOMAS were placed into a separate subdirectory named GeosTomas/. The files in GeosTomas are:

Files:
------
Makefile            -- GEOS-Chem routines that have been
aero_drydep.f          modified to reference the TOMAS aerosol
carbon_mod.f           microphysics package.  These are kept
chemdr.f               in a separate GeosTomas directory so that
chemistry_mod.f        they do not interfere with the routines
cleanup.f              in the GeosCore directory.
diag3.f
diag_mod.f             The GeosTomas directory only needs to
diag_pl_mod.f          contain the files that have been modified
drydep_mod.f           for TOMAS.  The Makefile will look for
dust_mod.f             all other files from the GeosCore directory
emissions_mod.f        using the VPATH option in GNU Make.
gamap_mod.f
initialize.f           NOTE to GEOS-Chem developers: When you
input_mod.f            make changes to any of these routines
isoropia_mod.f         in the GeosCore directory, you must also
logical_mod.f          make the same modifications to the
ndxx_setup.f           corresponding routines in the GeosTomas
planeflight_mod.f      directory.
seasalt_mod.f
sulfate_mod.f          Maybe in the near future we can work
tomas_mod.f            towards integrating TOMAS into the GeosCore
tomas_tpcore_mod.f90   directory more cleanly.  However, due to
tpcore_mod.f           the large number of modifications that were
tpcore_window_mod.f    necessary for TOMAS, it was quicker to
tracerid_mod.f         implement the TOMAS code in a separate
wetscav_mod.f          subdirectory.    
xtra_read_mod.f            -- Bob Y. (1/25/10)

Each of these files were merged with the corresponding files in the GeosCore subdirectory. Therefore, in addition to having the GEOS-Chem modifications from v8-02-05, these files also have the relevant TOMAS references.

A few technical considerations dictated the placing of these files into a separate GeosTomas/ directory:

  • The ND60 diagnostic in the standard GEOS-Chem code (in GeosCore/) is now used for the CH4 offline simulation, but in TOMAS it's used for something else.
  • Some parameters needed to be declared differently with for simulations with TOMAS.
  • Because not all GEOS-Chem users will choose to use TOMAS, we did not want to unnecessarily bog down the code in GeosCore/ with references to TOMAS-specific routines.

All of these concerns could be best solved by keeping parallel copies of the affected routines in the GeosTomas directory.

--Bob Y. 13:35, 25 February 2010 (EST)

Building GEOS-Chem with TOMAS

The VPATH feature of GNU Make is used to simplify the compilation. When GEOS-Chem is compiled with the tomas target, the GNU Make utility will search for files in the GeosTomas/ directory first. If it cannot find files there, it will then search the GeosCore/ directory. Thus, if we make a change to a "core" GEOS-Chem routine in the GeosCore/ subdirectory (say in dao_mod.f or diag49_mod.f), then those changes will automatically be applied when you build GEOS-Chem with TOMAS. Thus, we only need to keep in GeosTomas/ separate copies of those files that have to "talk" with TOMAS.

Several new targets were added to the Makefile in the top-level Code/ directory:

#=============================================================================
# Targets for TOMAS aerosol microphysics code (win, bmy, 1/25/10)
#=============================================================================

.PHONY: tomas libtomas exetomas cleantomas

tomas:
        @$(MAKE) -C $(GEOSTOM) TOMAS=yes all

libtomas:
        @$(MAKE) -C $(GEOSTOM) TOMAS=yes lib

exetomas:
        @$(MAKE) -C $(GEOSTOM) TOMAS=yes exe

cleantomas:
        @$(MAKE) -C $(GEOSTOM) TOMAS=yes clean

You can build GEOS-Chem with the TOMAS option by typing:

make tomas ...

This will automatically do the proper things to build the TOMAS code into GEOS-Chem, such as:

  • Adding a -DTOMAS C-preprocessor switch to the FFLAGS compiler flag settings in Makefile_header.mk. This will cause TOMAS-specific areas of code to be turned on.
  • Turning off OpenMP parallelization. For now the GEOS-Chem + TOMAS code needs to be run on a single processor. We continue to work on parallelizing the code.
  • Calling the Makefile in the GeosTomas/ subdirectory to build the executable. The executable file is now named geostomas in order to denote that the TOMAS code is built in.

The GEOS-Chem + TOMAS has been built on the following compilers

  • Intel Fortran compiler v10
  • SunStudio 12

--Bob Y. 10:36, 27 January 2010 (EST)

Computational Information

GC-TOMAS v8-03-01 on a single 2.6 GHz processor:

  • 36 hours of real time per month of model simulation time
  • 4.3 GB RAM per simulation (with full diagnostic output)
  • 3.8 GB RAM per simulation (with minimal diagnostic output)

"Full diagnostic" refers to recording output for optical depths, J-values, wet and dry deposition, tracer concentrations, and microphysical processes (nucleation rates, condensation, coagulation).

"Minimal diagnostic" refers to recording output for all of the above except wet and dry deposition.

--Dan W. 20:40, 10 February 2010 (EST)

Microphysics Code

The aerosol microphysics code is largely contained within the file tomas_mod.f. Tomas_mod and its subroutines are modular -- they use all their own internal variables. Below is a brief description of an important piece of code in TOMAS. For further details, see tomas_mod.f and comments.

Aerophys

The aerophys routine is where each individual microphysical process is called within the code. To efficiently calculate the competition between nucleation and condensation for H2SO4, H2SO4 concentrations are calculated using a pseudo-steady state approach as described in Pierce and Adams, 2009, AS&T. Within this routine, nucleation, condensation, and coagulation are calculated at each time step. Cond_nuc is called for coupled nucleation-condensation. Nucleation schemes can either be binary (Vehkamaki et al 2002) or ternary (Napari et al 2002). There is a switch for this in the variable declarations. --Dan W. 22:36, 28 January 2010 (EST)

Validation

GC-TOMAS v8-03-01 generally compares very well with observations and other models. Please see our GC-TOMAS v8-02-05 validation document for more information and figures.

Below are some results of benchmarking GC-TOMAS with earlier versions of the model as well as observations:

CN10 smaller.jpg

Figure 1: CN10 concentrations predicted by GC-TOMAS v8-02-05 against observations. Descriptions of observational data can be found on p 5454 of Pierce et al, Atmos. Chem. Phys., 7, 2007.


--Dan W. 20:13, 10 February 2010 (EST)

Previous issues now resolved

Segmentation Fault

You may get an early segfault if your stacksize is not set to either unlimited or a very large number. To avoid this, you either have to change the value of an environmental variable (setenv command in .cshrc) or use the ulimit command. See this page for details.

--Dan W. 20:20, 10 February 2010 (EST)

Outstanding issues

Vertical Grids

Currently, GC-TOMAS is only compatible with the reduced vertical grids:

Development for the full vertical grids is ongoing.

--Dan W. 20:43, 10 February 2010 (EST)

Compile from GeosTomas directory

Dan Westervelt wrote:

I think there is something going wrong in my compilation, although errors have come up at both compile time and run time. The worst of the problems is this: I'll make a change to any fortran file in the code (even something meaningless like print*, 'foo') and hundreds of compile errors come out with fishy error messages such as (from ifort v10.1):
 ***fortcom: Error: chemistry_mod.f, line 478: A kind type parameter must be a compile-time constant.   [DP]
          REAL(kind=dp) :: RCNTRL(20)
Any advice? The errors I'm having are not unique to any version of GC, any type of met fields, any compiler, etc.

Bob Yantosca wrote:

Make sure you are always in the GeosTomas subdirectory when you build the code. Sometimes there is a problem if you build the code from a higher level directory. This may have to do with the VPATH in the makefile.

Dan Westervelt wrote:

Thanks, that seems to do the trick.

--Bob Y. 14:37, 14 April 2010 (EDT)

Other versions of TOMAS

Additionally, TOMAS exists in versions with variable size resolution. A 40-bin version with size resolution down to 1 nm eliminates the need for a parameterization of flux of nucleated particles to the first size bin. For faster computational time, we also have a 15-bin and 12-bin version, which has already been developed in GISS GCM and is coming soon for GEOS-Chem.

--Dan W. 11:58, 19 February 2010 (EST)

Reference