/[lmdze]/trunk/Sources/phylmd/Radlwsw/swtt1.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/Radlwsw/swtt1.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 178 - (hide annotations)
Fri Mar 11 18:47:26 2016 UTC (8 years, 3 months ago) by guez
File size: 3954 byte(s)
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos,
buffer, regular from module histcom_var to modules where they are
defined.

Removed procedure ioipslmpp, useless for a sequential program.

Added argument datasz_max to histwrite_real (to avoid circular
dependency with histwrite).

Removed useless variables and computations everywhere.

Changed real litteral constants from default kind to double precision
in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu.

Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of
sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of
transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of
orosetup.

Added output of relative humidity.

1 guez 81 SUBROUTINE swtt1(knu, kabs, kind, pu, ptr)
2     USE dimens_m
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 : 95-01-20
33     ! -----------------------------------------------------------------------
34     ! * ARGUMENTS:
35    
36     INTEGER knu ! INDEX OF THE SPECTRAL INTERVAL
37     INTEGER kabs ! NUMBER OF ABSORBERS
38     INTEGER kind(kabs) ! INDICES OF THE ABSORBERS
39     DOUBLE PRECISION pu(kdlon, kabs) ! ABSORBER AMOUNT
40    
41     DOUBLE PRECISION ptr(kdlon, kabs) ! TRANSMISSION FUNCTION
42    
43     ! * LOCAL VARIABLES:
44    
45     DOUBLE PRECISION zr1(kdlon)
46     DOUBLE PRECISION zr2(kdlon)
47     DOUBLE PRECISION zu(kdlon)
48     INTEGER jl, ja, i, j, ia
49    
50     ! * Prescribed Data:
51    
52     DOUBLE PRECISION apad(2, 3, 7), bpad(2, 3, 7), d(2, 3)
53     SAVE apad, bpad, d
54 guez 178 DATA ((apad(1,i,j),i=1,3), j=1, 7)/0.912418292D+05, 0.000000000D-00, &
55     0.925887084D-04, 0.723613782D+05, 0.000000000D-00, 0.129353723D-01, &
56     0.596037057D+04, 0.000000000D-00, 0.800821928D+00, 0.000000000D-00, &
57     0.000000000D-00, 0.242715973D+02, 0.000000000D-00, 0.000000000D-00, &
58     0.878331486D+02, 0.000000000D-00, 0.000000000D-00, 0.191559725D+02, &
59     0.000000000D-00, 0.000000000D-00, 0.000000000D+00/
60     DATA ((apad(2,i,j),i=1,3), j=1, 7)/0.376655383D-08, 0.739646016D-08, &
61     0.410177786D+03, 0.978576773D-04, 0.131849595D-03, 0.672595424D+02, &
62     0.387714006D+00, 0.437772681D+00, 0.000000000D-00, 0.118461660D+03, &
63     0.151345118D+03, 0.000000000D-00, 0.119079797D+04, 0.233628890D+04, &
64     0.000000000D-00, 0.293353397D+03, 0.797219934D+03, 0.000000000D-00, &
65     0.000000000D+00, 0.000000000D+00, 0.000000000D+00/
66 guez 81
67 guez 178 DATA ((bpad(1,i,j),i=1,3), j=1, 7)/0.912418292D+05, 0.000000000D-00, &
68     0.925887084D-04, 0.724555318D+05, 0.000000000D-00, 0.131812683D-01, &
69     0.602593328D+04, 0.000000000D-00, 0.812706117D+00, 0.100000000D+01, &
70     0.000000000D-00, 0.249863591D+02, 0.000000000D-00, 0.000000000D-00, &
71     0.931071925D+02, 0.000000000D-00, 0.000000000D-00, 0.252233437D+02, &
72     0.000000000D-00, 0.000000000D-00, 0.100000000D+01/
73     DATA ((bpad(2,i,j),i=1,3), j=1, 7)/0.376655383D-08, 0.739646016D-08, &
74     0.410177786D+03, 0.979023421D-04, 0.131861712D-03, 0.731185438D+02, &
75     0.388611139D+00, 0.437949001D+00, 0.100000000D+01, 0.120291383D+03, &
76     0.151692730D+03, 0.000000000D+00, 0.130531005D+04, 0.237071130D+04, &
77     0.000000000D+00, 0.415049409D+03, 0.867914360D+03, 0.000000000D+00, &
78     0.100000000D+01, 0.100000000D+01, 0.000000000D+00/
79 guez 81
80 guez 178 DATA (d(1,i), i=1, 3)/0.00d0, 0.00d0, 0d0/
81     DATA (d(2,i), i=1, 3)/0.000000000d0, 0.000000000d0, 0.800000000d0/
82 guez 81 ! -----------------------------------------------------------------------
83    
84     ! * 1. HORNER'S ALGORITHM TO COMPUTE TRANSMISSION FUNCTION
85    
86    
87     DO ja = 1, kabs
88     ia = kind(ja)
89     DO jl = 1, kdlon
90     zu(jl) = pu(jl, ja)
91     zr1(jl) = apad(knu, ia, 1) + zu(jl)*(apad(knu,ia,2)+zu(jl)*(apad(knu, &
92     ia,3)+zu(jl)*(apad(knu,ia,4)+zu(jl)*(apad(knu,ia,5)+zu(jl)*(apad(knu, &
93     ia,6)+zu(jl)*(apad(knu,ia,7)))))))
94    
95     zr2(jl) = bpad(knu, ia, 1) + zu(jl)*(bpad(knu,ia,2)+zu(jl)*(bpad(knu, &
96     ia,3)+zu(jl)*(bpad(knu,ia,4)+zu(jl)*(bpad(knu,ia,5)+zu(jl)*(bpad(knu, &
97     ia,6)+zu(jl)*(bpad(knu,ia,7)))))))
98    
99    
100     ! * 2. ADD THE BACKGROUND TRANSMISSION
101    
102    
103     ptr(jl, ja) = (zr1(jl)/zr2(jl))*(1.-d(knu,ia)) + d(knu, ia)
104     END DO
105     END DO
106    
107     RETURN
108     END SUBROUTINE swtt1

  ViewVC Help
Powered by ViewVC 1.1.21