1 |
guez |
24 |
SUBROUTINE SWDE (PGG,PREF,PRMUZ,PTO1,PW, |
2 |
|
|
S PRE1,PRE2,PTR1,PTR2) |
3 |
|
|
use dimens_m |
4 |
|
|
use dimphy |
5 |
|
|
use raddim |
6 |
|
|
IMPLICIT none |
7 |
|
|
C |
8 |
|
|
C ------------------------------------------------------------------ |
9 |
|
|
C PURPOSE. |
10 |
|
|
C -------- |
11 |
|
|
C COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY OF A CLOUDY |
12 |
|
|
C LAYER USING THE DELTA-EDDINGTON'S APPROXIMATION. |
13 |
|
|
C |
14 |
|
|
C METHOD. |
15 |
|
|
C ------- |
16 |
|
|
C |
17 |
|
|
C STANDARD DELTA-EDDINGTON LAYER CALCULATIONS. |
18 |
|
|
C |
19 |
|
|
C REFERENCE. |
20 |
|
|
C ---------- |
21 |
|
|
C |
22 |
|
|
C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND |
23 |
|
|
C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS |
24 |
|
|
C |
25 |
|
|
C AUTHOR. |
26 |
|
|
C ------- |
27 |
|
|
C JEAN-JACQUES MORCRETTE *ECMWF* |
28 |
|
|
C |
29 |
|
|
C MODIFICATIONS. |
30 |
|
|
C -------------- |
31 |
|
|
C ORIGINAL : 88-12-15 |
32 |
|
|
C ------------------------------------------------------------------ |
33 |
|
|
C* ARGUMENTS: |
34 |
|
|
C |
35 |
|
|
REAL*8 PGG(KDLON) ! ASSYMETRY FACTOR |
36 |
|
|
REAL*8 PREF(KDLON) ! REFLECTIVITY OF THE UNDERLYING LAYER |
37 |
|
|
REAL*8 PRMUZ(KDLON) ! COSINE OF SOLAR ZENITH ANGLE |
38 |
|
|
REAL*8 PTO1(KDLON) ! OPTICAL THICKNESS |
39 |
|
|
REAL*8 PW(KDLON) ! SINGLE SCATTERING ALBEDO |
40 |
|
|
REAL*8 PRE1(KDLON) ! LAYER REFLECTIVITY (NO UNDERLYING-LAYER REFLECTION) |
41 |
|
|
REAL*8 PRE2(KDLON) ! LAYER REFLECTIVITY |
42 |
|
|
REAL*8 PTR1(KDLON) ! LAYER TRANSMISSIVITY (NO UNDERLYING-LAYER REFLECTION) |
43 |
|
|
REAL*8 PTR2(KDLON) ! LAYER TRANSMISSIVITY |
44 |
|
|
C |
45 |
|
|
C* LOCAL VARIABLES: |
46 |
|
|
C |
47 |
|
|
INTEGER jl |
48 |
|
|
REAL*8 ZFF, ZGP, ZTOP, ZWCP, ZDT, ZX1, ZWM |
49 |
|
|
REAL*8 ZRM2, ZRK, ZX2, ZRP, ZALPHA, ZBETA, ZARG |
50 |
|
|
REAL*8 ZEXMU0, ZARG2, ZEXKP, ZEXKM, ZXP2P, ZXM2P, ZAP2B, ZAM2B |
51 |
|
|
REAL*8 ZA11, ZA12, ZA13, ZA21, ZA22, ZA23 |
52 |
|
|
REAL*8 ZDENA, ZC1A, ZC2A, ZRI0A, ZRI1A |
53 |
|
|
REAL*8 ZRI0B, ZRI1B |
54 |
|
|
REAL*8 ZB21, ZB22, ZB23, ZDENB, ZC1B, ZC2B |
55 |
|
|
REAL*8 ZRI0C, ZRI1C, ZRI0D, ZRI1D |
56 |
|
|
C ------------------------------------------------------------------ |
57 |
|
|
C |
58 |
|
|
C* 1. DELTA-EDDINGTON CALCULATIONS |
59 |
|
|
C |
60 |
|
|
100 CONTINUE |
61 |
|
|
C |
62 |
|
|
DO 131 JL = 1, KDLON |
63 |
|
|
C |
64 |
|
|
C* 1.1 SET UP THE DELTA-MODIFIED PARAMETERS |
65 |
|
|
C |
66 |
|
|
110 CONTINUE |
67 |
|
|
C |
68 |
|
|
ZFF = PGG(JL)*PGG(JL) |
69 |
|
|
ZGP = PGG(JL)/(1.+PGG(JL)) |
70 |
|
|
ZTOP = (1.- PW(JL) * ZFF) * PTO1(JL) |
71 |
|
|
ZWCP = (1-ZFF)* PW(JL) /(1.- PW(JL) * ZFF) |
72 |
|
|
ZDT = 2./3. |
73 |
|
|
ZX1 = 1.-ZWCP*ZGP |
74 |
|
|
ZWM = 1.-ZWCP |
75 |
|
|
ZRM2 = PRMUZ(JL) * PRMUZ(JL) |
76 |
|
|
ZRK = SQRT(3.*ZWM*ZX1) |
77 |
|
|
ZX2 = 4.*(1.-ZRK*ZRK*ZRM2) |
78 |
|
|
ZRP=ZRK/ZX1 |
79 |
|
|
ZALPHA = 3.*ZWCP*ZRM2*(1.+ZGP*ZWM)/ZX2 |
80 |
|
|
ZBETA = 3.*ZWCP* PRMUZ(JL) *(1.+3.*ZGP*ZRM2*ZWM)/ZX2 |
81 |
|
|
CMAF ZARG=MIN(ZTOP/PRMUZ(JL),200.) |
82 |
|
|
ZARG=MIN(ZTOP/PRMUZ(JL),2.0d+2) |
83 |
|
|
ZEXMU0=EXP(-ZARG) |
84 |
|
|
CMAF ZARG2=MIN(ZRK*ZTOP,200.) |
85 |
|
|
ZARG2=MIN(ZRK*ZTOP,2.0d+2) |
86 |
|
|
ZEXKP=EXP(ZARG2) |
87 |
|
|
ZEXKM = 1./ZEXKP |
88 |
|
|
ZXP2P = 1.+ZDT*ZRP |
89 |
|
|
ZXM2P = 1.-ZDT*ZRP |
90 |
|
|
ZAP2B = ZALPHA+ZDT*ZBETA |
91 |
|
|
ZAM2B = ZALPHA-ZDT*ZBETA |
92 |
|
|
C |
93 |
|
|
C* 1.2 WITHOUT REFLECTION FROM THE UNDERLYING LAYER |
94 |
|
|
C |
95 |
|
|
120 CONTINUE |
96 |
|
|
C |
97 |
|
|
ZA11 = ZXP2P |
98 |
|
|
ZA12 = ZXM2P |
99 |
|
|
ZA13 = ZAP2B |
100 |
|
|
ZA22 = ZXP2P*ZEXKP |
101 |
|
|
ZA21 = ZXM2P*ZEXKM |
102 |
|
|
ZA23 = ZAM2B*ZEXMU0 |
103 |
|
|
ZDENA = ZA11 * ZA22 - ZA21 * ZA12 |
104 |
|
|
ZC1A = (ZA22*ZA13-ZA12*ZA23)/ZDENA |
105 |
|
|
ZC2A = (ZA11*ZA23-ZA21*ZA13)/ZDENA |
106 |
|
|
ZRI0A = ZC1A+ZC2A-ZALPHA |
107 |
|
|
ZRI1A = ZRP*(ZC1A-ZC2A)-ZBETA |
108 |
|
|
PRE1(JL) = (ZRI0A-ZDT*ZRI1A)/ PRMUZ(JL) |
109 |
|
|
ZRI0B = ZC1A*ZEXKM+ZC2A*ZEXKP-ZALPHA*ZEXMU0 |
110 |
|
|
ZRI1B = ZRP*(ZC1A*ZEXKM-ZC2A*ZEXKP)-ZBETA*ZEXMU0 |
111 |
|
|
PTR1(JL) = ZEXMU0+(ZRI0B+ZDT*ZRI1B)/ PRMUZ(JL) |
112 |
|
|
C |
113 |
|
|
C* 1.3 WITH REFLECTION FROM THE UNDERLYING LAYER |
114 |
|
|
C |
115 |
|
|
130 CONTINUE |
116 |
|
|
C |
117 |
|
|
ZB21 = ZA21- PREF(JL) *ZXP2P*ZEXKM |
118 |
|
|
ZB22 = ZA22- PREF(JL) *ZXM2P*ZEXKP |
119 |
|
|
ZB23 = ZA23- PREF(JL) *ZEXMU0*(ZAP2B - PRMUZ(JL) ) |
120 |
|
|
ZDENB = ZA11 * ZB22 - ZB21 * ZA12 |
121 |
|
|
ZC1B = (ZB22*ZA13-ZA12*ZB23)/ZDENB |
122 |
|
|
ZC2B = (ZA11*ZB23-ZB21*ZA13)/ZDENB |
123 |
|
|
ZRI0C = ZC1B+ZC2B-ZALPHA |
124 |
|
|
ZRI1C = ZRP*(ZC1B-ZC2B)-ZBETA |
125 |
|
|
PRE2(JL) = (ZRI0C-ZDT*ZRI1C) / PRMUZ(JL) |
126 |
|
|
ZRI0D = ZC1B*ZEXKM + ZC2B*ZEXKP - ZALPHA*ZEXMU0 |
127 |
|
|
ZRI1D = ZRP * (ZC1B*ZEXKM - ZC2B*ZEXKP) - ZBETA*ZEXMU0 |
128 |
|
|
PTR2(JL) = ZEXMU0 + (ZRI0D + ZDT*ZRI1D) / PRMUZ(JL) |
129 |
|
|
C |
130 |
|
|
131 CONTINUE |
131 |
|
|
RETURN |
132 |
|
|
END |