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

Last change on this file since 5452 was 5285, checked in by abarral, 2 months ago

As discussed internally, remove generic ONLY: ... for new _mod_h modules

File size: 2.8 KB
RevLine 
[2136]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
[5285]65USE yomcst_mod_h
[2136]66IMPLICIT NONE
67
68
[5274]69
[2136]70INTEGER,INTENT(IN)    :: KLON
71INTEGER,INTENT(IN)    :: KLEV
72INTEGER,INTENT(IN)    :: KIDIA
73INTEGER,INTENT(IN)    :: KFDIA
74REAL   ,INTENT(IN)    :: PQ(KLON,KLEV)
75REAL   ,INTENT(INOUT) :: PTENQ(KLON,KLEV)
76REAL   ,INTENT(IN)    :: PAP(KLON,KLEV)
77LOGICAL :: LLOXID,         LLPHOTO
78
79INTEGER :: JK, JL
80
81REAL :: ZARG, ZPRATIO, ZTAU1, ZTAU2, ZTDAYS
82
83DO JK=1,KLEV
84  DO JL=KIDIA,KFDIA
85
86    LLOXID=PAP(JL,JK) < RPBOTOX.AND.PQ(JL,JK) < RQLIM
87    LLPHOTO=PAP(JL,JK) < RPBOTPH
88
89!     METHANE OXIDATION
90
91    IF(LLOXID) THEN
92      IF(PAP(JL,JK) <= RPTOPOX) THEN
93        ZTDAYS=100.
94      ELSE
95        ZPRATIO=(LOG(PAP(JL,JK)/RPTOPOX))**4./LOG(RPBOTOX/PAP(JL,JK))
96        ZTDAYS=100.*(1+RALPHA1*ZPRATIO)
97      ENDIF
98      ZTAU1=86400.*ZTDAYS
99      PTENQ(JL,JK)=PTENQ(JL,JK)+(RQLIM-PQ(JL,JK))/ZTAU1
100    ENDIF
101
102!     PHOTOLYSIS
103
104    IF(LLPHOTO) THEN
105      IF(PAP(JL,JK) <= RPTOPPH) THEN
106        ZTDAYS=3.
107      ELSE
108        ZARG=RALPHA2-RALPHA3*(1+COS((RPI*LOG(PAP(JL,JK)/RPBOTPH))/RLOGPPH))
109        ZTDAYS=1.0/(EXP(ZARG)-0.01)
110      ENDIF
111      ZTAU2=86400.*ZTDAYS
112      PTENQ(JL,JK)=PTENQ(JL,JK)-PQ(JL,JK)/ZTAU2
113    ENDIF
114  ENDDO
115ENDDO
116
117END SUBROUTINE METHOX
118
119
Note: See TracBrowser for help on using the repository browser.