Changeset 3141 for LMDZ6/trunk/libf/phylmd/tropopause_m.F90
- Timestamp:
- Dec 19, 2017, 7:49:05 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/tropopause_m.F90
r2992 r3141 9 9 !------------------------------------------------------------------------------- 10 10 ! 11 FUNCTION dyn_tropopause(t, ts, paprs, pplay, rot, thet0, pvor0)11 FUNCTION dyn_tropopause(t, ts, paprs, pplay, rot, itrop, thet0, pvor0) 12 12 ! 13 13 !------------------------------------------------------------------------------- … … 26 26 REAL, INTENT(IN) :: pplay(:,:) !--- Cells-centers pressure 27 27 REAL, INTENT(IN) :: rot(:,:) !--- Cells-centers relative vorticity 28 REAL, INTENT(IN), OPTIONAL :: thet0, pvor0 28 INTEGER, INTENT(OUT), OPTIONAL :: itrop(klon) !--- Last tropospheric layer idx 29 REAL, INTENT(IN), OPTIONAL :: thet0, pvor0 29 30 !------------------------------------------------------------------------------- 30 31 ! Local variables: 31 32 include "YOMCST.h" 33 REAL, PARAMETER :: DynPTrMin =8.E+3 !--- Thresholds for minimum and maximum 34 REAL, PARAMETER :: DynPTrMax =4.E+4 ! dynamical tropopause pressure (Pa). 32 35 CHARACTER(LEN=80) :: sub 33 36 INTEGER :: i, k, kb, kt, kp, ib, ie, nw … … 100 103 dyn_tropopause(i) = MAX( pplay(i,kp+1)*(pplay(i,kp)/pplay(i,kp+1))**al, & 101 104 dyn_tropopause(i) ) 105 !--- UNREALISTIC VALUES DETECTION 106 IF(dyn_tropopause(i)<DynPTrMin.OR.dyn_tropopause(i)>DynPTrMax) THEN 107 dyn_tropopause(i)=MIN(MAX(dyn_tropopause(i),DynPTrMax),DynPTrMin) 108 DO kt=1,klev-1; IF(pplay(i,kt+1)>dyn_tropopause(i)) EXIT; END DO; kp=kt 109 END IF 110 !--- LAST TROPOSPHERIC LAYER INDEX NEEDED 111 IF(PRESENT(itrop)) itrop(i)=MAX(kt,kp) 102 112 END DO 103 113
Note: See TracChangeset
for help on using the changeset viewer.