source: LMDZ5/branches/Cold_pool_death/libf/phymar/lw.F90 @ 5224

Last change on this file since 5224 was 2160, checked in by Laurent Fairhead, 10 years ago

Merged trunk changes -r2070:2158 into testing branch. Compilation problems introduced by revision r2155 have been corrected by hand

File size: 5.6 KB
Line 
1SUBROUTINE 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
88USE YOELW    , ONLY : NUA
89USE YOERDU   , ONLY : RCDAY
90
91
92IMPLICIT NONE
93
94
95!     DUMMY INTEGER SCALARS
96INTEGER_M :: KFDIA
97INTEGER_M :: KIDIA
98INTEGER_M :: KLEV
99INTEGER_M :: KLON
100INTEGER_M :: KMODE
101
102!     DUMMY REAL SCALARS
103REAL_B :: PCCO2
104
105
106
107!-----------------------------------------------------------------------
108
109!*       0.1   ARGUMENTS
110!              ---------
111
112REAL_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
121REAL_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!              ------------
129REAL_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
134INTEGER_M :: JK, JKL, JL
135
136!     LOCAL REAL SCALARS
137REAL_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
152CALL 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
165CALL 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'
178CALL LWC &
179  &( KIDIA , KFDIA, KLON  , KLEV &
180  &, ZBINT , ZBSUI, PCLDLD, PCLDLU &
181  &, ZCNTRB, PEMIT, PFLUC &
182  &, PFLUX    &
183  &)
184
185DO 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
195ENDDO
196
197!     ------------------------------------------------------------------
198
199RETURN
200END SUBROUTINE LW
Note: See TracBrowser for help on using the repository browser.