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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (show annotations)
Wed Mar 5 14:38:41 2014 UTC (10 years, 3 months ago) by guez
Original Path: trunk/phylmd/Radlwsw/lwbv.f90
File size: 2777 byte(s)
 Converted to free source form files which were still in fixed source
form. The conversion was done using the polish mode of the NAG Fortran
Compiler.

In addition to converting to free source form, the processing of the
files also:

-- indented the code (including comments);

-- set Fortran keywords to uppercase, and set all other identifiers
to lower case;

-- added qualifiers to end statements (for example "end subroutine
conflx", instead of "end");

-- changed the terminating statements of all DO loops so that each
loop ends with an ENDDO statement (instead of a labeled continue).

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

  ViewVC Help
Powered by ViewVC 1.1.21