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 | #include "posnam.intfb.h" |
---|
79 | |
---|
80 | #include "su_aerp.intfb.h" |
---|
81 | #include "su_aerop.intfb.h" |
---|
82 | ! ---------------------------------------------------------------- |
---|
83 | |
---|
84 | #include "naeaer.h" |
---|
85 | |
---|
86 | ! ---------------------------------------------------------------- |
---|
87 | IF (LHOOK) CALL DR_HOOK('SU_AERW',0,ZHOOK_HANDLE) |
---|
88 | |
---|
89 | !* 1. DEFAULT VALUES OF PARAMETERS |
---|
90 | ! ---------------------------- |
---|
91 | |
---|
92 | print *,'DANS SU_AERW' |
---|
93 | NBINAER(:) = (/ 3, 3, 2, 2, 1, 1, 1, 1, 1 /) |
---|
94 | |
---|
95 | NMAXTAER=9 |
---|
96 | NTYPAER(:) = 0 |
---|
97 | JKBIN(:) = 0 |
---|
98 | JKTYP(:) = 0 |
---|
99 | |
---|
100 | LEPAERO=.FALSE. |
---|
101 | LAERCLIMG=.FALSE. |
---|
102 | LAERCLIMZ=.FALSE. |
---|
103 | LAERCLIST=.FALSE. |
---|
104 | LAERDRYDP=.FALSE. |
---|
105 | LAEREXTR=.FALSE. |
---|
106 | LAERGBUD=.FALSE. |
---|
107 | LAERNGAT=.FALSE. |
---|
108 | LAERPRNT=.FALSE. |
---|
109 | LAERSCAV=.FALSE. |
---|
110 | LAERSEDIM=.FALSE. |
---|
111 | LAERSURF=.FALSE. |
---|
112 | LAER6SDIA=.FALSE. |
---|
113 | INDBG=1 |
---|
114 | NTAER =0 |
---|
115 | NDDUST =2 |
---|
116 | |
---|
117 | ! the 9 types and assumed number of bins are: |
---|
118 | ! NTYPAER bins type |
---|
119 | ! 1 1- 3 sea-salt 0.03 - 0.5 - 5 - 20 microns |
---|
120 | ! 2 4- 6 dust 0.03 - 0.5 - 0.9 - 20 microns |
---|
121 | ! 3 7- 8 POM hydrophilic, hydrophobic |
---|
122 | ! 4 9-10 BC hydrophilic, hydrophobic |
---|
123 | ! 5 11 sulfate |
---|
124 | ! 6 12 fly ash |
---|
125 | ! 7 13 pseudo-prognostic stratospheric aerosols |
---|
126 | ! 8 14 pseudo-prognostic volcanic aerosols |
---|
127 | ! 9 15 prognostic stratospheric aerosols |
---|
128 | |
---|
129 | DO JAER=1,NMAXTAER |
---|
130 | NTYPAER(JAER)=0 |
---|
131 | ENDDO |
---|
132 | |
---|
133 | RLATVOL=-999._JPRB |
---|
134 | RLONVOL=-999._JPRB |
---|
135 | RGELAV =-999._JPRB |
---|
136 | RGEMUV =-999._JPRB |
---|
137 | RDGLAV = 999._JPRB |
---|
138 | RDGMUV = 999._JPRB |
---|
139 | RCLONV =-999._JPRB |
---|
140 | RSLONV =-999._JPRB |
---|
141 | RDCLONV= 999._JPRB |
---|
142 | RDSLONV= 999._JPRB |
---|
143 | DO J=1,3 |
---|
144 | KSTPDBG(J)=-999 |
---|
145 | ENDDO |
---|
146 | |
---|
147 | REPSCAER=1.E-15_JPRB |
---|
148 | |
---|
149 | ! ------------------------------------------------------------------ |
---|
150 | |
---|
151 | !* 2. READ VALUES OF PROGNOSTIC AEROSOL CONFIGURATION |
---|
152 | ! ----------------------------------------------- |
---|
153 | ! Ce qui concerne NAEAER commente par MPL le 15.04.09 |
---|
154 | !IF(NAERO > 0) THEN |
---|
155 | ! CALL POSNAM(NULNAM,'NAEAER') |
---|
156 | ! READ (NULNAM,NAEAER) |
---|
157 | !ENDIF |
---|
158 | |
---|
159 | IF (.NOT.LE4ALB) THEN |
---|
160 | NDDUST=2 |
---|
161 | ENDIF |
---|
162 | ! ------------------------------------------------------------------ |
---|
163 | |
---|
164 | !* 3. INITIALIZE PROGNOSTIC AEROSOL PHYSICAL AND OPTICAL PARAMETERS |
---|
165 | ! ------------------------------------------------------------- |
---|
166 | |
---|
167 | CALL SU_AERP |
---|
168 | print *,'SU_AERW: apres SU_AERP' |
---|
169 | CALL SU_AEROP |
---|
170 | print *,'SU_AERW: apres SU_AEROP' |
---|
171 | |
---|
172 | IF (LEPAERO) THEN |
---|
173 | |
---|
174 | ! define a composite index for each bin of each different aerosol type to be used |
---|
175 | ! in source, sedimentation and deposition routines |
---|
176 | |
---|
177 | ICAER=0 |
---|
178 | DO JAER=1,NMAXTAER |
---|
179 | IF (NTYPAER(JAER) /= 0) THEN |
---|
180 | NTAER=NTAER+1 |
---|
181 | ITAER=NTYPAER(JAER) |
---|
182 | DO IAER=1,ITAER |
---|
183 | ICAER=ICAER+1 |
---|
184 | NINDAER(ICAER)=JAER*10+IAER |
---|
185 | JKTYP(ICAER)=JAER |
---|
186 | JKBIN(ICAER)=IAER |
---|
187 | ENDDO |
---|
188 | ENDIF |
---|
189 | ENDDO |
---|
190 | |
---|
191 | !-- if volcanic aerosols, define the model coordinates |
---|
192 | |
---|
193 | IF (NTYPAER(9) /= 0) THEN |
---|
194 | RGEMUV=(RLATVOL+90._JPRB)*RPI/180._JPRB |
---|
195 | RGELAV=RLONVOL*RPI/180._JPRB |
---|
196 | RCLONV=COS(RGELAV) |
---|
197 | RSLONV=SIN(RGELAV) |
---|
198 | DO J=1,NGPTOT-1 |
---|
199 | IF (RGELAV > GELAM(J) .AND. RGELAV <= GELAM(J+1) .AND. & |
---|
200 | & RGEMUV < RMU(JL) .AND. RGEMUV >= RMU(JL+1) ) THEN |
---|
201 | RDGMUV=ABS( RMU(J+1) - RMU(J)) |
---|
202 | RDGLAV=ABS( GELAM(J+1)-GELAM(J) ) |
---|
203 | RDSLONV=ABS( SIN(GELAM(JL+1))-SIN(GELAM(JL)) ) |
---|
204 | RDCLONV=ABS( COS(GELAM(JL+1))-COS(GELAM(JL)) ) |
---|
205 | ENDIF |
---|
206 | ENDDO |
---|
207 | ENDIF |
---|
208 | |
---|
209 | ! ---------------------------------------------------------------- |
---|
210 | |
---|
211 | !* 4. PRINT FINAL VALUES. |
---|
212 | ! ------------------- |
---|
213 | |
---|
214 | WRITE(UNIT=NULOUT,FMT='('' LEPAERO = '',L5 & |
---|
215 | & ,'' NTAER = '',I2 ,'' NDDUST = '',I1,/& |
---|
216 | & ,'' NTYPAER = '',9I3,/ & |
---|
217 | & ,'' NBINAER = '',9I3,/ & |
---|
218 | & ,'' JKTYP = '',15I3,/& |
---|
219 | & ,'' JKBIN = '',15I3 & |
---|
220 | & )')& |
---|
221 | & LEPAERO,NTAER,(NTYPAER(JAER),JAER=1,9),(NBINAER(JAER),JAER=1,9), & |
---|
222 | & (JKTYP(JAER),JAER=1,15),(JKBIN(JAER),JAER=1,15) |
---|
223 | WRITE(UNIT=NULOUT,FMT='('' LAERGBUD = '',L3 & |
---|
224 | & ,'' LAERNGAT = '',L3 & |
---|
225 | & ,'' LAERDRYDP= '',L3 & |
---|
226 | & ,'' LAERSEDIM= '',L3 & |
---|
227 | & ,'' LAERSCAV = '',L3 & |
---|
228 | & ,'' LAER6SDIA= '',L3 & |
---|
229 | & ,'' LAERCLIMZ= '',L3 & |
---|
230 | & ,'' LAERCLIMG= '',L3 & |
---|
231 | & ,'' LAERCLIST= '',L3 & |
---|
232 | & )')& |
---|
233 | & LAERGBUD,LAERNGAT, LAERDRYDP,LAERSEDIM,LAERSCAV,LAER6SDIA,LAERCLIMZ,LAERCLIMG,LAERCLIST |
---|
234 | WRITE(UNIT=NULOUT,FMT='('' RSSFLX= '',10E10.3)') RSSFLX |
---|
235 | IF (NTYPAER(9) /= 0) THEN |
---|
236 | WRITE(UNIT=NULOUT,FMT='('' RLATVOL= '',F5.2 & |
---|
237 | & ,'' RLONVOL= '',F6.2,'' RGEMUV= '',F6.4,'' RGELAV= '',F6.4 & |
---|
238 | & ,'' RCLONV = '',F6.4,'' RSLONV= '',F6.4,'' RDGMUV= '',F6.4 & |
---|
239 | & ,'' RDGLAV = '',F6.4,'' RDCLONV= '',F6.4,'' RDSLONV= '',F6.4 & |
---|
240 | & )')& |
---|
241 | & RLATVOL,RLONVOL,RGEMUV,RGELAV,RCLONV,RSLONV,RDGMUV,RDGLAV,RDCLONV,RDSLONV |
---|
242 | ENDIF |
---|
243 | ENDIF |
---|
244 | |
---|
245 | ! ---------------------------------------------------------------- |
---|
246 | IF (LHOOK) CALL DR_HOOK('SU_AERW',1,ZHOOK_HANDLE) |
---|
247 | END SUBROUTINE SU_AERW |
---|
248 | |
---|
249 | |
---|
250 | |
---|
251 | |
---|
252 | |
---|
253 | |
---|
254 | |
---|
255 | |
---|
256 | |
---|
257 | |
---|
258 | |
---|
259 | |
---|
260 | |
---|
261 | |
---|
262 | |
---|
263 | |
---|
264 | |
---|
265 | |
---|
266 | |
---|
267 | |
---|
268 | |
---|
269 | |
---|
270 | |
---|
271 | |
---|
272 | |
---|
273 | |
---|
274 | |
---|
275 | |
---|
276 | |
---|
277 | |
---|
278 | |
---|
279 | |
---|
280 | |
---|
281 | |
---|
282 | |
---|
283 | |
---|