/[lmdze]/trunk/phylmd/Radlwsw/swtt.f
ViewVC logotype

Contents of /trunk/phylmd/Radlwsw/swtt.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (show annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 2 months ago) by guez
File size: 3741 byte(s)
Rename module dimens_m to dimensions.
1 SUBROUTINE swtt(knu, ka, pu, ptr)
2 USE dimensions
3 USE dimphy
4 USE raddim
5 IMPLICIT NONE
6
7 ! -----------------------------------------------------------------------
8 ! PURPOSE.
9 ! --------
10 ! THIS ROUTINE COMPUTES THE TRANSMISSION FUNCTIONS FOR ALL THE
11 ! ABSORBERS (H2O, UNIFORMLY MIXED GASES, AND O3) IN THE TWO SPECTRAL
12 ! INTERVALS.
13
14 ! METHOD.
15 ! -------
16
17 ! TRANSMISSION FUNCTION ARE COMPUTED USING PADE APPROXIMANTS
18 ! AND HORNER'S ALGORITHM.
19
20 ! REFERENCE.
21 ! ----------
22
23 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
24 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
25
26 ! AUTHOR.
27 ! -------
28 ! JEAN-JACQUES MORCRETTE *ECMWF*
29
30 ! MODIFICATIONS.
31 ! --------------
32 ! ORIGINAL : 88-12-15
33 ! -----------------------------------------------------------------------
34
35 ! * ARGUMENTS
36
37 INTEGER knu ! INDEX OF THE SPECTRAL INTERVAL
38 INTEGER ka ! INDEX OF THE ABSORBER
39 DOUBLE PRECISION pu(kdlon) ! ABSORBER AMOUNT
40
41 DOUBLE PRECISION ptr(kdlon) ! TRANSMISSION FUNCTION
42
43 ! * LOCAL VARIABLES:
44
45 DOUBLE PRECISION zr1(kdlon), zr2(kdlon)
46 INTEGER jl, i, j
47
48 ! * Prescribed Data:
49
50 DOUBLE PRECISION apad(2, 3, 7), bpad(2, 3, 7), d(2, 3)
51 SAVE apad, bpad, d
52 DATA ((apad(1,i,j),i=1,3), j=1, 7)/0.912418292D+05, 0.000000000D-00, &
53 0.925887084D-04, 0.723613782D+05, 0.000000000D-00, 0.129353723D-01, &
54 0.596037057D+04, 0.000000000D-00, 0.800821928D+00, 0.000000000D-00, &
55 0.000000000D-00, 0.242715973D+02, 0.000000000D-00, 0.000000000D-00, &
56 0.878331486D+02, 0.000000000D-00, 0.000000000D-00, 0.191559725D+02, &
57 0.000000000D-00, 0.000000000D-00, 0.000000000D+00/
58 DATA ((apad(2,i,j),i=1,3), j=1, 7)/0.376655383D-08, 0.739646016D-08, &
59 0.410177786D+03, 0.978576773D-04, 0.131849595D-03, 0.672595424D+02, &
60 0.387714006D+00, 0.437772681D+00, 0.000000000D-00, 0.118461660D+03, &
61 0.151345118D+03, 0.000000000D-00, 0.119079797D+04, 0.233628890D+04, &
62 0.000000000D-00, 0.293353397D+03, 0.797219934D+03, 0.000000000D-00, &
63 0.000000000D+00, 0.000000000D+00, 0.000000000D+00/
64
65 DATA ((bpad(1,i,j),i=1,3), j=1, 7)/0.912418292D+05, 0.000000000D-00, &
66 0.925887084D-04, 0.724555318D+05, 0.000000000D-00, 0.131812683D-01, &
67 0.602593328D+04, 0.000000000D-00, 0.812706117D+00, 0.100000000D+01, &
68 0.000000000D-00, 0.249863591D+02, 0.000000000D-00, 0.000000000D-00, &
69 0.931071925D+02, 0.000000000D-00, 0.000000000D-00, 0.252233437D+02, &
70 0.000000000D-00, 0.000000000D-00, 0.100000000D+01/
71 DATA ((bpad(2,i,j),i=1,3), j=1, 7)/0.376655383D-08, 0.739646016D-08, &
72 0.410177786D+03, 0.979023421D-04, 0.131861712D-03, 0.731185438D+02, &
73 0.388611139D+00, 0.437949001D+00, 0.100000000D+01, 0.120291383D+03, &
74 0.151692730D+03, 0.000000000D+00, 0.130531005D+04, 0.237071130D+04, &
75 0.000000000D+00, 0.415049409D+03, 0.867914360D+03, 0.000000000D+00, &
76 0.100000000D+01, 0.100000000D+01, 0.000000000D+00/
77
78 DATA (d(1,i), i=1, 3)/0.00d0, 0.00d0, 0.00d0/
79 DATA (d(2,i), i=1, 3)/0.000000000d0, 0.000000000d0, 0.800000000d0/
80
81 ! -----------------------------------------------------------------------
82
83 ! * 1. HORNER'S ALGORITHM TO COMPUTE TRANSMISSION FUNCTION
84
85
86 DO jl = 1, kdlon
87 zr1(jl) = apad(knu, ka, 1) + pu(jl)*(apad(knu,ka,2)+pu(jl)*(apad(knu,ka, &
88 3)+pu(jl)*(apad(knu,ka,4)+pu(jl)*(apad(knu,ka,5)+pu(jl)*(apad(knu,ka,6) &
89 +pu(jl)*(apad(knu,ka,7)))))))
90
91 zr2(jl) = bpad(knu, ka, 1) + pu(jl)*(bpad(knu,ka,2)+pu(jl)*(bpad(knu,ka, &
92 3)+pu(jl)*(bpad(knu,ka,4)+pu(jl)*(bpad(knu,ka,5)+pu(jl)*(bpad(knu,ka,6) &
93 +pu(jl)*(bpad(knu,ka,7)))))))
94
95
96 ! * 2. ADD THE BACKGROUND TRANSMISSION
97
98
99
100 ptr(jl) = (zr1(jl)/zr2(jl))*(1.-d(knu,ka)) + d(knu, ka)
101 END DO
102
103 RETURN
104 END SUBROUTINE swtt

  ViewVC Help
Powered by ViewVC 1.1.21