LMDZ
swuvo3.F90
Go to the documentation of this file.
1 SUBROUTINE swuvo3 &
2  &( kidia,kfdia,klon,knu,kabs &
3  &, pu, ptr &
4  & )
5 
6 !**** *SWUVO3* - COMPUTES THE SHORTWAVE TRANSMISSION FUNCTIONS
7 
8 ! PURPOSE.
9 ! --------
10 ! THIS ROUTINE COMPUTES THE TRANSMISSION FUNCTIONS FOR OZONE
11 ! IN THE UV and VISIBLE SPECTRAL INTERVALS.
12 
13 !** INTERFACE.
14 ! ----------
15 ! *SWUVO3* IS CALLED FROM *SW1S*.
16 
17 
18 ! EXPLICIT ARGUMENTS :
19 ! --------------------
20 ! KNU : ; INDEX OF THE SPECTRAL INTERVAL
21 ! KABS : ; NUMBER OF ABSORBERS
22 ! PU : (KLON,KABS) ; ABSORBER AMOUNT
23 ! ==== OUTPUTS ===
24 ! PTR : (KLON,KABS) ; TRANSMISSION FUNCTION
25 
26 ! IMPLICIT ARGUMENTS : NONE
27 ! --------------------
28 
29 ! METHOD.
30 ! -------
31 
32 ! TRANSMISSION FUNCTION ARE COMPUTED USING SUMS OF EXPONENTIALS
33 
34 ! EXTERNALS.
35 ! ----------
36 
37 ! NONE
38 
39 ! REFERENCE.
40 ! ----------
41 ! SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
42 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
43 
44 ! AUTHOR.
45 ! -------
46 ! JEAN-JACQUES MORCRETTE *ECMWF*
47 ! Ph.DUBUISSON/B.BONNEL L.O.A.
48 
49 ! MODIFICATIONS.
50 ! --------------
51 ! ORIGINAL : 00-12-18
52 
53 !-----------------------------------------------------------------------
54 
55 #include "tsmbkind.h"
56 
57 USE yoesw , ONLY : nexpo3, rexpo3
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 !* 0.1 ARGUMENTS
73 ! ---------
74 
75 real_b :: pu(klon,kabs)
76 real_b :: ptr(klon,kabs)
77 
78 !-----------------------------------------------------------------------
79 
80 !* 0.2 LOCAL ARRAYS
81 ! ------------
82 
83 ! LOCAL INTEGER SCALARS
84 integer_m :: ja, jl, iexp, jx
85 
86 
87 iexp=nexpo3(knu)
88 !print *,'IEXP(',KNU,')=',IEXP
89 !print *,(REXPO3(KNU,1,JX),JX=1,IEXP)
90 !print *,(REXPO3(KNU,2,JX),JX=1,IEXP)
91 
92 DO ja = 1,kabs
93  DO jl=kidia,kfdia
94  ptr(jl,ja)=_zero_
95  END DO
96 
97  DO jx=1,iexp
98  DO jl = kidia,kfdia
99  ptr(jl,ja) = ptr(jl,ja) &
100  &+rexpo3(knu,1,jx)*exp(-min(rexpo3(knu,2,jx)*pu(jl,ja),200.0_jprb))
101  END DO
102  END DO
103 ENDDO
104 
105 RETURN
106 END SUBROUTINE swuvo3
Definition: yoesw.F90:1
real(kind=jprb), dimension(6, 2, 7) rexpo3
Definition: yoesw.F90:29
integer(kind=jpim), dimension(6) nexpo3
Definition: yoesw.F90:30
integer, save kidia
Definition: dimphy.F90:6
integer, save klon
Definition: dimphy.F90:3
integer, save kfdia
Definition: dimphy.F90:5
subroutine swuvo3(KIDIA, KFDIA, KLON, KNU, KABS, PU, PTR)
Definition: swuvo3.F90:5