- Timestamp:
- Jun 29, 2018, 12:31:11 PM (6 years ago)
- Location:
- LMDZ6/branches/DYNAMICO-conv
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/DYNAMICO-conv
- Property svn:mergeinfo changed
-
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/stratosphere_mask.F90
r2992 r3356 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE stratosphere_mask(missing_val, t_seri, pplay, xlat)4 SUBROUTINE stratosphere_mask(missing_val, pphis, t_seri, pplay, xlat) 5 5 6 6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 8 8 ! determination of tropopause height and temperature from gridded temperature data 9 9 ! 10 ! reference: Reichler, T., M. Dameris, and R. Sausen ( 2003):10 ! reference: Reichler, T., M. Dameris, and R. Sausen (GRL, 10.1029/2003GL018240, 2003) 11 11 ! modified: 6/28/06 tjr 12 12 ! 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 29 31 ! 30 32 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 37 39 IMPLICIT NONE 38 40 41 INCLUDE "YOMCST.h" 42 39 43 REAL, INTENT(IN) :: missing_val ! missing value, also XIOS 44 REAL,DIMENSION(klon),INTENT(IN) :: pphis ! Geopotentiel de surface 40 45 REAL,DIMENSION(klon,klev),INTENT(IN) :: t_seri ! Temperature 41 46 REAL,DIMENSION(klon,klev),INTENT(IN) :: pplay ! pression pour le mileu de chaque couche (en Pa) … … 60 65 ENDDO 61 66 psrf=pplay(i,1) 62 zsrf= 0.067 zsrf=pphis(i)/RG !--altitude de la surface 63 68 call twmo(missing_val, klev, t, p, psrf, zsrf, plimu, pliml, gamma, ptrp, ttrp, ztrp) 64 69 tp(i)=ptrp … … 104 109 subroutine twmo(missing_val, level, t, p, ps, zs, plimu, pliml, gamma, ptrp, ttrp, ztrp) 105 110 111 ! reference: Reichler, T., M. Dameris, and R. Sausen (GRL, 10.1029/2003GL018240, 2003) 112 106 113 implicit none 107 114 … … 128 135 ztrp=missing_val 129 136 130 faktor = -RG/R 137 faktor = -RG/RD 131 138 132 139 do j=level,2,-1 … … 218 225 TDLNP = TDLNP + TM*DLNP 219 226 220 ZTRP = ZS + TDLNP*R /RG221 222 if (ZTRP .lt. 0) then223 print*,ZTRP224 print*,PS225 print*,P226 print*,T227 print*,ZS228 stop229 endif227 ZTRP = ZS + TDLNP*RD/RG 228 229 !!if (ZTRP .lt. 0) then 230 !! print*,'ZTRP=',ZTRP 231 !! print*,'PS=',PS 232 !! print*,'P=',P 233 !! print*,'T=',T 234 !! print*,'ZS=',ZS 235 !! stop 236 !!endif 230 237 231 238 return
Note: See TracChangeset
for help on using the changeset viewer.