Difference between revisions of "Dynamic tropopause"

From Geos-chem
Jump to: navigation, search
(Bug in ND67 diagnostic)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
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.
 
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.  
+
The location of the tropopause is computed at each dynamic timestep of a GEOS-Chem simulation, according to the following criteria (in routine <tt>GeosCore/calc_met_mod.F90</tt>
  
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&deg; x 2.5&deg;, 4&deg; x 5&deg;) 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. 
+
      !==============================================================
 
+
      ! Define the various query fields of State_Met
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 onThe location of the tropopause is now computed at each dynamic timestep of a GEOS-Chem simulation, according to the following criterion:
+
      !
 
+
      ! NOTE: For convenience, we set State_Met%InPbl in routine
    IF ( P<sub>edge</sub>(I,J,L) > TROPP(I,J) ) THEN
+
      ! COMPUTE_PBL_HEIGHT (in module GeosCore/pbl_mix_mod.F).
     
+
      !
       ! We are in the troposphere
+
      ! NOTE: For certain queries we test against level numbers,
      IS_TROP = .TRUE.
+
      ! (e.g. LLSTRAT, LLCHEM), but should really test level
 +
      ! pressure edges, so that this algorithm will be robust if
 +
      ! we switch to different met fields or interface with
 +
      ! different ESMsAdd this at a later time. (bmy, 1/8/18)
 +
       !==============================================================
 
   
 
   
    ELSE
+
      ! Is this grid box within the troposphere?
 +
      State_Met%InTroposphere(I,J,L) = &
 +
            ( State_Met%PEDGE(I,J,L) > State_Met%TROPP(I,J) )
 
   
 
   
       ! We are in the stratosphere
+
       ! Is this grid box within the stratosphere or mesosphere?
       IS_TROP = .FALSE.
+
       State_Met%InStratMeso(I,J,L) = &
 +
            ( .not. State_Met%InTroposphere(I,J,L) )
 
   
 
   
    ENDIF
+
      ! Is this grid box within the stratosphere (but not mesosphere)?
 
+
      State_Met%InStratosphere(I,J,L) = &
where
+
            ( L <= State_Grid%MaxStratLev .and. State_Met%InStratMeso(I,J,L) )
 
+
   
    P<sub>edge</sub>(I,J,L)  is the pressure [hPa] at the BOTTOM EDGE of grid box (I,J,L)
+
      ! Is grid box (I,J,L) within the chemistry grid?
    TROPP(I,J)   is the tropopause pressure [hPa] from the GEOS or GCAP met field archive
+
      IF ( L > State_Grid%MaxChemLev ) THEN
 
+
NOTES:
+
          ! Chemistry is not done higher than the mesopause
#For both the annual mean and dynamic tropopause options, the parameter LLTROP represents the maximum extent of the tropopause in model levels.
+
          State_Met%InChemGrid(I,J,L) = .FALSE.
#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.
+
 +
      ELSE
 +
 +
          ! Chemistry grid goes up to stratopause
 +
          State_Met%InChemGrid(I,J,L) = ( L <= State_Grid%MaxChemLev )
 +
   
 +
      ENDIF
 +
without regard for the tropopause location.
  
 
--[[User:Bmy|Bob Y.]] 13:56, 13 September 2010 (EDT)
 
--[[User:Bmy|Bob Y.]] 13:56, 13 September 2010 (EDT)
  
== Diagnostics ==
+
== Polar cap ==
 
+
=== Overview ===
+
 
+
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.'''''
+
#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).
+
 
+
=== 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.
+
 
+
--[[User:Bmy|Bob Y.]] 16:09, 13 September 2010 (EDT)
+
 
+
== References ==
+
 
+
 
+
 
+
== Previous issues that are now resolved ==
+
 
+
=== Buggy implementation in v7-04-12 ===
+
 
+
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.
+
 
+
=== 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 (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:'''''
+
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
+
 
+
=== Problem reading GEOS-4 TROPP files ===
+
 
+
'''''[mailto:davem@atmosp.physics.utoronto.ca Dave MacKenzie] 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.
+
 
+
: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!
+
 
+
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] replied:'''''
+
 
+
: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 problem.  That might be a good solution if you have the disk space.
+
 
+
--[[User:Bmy|Bob Y.]] 16:44, 18 February 2009 (EST)
+
 
+
== Outstanding issues ==
+
 
+
=== Bug in ND67 diagnostic ===
+
 
+
'''''[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 timestepsWe 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.
+
<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.
  
This will all be fixed in the next version, along with the [[#Modifications to ND55 diagnostic|updated diagnostic for ND55].  
+
This approach is also very easy to explain in a paper.
  
--[[User:Bmy|Bob Y.]] 16:19, 13 September 2010 (EDT)
+
Jennifer
 +
</blockquote>

Latest revision as of 14:40, 13 July 2023

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.

The location of the tropopause is computed at each dynamic timestep of a GEOS-Chem simulation, according to the following criteria (in routine GeosCore/calc_met_mod.F90

      !==============================================================
      ! Define the various query fields of State_Met
      !
      ! NOTE: For convenience, we set State_Met%InPbl in routine
      ! COMPUTE_PBL_HEIGHT (in module GeosCore/pbl_mix_mod.F).
      !
      ! NOTE: For certain queries we test against level numbers,
      ! (e.g. LLSTRAT, LLCHEM), but should really test level
      ! pressure edges, so that this algorithm will be robust if
      ! we switch to different met fields or interface with
      ! different ESMs.  Add this at a later time. (bmy, 1/8/18)
      !==============================================================

      ! Is this grid box within the troposphere?
      State_Met%InTroposphere(I,J,L) = &
           ( State_Met%PEDGE(I,J,L) > State_Met%TROPP(I,J) )

      ! Is this grid box within the stratosphere or mesosphere?
      State_Met%InStratMeso(I,J,L) = &
           ( .not. State_Met%InTroposphere(I,J,L) )

      ! Is this grid box within the stratosphere (but not mesosphere)?
      State_Met%InStratosphere(I,J,L) = &
           ( L <= State_Grid%MaxStratLev .and. State_Met%InStratMeso(I,J,L) )

      ! Is grid box (I,J,L) within the chemistry grid?
      IF ( L > State_Grid%MaxChemLev ) THEN

         ! Chemistry is not done higher than the mesopause
         State_Met%InChemGrid(I,J,L) = .FALSE.

      ELSE

         ! Chemistry grid goes up to stratopause
         State_Met%InChemGrid(I,J,L) = ( L <= State_Grid%MaxChemLev )

      ENDIF

without regard for the tropopause location.

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

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