source: LMDZ6/trunk/libf/phylmd/methox.f90 @ 5274

Last change on this file since 5274 was 5274, checked in by abarral, 5 hours ago

Replace yomcst.h by existing module

File size: 3.6 KB
Line 
1SUBROUTINE METHOX(KIDIA,  KFDIA,  KLON,  KLEV,PQ,     PTENQ,  PAP )
2
3!**** *METHOX*   - Calculate humidity tendencies from methane
4!                  oxidation and photolysis
5
6!**   INTERFACE.
7!     ----------
8!        CALL *METHOX* FROM *CALLPAR*
9!              ------        -------
10
11!        EXPLICIT ARGUMENTS :
12!        --------------------
13!     PARAMETER     DESCRIPTION                                   UNITS
14!     ---------     -----------                                   -----
15!     INPUT PARAMETERS (INTEGER):
16
17!    *KIDIA*        START POINT
18!    *KFDIA*        END POINT
19!    *KLON*         NUMBER OF GRID POINTS PER PACKET
20!    *KLEV*         NUMBER OF LEVELS
21
22!     INPUT PARAMETERS (REAL):
23
24!    *PAP*          PRESSURE                                      PA
25!    *PQ*           SPECIFIC HUMIDITY                             KG/KG
26
27!     UPDATED PARAMETERS (REAL):
28
29!    *PTENQ*        TENDENCY OF SPECIFIC HUMIDITY                 KG/(KG*S)
30
31!        NONE
32
33!        IMPLICIT ARGUMENTS :
34!        --------------------
35!        MODULE YOEMETH
36!        MODULE YOMCST
37
38!     METHOD.
39!     -------
40!        SEE RD-MEMO R60.1/AJS/31
41
42!     EXTERNALS.
43!     ----------
44!        NONE
45
46!     REFERENCE.
47!     ----------
48!        SEE RD-MEMO R60.1/AJS/31
49
50!     AUTHOR.
51!     -------
52!        C.JAKOB   *ECMWF*
53
54!     MODIFICATIONS.
55!     --------------
56!        ORIGINAL : 98-04-07
57!        M.Hamrud      01-Oct-2003 CY28 Cleaning
58!        D. Cugnet     24-Feb-2012 Adapted for LMDZ
59!     ------------------------------------------------------------------
60
61USE YOEMETH   , ONLY : RALPHA1 ,RALPHA2  ,RQLIM   ,&
62 & RPBOTOX,  RPBOTPH ,RPTOPOX  ,RPTOPPH ,&
63 & RALPHA3,  RLOGPPH 
64
65USE yomcst_mod_h, ONLY: RPI, RCLUM, RHPLA, RKBOL, RNAVO                   &
66          , RDAY, REA, REPSM, RSIYEA, RSIDAY, ROMEGA                  &
67          , R_ecc, R_peri, R_incl                                      &
68          , RA, RG, R1SA                                         &
69          , RSIGMA                                                     &
70          , R, RMD, RMV, RD, RV, RCPD                    &
71          , RMO3, RMCO2, RMC, RMCH4, RMN2O, RMCFC11, RMCFC12        &
72          , RCPV, RCVD, RCVV, RKAPPA, RETV, eps_w                    &
73          , RCW, RCS                                                 &
74          , RLVTT, RLSTT, RLMLT, RTT, RATM                           &
75          , RESTT, RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS            &
76          , RALPD, RBETD, RGAMD
77IMPLICIT NONE
78
79
80
81INTEGER,INTENT(IN)    :: KLON
82INTEGER,INTENT(IN)    :: KLEV
83INTEGER,INTENT(IN)    :: KIDIA
84INTEGER,INTENT(IN)    :: KFDIA
85REAL   ,INTENT(IN)    :: PQ(KLON,KLEV)
86REAL   ,INTENT(INOUT) :: PTENQ(KLON,KLEV)
87REAL   ,INTENT(IN)    :: PAP(KLON,KLEV)
88LOGICAL :: LLOXID,         LLPHOTO
89
90INTEGER :: JK, JL
91
92REAL :: ZARG, ZPRATIO, ZTAU1, ZTAU2, ZTDAYS
93
94DO JK=1,KLEV
95  DO JL=KIDIA,KFDIA
96
97    LLOXID=PAP(JL,JK) < RPBOTOX.AND.PQ(JL,JK) < RQLIM
98    LLPHOTO=PAP(JL,JK) < RPBOTPH
99
100!     METHANE OXIDATION
101
102    IF(LLOXID) THEN
103      IF(PAP(JL,JK) <= RPTOPOX) THEN
104        ZTDAYS=100.
105      ELSE
106        ZPRATIO=(LOG(PAP(JL,JK)/RPTOPOX))**4./LOG(RPBOTOX/PAP(JL,JK))
107        ZTDAYS=100.*(1+RALPHA1*ZPRATIO)
108      ENDIF
109      ZTAU1=86400.*ZTDAYS
110      PTENQ(JL,JK)=PTENQ(JL,JK)+(RQLIM-PQ(JL,JK))/ZTAU1
111    ENDIF
112
113!     PHOTOLYSIS
114
115    IF(LLPHOTO) THEN
116      IF(PAP(JL,JK) <= RPTOPPH) THEN
117        ZTDAYS=3.
118      ELSE
119        ZARG=RALPHA2-RALPHA3*(1+COS((RPI*LOG(PAP(JL,JK)/RPBOTPH))/RLOGPPH))
120        ZTDAYS=1.0/(EXP(ZARG)-0.01)
121      ENDIF
122      ZTAU2=86400.*ZTDAYS
123      PTENQ(JL,JK)=PTENQ(JL,JK)-PQ(JL,JK)/ZTAU2
124    ENDIF
125  ENDDO
126ENDDO
127
128END SUBROUTINE METHOX
129
130
Note: See TracBrowser for help on using the repository browser.