/[lmdze]/trunk/libf/phylmd/Radlwsw/lwttm.f
ViewVC logotype

Annotation of /trunk/libf/phylmd/Radlwsw/lwttm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (hide annotations)
Mon Jul 8 18:12:18 2013 UTC (10 years, 10 months ago) by guez
File size: 5557 byte(s)
No reason to call inidissip in ce0l.

In inidissip, set random seed to 1 beacuse PGI compiler does not
accept all zeros.

dq was computed needlessly in caladvtrac. Arguments masse and dq of
calfis not used.

Replaced real*8 by double precision.

Pass arrays with inverted order of vertical levels to conflx instead
of creating local variables for this inside conflx.

1 guez 24 SUBROUTINE LWTTM(PGA,PGB,PUU1,PUU2, PTT)
2     use dimens_m
3     use dimphy
4     use raddim
5     use raddimlw
6     IMPLICIT none
7     C
8     C ------------------------------------------------------------------
9     C PURPOSE.
10     C --------
11     C THIS ROUTINE COMPUTES THE TRANSMISSION FUNCTIONS FOR ALL THE
12     C ABSORBERS (H2O, UNIFORMLY MIXED GASES, AND O3) IN ALL SIX SPECTRAL
13     C INTERVALS.
14     C
15     C METHOD.
16     C -------
17     C
18     C 1. TRANSMISSION FUNCTION BY H2O AND UNIFORMLY MIXED GASES ARE
19     C COMPUTED USING PADE APPROXIMANTS AND HORNER'S ALGORITHM.
20     C 2. TRANSMISSION BY O3 IS EVALUATED WITH MALKMUS'S BAND MODEL.
21     C 3. TRANSMISSION BY H2O CONTINUUM AND AEROSOLS FOLLOW AN
22     C A SIMPLE EXPONENTIAL DECREASE WITH ABSORBER AMOUNT.
23     C
24     C REFERENCE.
25     C ----------
26     C
27     C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
28     C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
29     C
30     C AUTHOR.
31     C -------
32     C JEAN-JACQUES MORCRETTE *ECMWF*
33     C
34     C MODIFICATIONS.
35     C --------------
36     C ORIGINAL : 88-12-15
37     C
38     C-----------------------------------------------------------------------
39 guez 71 DOUBLE PRECISION O1H, O2H
40 guez 24 PARAMETER (O1H=2230.)
41     PARAMETER (O2H=100.)
42 guez 71 DOUBLE PRECISION RPIALF0
43 guez 24 PARAMETER (RPIALF0=2.0)
44     C
45     C* ARGUMENTS:
46     C
47 guez 71 DOUBLE PRECISION PGA(KDLON,8,2) ! PADE APPROXIMANTS
48     DOUBLE PRECISION PGB(KDLON,8,2) ! PADE APPROXIMANTS
49     DOUBLE PRECISION PUU1(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 1
50     DOUBLE PRECISION PUU2(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 2
51     DOUBLE PRECISION PTT(KDLON,NTRA) ! TRANSMISSION FUNCTIONS
52 guez 24 C
53     C* LOCAL VARIABLES:
54     C
55     INTEGER ja, jl
56 guez 71 DOUBLE PRECISION zz, zxd, zxn
57     DOUBLE PRECISION zpu, zpu10, zpu11, zpu12, zpu13
58     DOUBLE PRECISION zeu, zeu10, zeu11, zeu12, zeu13
59     DOUBLE PRECISION zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1
60     DOUBLE PRECISION zto2
61     DOUBLE PRECISION zxch4, zych4, zsqh41, zodh41
62     DOUBLE PRECISION zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh42
63     DOUBLE PRECISION zsqn22, zodn22, za11, zttf11, za12, zttf12
64     DOUBLE PRECISION zuu11, zuu12
65 guez 24 C ------------------------------------------------------------------
66     C
67     C* 1. HORNER'S ALGORITHM FOR H2O AND CO2 TRANSMISSION
68     C -----------------------------------------------
69     C
70     100 CONTINUE
71     C
72     C
73     DO 130 JA = 1 , 8
74     DO 120 JL = 1, KDLON
75     ZZ =SQRT(PUU1(JL,JA) - PUU2(JL,JA))
76     ZXD =PGB( JL,JA,1) + ZZ *(PGB( JL,JA,2) + ZZ )
77     ZXN =PGA( JL,JA,1) + ZZ *(PGA( JL,JA,2) )
78     PTT(JL,JA)=ZXN /ZXD
79     120 CONTINUE
80     130 CONTINUE
81     C
82     C ------------------------------------------------------------------
83     C
84     C* 2. CONTINUUM, OZONE AND AEROSOL TRANSMISSION FUNCTIONS
85     C ---------------------------------------------------
86     C
87     200 CONTINUE
88     C
89     DO 201 JL = 1, KDLON
90     PTT(JL, 9) = PTT(JL, 8)
91     C
92     C- CONTINUUM ABSORPTION: E- AND P-TYPE
93     C
94     ZPU = 0.002 * (PUU1(JL,10) - PUU2(JL,10))
95     ZPU10 = 112. * ZPU
96     ZPU11 = 6.25 * ZPU
97     ZPU12 = 5.00 * ZPU
98     ZPU13 = 80.0 * ZPU
99     ZEU = (PUU1(JL,11) - PUU2(JL,11))
100     ZEU10 = 12. * ZEU
101     ZEU11 = 6.25 * ZEU
102     ZEU12 = 5.00 * ZEU
103     ZEU13 = 80.0 * ZEU
104     C
105     C- OZONE ABSORPTION
106     C
107     ZX = (PUU1(JL,12) - PUU2(JL,12))
108     ZY = (PUU1(JL,13) - PUU2(JL,13))
109     ZUXY = 4. * ZX * ZX / (RPIALF0 * ZY)
110     ZSQ1 = SQRT(1. + O1H * ZUXY ) - 1.
111     ZSQ2 = SQRT(1. + O2H * ZUXY ) - 1.
112     ZVXY = RPIALF0 * ZY / (2. * ZX)
113     ZAERCN = (PUU1(JL,17) -PUU2(JL,17)) + ZEU12 + ZPU12
114     ZTO1 = EXP( - ZVXY * ZSQ1 - ZAERCN )
115     ZTO2 = EXP( - ZVXY * ZSQ2 - ZAERCN )
116     C
117     C-- TRACE GASES (CH4, N2O, CFC-11, CFC-12)
118     C
119     C* CH4 IN INTERVAL 800-970 + 1110-1250 CM-1
120     C
121     ZXCH4 = (PUU1(JL,19) - PUU2(JL,19))
122     ZYCH4 = (PUU1(JL,20) - PUU2(JL,20))
123     ZUXY = 4. * ZXCH4*ZXCH4/(0.103*ZYCH4)
124     ZSQH41 = SQRT(1. + 33.7 * ZUXY) - 1.
125     ZVXY = 0.103 * ZYCH4 / (2. * ZXCH4)
126     ZODH41 = ZVXY * ZSQH41
127     C
128     C* N2O IN INTERVAL 800-970 + 1110-1250 CM-1
129     C
130     ZXN2O = (PUU1(JL,21) - PUU2(JL,21))
131     ZYN2O = (PUU1(JL,22) - PUU2(JL,22))
132     ZUXY = 4. * ZXN2O*ZXN2O/(0.416*ZYN2O)
133     ZSQN21 = SQRT(1. + 21.3 * ZUXY) - 1.
134     ZVXY = 0.416 * ZYN2O / (2. * ZXN2O)
135     ZODN21 = ZVXY * ZSQN21
136     C
137     C* CH4 IN INTERVAL 1250-1450 + 1880-2820 CM-1
138     C
139     ZUXY = 4. * ZXCH4*ZXCH4/(0.113*ZYCH4)
140     ZSQH42 = SQRT(1. + 400. * ZUXY) - 1.
141     ZVXY = 0.113 * ZYCH4 / (2. * ZXCH4)
142     ZODH42 = ZVXY * ZSQH42
143     C
144     C* N2O IN INTERVAL 1250-1450 + 1880-2820 CM-1
145     C
146     ZUXY = 4. * ZXN2O*ZXN2O/(0.197*ZYN2O)
147     ZSQN22 = SQRT(1. + 2000. * ZUXY) - 1.
148     ZVXY = 0.197 * ZYN2O / (2. * ZXN2O)
149     ZODN22 = ZVXY * ZSQN22
150     C
151     C* CFC-11 IN INTERVAL 800-970 + 1110-1250 CM-1
152     C
153     ZA11 = (PUU1(JL,23) - PUU2(JL,23)) * 4.404E+05
154     ZTTF11 = 1. - ZA11 * 0.003225
155     C
156     C* CFC-12 IN INTERVAL 800-970 + 1110-1250 CM-1
157     C
158     ZA12 = (PUU1(JL,24) - PUU2(JL,24)) * 6.7435E+05
159     ZTTF12 = 1. - ZA12 * 0.003225
160     C
161     ZUU11 = - (PUU1(JL,15) - PUU2(JL,15)) - ZEU10 - ZPU10
162     ZUU12 = - (PUU1(JL,16) - PUU2(JL,16)) - ZEU11 - ZPU11 -
163     S ZODH41 - ZODN21
164     PTT(JL,10) = EXP( - (PUU1(JL,14)- PUU2(JL,14)) )
165     PTT(JL,11) = EXP( ZUU11 )
166     PTT(JL,12) = EXP( ZUU12 ) * ZTTF11 * ZTTF12
167     PTT(JL,13) = 0.7554 * ZTO1 + 0.2446 * ZTO2
168     PTT(JL,14) = PTT(JL,10) * EXP( - ZEU13 - ZPU13 )
169     PTT(JL,15) = EXP ( - (PUU1(JL,14) - PUU2(JL,14)) - ZODH42-ZODN22 )
170     201 CONTINUE
171     C
172     RETURN
173     END

  ViewVC Help
Powered by ViewVC 1.1.21