LMDZ
swtt.F90
Go to the documentation of this file.
1 SUBROUTINE swtt ( KIDIA, KFDIA, KLON, KNU, KA , PU, PTR)
2 
3 !**** *SWTT* - 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 ! *SWTT* IS CALLED FROM *SW1S*, *SWNI*.
14 
15 ! EXPLICIT ARGUMENTS :
16 ! --------------------
17 ! KNU : ; INDEX OF THE SPECTRAL INTERVAL
18 ! KA : ; INDEX OF THE ABSORBER
19 ! PU : (KLON) ; ABSORBER AMOUNT
20 ! ==== OUTPUTS ===
21 ! PTR : (KLON) ; TRANSMISSION FUNCTION
22 
23 ! IMPLICIT ARGUMENTS : NONE
24 ! --------------------
25 
26 ! METHOD.
27 ! -------
28 
29 ! TRANSMISSION FUNCTION ARE COMPUTED USING PADE APPROXIMANTS
30 ! AND HORNER'S ALGORITHM.
31 
32 ! EXTERNALS.
33 ! ----------
34 
35 ! NONE
36 
37 ! REFERENCE.
38 ! ----------
39 
40 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
41 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
42 
43 ! AUTHOR.
44 ! -------
45 ! JEAN-JACQUES MORCRETTE *ECMWF*
46 
47 ! MODIFICATIONS.
48 ! --------------
49 ! ORIGINAL : 88-12-15
50 ! M.Hamrud 01-Oct-2003 CY28 Cleaning
51 
52 !-----------------------------------------------------------------------
53 
54 USE parkind1 ,ONLY : jpim ,jprb
55 USE yomhook ,ONLY : lhook, dr_hook
56 
57 USE yoesw , ONLY : apad ,bpad ,d
58 
59 IMPLICIT NONE
60 
61 INTEGER(KIND=JPIM),INTENT(IN) :: KLON
62 INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA
63 INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA
64 INTEGER(KIND=JPIM),INTENT(IN) :: KNU
65 INTEGER(KIND=JPIM),INTENT(IN) :: KA
66 REAL(KIND=JPRB) ,INTENT(IN) :: PU(klon)
67 REAL(KIND=JPRB) ,INTENT(OUT) :: PTR(klon)
68 !-----------------------------------------------------------------------
69 
70 !* 0.1 ARGUMENTS
71 ! ---------
72 
73 !-----------------------------------------------------------------------
74 
75 ! ------------
76 
77 REAL(KIND=JPRB) :: ZR1(klon), ZR2(klon)
78 
79 INTEGER(KIND=JPIM) :: JL
80 REAL(KIND=JPRB) :: ZHOOK_HANDLE
81 
82 !-----------------------------------------------------------------------
83 
84 !* 1. HORNER'S ALGORITHM TO COMPUTE TRANSMISSION FUNCTION
85 
86 IF (lhook) CALL dr_hook('SWTT',0,zhook_handle)
87 DO jl = kidia,kfdia
88  zr1(jl) = apad(knu,ka,1) + pu(jl) * (apad(knu,ka,2) + pu(jl)&
89  & * ( apad(knu,ka,3) + pu(jl) * (apad(knu,ka,4) + pu(jl)&
90  & * ( apad(knu,ka,5) + pu(jl) * (apad(knu,ka,6) + pu(jl)&
91  & * ( apad(knu,ka,7) ))))))
92 
93  zr2(jl) = bpad(knu,ka,1) + pu(jl) * (bpad(knu,ka,2) + pu(jl)&
94  & * ( bpad(knu,ka,3) + pu(jl) * (bpad(knu,ka,4) + pu(jl)&
95  & * ( bpad(knu,ka,5) + pu(jl) * (bpad(knu,ka,6) + pu(jl)&
96  & * ( bpad(knu,ka,7) ))))))
97 
98 !* 2. ADD THE BACKGROUND TRANSMISSION
99 
100  ptr(jl) = (zr1(jl) / zr2(jl)) * (1.0_jprb - d(knu,ka)) + d(knu,ka)
101 ENDDO
102 
103 IF (lhook) CALL dr_hook('SWTT',1,zhook_handle)
104 END SUBROUTINE swtt
Definition: yoesw.F90:1
real(kind=jprb), dimension(6, 3) d
Definition: yoesw.F90:28
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, parameter jprb
Definition: parkind1.F90:31
logical lhook
Definition: yomhook.F90:12
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
subroutine swtt(KIDIA, KFDIA, KLON, KNU, KA, PU, PTR)
Definition: swtt.F90:2