LMDZ
swtt1.F90
Go to the documentation of this file.
1 SUBROUTINE swtt1 ( KIDIA,KFDIA,KLON,KNU,KABS,KIND, PU, PTR )
2 
3 !**** *SWTT1* - COMPUTES THE SHORTWAVE TRANSMISSION FUNCTIONS
4 
5 ! PURPOSE.
6 ! --------
7 ! THIS ROUTINE COMPUTES THE TRANSMISSION FUNCTIONS FOR ALL THE
8 ! ABSORBERS (H2O, UNIFORMLY MIXED GASES, AND O3) IN THE TWO SPECTRAL
9 ! INTERVALS.
10 
11 !** INTERFACE.
12 ! ----------
13 ! *SWTT1* IS CALLED FROM *SW1S*.
14 
15 
16 ! EXPLICIT ARGUMENTS :
17 ! --------------------
18 ! KNU : ; INDEX OF THE SPECTRAL INTERVAL
19 ! KABS : ; NUMBER OF ABSORBERS
20 ! KIND : (KABS) ; INDICES OF THE ABSORBERS
21 ! PU : (KLON,KABS) ; ABSORBER AMOUNT
22 ! ==== OUTPUTS ===
23 ! PTR : (KLON,KABS) ; TRANSMISSION FUNCTION
24 
25 ! IMPLICIT ARGUMENTS : NONE
26 ! --------------------
27 
28 ! METHOD.
29 ! -------
30 
31 ! TRANSMISSION FUNCTION ARE COMPUTED USING PADE APPROXIMANTS
32 ! AND HORNER'S ALGORITHM.
33 
34 ! EXTERNALS.
35 ! ----------
36 
37 ! NONE
38 
39 ! REFERENCE.
40 ! ----------
41 
42 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
43 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
44 
45 ! AUTHOR.
46 ! -------
47 ! JEAN-JACQUES MORCRETTE *ECMWF*
48 
49 ! MODIFICATIONS.
50 ! --------------
51 ! ORIGINAL : 95-01-20
52 
53 !-----------------------------------------------------------------------
54 
55 #include "tsmbkind.h"
56 
57 USE yoesw , ONLY : apad ,bpad ,d
58 
59 
60 IMPLICIT NONE
61 
62 
63 ! DUMMY INTEGER SCALARS
64 integer_m :: kabs
65 integer_m :: kfdia
66 integer_m :: kidia
67 integer_m :: klon
68 integer_m :: knu
69 
70 
71 
72 !-----------------------------------------------------------------------
73 
74 !* 0.1 ARGUMENTS
75 ! ---------
76 
77 integer_m :: kind(kabs)
78 real_b :: pu(klon,kabs)
79 real_b :: ptr(klon,kabs)
80 
81 !-----------------------------------------------------------------------
82 
83 !* 0.2 LOCAL ARRAYS
84 ! ------------
85 
86 real_b :: zr1(klon), zr2(klon), zu(klon)
87 
88 ! LOCAL INTEGER SCALARS
89 integer_m :: ia, ja, jl
90 
91 
92 !-----------------------------------------------------------------------
93 
94 !* 1. HORNER'S ALGORITHM TO COMPUTE TRANSMISSION FUNCTION
95 
96 
97 DO ja = 1,kabs
98  ia=kind(ja)
99  DO jl = kidia,kfdia
100  zu(jl) = pu(jl,ja)
101  zr1(jl) = apad(knu,ia,1) + zu(jl) * (apad(knu,ia,2) + zu(jl)&
102  &* ( apad(knu,ia,3) + zu(jl) * (apad(knu,ia,4) + zu(jl)&
103  &* ( apad(knu,ia,5) + zu(jl) * (apad(knu,ia,6) + zu(jl)&
104  &* ( apad(knu,ia,7) ))))))
105 
106  zr2(jl) = bpad(knu,ia,1) + zu(jl) * (bpad(knu,ia,2) + zu(jl)&
107  &* ( bpad(knu,ia,3) + zu(jl) * (bpad(knu,ia,4) + zu(jl)&
108  &* ( bpad(knu,ia,5) + zu(jl) * (bpad(knu,ia,6) + zu(jl)&
109  &* ( bpad(knu,ia,7) ))))))
110 
111 
112 !* 2. ADD THE BACKGROUND TRANSMISSION
113 
114 
115  ptr(jl,ja) = (zr1(jl)/zr2(jl)) * (_one_-d(knu,ia)) + d(knu,ia)
116  ENDDO
117 ENDDO
118 
119 RETURN
120 END SUBROUTINE swtt1
Definition: yoesw.F90:1
real(kind=jprb), dimension(6, 3) d
Definition: yoesw.F90:28
integer, save kidia
Definition: dimphy.F90:6
integer, save klon
Definition: dimphy.F90:3
real(kind=jprb), dimension(6, 3, 7) bpad
Definition: yoesw.F90:14
real(kind=jprb), dimension(6, 3, 7) apad
Definition: yoesw.F90:13
integer, save kfdia
Definition: dimphy.F90:5
subroutine swtt1(KIDIA, KFDIA, KLON, KNU, KABS, KIND, PU, PTR)
Definition: swtt1.F90:2