Tracer Advection Code: Second-Order Moments (SOM, 1986)

For the most recent codes related to the Second Order Moments advection scheme, please ftp anonymously to 128.200.14.8 and look up /public/prather/codes/SOM.

Look at the recent implementation of SOM for the Lauritzen (2014, Geosci. Model Dev., 7, 105–145, doi:10.5194/gmd-7-105-2014) tests, including on a cubed sphere.

The new CTM 3-D over-the-pole code that avoids global CFL limiters and hence can readily do 1x1 resolution, is available upon request, we will try to post a simplified version soon. (see Prather M.J., X. Zhu, S.E. Strahan, S.D. Steenrod, J.M. Rodriguez (2008), Quantifying errors in trace species transport modeling, Proc. Nat. Acad. Sci. 105(50): 19617-19621)


Tracer Advection Code:  Second-Order Moments (SOM, 1986)

The Second-Order Moments advection algorithm has been recoded extensively since the original 1986 publication. What is given here along with 1-D and 3-D sample tests is a major rewrite in vector / intrinsic mode plus two greatly improved flux limters (see below).

The new INTRINSIC / VECTOR formulation of CTM advection core contains no conditionals, its abstract coding is correct and easier to follow, BUT it runs much more slowly than the same code with do-loops on typical computers (e.g., IBM p-series 8- and 32-proc boards). Thus you may want to put the do loops and indices back in (as we have done). Also the allocation of memory every time QVECT is called also slows down the code.  Fixed allocations are what we run with now.

The flux limiters now include:

  • LIMTR=0 no limits, neg. tracer allowed
  • LIMTR=1 pos. definite SOM fix (per Prather 1986): adjusts QXT & QXX
  • LIMTR=2 pos. definite & monotonic (ca. 1994-95): adjust QXT,QXX,QXY,QXZ
  • LIMTR=3 min/max limiters (revised 2003-2007)

More recently the SOM code-on-a-sphere has improved accuracy and efficiency:

  1. the vector form, along with the stacking of vertical advection has increased the efficiency of vertical transport on vector machines:
  2. E-W and N-S flow are now done as continuous loops with over-the-pole flow treated much more accurately (retaining SOM info).

Sample tests coded here run test cases in 1-D and 3-D (but not spherical) through all the LIMTR options showing how rms error increases slowly but ripples disppear. A sample code for the new spherical 3D flow (see PDF figures on the web site) is being prepared for posting.

Michael Prather
23 Mar 2007


SOM vector code - standalone 3D (not sphere) with tests (3/2007)
in a zip-file: SOM_2007.zip

Test runs are included:
compile: SOM3DX.f + QVECT.f (or SOM1DX.f + QVECT.f)
run as: SOM3DX <stdin.som > SOM3DX.out
and look at fort.16 (included as SOM3DX.16) for more details, e.g., tracer patterns.


SOM original paper

M.J. Prather, Numerical Advection by Conservation of Second-Order Moments J. Geophys. Res., 91, 6671-6681, 1986. (Copyright 1986 American Geophysical Union. Further reproduction or electronic distribution is not permitted.)


SOM Vectorized Pipe Flow on a Sphere - schematics

UCIrvine Chemistry-Transport Model: Tracer Advection with Second-Order Moments on a Spherical Grid
(OpenMP, vectorized version 5.0, Apr 2003)