Directory: | ./ |
---|---|
File: | rad/suaersn.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 48 | 61 | 78.7% |
Branches: | 81 | 98 | 82.7% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | 1 | SUBROUTINE SUAERSN (KTSW, KSW) | |
2 | |||
3 | !**** *SUAERS* - INITIALIZE COMMON YOEAER | ||
4 | |||
5 | ! PURPOSE. | ||
6 | ! -------- | ||
7 | ! INITIALIZE YOEAER, THE COMMON THAT CONTAINS THE | ||
8 | ! RADIATIVE CHARACTERISTICS OF THE AEROSOLS | ||
9 | |||
10 | !** INTERFACE. | ||
11 | ! ---------- | ||
12 | ! ----- ----- | ||
13 | |||
14 | ! EXPLICIT ARGUMENTS : | ||
15 | ! -------------------- | ||
16 | ! NONE | ||
17 | |||
18 | ! IMPLICIT ARGUMENTS : | ||
19 | ! -------------------- | ||
20 | ! COMMON YOEAER | ||
21 | |||
22 | ! METHOD. | ||
23 | ! ------- | ||
24 | ! SEE DOCUMENTATION | ||
25 | |||
26 | ! EXTERNALS. | ||
27 | ! ---------- | ||
28 | |||
29 | ! REFERENCE. | ||
30 | ! ---------- | ||
31 | ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE "IFS MODEL" | ||
32 | |||
33 | ! AUTHOR. | ||
34 | ! ------- | ||
35 | ! JEAN-JACQUES MORCRETTE *ECMWF* | ||
36 | |||
37 | ! MODIFICATIONS. | ||
38 | ! -------------- | ||
39 | ! ORIGINAL : 88-02-15 | ||
40 | ! 96-01-27 JJ Morcrette Various spectral resolutions | ||
41 | ! 99-05-25 JJMorcrette Revised aerosol optical properties | ||
42 | ! 00-10-25 JJMorcrette 6 spectral intervals | ||
43 | ! M.Hamrud 01-Oct-2003 CY28 Cleaning | ||
44 | |||
45 | ! ------------------------------------------------------------------ | ||
46 | |||
47 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
48 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
49 | |||
50 | USE YOESW , ONLY : RTAUA ,RPIZA ,RCGA | ||
51 | |||
52 | ! ---------------------------------------------------------------- | ||
53 | |||
54 | IMPLICIT NONE | ||
55 | |||
56 | INTEGER(KIND=JPIM),INTENT(IN) :: KTSW | ||
57 | INTEGER(KIND=JPIM),INTENT(IN) :: KSW | ||
58 | REAL(KIND=JPRB) :: ZTAUA2(2,6) ,ZPIZA2(2,6) ,ZCGA2(2,6) | ||
59 | REAL(KIND=JPRB) :: ZTAUA4(4,6) ,ZPIZA4(4,6) ,ZCGA4(4,6) | ||
60 | REAL(KIND=JPRB) :: ZTAUA6(6,6) ,ZPIZA6(6,6) ,ZCGA6(6,6) | ||
61 | |||
62 | INTEGER(KIND=JPIM) :: JAER, JNU | ||
63 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
64 | |||
65 | ! ---------------------------------------------------------------- | ||
66 | |||
67 | !* 1. SHORTWAVE COEFFICIENTS | ||
68 | ! ---------------------- | ||
69 | !======================================================================= | ||
70 | !-- The (old) five aerosol types were respectively: | ||
71 | |||
72 | ! 1/ continental average (+desert) 2/ maritime | ||
73 | ! 3/ urban 4/ volcanic active | ||
74 | ! 5/ stratospheric background | ||
75 | |||
76 | !-- old values were not spectrally defined: | ||
77 | ! ZTAU2 = .730719, .912819, .725059, .745405, .682188 | ||
78 | ! ZPIZA2 = .872212, .982545, .623143, .944887, .997975 | ||
79 | ! ZCGA2 = .647596, .739002, .580845, .662657, .624246 | ||
80 | !======================================================================= | ||
81 | |||
82 | !-- The six aerosol types are respectively: | ||
83 | |||
84 | ! 1/ continental average 2/ maritime | ||
85 | ! 3/ desert 4/ urban | ||
86 | ! 5/ volcanic active 6/ stratospheric background | ||
87 | |||
88 | ! The quantities given are: | ||
89 | ! TAU : ratio of average optical thickness in interval to that at 0.55 | ||
90 | ! micron | ||
91 | ! PIZA: average single scattering albedo | ||
92 | ! CGA : average asymmetry factor | ||
93 | |||
94 | ! computed from Hess and Koepke (con, mar, des, urb) | ||
95 | ! from Bonnel et al. (vol, str) | ||
96 | |||
97 | ! 1.1 TWO SPECTRAL INTERVALS (0.25-0.69-4.00microns) | ||
98 | |||
99 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUAERSN',0,ZHOOK_HANDLE) |
100 | ZTAUA2(1, :)= (/& | ||
101 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 1.69446_JPRB , 1.11855_JPRB , 1.09212_JPRB , 1.72145_JPRB , 1.03858_JPRB , 1.12044_JPRB /) |
102 | ZTAUA2(2, :)= (/& | ||
103 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.40174_JPRB , 0.89383_JPRB , 0.89546_JPRB , 0.40741_JPRB , 0.51143_JPRB , 0.32646_JPRB /) |
104 | |||
105 | ZPIZA2(1, :)= (/& | ||
106 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .9148907_JPRB, .9956173_JPRB, .7504584_JPRB, .8131335_JPRB, .9401905_JPRB, .9999999_JPRB/) |
107 | ZPIZA2(2, :)= (/& | ||
108 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .8814597_JPRB, .9920407_JPRB, .9239428_JPRB, .7546879_JPRB, .9515548_JPRB, .9938563_JPRB/) |
109 | |||
110 | ZCGA2(1, :)= (/& | ||
111 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.729019_JPRB, 0.803129_JPRB, 0.784592_JPRB, 0.712208_JPRB, .7008249_JPRB, .7270548_JPRB/) |
112 | ZCGA2(2, :)= (/& | ||
113 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.663224_JPRB, 0.793746_JPRB, 0.696315_JPRB, 0.652612_JPRB, .6608509_JPRB, .6318786_JPRB/) |
114 | |||
115 | ! 1.2 FOUR SPECTRAL INTERVALS (0.25-0.69-1.19-2.38-4.00microns) | ||
116 | |||
117 | ZTAUA4(1, :)= (/& | ||
118 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 1.69446_JPRB , 1.11855_JPRB , 1.09212_JPRB , 1.72145_JPRB , 1.03858_JPRB , 1.12044_JPRB /) |
119 | ZTAUA4(2, :)= (/& | ||
120 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.52838_JPRB , 0.93285_JPRB , 0.93449_JPRB , 0.53078_JPRB , 0.67148_JPRB , 0.46608_JPRB /) |
121 | ZTAUA4(3, :)= (/& | ||
122 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.20543_JPRB , 0.84642_JPRB , 0.84958_JPRB , 0.21673_JPRB , 0.28270_JPRB , 0.10915_JPRB /) |
123 | ZTAUA4(4, :)= (/& | ||
124 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.10849_JPRB , 0.66699_JPRB , 0.65255_JPRB , 0.11600_JPRB , 0.06529_JPRB , 0.04468_JPRB /) |
125 | |||
126 | ZPIZA4(1, :)= (/& | ||
127 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .9148907_JPRB, .9956173_JPRB, .7504584_JPRB, .8131335_JPRB, .9401905_JPRB, .9999999_JPRB/) |
128 | ZPIZA4(2, :)= (/& | ||
129 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .8970131_JPRB, .9984940_JPRB, .9245594_JPRB, .7768385_JPRB, .9532763_JPRB, .9999999_JPRB/) |
130 | ZPIZA4(3, :)= (/& | ||
131 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .8287144_JPRB, .9949396_JPRB, .9279543_JPRB, .6765051_JPRB, .9467578_JPRB, .9955938_JPRB/) |
132 | ZPIZA4(4, :)= (/& | ||
133 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .5230504_JPRB, .7868518_JPRB, .8531531_JPRB, .4048149_JPRB, .8748231_JPRB, .2355667_JPRB/) |
134 | |||
135 | ZCGA4(1, :)= (/& | ||
136 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.729019_JPRB, 0.803129_JPRB, 0.784592_JPRB, 0.712208_JPRB, .7008249_JPRB, .7270548_JPRB/) |
137 | ZCGA4(2, :)= (/& | ||
138 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.668431_JPRB, 0.788530_JPRB, 0.698682_JPRB, 0.657422_JPRB, .6735182_JPRB, .6519706_JPRB/) |
139 | ZCGA4(3, :)= (/& | ||
140 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.636342_JPRB, 0.802467_JPRB, 0.691305_JPRB, 0.627497_JPRB, .6105750_JPRB, .4760794_JPRB/) |
141 | ZCGA4(4, :)= (/& | ||
142 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.700610_JPRB, 0.818871_JPRB, 0.702399_JPRB, 0.689886_JPRB, .4629866_JPRB, .1907639_JPRB/) |
143 | |||
144 | ! 1.3 SIX SPECTRAL INTERVALS (0.185-0.25-0.44-0.69-1.19-2.38-4.00microns) | ||
145 | |||
146 | ZTAUA6(1, :)= (/& | ||
147 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 1.69446_JPRB , 1.11855_JPRB , 1.09212_JPRB , 1.72145_JPRB , 1.03858_JPRB , 1.12044_JPRB /) |
148 | ZTAUA6(2, :)= (/& | ||
149 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 1.69446_JPRB , 1.11855_JPRB , 1.09212_JPRB , 1.72145_JPRB , 1.03858_JPRB , 1.12044_JPRB /) |
150 | ZTAUA6(3, :)= (/& | ||
151 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 1.69446_JPRB , 1.11855_JPRB , 1.09212_JPRB , 1.72145_JPRB , 1.03858_JPRB , 1.12044_JPRB /) |
152 | ZTAUA6(4, :)= (/& | ||
153 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.52838_JPRB , 0.93285_JPRB , 0.93449_JPRB , 0.53078_JPRB , 0.67148_JPRB , 0.46608_JPRB /) |
154 | ZTAUA6(5, :)= (/& | ||
155 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.20543_JPRB , 0.84642_JPRB , 0.84958_JPRB , 0.21673_JPRB , 0.28270_JPRB , 0.10915_JPRB /) |
156 | ZTAUA6(6, :)= (/& | ||
157 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.10849_JPRB , 0.66699_JPRB , 0.65255_JPRB , 0.11600_JPRB , 0.06529_JPRB , 0.04468_JPRB /) |
158 | |||
159 | ZPIZA6(1, :)= (/& | ||
160 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .9148907_JPRB, .9956173_JPRB, .7504584_JPRB, .8131335_JPRB, .9401905_JPRB, .9999999_JPRB/) |
161 | ZPIZA6(2, :)= (/& | ||
162 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .9148907_JPRB, .9956173_JPRB, .7504584_JPRB, .8131335_JPRB, .9401905_JPRB, .9999999_JPRB/) |
163 | ZPIZA6(3, :)= (/& | ||
164 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .9148907_JPRB, .9956173_JPRB, .7504584_JPRB, .8131335_JPRB, .9401905_JPRB, .9999999_JPRB/) |
165 | ZPIZA6(4, :)= (/& | ||
166 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .8970131_JPRB, .9984940_JPRB, .9245594_JPRB, .7768385_JPRB, .9532763_JPRB, .9999999_JPRB/) |
167 | ZPIZA6(5, :)= (/& | ||
168 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .8287144_JPRB, .9949396_JPRB, .9279543_JPRB, .6765051_JPRB, .9467578_JPRB, .9955938_JPRB/) |
169 | ZPIZA6(6, :)= (/& | ||
170 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & .5230504_JPRB, .7868518_JPRB, .8531531_JPRB, .4048149_JPRB, .8748231_JPRB, .2355667_JPRB/) |
171 | |||
172 | ZCGA6(1, :)= (/& | ||
173 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.729019_JPRB, 0.803129_JPRB, 0.784592_JPRB, 0.712208_JPRB, .7008249_JPRB, .7270548_JPRB/) |
174 | ZCGA6(2, :)= (/& | ||
175 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.729019_JPRB, 0.803129_JPRB, 0.784592_JPRB, 0.712208_JPRB, .7008249_JPRB, .7270548_JPRB/) |
176 | ZCGA6(3, :)= (/& | ||
177 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.729019_JPRB, 0.803129_JPRB, 0.784592_JPRB, 0.712208_JPRB, .7008249_JPRB, .7270548_JPRB/) |
178 | ZCGA6(4, :)= (/& | ||
179 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.668431_JPRB, 0.788530_JPRB, 0.698682_JPRB, 0.657422_JPRB, .6735182_JPRB, .6519706_JPRB/) |
180 | ZCGA6(5, :)= (/& | ||
181 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | & 0.636342_JPRB, 0.802467_JPRB, 0.691305_JPRB, 0.627497_JPRB, .6105750_JPRB, .4760794_JPRB/) |
182 | ZCGA6(6, :)= (/& | ||
183 |
2/2✓ Branch 0 taken 6 times.
✓ Branch 1 taken 1 times.
|
7 | & 0.700610_JPRB, 0.818871_JPRB, 0.702399_JPRB, 0.689886_JPRB, .4629866_JPRB, .1907639_JPRB/) |
184 | |||
185 | ! ---------------------------------------------------------------- | ||
186 | |||
187 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (KSW == 2) THEN |
188 | ✗ | DO JNU=1,KSW | |
189 | ✗ | DO JAER=1,6 | |
190 | ✗ | RTAUA(JNU,JAER)=ZTAUA2(JNU,JAER) | |
191 | ✗ | RPIZA(JNU,JAER)=ZPIZA2(JNU,JAER) | |
192 | ✗ | RCGA(JNU,JAER) =ZCGA2 (JNU,JAER) | |
193 | ENDDO | ||
194 | ENDDO | ||
195 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | ELSEIF (KSW == 4) THEN |
196 | ✗ | DO JNU=1,KSW | |
197 | ✗ | DO JAER=1,6 | |
198 | ✗ | RTAUA(JNU,JAER)=ZTAUA4(JNU,JAER) | |
199 | ✗ | RPIZA(JNU,JAER)=ZPIZA4(JNU,JAER) | |
200 | ✗ | RCGA(JNU,JAER) =ZCGA4 (JNU,JAER) | |
201 | ENDDO | ||
202 | ENDDO | ||
203 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | ELSEIF (KSW == 6) THEN |
204 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 6 times.
|
7 | DO JNU=1,KSW |
205 |
2/2✓ Branch 0 taken 36 times.
✓ Branch 1 taken 6 times.
|
43 | DO JAER=1,6 |
206 | 36 | RTAUA(JNU,JAER)=ZTAUA6(JNU,JAER) | |
207 | 36 | RPIZA(JNU,JAER)=ZPIZA6(JNU,JAER) | |
208 | 42 | RCGA(JNU,JAER) =ZCGA6 (JNU,JAER) | |
209 | ENDDO | ||
210 | ENDDO | ||
211 | ✗ | ELSEIF (KSW == 14 .AND. KTSW == 14) THEN | |
212 | ✗ | PRINT *,'SUAERSN: 14-SPECTRAL INTERVALS --> RRTM_SW' | |
213 | ELSE | ||
214 | ✗ | STOP 'SUAERSN: WRONG NUMBER OF SPECTRAL INTERVALS' | |
215 | ENDIF | ||
216 | |||
217 | ! ---------------------------------------------------------------- | ||
218 | |||
219 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUAERSN',1,ZHOOK_HANDLE) |
220 | 1 | END SUBROUTINE SUAERSN | |
221 |