Difference between revisions of "Dynamic tropopause"

From Geos-chem
Jump to: navigation, search
(Diagnostics)
(Problem reading GEOS-4 TROPP files)
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''''NOTE: Page under construction!'''''
+
On this page we describe the implementation of the dynamic tropopause in GEOS-Chem.
  
 
== Overview ==
 
== Overview ==
 +
 +
GEOS-Chem is primarily a tropospheric model of atmospheric chemistry and composition.  Its [[NOx-Ox-HC-aerosol]] (aka "full chemistry") simulation employs a detailed chemistry mechanism is used in the troposphere, while a much simpler mechanism (based on simple loss rates by OH and [[Photolysis mechanism|photolysis]]) is invoked in the stratosphere.  Therefore, a robust definition of the tropopause is required.
 +
 +
In ancient versions of GEOS-Chem, the tropopause was denoted by a single level (LLTROP).  The "full chemistry" mechanism was solved for in all grid boxes up to level LLTROP.  However, using a single level to represent the tropopause significantly underestimated the tropopause height in the tropics.
 +
 +
GEOS-Chem v3-01 was the first version to include a more realistic tropopause.  An annual mean tropopause was computed by running GEOS-Chem with 1 year of met data to compute the tropopause location (diagnosed where the lapse rate of temperature fell below 2 K/km).  The annual mean tropopause had to be computed for each vertical (e.g. GEOS-1, GEOS-STRAT, GEOS-3, GEOS-4) and horizontal (e.g. 2° x 2.5°, 4° x 5°) grid combination.  While satisfactory for many applications, the major drawback of the annual mean tropopause was that it did not accurately reflect the interannual variability of the tropopause location. 
 +
 +
GEOS-Chem v7-04-10 improved upon the situation by introducing a dynamic tropopause.  This is now the default option and we recommend all GEOS-Chem users to turn this feature on.  The location of the tropopause is now computed at each dynamic timestep of a GEOS-Chem simulation, according to the following criterion:
 +
 +
    IF ( P<sub>edge</sub>(I,J,L) > TROPP(I,J) ) THEN
 +
     
 +
      ! We are in the troposphere
 +
      IS_TROP = .TRUE.
 +
 +
    ELSE
 +
 +
      ! We are in the stratosphere
 +
      IS_TROP = .FALSE.
 +
 +
    ENDIF
 +
 +
where
 +
 +
    P<sub>edge</sub>(I,J,L)  is the pressure [hPa] at the BOTTOM EDGE of grid box (I,J,L)
 +
    TROPP(I,J)    is the tropopause pressure [hPa] from the GEOS or GCAP met field archive
 +
 +
NOTES:
 +
#For both the annual mean and dynamic tropopause options, the parameter LLTROP represents the maximum extent of the tropopause in model levels.
 +
#Some [[Offline chemistry simulations|offline chemistry simulations]] still use the annual mean tropopause.  Other offline simulations perform chemistry from the surface to the atmosphere top without regard for the tropopause location.
 +
 +
--[[User:Bmy|Bob Y.]] 13:56, 13 September 2010 (EDT)
  
 
== Diagnostics ==
 
== Diagnostics ==
 +
 +
=== Overview ===
  
 
GEOS-Chem archives tropopause pressure at two different places in the timestepping process.
 
GEOS-Chem archives tropopause pressure at two different places in the timestepping process.
  
#The ND67 diagnostic is archived directly after reading the tropopause pressure from disk. No further processing is done to the tropopause pressure before saving to ND67. '''''Therefore, ND67 should be directly comparable to the tropopause pressure as stored in the “raw” GEOS met data files.'''''<br><br>
+
#The ND67 diagnostic is archived directly after reading the tropopause pressure from disk. No further processing is done to the tropopause pressure before saving to ND67. '''''Therefore, ND67 should be directly comparable to the tropopause pressure as stored in the “raw” GEOS met data files.'''''
 
#On each dynamic timestep (typically 15 or 30 mins), the tropopause pressure poleward of 60N and 60S is capped at 200 hPa. This ensures that SMVGEAR or KPP chemistry will not be performed at unrealistically high altitudes in the polar regions. The ND55 diagnostic is archived at the end of each dynamic timestep. '''''Therefore, ND55 represents the tropopause pressure (including the polar cap) that is used to diagnose where the GEOS–Chem tropopause occurs at each dynamic timestep.'''''
 
#On each dynamic timestep (typically 15 or 30 mins), the tropopause pressure poleward of 60N and 60S is capped at 200 hPa. This ensures that SMVGEAR or KPP chemistry will not be performed at unrealistically high altitudes in the polar regions. The ND55 diagnostic is archived at the end of each dynamic timestep. '''''Therefore, ND55 represents the tropopause pressure (including the polar cap) that is used to diagnose where the GEOS–Chem tropopause occurs at each dynamic timestep.'''''
  
 
Please also see our [http://acmg.seas.harvard.edu/geos/wiki_docs/diagnostics/Tropopause_diagnostic.pdf presentation about the GEOS-Chem Tropopause Diagnostics] (PDF).
 
Please also see our [http://acmg.seas.harvard.edu/geos/wiki_docs/diagnostics/Tropopause_diagnostic.pdf presentation about the GEOS-Chem Tropopause Diagnostics] (PDF).
  
--[[User:Bmy|Bob Y.]] 13:03, 13 September 2010 (EDT)
+
=== Modifications to ND55 diagnostic ===
  
== References ==
+
The ND55 diagnostic was originally developed for GEOS-Chem using the annual mean tropopause.  The tropopause level was first computed by searching for where the temperature lapse rate fell below 2 K/km.  Then the tropopause height H and pressure were computed from this tropopause level and saved to the AD55 array as follows:
  
 +
    L = ... level at which tropopause occurs ...
 +
    AD55(I,J,1) = AD55(I,J,1) + L
 +
    AD55(I,J,2) = AD55(I,J,2) + H(I,J,L) / 1.0d3 ! m --> km
 +
    AD55(I,J,3) = AD55(I,J,3) + GET_PCENTER(I,J,L)
  
 +
Note that the tropopause pressure was taken as the pressure at the center of the grid box (I,J,L) where the tropopause occurs.  This approximation is not the same as the actual tropopause pressure, which we now obtain directly from the met fields.
  
== Previous issues that are now resolved ==
+
Starting with [[GEOS-Chem v9-01-01]], the ND55 diagnostic will be updated to report more accurately the tropopause pressure and height.  The tropopause pressure from the met field archive will be directly archived to the AD55 array as follows:
  
=== Buggy implementation in v7-04-12 ===
+
    AD55(I,J,3) = AD55(I,J,3) + TROPP(I,J)  ! T'pause pressure [hPa]
  
Note that the implementation of the variable tropopause is buggy in versions prior to [[GEOS-Chem_versions_under_development#v7-04-12|GEOS-Chem v7-04-12]]. If you are using versions prior to v7-04-12, you should turn the variable tropopause OFF.
+
Also, the tropopause height will now be accurately computed to be consistent with the tropopause pressure taken from the met fields.
 +
 
 +
--[[User:Bmy|Bob Y.]] 16:09, 13 September 2010 (EDT)
 +
 
 +
== References ==
 +
 
 +
Text needs to be added ...
 +
 
 +
== Previous issues that are now resolved ==
  
 
=== Polar cap ===
 
=== Polar cap ===
Line 28: Line 74:
 
Jennifer Logan (see correspondence below) suggested that we should cap the variable tropopause at 200hPa in near-polar regions (90-60S and 60-90N), to avoid the problem with anomalously high tropopause heights at high latitudes.  This fix was standardized in [[GEOS-Chem v7-04-13]].
 
Jennifer Logan (see correspondence below) suggested that we should cap the variable tropopause at 200hPa in near-polar regions (90-60S and 60-90N), to avoid the problem with anomalously high tropopause heights at high latitudes.  This fix was standardized in [[GEOS-Chem v7-04-13]].
  
:'''''[mailto:jlogan@seas.harvard.edu Jennifer Logan] wrote:'''''
+
'''''[mailto:jlogan@seas.harvard.edu Jennifer Logan] wrote:'''''
 +
 
 +
:After looking at the two papers I sent, I think we should restrict the tropopause at latitudes > 60 deg. to pressures greater than 200 mb (about 11 km).  From Fig. 3 in Seidel and Randel, there are tropopause (TP) heights as high as 13.5 km in the Antarctic (median height is ~9.8 km, 250 mb), but I don't think we want to be doing trop. chem there. The median TP pressure at ~80 N is ~300 mb, compared to ~250 mb at 70-85 S.  The extratropical TP heights are higher (lower pressure) in the SH than in the NH according to Fig. 3.
 +
 
 +
:This approach is also very easy to explain in a paper.
 +
 
 +
:Jennifer
 +
 
 +
=== Defining LLTROP for GEOS-5 72-layer grid ===
 +
 
 +
<span style="color:green">'''''This fix was incorporated into [[GEOS-Chem v9-01-01]] and higher versions.'''''</span>
 +
 
 +
If you try to run one of the [[Offline chemistry simulations]] on the [[GEOS-Chem_vertical_grids#72-layer_vertical_grid|72-level vertical grid]], you may encounter an error such as this:
 +
 
 +
CHECK_VAR_TROP: LLTROP is set too low!
 +
MAX TROPOSPHERE LEVEL =  39 and LLTROP =  38
 +
STOP in TROPOPAUSE_MOD.F!!!
 +
 
 +
The <tt>LLTROP</tt> parameter denotes the highest level that is purely tropopsheric.  To save memory, many GEOS-Chem allocates several global arrays with only <tt>LLTROP</tt> vertical levels.
 +
 
 +
For the [[GEOS-Chem_vertical_grids#47-layer_reduced_vertical_grid|47-level "reduced" vertical grid]], we have set <tt>LLTROP</tt> to level 38.  However, GEOS-Chem creates this level by [[GEOS-Chem_vertical_grids#72-layer_vertical_grid|aggregating levels of the 72-layer grid together]].  As a result, when you run a simulation on the full GEOS-5 72-layer vertical grid, it is possible that the tropopause may extend beyond level 38.  Therefore, the value of <tt>LLTROP</tt> needs to be reset for the full GEOS-5 72-layer grid.
 +
 
 +
We have modified the <tt>#if defined</tt> statements in the include file <tt>Headers/CMN_SIZE_mod.F</tt>.  The value of <tt>LLTROP</tt> now depends on whether you are using the "reduced" 47-layer grid, or the full 72-layer grid.
 +
 
 +
#if  defined( GRIDREDUCED )
 +
      INTEGER, PARAMETER :: LLPAR      = 47        ! Reduced vertical grid
 +
      INTEGER, PARAMETER :: LLTROP_FIX = 38        !  -- 47 levels
 +
      INTEGER, PARAMETER :: LLTROP    = 38 
 +
#else
 +
      INTEGER, PARAMETER :: LLPAR      = LGLOB    ! Full vertical grid
 +
      INTEGER, PARAMETER :: LLTROP_FIX = 40        !  -- 72 levels
 +
      INTEGER, PARAMETER :: LLTROP    = 40 
 +
#endif
 +
 
 +
Similar blocks have been added to the following sections of <tt>Headers/CMN_SIZE_mod.F</tt>:
 +
 
 +
# GEOS-5, 4&deg; x 5&deg;
 +
# GEOS-5, 2&deg; x 2.5&deg;
 +
# GEOS-5, 1&deg; x 1.25&deg;
 +
# GEOS-5, 0.5&deg; x 0.667&deg; nested grids
 +
# MERRA, 4&deg; x 5&deg;
 +
# MERRA, 2&deg; x 2.5&deg;
 +
 
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:51, 7 December 2016 (UTC)
 +
 
 +
=== Bug in ND67 diagnostic ===
 +
 
 +
<span style="color:green">'''''This fix was incorporated into [[GEOS-Chem v9-01-01]] and higher versions. This update is included in Adjoint [[GEOS-Chem_Adjoint_v35 | v35g]].'''''</span>
 +
 
 +
'''''[mailto:jianjun.jin@jpl.nasa.gov Jianjun Jin] wrote:'''''
 +
 
 +
:I went to back to your benchmark run results <tt>ctm.bpch.v8-03-01</tt>. There are outputs for both ND67 (TROPP, tracer=11017) and ND55 (TP-PRESS, tracer=26003). They are quite different. The ND55 is ok, but the ND67 is too large.
 +
 
 +
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:'''''
 +
 
 +
:I found the problem.  It turns out that in GEOS-4, the TROPP field was an I-6 field (archived every 6 hours, or 4X/day).  However, in GEOS-5, the TROPP field is an A-3 field (archived every 3 hours, or 8X/day).
 +
 
 +
:If you look at <tt>diag3.f</tt> we have this code:
 +
 
 +
      IF ( ND67 > 0 ) THEN
 +
        CATEGORY = 'DAO-FLDS'
 +
 +
        ! Binary punch file
 +
        DO M = 1, TMAX(67)
 +
            N  = TINDEX(67,M)
 +
            NN = N
 +
 +
            SELECT CASE ( N )
 +
 +
                ...
 +
 +
              CASE ( 17 )
 +
                  SCALEX = SCALE_I6
 +
                  UNIT  = 'hPa'
 +
 
 +
The 17th slot of DAO-FLDS ND67 diagnostic is TROPP.  Note that we are dividing by SCALE_I6, which is the # of I6 timesteps.  We should be dividing by SCALE_A3, which is the # of A3 timesteps.  So somehow we forgot to make this change when we switched from GEOS-4 to GEOS-5.
 +
 
 +
This will all be fixed in the [[GEOS-Chem v9-01-01|next version]], along with the [[#Modifications to ND55 diagnostic|updated diagnostic for ND55]].
 +
 
 +
--[[User:Bmy|Bob Y.]] 16:19, 13 September 2010 (EDT)
  
<blockquote>After looking at the two papers I sent, I think we should restrict the tropopause at latitudes > 60 deg. to pressures greater than 200 mb (about 11 km).  From Fig. 3 in Seidel and Randel, there are tropopause (TP) heights as high as 13.5 km in the Antarctic (median height is ~9.8 km, 250 mb), but I don't think we want to be doing trop. chem there. The median TP pressure at ~80 N is ~300 mb, compared to ~250 mb at 70-85 S.  The extratropical TP heights are higher (lower pressure) in the SH than in the NH according to Fig. 3.</blockquote>
+
=== Problems with dynamic tropopause and adjoint model ===
  
<blockquote>This approach is also very easy to explain in a paper.</blockquote>
+
<span style="color:green">'''''NOTE: a fix for this issue was added into GEOS-Chem and tested in the 1-month benchmark simulation [[GEOS-Chem_v9-01-02_benchmark_history#v9-01-02a|v9-01-02a]].  The fix was approved on 28 Jun 2011, so we now consider this a resolved issue.'''''</span>
  
<blockquote>Jennifer</blockquote>
+
'''''[mailto:daven.henze@colorado.edu Daven Henze] wrote:'''''
  
=== Problem reading GEOS-4 TROPP files ===
+
:Jamin Koo at MIT has noticed an issue with the variable tropopause in GEOS-Chem forward model:
  
'''''[mailto:davem@atmosp.physics.utoronto.ca Dave MacKenzie] wrote:'''''
+
:'''''[mailto:jaminkoo@mit.edu Jamin Koo] wrote:'''''
  
:We encountered an I/O Error 29 with file 69 when trying to run GEOS4 v8-01-01 with the variable tropopause turned on at 4x5 resolution. When I investigated this problem further, I found that there was no code written to copy and unzip the <tt>YYYYMMDD.tropp.4x5.gz files</tt>.  Since I didn't see any mention of this online for v8-01-01 or newer versions, I thought I should bring it to your attention.
+
<blockquote>
 +
I think what is happening is there is a shift in the indexing in the forward module. (please look at attached image.pdf) When it is partitioning, it is accessing the OLD values of CSPEC with NEW index. So all the following grid boxes are looking at the wrong CSPEC's grid. RURALGRID module changes the indexing, and this happens before partition in CHEMDR_MOD.f
 +
</blockquote>
  
:The <tt>*.tropp*</tt> files are accessed in <tt>i6_read_mod.f</tt> but there is only code included to use the data in those files and erase them from the <tt>TEMP</tt> directory.  No code was included to actually copy them into the <tt>TEMP</tt> directory and unzip them.  I wrote in a few lines of code and our problems disappeared.  After running the code for one day, it finished smoothly with no problems.  Then I tried running it for 2 years and it crashed after two months (I/O error 67 in file 72, input statement requires too much data).  I don't know if it's a related problem to the changes I made or something else, but I thought I'd bring this to your attention.  Thanks!
+
<blockquote>
 +
The upshot is that while this may have not had noticeable impacts on the forward model, it can cause very bizarre sensitivities for the adjoint:
 +
</blockquote>
  
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] replied:'''''
+
      (STT_ADJ for NOx changed from 14797.0983063715 to -657998926.747741 comparing before and after CHEMDR_ADJ)
  
:Yes...the TROPP files for GEOS-4 were an afterthought.  We have always stored the GEOS-4 data as uncompressed, in order to avoid the problemThat might be a good solution if you have the disk space.
+
:While we work towards fixing this in the forward model, and the corresponding update to the adjoint, I would recommend turning off the variable tropopause option in input.geos for users looking at full chemistry simulations sensitive to concentrations in the upper troposphere.   
  
--[[User:Bmy|Bob Y.]] 16:44, 18 February 2009 (EST)
+
:Below is an example from Jamin showing how the variable tropopause option can lead to odd adjoint values. This is a timeseries of adjoint values summed over the columns, displayed running backwards in time.  Note the difference in the sensitivities near antarctica during the final third of these animations.
  
== Outstanding issues ==
+
:*fixed tropopause    : http://web.mit.edu/jaminkoo/Public/adj_NOx_fxdTP_comp.avi
 +
:*variable tropopause : http://web.mit.edu/jaminkoo/Public/adj_NOx_varTP_comp.avi
  
--[[User:Bmy|Bob Y.]] 12:44, 13 September 2010 (EDT)
+
--[[User:Bmy|Bob Y.]] 14:12, 6 July 2011 (EDT)

Revision as of 21:55, 10 January 2019

On this page we describe the implementation of the dynamic tropopause in GEOS-Chem.

Overview

GEOS-Chem is primarily a tropospheric model of atmospheric chemistry and composition. Its NOx-Ox-HC-aerosol (aka "full chemistry") simulation employs a detailed chemistry mechanism is used in the troposphere, while a much simpler mechanism (based on simple loss rates by OH and photolysis) is invoked in the stratosphere. Therefore, a robust definition of the tropopause is required.

In ancient versions of GEOS-Chem, the tropopause was denoted by a single level (LLTROP). The "full chemistry" mechanism was solved for in all grid boxes up to level LLTROP. However, using a single level to represent the tropopause significantly underestimated the tropopause height in the tropics.

GEOS-Chem v3-01 was the first version to include a more realistic tropopause. An annual mean tropopause was computed by running GEOS-Chem with 1 year of met data to compute the tropopause location (diagnosed where the lapse rate of temperature fell below 2 K/km). The annual mean tropopause had to be computed for each vertical (e.g. GEOS-1, GEOS-STRAT, GEOS-3, GEOS-4) and horizontal (e.g. 2° x 2.5°, 4° x 5°) grid combination. While satisfactory for many applications, the major drawback of the annual mean tropopause was that it did not accurately reflect the interannual variability of the tropopause location.

GEOS-Chem v7-04-10 improved upon the situation by introducing a dynamic tropopause. This is now the default option and we recommend all GEOS-Chem users to turn this feature on. The location of the tropopause is now computed at each dynamic timestep of a GEOS-Chem simulation, according to the following criterion:

   IF ( Pedge(I,J,L) > TROPP(I,J) ) THEN
      
      ! We are in the troposphere
      IS_TROP = .TRUE.

   ELSE

      ! We are in the stratosphere
      IS_TROP = .FALSE.

   ENDIF

where

   Pedge(I,J,L)  is the pressure [hPa] at the BOTTOM EDGE of grid box (I,J,L)
   TROPP(I,J)    is the tropopause pressure [hPa] from the GEOS or GCAP met field archive

NOTES:

  1. For both the annual mean and dynamic tropopause options, the parameter LLTROP represents the maximum extent of the tropopause in model levels.
  2. Some offline chemistry simulations still use the annual mean tropopause. Other offline simulations perform chemistry from the surface to the atmosphere top without regard for the tropopause location.

--Bob Y. 13:56, 13 September 2010 (EDT)

Diagnostics

Overview

GEOS-Chem archives tropopause pressure at two different places in the timestepping process.

  1. The ND67 diagnostic is archived directly after reading the tropopause pressure from disk. No further processing is done to the tropopause pressure before saving to ND67. Therefore, ND67 should be directly comparable to the tropopause pressure as stored in the “raw” GEOS met data files.
  2. On each dynamic timestep (typically 15 or 30 mins), the tropopause pressure poleward of 60N and 60S is capped at 200 hPa. This ensures that SMVGEAR or KPP chemistry will not be performed at unrealistically high altitudes in the polar regions. The ND55 diagnostic is archived at the end of each dynamic timestep. Therefore, ND55 represents the tropopause pressure (including the polar cap) that is used to diagnose where the GEOS–Chem tropopause occurs at each dynamic timestep.

Please also see our presentation about the GEOS-Chem Tropopause Diagnostics (PDF).

Modifications to ND55 diagnostic

The ND55 diagnostic was originally developed for GEOS-Chem using the annual mean tropopause. The tropopause level was first computed by searching for where the temperature lapse rate fell below 2 K/km. Then the tropopause height H and pressure were computed from this tropopause level and saved to the AD55 array as follows:

   L = ... level at which tropopause occurs ...
   AD55(I,J,1) = AD55(I,J,1) + L
   AD55(I,J,2) = AD55(I,J,2) + H(I,J,L) / 1.0d3 ! m --> km
   AD55(I,J,3) = AD55(I,J,3) + GET_PCENTER(I,J,L)

Note that the tropopause pressure was taken as the pressure at the center of the grid box (I,J,L) where the tropopause occurs. This approximation is not the same as the actual tropopause pressure, which we now obtain directly from the met fields.

Starting with GEOS-Chem v9-01-01, the ND55 diagnostic will be updated to report more accurately the tropopause pressure and height. The tropopause pressure from the met field archive will be directly archived to the AD55 array as follows:

   AD55(I,J,3) = AD55(I,J,3) + TROPP(I,J)  ! T'pause pressure [hPa]

Also, the tropopause height will now be accurately computed to be consistent with the tropopause pressure taken from the met fields.

--Bob Y. 16:09, 13 September 2010 (EDT)

References

Text needs to be added ...

Previous issues that are now resolved

Polar cap

Jennifer Logan (see correspondence below) suggested that we should cap the variable tropopause at 200hPa in near-polar regions (90-60S and 60-90N), to avoid the problem with anomalously high tropopause heights at high latitudes. This fix was standardized in GEOS-Chem v7-04-13.

Jennifer Logan wrote:

After looking at the two papers I sent, I think we should restrict the tropopause at latitudes > 60 deg. to pressures greater than 200 mb (about 11 km). From Fig. 3 in Seidel and Randel, there are tropopause (TP) heights as high as 13.5 km in the Antarctic (median height is ~9.8 km, 250 mb), but I don't think we want to be doing trop. chem there. The median TP pressure at ~80 N is ~300 mb, compared to ~250 mb at 70-85 S. The extratropical TP heights are higher (lower pressure) in the SH than in the NH according to Fig. 3.
This approach is also very easy to explain in a paper.
Jennifer

Defining LLTROP for GEOS-5 72-layer grid

This fix was incorporated into GEOS-Chem v9-01-01 and higher versions.

If you try to run one of the Offline chemistry simulations on the 72-level vertical grid, you may encounter an error such as this:

CHECK_VAR_TROP: LLTROP is set too low!
MAX TROPOSPHERE LEVEL =  39 and LLTROP =  38
STOP in TROPOPAUSE_MOD.F!!!

The LLTROP parameter denotes the highest level that is purely tropopsheric. To save memory, many GEOS-Chem allocates several global arrays with only LLTROP vertical levels.

For the 47-level "reduced" vertical grid, we have set LLTROP to level 38. However, GEOS-Chem creates this level by aggregating levels of the 72-layer grid together. As a result, when you run a simulation on the full GEOS-5 72-layer vertical grid, it is possible that the tropopause may extend beyond level 38. Therefore, the value of LLTROP needs to be reset for the full GEOS-5 72-layer grid.

We have modified the #if defined statements in the include file Headers/CMN_SIZE_mod.F. The value of LLTROP now depends on whether you are using the "reduced" 47-layer grid, or the full 72-layer grid.

#if   defined( GRIDREDUCED )
      INTEGER, PARAMETER :: LLPAR      = 47        ! Reduced vertical grid
      INTEGER, PARAMETER :: LLTROP_FIX = 38        !  -- 47 levels
      INTEGER, PARAMETER :: LLTROP     = 38  
#else 
      INTEGER, PARAMETER :: LLPAR      = LGLOB     ! Full vertical grid
      INTEGER, PARAMETER :: LLTROP_FIX = 40        !  -- 72 levels
      INTEGER, PARAMETER :: LLTROP     = 40  
#endif

Similar blocks have been added to the following sections of Headers/CMN_SIZE_mod.F:

  1. GEOS-5, 4° x 5°
  2. GEOS-5, 2° x 2.5°
  3. GEOS-5, 1° x 1.25°
  4. GEOS-5, 0.5° x 0.667° nested grids
  5. MERRA, 4° x 5°
  6. MERRA, 2° x 2.5°

--Bob Yantosca (talk) 17:51, 7 December 2016 (UTC)

Bug in ND67 diagnostic

This fix was incorporated into GEOS-Chem v9-01-01 and higher versions. This update is included in Adjoint v35g.

Jianjun Jin wrote:

I went to back to your benchmark run results ctm.bpch.v8-03-01. There are outputs for both ND67 (TROPP, tracer=11017) and ND55 (TP-PRESS, tracer=26003). They are quite different. The ND55 is ok, but the ND67 is too large.

Bob Yantosca wrote:

I found the problem. It turns out that in GEOS-4, the TROPP field was an I-6 field (archived every 6 hours, or 4X/day). However, in GEOS-5, the TROPP field is an A-3 field (archived every 3 hours, or 8X/day).
If you look at diag3.f we have this code:
     IF ( ND67 > 0 ) THEN
        CATEGORY = 'DAO-FLDS'

        ! Binary punch file
        DO M = 1, TMAX(67)
           N  = TINDEX(67,M)
           NN = N

           SELECT CASE ( N )

               ...

              CASE ( 17 )
                 SCALEX = SCALE_I6
                 UNIT   = 'hPa'

The 17th slot of DAO-FLDS ND67 diagnostic is TROPP. Note that we are dividing by SCALE_I6, which is the # of I6 timesteps. We should be dividing by SCALE_A3, which is the # of A3 timesteps. So somehow we forgot to make this change when we switched from GEOS-4 to GEOS-5.

This will all be fixed in the next version, along with the updated diagnostic for ND55.

--Bob Y. 16:19, 13 September 2010 (EDT)

Problems with dynamic tropopause and adjoint model

NOTE: a fix for this issue was added into GEOS-Chem and tested in the 1-month benchmark simulation v9-01-02a. The fix was approved on 28 Jun 2011, so we now consider this a resolved issue.

Daven Henze wrote:

Jamin Koo at MIT has noticed an issue with the variable tropopause in GEOS-Chem forward model:
Jamin Koo wrote:

I think what is happening is there is a shift in the indexing in the forward module. (please look at attached image.pdf) When it is partitioning, it is accessing the OLD values of CSPEC with NEW index. So all the following grid boxes are looking at the wrong CSPEC's grid. RURALGRID module changes the indexing, and this happens before partition in CHEMDR_MOD.f

The upshot is that while this may have not had noticeable impacts on the forward model, it can cause very bizarre sensitivities for the adjoint:

     (STT_ADJ for NOx changed from 14797.0983063715 to -657998926.747741 comparing before and after CHEMDR_ADJ)
While we work towards fixing this in the forward model, and the corresponding update to the adjoint, I would recommend turning off the variable tropopause option in input.geos for users looking at full chemistry simulations sensitive to concentrations in the upper troposphere.
Below is an example from Jamin showing how the variable tropopause option can lead to odd adjoint values. This is a timeseries of adjoint values summed over the columns, displayed running backwards in time. Note the difference in the sensitivities near antarctica during the final third of these animations.

--Bob Y. 14:12, 6 July 2011 (EDT)