GCC Code Coverage Report


Directory: ./
File: phys/methox.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 18 0.0%
Branches: 0 16 0.0%

Line Branch Exec Source
1 SUBROUTINE 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
61 USE YOEMETH , ONLY : RALPHA1 ,RALPHA2 ,RQLIM ,&
62 & RPBOTOX, RPBOTPH ,RPTOPOX ,RPTOPPH ,&
63 & RALPHA3, RLOGPPH
64
65 IMPLICIT NONE
66
67 !
68 ! $Header$
69 !
70 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
71 ! veillez � n'utiliser que des ! pour les commentaires
72 ! et � bien positionner les & des lignes de continuation
73 ! (les placer en colonne 6 et en colonne 73)
74 !
75 !
76 ! A1.0 Fundamental constants
77 REAL RPI,RCLUM,RHPLA,RKBOL,RNAVO
78 ! A1.1 Astronomical constants
79 REAL RDAY,REA,REPSM,RSIYEA,RSIDAY,ROMEGA
80 ! A1.1.bis Constantes concernant l'orbite de la Terre:
81 REAL R_ecc, R_peri, R_incl
82 ! A1.2 Geoide
83 REAL RA,RG,R1SA
84 ! A1.3 Radiation
85 ! REAL RSIGMA,RI0
86 REAL RSIGMA
87 ! A1.4 Thermodynamic gas phase
88 REAL RMO3,RMCO2,RMC,RMCH4,RMN2O,RMCFC11,RMCFC12
89 REAL R,RMD,RMV,RD,RV,RCPD,RCPV,RCVD,RCVV
90 REAL RKAPPA,RETV, eps_w
91 ! A1.5,6 Thermodynamic liquid,solid phases
92 REAL RCW,RCS
93 ! A1.7 Thermodynamic transition of phase
94 REAL RLVTT,RLSTT,RLMLT,RTT,RATM
95 ! A1.8 Curve of saturation
96 REAL RESTT,RALPW,RBETW,RGAMW,RALPS,RBETS,RGAMS
97 REAL RALPD,RBETD,RGAMD
98 !
99 COMMON/YOMCST/RPI ,RCLUM ,RHPLA ,RKBOL ,RNAVO &
100 & ,RDAY ,REA ,REPSM ,RSIYEA,RSIDAY,ROMEGA &
101 & ,R_ecc, R_peri, R_incl &
102 & ,RA ,RG ,R1SA &
103 & ,RSIGMA &
104 & ,R ,RMD ,RMV ,RD ,RV ,RCPD &
105 & ,RMO3 ,RMCO2 ,RMC ,RMCH4 ,RMN2O ,RMCFC11 ,RMCFC12 &
106 & ,RCPV ,RCVD ,RCVV ,RKAPPA,RETV, eps_w &
107 & ,RCW ,RCS &
108 & ,RLVTT ,RLSTT ,RLMLT ,RTT ,RATM &
109 & ,RESTT ,RALPW ,RBETW ,RGAMW ,RALPS ,RBETS ,RGAMS &
110 & ,RALPD ,RBETD ,RGAMD
111 ! ------------------------------------------------------------------
112 !$OMP THREADPRIVATE(/YOMCST/)
113
114 INTEGER,INTENT(IN) :: KLON
115 INTEGER,INTENT(IN) :: KLEV
116 INTEGER,INTENT(IN) :: KIDIA
117 INTEGER,INTENT(IN) :: KFDIA
118 REAL ,INTENT(IN) :: PQ(KLON,KLEV)
119 REAL ,INTENT(INOUT) :: PTENQ(KLON,KLEV)
120 REAL ,INTENT(IN) :: PAP(KLON,KLEV)
121 LOGICAL :: LLOXID, LLPHOTO
122
123 INTEGER :: JK, JL
124
125 REAL :: ZARG, ZPRATIO, ZTAU1, ZTAU2, ZTDAYS
126
127 DO JK=1,KLEV
128 DO JL=KIDIA,KFDIA
129
130 LLOXID=PAP(JL,JK) < RPBOTOX.AND.PQ(JL,JK) < RQLIM
131 LLPHOTO=PAP(JL,JK) < RPBOTPH
132
133 ! METHANE OXIDATION
134
135 IF(LLOXID) THEN
136 IF(PAP(JL,JK) <= RPTOPOX) THEN
137 ZTDAYS=100.
138 ELSE
139 ZPRATIO=(LOG(PAP(JL,JK)/RPTOPOX))**4./LOG(RPBOTOX/PAP(JL,JK))
140 ZTDAYS=100.*(1+RALPHA1*ZPRATIO)
141 ENDIF
142 ZTAU1=86400.*ZTDAYS
143 PTENQ(JL,JK)=PTENQ(JL,JK)+(RQLIM-PQ(JL,JK))/ZTAU1
144 ENDIF
145
146 ! PHOTOLYSIS
147
148 IF(LLPHOTO) THEN
149 IF(PAP(JL,JK) <= RPTOPPH) THEN
150 ZTDAYS=3.
151 ELSE
152 ZARG=RALPHA2-RALPHA3*(1+COS((RPI*LOG(PAP(JL,JK)/RPBOTPH))/RLOGPPH))
153 ZTDAYS=1.0/(EXP(ZARG)-0.01)
154 ENDIF
155 ZTAU2=86400.*ZTDAYS
156 PTENQ(JL,JK)=PTENQ(JL,JK)-PQ(JL,JK)/ZTAU2
157 ENDIF
158 ENDDO
159 ENDDO
160
161 END SUBROUTINE METHOX
162
163
164