Ignore:
Timestamp:
Dec 9, 2017, 5:46:44 PM (7 years ago)
Author:
oboucher
Message:

Correcting a mistake in implementation of Reichler et al (2003)
diagnostic of the tropopause. This diagnostic is used to clip
stratospheric aerosols in the model so it has an impact if
flag_aerosol_strat = 1 or 2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/stratosphere_mask.F90

    r2992 r3119  
    88! determination of tropopause height and temperature from gridded temperature data
    99!
    10 ! reference: Reichler, T., M. Dameris, and R. Sausen (2003):
     10! reference: Reichler, T., M. Dameris, and R. Sausen (GRL, 10.1029/2003GL018240, 2003)
    1111! modified: 6/28/06 tjr
    1212! adapted to LMDZ by C. Kleinschmitt (2016-02-15)
    13 !
    14 ! input:    temp(nlon,nlat,nlev)    3D-temperature field
    15 !       ps(nlon,nlat)       2D-surface pressure field
    16 !       zs(nlon,nlat)       2D-surface height
    17 !       nlon            grid points in x
    18 !       nlat            grid points in y
    19 !       pfull(nlon,nlat,nlev)   full pressure levels in Pa
    20 !       plimu           upper limit for tropopause pressure
    21 !       pliml           lower limit for tropopause pressure
    22 !       gamma           tropopause criterion, e.g. -0.002 K/m
    23 !
    24 ! output:   p_tropopause(klon)     tropopause pressure in Pa with missing values
    25 !           t_tropopause(klon)     tropopause temperature in K with missing values
    26 !           z_tropopause(klon)     tropopause height in m with missing values
    27 !           stratomask             stratospheric mask withtout missing values
    28 !           ifil                  # of undetermined values
     13! committed to LMDz by O. Boucher (2016) with a mistake
     14! mistake corrected by O. Boucher (2017-12-11)
     15!
     16! input:  temp(nlon,nlat,nlev)  3D-temperature field
     17!         ps(nlon,nlat)         2D-surface pressure field
     18!         zs(nlon,nlat)         2D-surface height
     19!         nlon                  grid points in x
     20!         nlat                  grid points in y
     21!         pfull(nlon,nlat,nlev) full pressure levels in Pa
     22!         plimu                 upper limit for tropopause pressure
     23!         pliml                 lower limit for tropopause pressure
     24!         gamma                 tropopause criterion, e.g. -0.002 K/m
     25!
     26! output: p_tropopause(klon)    tropopause pressure in Pa with missing values
     27!         t_tropopause(klon)    tropopause temperature in K with missing values
     28!         z_tropopause(klon)    tropopause height in m with missing values
     29!         stratomask            stratospheric mask withtout missing values
     30!         ifil                  # of undetermined values
    2931!
    3032!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    104106subroutine twmo(missing_val, level, t, p, ps, zs, plimu, pliml, gamma, ptrp, ttrp, ztrp)
    105107
     108! reference: Reichler, T., M. Dameris, and R. Sausen (GRL, 10.1029/2003GL018240, 2003)
     109
    106110implicit none
    107111
     
    128132ztrp=missing_val
    129133
    130 faktor = -RG/R
     134faktor = -RG/RD
    131135
    132136do j=level,2,-1
     
    218222TDLNP = TDLNP + TM*DLNP
    219223
    220 ZTRP = ZS + TDLNP*R/RG
    221 
    222 if (ZTRP .lt. 0) then
    223   print*,ZTRP
    224   print*,PS
    225   print*,P
    226   print*,T
    227   print*,ZS
    228   stop
    229 endif
     224ZTRP = ZS + TDLNP*RD/RG
     225
     226!!if (ZTRP .lt. 0) then
     227!!  print*,'ZTRP=',ZTRP
     228!!  print*,'PS=',PS
     229!!  print*,'P=',P
     230!!  print*,'T=',T
     231!!  print*,'ZS=',ZS
     232!!  stop
     233!!endif
    230234
    231235return
Note: See TracChangeset for help on using the changeset viewer.