LMDZ
lw.F90
Go to the documentation of this file.
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  &, pcolr, pcolc , 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 ! PCOLR(KLON,KLEV) ; LONG-WAVE TENDENCY
39 ! PCOLC(KLON,KLEV) ; LONG-WAVE TENDENCY CLEAR SKY
40 ! PEMIT(KLON) ; SURFACE TOTAL LW EMISSIVITY
41 ! PFLUX(KLON,2,KLEV) ; RADIATIVE FLUXES :
42 ! 1 ==> UPWARD FLUX TOTAL
43 ! 2 ==> DOWNWARD FLUX TOTAL
44 ! PFLUC(KLON,2,KLEV) ; RADIATIVE FLUXES CLEAR SKY:
45 ! 1 ==> UPWARD FLUX TOTAL
46 ! 2 ==> DOWNWARD FLUX TOTAL
47 
48 ! IMPLICIT ARGUMENTS : NONE
49 ! --------------------
50 
51 ! METHOD.
52 ! -------
53 
54 ! 1. COMPUTES THE PRESSURE AND TEMPERATURE WEIGHTED AMOUNTS OF
55 ! ABSORBERS.
56 ! 2. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE
57 ! GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.
58 ! 3. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-
59 ! TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE
60 ! BOUNDARIES.
61 ! 4. COMPUTES THE CLEAR-SKY DOWNWARD AND UPWARD EMISSIVITIES.
62 ! 5. INTRODUCES THE EFFECTS OF THE CLOUDS ON THE FLUXES.
63 
64 ! EXTERNALS.
65 ! ----------
66 
67 ! *LWU*, *LWBV*, *LWC*
68 
69 ! REFERENCE.
70 ! ----------
71 
72 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
73 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
74 
75 ! AUTHOR.
76 ! -------
77 ! JEAN-JACQUES MORCRETTE *ECMWF*
78 
79 ! MODIFICATIONS.
80 ! --------------
81 ! ORIGINAL : 89-07-14
82 ! 99-05-25 JJMorcrette Revised aerosols
83 
84 !-----------------------------------------------------------------------
85 
86 #include "tsmbkind.h"
87 
88 USE yoelw , ONLY : nua
89 USE yoerdu , ONLY : rcday
90 
91 
92 IMPLICIT NONE
93 
94 
95 ! DUMMY INTEGER SCALARS
96 integer_m :: kfdia
97 integer_m :: kidia
98 integer_m :: klev
99 integer_m :: klon
100 integer_m :: kmode
101 
102 ! DUMMY REAL SCALARS
103 real_b :: pcco2
104 
105 
106 
107 !-----------------------------------------------------------------------
108 
109 !* 0.1 ARGUMENTS
110 ! ---------
111 
112 real_b :: paer(klon,6,klev)&
113  &, pcldld(klon,klev) , pcldlu(klon,klev)&
114  &, pdp(klon,klev) , pdt0(klon) &
115  &, pemis(klon) , pemiw(klon)&
116  &, ppmb(klon,klev+1)&
117  &, pqof(klon,klev) &
118  &, ptl(klon,klev+1) , ptave(klon,klev) &
119  &, pview(klon) , pwv(klon,klev)
120 
121 real_b :: pcolr(klon,klev) , pcolc(klon,klev)&
122  &, pemit(klon) &
123  &, pflux(klon,2,klev+1), pfluc(klon,2,klev+1)
124 
125 !-------------------------------------------------------------------------
126 
127 !* 0.2 LOCAL ARRAYS
128 ! ------------
129 real_b :: zabcu(klon,nua,3*klev+1)&
130  &, zbint(klon,klev+1) , zbsui(klon)&
131  &, zcntrb(klon,klev+1,klev+1)
132 
133 ! LOCAL INTEGER SCALARS
134 integer_m :: jk, jkl, jl
135 
136 ! LOCAL REAL SCALARS
137 real_b :: zdcnet, zdfnet
138 
139 
140 ! ------------------------------------------------------------------
141 
142 !* 1. INITIALIZATION
143 ! --------------
144 
145 !100 CONTINUE
146 
147 ! ------------------------------------------------------------------
148 
149 !* 1.1 COMPUTES ABSORBER AMOUNTS
150 ! -------------------------
151 
152 CALL lwu &
153  &( kidia, kfdia, klon, klev &
154  &, paer , pcco2, pdp , ppmb, pqof , ptave, pview, pwv &
155  &, zabcu &
156  &)
157 
158 ! ------------------------------------------------------------------
159 
160 !* 2. COMPUTES PLANCK FUNCTIONS
161 ! -------------------------
162 ! PERFORMS THE VERTICAL INTEGRATION
163 ! ---------------------------------
164 
165 CALL lwbv &
166  &( kidia, kfdia, klon , klev , kmode &
167  &, pdt0 , pemis, pemiw, ptl , ptave &
168  &, pemit, pfluc &
169  &, zabcu, zbint, zbsui, zcntrb &
170  &)
171 
172 ! ------------------------------------------------------------------
173 
174 !* 4. INTRODUCES THE EFFECTS OF CLOUDS
175 ! --------------------------------
176 
177 !print *,'Just before LWC'
178 CALL lwc &
179  &( kidia , kfdia, klon , klev &
180  &, zbint , zbsui, pcldld, pcldlu &
181  &, zcntrb, pemit, pfluc &
182  &, pflux &
183  &)
184 
185 DO jkl = 1 , klev
186  jk = klev+1 - jkl
187  DO jl = kidia,kfdia
188  zdcnet = pfluc(jl,1,jk+1) + pfluc(jl,2,jk+1)&
189  &-pfluc(jl,1,jk ) - pfluc(jl,2,jk )
190  pcolc(jl,jk) = rcday * zdcnet / pdp(jl,jkl)
191  zdfnet = pflux(jl,1,jk+1) + pflux(jl,2,jk+1)&
192  &-pflux(jl,1,jk ) - pflux(jl,2,jk )
193  pcolr(jl,jk) = rcday * zdfnet / pdp(jl,jkl)
194  ENDDO
195 ENDDO
196 
197 ! ------------------------------------------------------------------
198 
199 RETURN
200 END SUBROUTINE lw
subroutine lwu(KIDIA, KFDIA, KLON, KLEV, PAER, PCCO2, PDP, PPMB, PQOF, PTAVE, PVIEW, PWV, PABCU)
Definition: lwu.F90:9
INTERFACE SUBROUTINE RRTM_ECRT_140GP pcco2
Definition: yoelw.F90:1
integer, save kidia
Definition: dimphy.F90:6
subroutine lw(KIDIA, KFDIA, KLON, KLEV, KMODE, PCCO2, PCLDLD, PCLDLU, PDP, PDT0, PEMIS, PEMIW, PPMB, PQOF, PTL, PAER, PTAVE, PVIEW, PWV, PEMIT, PFLUX, PFLUC)
Definition: lw.F90:9
integer, save klon
Definition: dimphy.F90:3
integer(kind=jpim) nua
Definition: yoelw.F90:19
integer, save klev
Definition: dimphy.F90:7
integer, save kfdia
Definition: dimphy.F90:5
subroutine lwbv(KIDIA, KFDIA, KLON, KLEV, KMODE, PDT0, PEMIS, PEMIW, PTL, PTAVE, PEMIT, PFLUC, PABCU, PBINT, PBSUI, PCNTRB)
Definition: lwbv.F90:8
subroutine lwc(KIDIA, KFDIA, KLON, KLEV, PBINT, PBSUI, PCLDLD, PCLDLU, PCNTRB, PEMIT, PFLUC, PFLUX)
Definition: lwc.F90:7
real(kind=jprb) rcday
Definition: yoerdu.F90:17
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
Definition: yoerdu.F90:1