/[lmdze]/trunk/phylmd/Radlwsw/lwbv.f
ViewVC logotype

Contents of /trunk/phylmd/Radlwsw/lwbv.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (show annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 2 months ago) by guez
File size: 2874 byte(s)
Rename module dimens_m to dimensions.
1 module lwbv_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE lwbv(klim, pdt0, pemis, ppmb, ptl, ptave, pabcu, pfluc, &
8 pbint, pbsui, pcts, pcntrb)
9
10 USE dimensions
11 USE dimphy
12 use lwv_m, only: lwv
13 USE suphec_m
14 USE raddim
15 USE raddimlw
16
17 ! PURPOSE.
18 ! --------
19 ! TO COMPUTE THE PLANCK FUNCTION AND PERFORM THE
20 ! VERTICAL INTEGRATION. SPLIT OUT FROM LW FOR MEMORY
21 ! SAVING
22
23 ! METHOD.
24 ! -------
25
26 ! 1. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE
27 ! GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.
28 ! 2. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-
29 ! TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE
30 ! BOUNDARIES.
31 ! 3. COMPUTES THE CLEAR-SKY COOLING RATES.
32
33 ! REFERENCE.
34 ! ----------
35
36 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
37 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
38
39 ! AUTHOR.
40 ! -------
41 ! JEAN-JACQUES MORCRETTE *ECMWF*
42
43 ! MODIFICATIONS.
44 ! --------------
45 ! ORIGINAL : 89-07-14
46 ! MODIFICATION : 93-10-15 M.HAMRUD (SPLIT OUT FROM LW TO SAVE
47 ! MEMORY)
48 ! -----------------------------------------------------------------------
49 ! * ARGUMENTS:
50 INTEGER klim
51
52 DOUBLE PRECISION pdt0(kdlon)
53 DOUBLE PRECISION pemis(kdlon)
54 DOUBLE PRECISION ppmb(kdlon, kflev+1)
55 DOUBLE PRECISION ptl(kdlon, kflev+1)
56 DOUBLE PRECISION ptave(kdlon, kflev)
57
58 DOUBLE PRECISION pfluc(kdlon, 2, kflev+1)
59
60 DOUBLE PRECISION pabcu(kdlon, nua, 3*kflev+1)
61 DOUBLE PRECISION pbint(kdlon, kflev+1)
62 DOUBLE PRECISION pbsui(kdlon)
63 DOUBLE PRECISION pcts(kdlon, kflev)
64 DOUBLE PRECISION pcntrb(kdlon, kflev+1, kflev+1)
65
66 ! -------------------------------------------------------------------------
67
68 ! * LOCAL VARIABLES:
69 DOUBLE PRECISION zb(kdlon, ninter, kflev+1)
70 DOUBLE PRECISION zbsur(kdlon, ninter)
71 DOUBLE PRECISION zbtop(kdlon, ninter)
72 DOUBLE PRECISION zdbsl(kdlon, ninter, kflev*2)
73 DOUBLE PRECISION zga(kdlon, 8, 2, kflev)
74 DOUBLE PRECISION zgb(kdlon, 8, 2, kflev)
75 DOUBLE PRECISION zgasur(kdlon, 8, 2)
76 DOUBLE PRECISION zgbsur(kdlon, 8, 2)
77 DOUBLE PRECISION zgatop(kdlon, 8, 2)
78 DOUBLE PRECISION zgbtop(kdlon, 8, 2)
79
80 INTEGER nuaer, ntraer
81 ! ------------------------------------------------------------------
82 ! * COMPUTES PLANCK FUNCTIONS:
83 CALL lwb(pdt0, ptave, ptl, zb, pbint, pbsui, zbsur, zbtop, zdbsl, zga, &
84 zgb, zgasur, zgbsur, zgatop, zgbtop)
85 ! ------------------------------------------------------------------
86 ! * PERFORMS THE VERTICAL INTEGRATION:
87 nuaer = nua
88 ntraer = ntra
89 CALL lwv(nuaer, ntraer, klim, pabcu, zb, pbint, pbsui, zbsur, zbtop, &
90 zdbsl, pemis, ppmb, zga, zgb, zgasur, zgbsur, zgatop, zgbtop, pcntrb, &
91 pcts, pfluc)
92
93 END SUBROUTINE lwbv
94
95 end module lwbv_m

  ViewVC Help
Powered by ViewVC 1.1.21