1 |
guez |
155 |
module lwbv_m |
2 |
|
|
|
3 |
guez |
81 |
IMPLICIT NONE |
4 |
|
|
|
5 |
guez |
155 |
contains |
6 |
guez |
81 |
|
7 |
guez |
155 |
SUBROUTINE lwbv(klim, pdt0, pemis, ppmb, ptl, ptave, pabcu, pfluc, & |
8 |
|
|
pbint, pbsui, pcts, pcntrb) |
9 |
guez |
168 |
|
10 |
guez |
155 |
USE dimens_m |
11 |
|
|
USE dimphy |
12 |
|
|
use lwv_m, only: lwv |
13 |
|
|
USE suphec_m |
14 |
|
|
USE raddim |
15 |
|
|
USE raddimlw |
16 |
guez |
81 |
|
17 |
guez |
155 |
! PURPOSE. |
18 |
|
|
! -------- |
19 |
|
|
! TO COMPUTE THE PLANCK FUNCTION AND PERFORM THE |
20 |
|
|
! VERTICAL INTEGRATION. SPLIT OUT FROM LW FOR MEMORY |
21 |
|
|
! SAVING |
22 |
guez |
81 |
|
23 |
guez |
155 |
! METHOD. |
24 |
|
|
! ------- |
25 |
guez |
81 |
|
26 |
guez |
155 |
! 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 |
guez |
81 |
|
33 |
guez |
155 |
! REFERENCE. |
34 |
|
|
! ---------- |
35 |
guez |
81 |
|
36 |
guez |
155 |
! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND |
37 |
|
|
! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS |
38 |
guez |
81 |
|
39 |
guez |
155 |
! AUTHOR. |
40 |
|
|
! ------- |
41 |
|
|
! JEAN-JACQUES MORCRETTE *ECMWF* |
42 |
guez |
81 |
|
43 |
guez |
155 |
! 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 |
guez |
81 |
|
52 |
guez |
155 |
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 |
guez |
81 |
|
58 |
guez |
155 |
DOUBLE PRECISION pfluc(kdlon, 2, kflev+1) |
59 |
guez |
81 |
|
60 |
guez |
155 |
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 |
guez |
81 |
|
66 |
guez |
155 |
! ------------------------------------------------------------------------- |
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, zgb, & |
84 |
|
|
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 |