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