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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 328 - (show annotations)
Thu Jun 13 14:40:06 2019 UTC (4 years, 11 months ago) by guez
File size: 2874 byte(s)
Change all `.f` suffixes to `.f90`. (The opposite was done in revision
82.)  Because of change of philosopy in GNUmakefile: we already had a
rewritten rule for `.f`, so it does not make the makefile longer to
replace it by a rule for `.f90`. And it spares us options of
makedepf90 and of the compiler. Also we prepare the way for a simpler
`CMakeLists.txt`.

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