Directory: | ./ |
---|---|
File: | rad/su_aerw.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 46 | 71 | 64.8% |
Branches: | 7 | 30 | 23.3% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | 1 | SUBROUTINE SU_AERW | |
2 | |||
3 | !**** *SU_AERW* - DEFINES INDICES AND PARAMETERS FOR VARIOUS AEROSOL VARIABLES | ||
4 | |||
5 | ! PURPOSE. | ||
6 | ! -------- | ||
7 | ! INITIALIZE YOEAERATM, YOEAERSRC, YOEAERSNK, THE MODULES THAT CONTAINS INDICES | ||
8 | ! ALLOWING TO GET THE AEROSOL PARAMETERS RELEVANT FOR THE PROGNOSTIC AEROSOL | ||
9 | ! CONFIGURATION. | ||
10 | |||
11 | !** INTERFACE. | ||
12 | ! ---------- | ||
13 | ! *CALL* *SU_AERW | ||
14 | |||
15 | ! EXPLICIT ARGUMENTS : | ||
16 | ! -------------------- | ||
17 | ! NONE | ||
18 | |||
19 | ! IMPLICIT ARGUMENTS : | ||
20 | ! -------------------- | ||
21 | ! YOEAERW | ||
22 | |||
23 | ! METHOD. | ||
24 | ! ------- | ||
25 | ! SEE DOCUMENTATION | ||
26 | |||
27 | ! EXTERNALS. | ||
28 | ! ---------- | ||
29 | |||
30 | ! REFERENCE. | ||
31 | ! ---------- | ||
32 | ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS | ||
33 | |||
34 | ! AUTHOR. | ||
35 | ! ------- | ||
36 | ! JEAN-JACQUES MORCRETTE *ECMWF* | ||
37 | |||
38 | ! MODIFICATIONS. | ||
39 | ! -------------- | ||
40 | ! ORIGINAL : 2005-07-08 | ||
41 | |||
42 | ! ------------------------------------------------------------------ | ||
43 | |||
44 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
45 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
46 | |||
47 | USE YOEAERATM, ONLY : LAERGBUD, LAERSCAV ,LAERSEDIM, LAERSURF, LAER6SDIA, & | ||
48 | & LAERCLIMG, LAERCLIMZ, LAERCLIST, LAERDRYDP, LAERNGAT, LAERPRNT, & | ||
49 | & REPSCAER , INDBG | ||
50 | |||
51 | USE YOEAERSRC, ONLY : JKBIN, JKTYP, LEPAERO , & | ||
52 | & NBINAER, NINDAER , NMAXTAER, NTAER , NTYPAER, RGELAV , RGEMUV , & | ||
53 | & RDGLAV , RDGMUV , RCLONV , RSLONV , RDCLONV, RDSLONV, LAEREXTR, & | ||
54 | & RSSFLX , RLATVOL , RLONVOL , NDDUST | ||
55 | |||
56 | USE YOEPHY , ONLY : LE4ALB | ||
57 | |||
58 | USE YOEDBUG , ONLY : KSTPDBG | ||
59 | |||
60 | USE YOMCST , ONLY : RPI | ||
61 | USE YOMGC , ONLY : GELAM | ||
62 | USE YOMGEM , ONLY : NGPTOT | ||
63 | USE YOMLEG , ONLY : RMU | ||
64 | ! Ce qui concerne NULNAM commente par MPL le 15.04.09 | ||
65 | !USE YOMLUN , ONLY : NULNAM, NULOUT | ||
66 | USE YOMLUN , ONLY : NULOUT | ||
67 | |||
68 | USE YOM_YGFL, ONLY : NAERO | ||
69 | |||
70 | IMPLICIT NONE | ||
71 | |||
72 | INTEGER(KIND=JPIM) :: IAER, ICAER, ITAER | ||
73 | INTEGER(KIND=JPIM) :: J, JAER, JL | ||
74 | |||
75 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
76 | ! ---------------------------------------------------------------- | ||
77 | |||
78 | INTERFACE | ||
79 | SUBROUTINE POSNAM(KULNAM,CDNAML) | ||
80 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
81 | INTEGER(KIND=JPIM),INTENT(IN) :: KULNAM | ||
82 | CHARACTER(LEN=*) ,INTENT(IN) :: CDNAML | ||
83 | END SUBROUTINE POSNAM | ||
84 | END INTERFACE | ||
85 | |||
86 | INTERFACE | ||
87 | SUBROUTINE SU_AERP | ||
88 | END SUBROUTINE SU_AERP | ||
89 | END INTERFACE | ||
90 | INTERFACE | ||
91 | SUBROUTINE SU_AEROP | ||
92 | END SUBROUTINE SU_AEROP | ||
93 | END INTERFACE | ||
94 | ! ---------------------------------------------------------------- | ||
95 | |||
96 | ! ----------------------------------------------------------------- | ||
97 | NAMELIST/NAEAER/& | ||
98 | & LEPAERO , LAERCLIMG, LAERCLIMZ, LAERCLIST, LAERDRYDP, LAEREXTR , & | ||
99 | & LAERGBUD , LAERNGAT , LAERPRNT , LAERSCAV , LAERSEDIM, LAERSURF , & | ||
100 | & LAER6SDIA, & | ||
101 | & NTAER , NTYPAER , INDBG , NDDUST , & | ||
102 | & RLATVOL , RLONVOL , KSTPDBG | ||
103 | ! ----------------------------------------------------------------- | ||
104 | |||
105 | |||
106 | ! ---------------------------------------------------------------- | ||
107 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SU_AERW',0,ZHOOK_HANDLE) |
108 | |||
109 | !* 1. DEFAULT VALUES OF PARAMETERS | ||
110 | ! ---------------------------- | ||
111 | |||
112 | 1 | print *,'DANS SU_AERW' | |
113 | 1 | NBINAER(:) = (/ 3, 3, 2, 2, 1, 1, 1, 1, 1 /) | |
114 | |||
115 | 1 | NMAXTAER=9 | |
116 | 1 | NTYPAER(:) = 0 | |
117 | 1 | JKBIN(:) = 0 | |
118 | 1 | JKTYP(:) = 0 | |
119 | |||
120 | 1 | LEPAERO=.FALSE. | |
121 | 1 | LAERCLIMG=.FALSE. | |
122 | 1 | LAERCLIMZ=.FALSE. | |
123 | 1 | LAERCLIST=.FALSE. | |
124 | 1 | LAERDRYDP=.FALSE. | |
125 | 1 | LAEREXTR=.FALSE. | |
126 | 1 | LAERGBUD=.FALSE. | |
127 | 1 | LAERNGAT=.FALSE. | |
128 | 1 | LAERPRNT=.FALSE. | |
129 | 1 | LAERSCAV=.FALSE. | |
130 | 1 | LAERSEDIM=.FALSE. | |
131 | 1 | LAERSURF=.FALSE. | |
132 | 1 | LAER6SDIA=.FALSE. | |
133 | 1 | INDBG=1 | |
134 | 1 | NTAER =0 | |
135 | 1 | NDDUST =2 | |
136 | |||
137 | ! the 9 types and assumed number of bins are: | ||
138 | ! NTYPAER bins type | ||
139 | ! 1 1- 3 sea-salt 0.03 - 0.5 - 5 - 20 microns | ||
140 | ! 2 4- 6 dust 0.03 - 0.5 - 0.9 - 20 microns | ||
141 | ! 3 7- 8 POM hydrophilic, hydrophobic | ||
142 | ! 4 9-10 BC hydrophilic, hydrophobic | ||
143 | ! 5 11 sulfate | ||
144 | ! 6 12 fly ash | ||
145 | ! 7 13 pseudo-prognostic stratospheric aerosols | ||
146 | ! 8 14 pseudo-prognostic volcanic aerosols | ||
147 | ! 9 15 prognostic stratospheric aerosols | ||
148 | |||
149 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | DO JAER=1,NMAXTAER |
150 | 10 | NTYPAER(JAER)=0 | |
151 | ENDDO | ||
152 | |||
153 | 1 | RLATVOL=-999._JPRB | |
154 | 1 | RLONVOL=-999._JPRB | |
155 | 1 | RGELAV =-999._JPRB | |
156 | 1 | RGEMUV =-999._JPRB | |
157 | 1 | RDGLAV = 999._JPRB | |
158 | 1 | RDGMUV = 999._JPRB | |
159 | 1 | RCLONV =-999._JPRB | |
160 | 1 | RSLONV =-999._JPRB | |
161 | 1 | RDCLONV= 999._JPRB | |
162 | 1 | RDSLONV= 999._JPRB | |
163 |
2/2✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
|
4 | DO J=1,3 |
164 | 4 | KSTPDBG(J)=-999 | |
165 | ENDDO | ||
166 | |||
167 | 1 | REPSCAER=1.E-15_JPRB | |
168 | |||
169 | ! ------------------------------------------------------------------ | ||
170 | |||
171 | !* 2. READ VALUES OF PROGNOSTIC AEROSOL CONFIGURATION | ||
172 | ! ----------------------------------------------- | ||
173 | ! Ce qui concerne NAEAER commente par MPL le 15.04.09 | ||
174 | !IF(NAERO > 0) THEN | ||
175 | ! CALL POSNAM(NULNAM,'NAEAER') | ||
176 | ! READ (NULNAM,NAEAER) | ||
177 | !ENDIF | ||
178 | |||
179 | IF (.NOT.LE4ALB) THEN | ||
180 | NDDUST=2 | ||
181 | ENDIF | ||
182 | ! ------------------------------------------------------------------ | ||
183 | |||
184 | !* 3. INITIALIZE PROGNOSTIC AEROSOL PHYSICAL AND OPTICAL PARAMETERS | ||
185 | ! ------------------------------------------------------------- | ||
186 | |||
187 | 1 | CALL SU_AERP | |
188 | 1 | print *,'SU_AERW: apres SU_AERP' | |
189 | 1 | CALL SU_AEROP | |
190 | 1 | print *,'SU_AERW: apres SU_AEROP' | |
191 | |||
192 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (LEPAERO) THEN |
193 | |||
194 | ! define a composite index for each bin of each different aerosol type to be used | ||
195 | ! in source, sedimentation and deposition routines | ||
196 | |||
197 | ICAER=0 | ||
198 | ✗ | DO JAER=1,NMAXTAER | |
199 | ✗ | IF (NTYPAER(JAER) /= 0) THEN | |
200 | ✗ | NTAER=NTAER+1 | |
201 | ITAER=NTYPAER(JAER) | ||
202 | ✗ | DO IAER=1,ITAER | |
203 | ✗ | ICAER=ICAER+1 | |
204 | ✗ | NINDAER(ICAER)=JAER*10+IAER | |
205 | ✗ | JKTYP(ICAER)=JAER | |
206 | ✗ | JKBIN(ICAER)=IAER | |
207 | ENDDO | ||
208 | ENDIF | ||
209 | ENDDO | ||
210 | |||
211 | !-- if volcanic aerosols, define the model coordinates | ||
212 | |||
213 | ✗ | IF (NTYPAER(9) /= 0) THEN | |
214 | ✗ | RGEMUV=(RLATVOL+90._JPRB)*RPI/180._JPRB | |
215 | ✗ | RGELAV=RLONVOL*RPI/180._JPRB | |
216 | ✗ | RCLONV=COS(RGELAV) | |
217 | ✗ | RSLONV=SIN(RGELAV) | |
218 | ✗ | DO J=1,NGPTOT-1 | |
219 | IF (RGELAV > GELAM(J) .AND. RGELAV <= GELAM(J+1) .AND. & | ||
220 | ✗ | & RGEMUV < RMU(JL) .AND. RGEMUV >= RMU(JL+1) ) THEN | |
221 | ✗ | RDGMUV=ABS( RMU(J+1) - RMU(J)) | |
222 | ✗ | RDGLAV=ABS( GELAM(J+1)-GELAM(J) ) | |
223 | ✗ | RDSLONV=ABS( SIN(GELAM(JL+1))-SIN(GELAM(JL)) ) | |
224 | ✗ | RDCLONV=ABS( COS(GELAM(JL+1))-COS(GELAM(JL)) ) | |
225 | ENDIF | ||
226 | ENDDO | ||
227 | ENDIF | ||
228 | |||
229 | ! ---------------------------------------------------------------- | ||
230 | |||
231 | !* 4. PRINT FINAL VALUES. | ||
232 | ! ------------------- | ||
233 | |||
234 | WRITE(UNIT=NULOUT,FMT='('' LEPAERO = '',L5 & | ||
235 | & ,'' NTAER = '',I2 ,'' NDDUST = '',I1,/& | ||
236 | & ,'' NTYPAER = '',9I3,/ & | ||
237 | & ,'' NBINAER = '',9I3,/ & | ||
238 | & ,'' JKTYP = '',15I3,/& | ||
239 | & ,'' JKBIN = '',15I3 & | ||
240 | & )')& | ||
241 | ✗ | & LEPAERO,NTAER,(NTYPAER(JAER),JAER=1,9),(NBINAER(JAER),JAER=1,9), & | |
242 | ✗ | & (JKTYP(JAER),JAER=1,15),(JKBIN(JAER),JAER=1,15) | |
243 | WRITE(UNIT=NULOUT,FMT='('' LAERGBUD = '',L3 & | ||
244 | & ,'' LAERNGAT = '',L3 & | ||
245 | & ,'' LAERDRYDP= '',L3 & | ||
246 | & ,'' LAERSEDIM= '',L3 & | ||
247 | & ,'' LAERSCAV = '',L3 & | ||
248 | & ,'' LAER6SDIA= '',L3 & | ||
249 | & ,'' LAERCLIMZ= '',L3 & | ||
250 | & ,'' LAERCLIMG= '',L3 & | ||
251 | & ,'' LAERCLIST= '',L3 & | ||
252 | & )')& | ||
253 | ✗ | & LAERGBUD,LAERNGAT, LAERDRYDP,LAERSEDIM,LAERSCAV,LAER6SDIA,LAERCLIMZ,LAERCLIMG,LAERCLIST | |
254 | ✗ | WRITE(UNIT=NULOUT,FMT='('' RSSFLX= '',10E10.3)') RSSFLX | |
255 | ✗ | IF (NTYPAER(9) /= 0) THEN | |
256 | WRITE(UNIT=NULOUT,FMT='('' RLATVOL= '',F5.2 & | ||
257 | & ,'' RLONVOL= '',F6.2,'' RGEMUV= '',F6.4,'' RGELAV= '',F6.4 & | ||
258 | & ,'' RCLONV = '',F6.4,'' RSLONV= '',F6.4,'' RDGMUV= '',F6.4 & | ||
259 | & ,'' RDGLAV = '',F6.4,'' RDCLONV= '',F6.4,'' RDSLONV= '',F6.4 & | ||
260 | & )')& | ||
261 | ✗ | & RLATVOL,RLONVOL,RGEMUV,RGELAV,RCLONV,RSLONV,RDGMUV,RDGLAV,RDCLONV,RDSLONV | |
262 | ENDIF | ||
263 | ENDIF | ||
264 | |||
265 | ! ---------------------------------------------------------------- | ||
266 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SU_AERW',1,ZHOOK_HANDLE) |
267 | 1 | END SUBROUTINE SU_AERW | |
268 | |||
269 | |||
270 | |||
271 | |||
272 | |||
273 | |||
274 | |||
275 | |||
276 | |||
277 | |||
278 | |||
279 | |||
280 | |||
281 | |||
282 | |||
283 | |||
284 | |||
285 | |||
286 | |||
287 | |||
288 | |||
289 | |||
290 | |||
291 | |||
292 | |||
293 | |||
294 | |||
295 | |||
296 | |||
297 | |||
298 | |||
299 | |||
300 | |||
301 | |||
302 | |||
303 | |||
304 |