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  & 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
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
integer, parameter jprb
Definition: parkind1.F90:31
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
logical lhook
Definition: yomhook.F90:12
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer