GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/lw.F90 Lines: 0 15 0.0 %
Date: 2023-06-30 12:56:34 Branches: 0 4 0.0 %

Line Branch Exec Source
1
SUBROUTINE LW &
2
 & ( KIDIA, KFDIA , KLON  , KLEV  , KMODE,&
3
 & PCCO2, PCLDLD, PCLDLU,&
4
 & PDP  , PDT0  , PEMIS , PEMIW,&
5
 & PPMB , PQOF  , PTL,&
6
 & PAER , PTAVE , PVIEW , PWV,&
7
 & PEMIT, PFLUX , PFLUC &
8
 & )
9
10
!**** *LW*   - ORGANIZES THE LONGWAVE CALCULATIONS
11
12
!     PURPOSE.
13
!     --------
14
!           COMPUTES LONGWAVE FLUXES
15
16
!**   INTERFACE.
17
!     ----------
18
19
!        *LW* IS CALLED FROM *RADLSW*
20
21
!        EXPLICIT ARGUMENTS :
22
!        --------------------
23
! PAER   : (KLON,6,KLEV)     ; OPTICAL THICKNESS OF THE AEROSOLS
24
! PCCO2  :                   ; CONCENTRATION IN CO2 (PA/PA)
25
! PCLDLD : (KLON,KLEV)       ; DOWNWARD EFFECTIVE CLOUD FRACTION
26
! PCLDLU : (KLON,KLEV)       ; UPWARD EFFECTIVE CLOUD FRACTION
27
! PDP    : (KLON,KLEV)       ; LAYER PRESSURE THICKNESS
28
! PDT0   : (KLON)            ; SURFACE TEMPERATURE DISCONTINUITY
29
! PEMIS  : (KLON)            ; SURFACE LW EMISSIVITY
30
! PEMIW  : (KLON)            ; SURFACE LW WINDOW EMISSIVITY
31
! PPMB   : (KLON,KLEV+1)     ; HALF LEVEL PRESSURE
32
! PQOF   : (KLON,KLEV)       ; CONCENTRATION IN OZONE (PA/PA)
33
! PTAVE  : (KLON,KLEV)       ; TEMPERATURE
34
! PTL    : (KLON,KLEV+1)     ; HALF LEVEL TEMPERATURE
35
! PVIEW  : (KLON)            ; COSECANT OF VIEWING ANGLE
36
! PWV    : (KLON,KLEV)       ; SPECIFIC HUMIDITY  (PA/PA)
37
!     ==== OUTPUTS ===
38
! PEMIT(KLON)                ; SURFACE TOTAL LW EMISSIVITY
39
! PFLUX(KLON,2,KLEV+1)       ; RADIATIVE FLUXES :
40
!                     1  ==>  UPWARD   FLUX TOTAL
41
!                     2  ==>  DOWNWARD FLUX TOTAL
42
! PFLUC(KLON,2,KLEV+1)       ; RADIATIVE FLUXES CLEAR SKY:
43
!                     1  ==>  UPWARD   FLUX TOTAL
44
!                     2  ==>  DOWNWARD FLUX TOTAL
45
46
!        IMPLICIT ARGUMENTS :   NONE
47
!        --------------------
48
49
!     METHOD.
50
!     -------
51
52
!          1. COMPUTES THE PRESSURE AND TEMPERATURE WEIGHTED AMOUNTS OF
53
!     ABSORBERS.
54
!          2. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE
55
!     GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.
56
!          3. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-
57
!     TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE
58
!     BOUNDARIES.
59
!          4. COMPUTES THE CLEAR-SKY DOWNWARD AND UPWARD EMISSIVITIES.
60
!          5. INTRODUCES THE EFFECTS OF THE CLOUDS ON THE FLUXES.
61
62
!     EXTERNALS.
63
!     ----------
64
65
!          *LWU*, *LWBV*, *LWC*
66
67
!     REFERENCE.
68
!     ----------
69
70
!        SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
71
!        ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
72
73
!     AUTHOR.
74
!     -------
75
!        JEAN-JACQUES MORCRETTE  *ECMWF*
76
77
!     MODIFICATIONS.
78
!     --------------
79
!        ORIGINAL : 89-07-14
80
!        99-05-25   JJMorcrette    Revised aerosols
81
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
82
83
!-----------------------------------------------------------------------
84
85
USE PARKIND1  ,ONLY : JPIM     ,JPRB
86
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
87
88
USE YOELW    , ONLY : NUA
89
IMPLICIT NONE
90
91
INTEGER(KIND=JPIM),INTENT(IN)    :: KLON
92
INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV
93
INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA
94
INTEGER(KIND=JPIM),INTENT(IN)    :: KFDIA
95
INTEGER(KIND=JPIM),INTENT(IN)    :: KMODE
96
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCCO2
97
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCLDLD(KLON,KLEV)
98
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCLDLU(KLON,KLEV)
99
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDP(KLON,KLEV)
100
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDT0(KLON)
101
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEMIS(KLON)
102
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEMIW(KLON)
103
REAL(KIND=JPRB)   ,INTENT(IN)    :: PPMB(KLON,KLEV+1)
104
REAL(KIND=JPRB)   ,INTENT(IN)    :: PQOF(KLON,KLEV)
105
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTL(KLON,KLEV+1)
106
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAER(KLON,6,KLEV)
107
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTAVE(KLON,KLEV)
108
REAL(KIND=JPRB)   ,INTENT(IN)    :: PVIEW(KLON)
109
REAL(KIND=JPRB)   ,INTENT(IN)    :: PWV(KLON,KLEV)
110
REAL(KIND=JPRB)   ,INTENT(INOUT) :: PEMIT(KLON)
111
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFLUX(KLON,2,KLEV+1)
112
REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFLUC(KLON,2,KLEV+1)
113
!-----------------------------------------------------------------------
114
115
!*       0.1   ARGUMENTS
116
!              ---------
117
118
!-------------------------------------------------------------------------
119
120
!              ------------
121
REAL(KIND=JPRB) :: ZABCU(KLON,NUA,3*KLEV+1)&
122
 & ,  ZBINT(KLON,KLEV+1)        , ZBSUI(KLON)&
123
 & ,  ZCNTRB(KLON,KLEV+1,KLEV+1)
124
125
REAL(KIND=JPRB) :: ZHOOK_HANDLE
126
127
#include "lwbv.intfb.h"
128
#include "lwc.intfb.h"
129
#include "lwu.intfb.h"
130
131
!     ------------------------------------------------------------------
132
133
!*         1.    INITIALIZATION
134
!                --------------
135
136
!100  CONTINUE
137
138
!     ------------------------------------------------------------------
139
140
!*         1.1   COMPUTES ABSORBER AMOUNTS
141
!                -------------------------
142
143
IF (LHOOK) CALL DR_HOOK('LW',0,ZHOOK_HANDLE)
144
print *,'	LW: Avant LWU'
145
CALL LWU &
146
 & (  KIDIA, KFDIA, KLON, KLEV,&
147
 & PAER , PCCO2, PDP , PPMB, PQOF , PTAVE, PVIEW, PWV,&
148
 & ZABCU &
149
 & )
150
151
!     ------------------------------------------------------------------
152
153
!*         2.    COMPUTES PLANCK FUNCTIONS
154
!                -------------------------
155
!                PERFORMS THE VERTICAL INTEGRATION
156
!                ---------------------------------
157
158
print *,'	LW: Avant LWBV'
159
CALL LWBV &
160
 & ( KIDIA, KFDIA, KLON , KLEV  , KMODE,&
161
 & PDT0 , PEMIS, PEMIW, PTL   , PTAVE,&
162
 & PEMIT, PFLUC,&
163
 & ZABCU, ZBINT, ZBSUI, ZCNTRB &
164
 & )
165
166
!     ------------------------------------------------------------------
167
168
!*         4.    INTRODUCES THE EFFECTS OF CLOUDS
169
!                --------------------------------
170
171
print *,'	LW: Avant LWC'
172
CALL LWC &
173
 & ( KIDIA , KFDIA, KLON  , KLEV,&
174
 & ZBINT , ZBSUI, PCLDLD, PCLDLU,&
175
 & ZCNTRB, PEMIT, PFLUC,&
176
 & PFLUX    &
177
 & )
178
179
!     ------------------------------------------------------------------
180
181
IF (LHOOK) CALL DR_HOOK('LW',1,ZHOOK_HANDLE)
182
END SUBROUTINE LW