chemics_init.F
References to this file elsewhere.
1 !WRF:MODEL_LAYER:INITIALIZATION
2 !
3 subroutine chem_init (id,chem,scalar,dt,bioemdt,photdt,chemdt,stepbioe, &
4 stepphot,stepchem,stepfirepl,plumerisefire_frq,z_at_w,&
5 g,aerwrf,config_flags,alt,t,p,CONVFAC, &
6 gd_cloud, gd_cloud2, &
7 gd_cloud_b, gd_cloud2_b, &
8 tauaer1,tauaer2,tauaer3,tauaer4, &
9 gaer1,gaer2,gaer3,gaer4, &
10 waer1,waer2,waer3,waer4, &
11 pm2_5_dry,pm2_5_water,pm2_5_dry_ec,chem_in_opt, &
12 ids,ide, jds,jde, kds,kde, &
13 ims,ime, jms,jme, kms,kme, &
14 its,ite, jts,jte, kts,kte )
15
16 ! IMPLICIT NONE
17 USE module_domain
18 USE module_configure
19 USE module_state_description
20 USE module_phot_mad
21 USE module_aerosols_sorgam
22 USE module_dep_simple
23 USE module_cbmz_initmixrats, only: cbmz_init_wrf_mixrats
24 USE module_mosaic_driver, only: init_data_mosaic_asect
25 USE module_mosaic_initmixrats, only: mosaic_init_wrf_mixrats
26 USE module_input_chem_data, only: get_last_gas, gasprofile_init_pnnl, setup_gasprofile_maps
27 USE module_mixactivate_wrappers, only: mosaic_mixactivate_init
28
29 real , intent(in) :: bioemdt,photdt,chemdt,plumerisefire_frq,dt
30 INTEGER, INTENT(IN ) :: chem_in_opt
31 INTEGER, INTENT(IN ) :: id, &
32 ids,ide, jds,jde, kds,kde, &
33 ims,ime, jms,jme, kms,kme, &
34 its,ite, jts,jte, kts,kte
35 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , &
36 INTENT(INOUT ) :: &
37 pm2_5_dry,pm2_5_water,pm2_5_dry_ec, &
38 tauaer1,tauaer2,tauaer3,tauaer4, &
39 gd_cloud, gd_cloud2, &
40 gd_cloud_b, gd_cloud2_b, &
41 gaer1,gaer2,gaer3,gaer4, &
42 waer1,waer2,waer3,waer4
43 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , &
44 INTENT(IN ) :: &
45 z_at_w,t,p,alt,convfac
46 REAL, DIMENSION( ims:ime , kms:kme , jms:jme, num_chem ) , &
47 INTENT(INOUT ) :: &
48 chem
49 REAL, DIMENSION( ims:ime , kms:kme , jms:jme, num_scalar ) , &
50 INTENT(INOUT ) :: &
51 scalar
52 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , &
53 INTENT(INOUT ) :: &
54 aerwrf
55 real, INTENT (IN) :: g
56 integer, intent(out) :: stepbioe,stepphot,stepchem,stepfirepl
57 TYPE (grid_config_rec_type) , INTENT (in) :: config_flags
58 !
59 ! local stuff
60 !
61 integer :: i,j,k,l,numgas
62
63 #ifdef CHEM_DBG_I
64 call print_chem_species_index( config_flags%chem_opt )
65 #endif
66
67 call wrf_message("*********************************************************************")
68 call wrf_message("* PROGRAM: WRF/CHEM VERSION 2.2 *")
69 call wrf_message("* *")
70 call wrf_message("* PLEASE REPORT ANY BUGS TO WRF/CHEM HELP at *")
71 call wrf_message("* *")
72 call wrf_message("* wrfchemhelp.gsd@noaa.gov *")
73 call wrf_message("* *")
74 call wrf_message("*********************************************************************")
75
76 numgas = get_last_gas(config_flags%chem_opt)
77
78 if ( config_flags%chem_opt == 9 .or. config_flags%chem_opt == 10 ) then
79 call wrf_message("*********************************************************************")
80 call wrf_message("* WARNING: THE COMBINATION OF progn=1 AND chem_opt=9 or 10 IS *")
81 call wrf_message("* CONSIDERED BETA CODE THAT IS STILL IN DEVELOPMENT. THE *")
82 call wrf_message("* RESULTS APPEAR REASONABLE, BUT SMALL DIFFERENCES WILL *")
83 call wrf_message("* ARRISE WHEN CHANGING THE NUMBER OF PROCESSORS. ALSO, *")
84 call wrf_message("* OPTION ASSOCIATED WITH CLOUD-AEROSOL INTERACTIONS AND *")
85 call wrf_message("* AQUEOUS CHEMISTRY USING MOSAIC HAVE NOT BEEN TESTED ON A *")
86 call wrf_message("* WIDE RANGE OF COMPUTER ARCHITECTURES. USERS THAT CHOOSE *")
87 call wrf_message("* THSE OPTIONS ARE ASKED TO REPORT ANY BUGS THAT APPEAR TO *")
88 call wrf_message("* BE ASSOCIATED WITH CLOUD-AEROSOL INTERACTION MODULES TO *")
89 call wrf_message("* jerome.fast@pnl.gov and wrfchemhelp.gsd@noaa.gov *")
90 call wrf_message("*********************************************************************")
91 endif
92 #if ( NMM_CORE == 1 )
93 call wrf_message("*********************************************************************")
94 call wrf_message("* WARNING: THE USE OF THE NMM WITH CHEMISTRY IS *")
95 call wrf_message("* CONSIDERED BETA CODE THAT IS STILL IN DEVELOPMENT. *")
96 call wrf_message("* PLEASE REPORT ANY BUGS TO wrfchemhelp.gsd@noaa.gov *")
97 call wrf_message("*********************************************************************")
98 #endif
99
100 IF ( config_flags%chem_opt == 0 .AND. config_flags%aer_ra_feedback .NE. 0 ) THEN
101 ! config_flags%aer_ra_feedback = 0
102 call wrf_error_fatal(" ERROR: CHEM_INIT: FOR CHEM_OPT = 0, AER_RA_FEEDBACK MUST = 0 ")
103 ENDIF
104
105 if( .NOT. config_flags%restart ) then
106 do j=jts,jte
107 do k=kts,kte
108 do i=its,ite
109 tauaer1(i,k,j) = 0.
110 tauaer2(i,k,j) = 0.
111 tauaer3(i,k,j) = 0.
112 tauaer4(i,k,j) = 0.
113 gaer1(i,k,j) = 0.
114 gaer2(i,k,j) = 0.
115 gaer3(i,k,j) = 0.
116 gaer4(i,k,j) = 0.
117 waer1(i,k,j) = 0.
118 waer2(i,k,j) = 0.
119 waer3(i,k,j) = 0.
120 waer4(i,k,j) = 0.
121 end do
122 end do
123 end do
124 end if
125 do j=jts,jte
126 do k=kts,kte
127 do i=its,ite
128 gd_cloud(i,k,j) = 0.
129 gd_cloud2(i,k,j) = 0.
130 gd_cloud_b(i,k,j) = 0.
131 gd_cloud2_b(i,k,j) = 0.
132 end do
133 end do
134 end do
135
136 ! RETURN IF CHEMISTRY IS NOT RUNNING
137 IF ( config_flags%chem_opt == 0 ) RETURN
138
139 stepbioe=nint(bioemdt*60./dt)
140 stepphot=nint(photdt*60./dt)
141 stepchem=nint(chemdt*60./dt)
142 stepfirepl=nint(plumerisefire_frq*60./dt)
143 stepbioe=max(stepbioe,1)
144 stepphot=max(stepphot,1)
145 stepchem=max(stepchem,1)
146 stepfirepl=max(stepfirepl,1)
147 call wrf_debug( 15, 'in chem_init' )
148 ! print *,'stepbioe,stepphot,stepchem,stepfirepl',stepbioe,stepphot,stepchem,stepfirepl
149 !
150 ! Setup the cross reference mappings between the default profiles and
151 ! the gas mechanism species (wig, 2-May-2007)
152 !
153 call setup_gasprofile_maps(config_flags%chem_opt,numgas)
154 !
155 ! An alternative ozone profile option
156 !
157 if ( (config_flags%gas_bc_opt == GAS_BC_PNNL) .or. &
158 (config_flags%gas_ic_opt == GAS_IC_PNNL) ) then
159 call gasprofile_init_pnnl
160 end if
161 !
162 ! we are doing initialization here, first photolysis
163 !
164 phot_select: SELECT CASE(config_flags%phot_opt)
165 CASE (PHOTMAD)
166 CALL wrf_debug(00,'call madronich phot initialization')
167 call photmad_init(z_at_w,aerwrf,g, &
168 ids,ide, jds,jde, kds,kde, &
169 ims,ime, jms,jme, kms,kme, &
170 its,ite, jts,jte, kts,kte )
171 END SELECT phot_select
172 !
173 ! initialization for aerosols
174 !
175
176 ! Technically, we are doing a no-no here. The array is_aerosol is being
177 ! "re-allocated" and overwritten by each domain. Therefore, if different
178 ! chemistry settings are used for each nest level, we will get errors. I
179 ! have a feeling that this is not the only place that will have a problem
180 ! though so I am not worrying about it for now. The dilemma is that we
181 ! cannot declare and allocate is_aerosol via the registry because the
182 ! number of aerosols is not known at compile time. I have not figured out
183 ! a way to allocate a separate array for each nest outside of the
184 ! regiistry. For now, we will do a simple check to trap a change in the
185 ! desired size of num_chem and assume that if the size is the same, the
186 ! species will be too. wig, 24-Oct-2005
187 if( .not.allocated(is_aerosol) ) then
188 allocate (is_aerosol(num_chem))
189 else
190 if( size(is_aerosol) /= num_chem ) &
191 call wrf_error_fatal("The number of chemistry species has changed between nests. Are you trying to mix chem_opt settings between nests? Shame on you!")
192 end if
193
194 kpp_select: SELECT CASE(config_flags%chem_opt)
195 CASE (RACM_KPP,RACMPM_KPP,RACMSORG_KPP, RACM_MIM_KPP)
196 do j=jts,jte
197 do k=kts,kte
198 do i=its,ite
199 chem(i,k,j,p_co2)=370.
200 chem(i,k,j,p_ch4)=1.7
201 chem(i,k,j,p_ete)=chem(i,k,j,p_olt)
202 chem(i,k,j,p_ete)=epsilc
203 chem(i,k,j,p_udd)=chem(i,k,j,p_ete)
204 chem(i,k,j,p_hket)=chem(i,k,j,p_ete)
205 chem(i,k,j,p_api)=chem(i,k,j,p_ete)
206 chem(i,k,j,p_lim)=chem(i,k,j,p_ete)
207 chem(i,k,j,p_dien)=chem(i,k,j,p_ete)
208 chem(i,k,j,p_macr)=chem(i,k,j,p_ete)
209 enddo
210 enddo
211 enddo
212 END SELECT kpp_select
213 aer_select: SELECT CASE(config_flags%chem_opt)
214 CASE (RADM2SORG, RADM2SORG_AQ, RACMSORG_AQ, RADM2SORG_KPP, RACMSORG,RACMSORG_KPP)
215 CALL wrf_debug(15,'call MADE/SORGAM aerosols initialization')
216
217 call aerosols_sorgam_init(chem,convfac,z_at_w, &
218 pm2_5_dry,pm2_5_water,pm2_5_dry_ec, &
219 chem_in_opt,config_flags%aer_ic_opt,is_aerosol, &
220 ids,ide, jds,jde, kds,kde, &
221 ims,ime, jms,jme, kms,kme, &
222 its,ite, jts,jte, kts,kte )
223 !...Convert aerosols to mixing ratio
224 if(config_flags%chem_in_opt == 0 )then
225 do l=p_so4aj,num_chem
226 do j=jts,jte
227 do k=kts,kte
228 kk = min(k,kte-1)
229 do i=its,ite
230 chem(i,k,j,l)=chem(i,kk,j,l)*alt(i,kk,j)
231 enddo
232 enddo
233 enddo
234 enddo
235 endif
236 chem=max(chem,epsilc)
237
238
239 CASE (CBMZ_MOSAIC_4BIN, CBMZ_MOSAIC_8BIN, CBMZ_MOSAIC_4BIN_AQ, CBMZ_MOSAIC_8BIN_AQ)
240 call wrf_debug(15,'call MOSAIC aerosols initialization')
241 call init_data_mosaic_asect(is_aerosol)
242 if(config_flags%chem_in_opt == 0 )then
243 if( .NOT. config_flags%restart ) &
244 call mosaic_init_wrf_mixrats( &
245 0, config_flags, &
246 chem, alt, z_at_w, g, &
247 ids,ide, jds,jde, kds,kde, &
248 ims,ime, jms,jme, kms,kme, &
249 its,ite, jts,jte, kts,kte )
250 endif
251
252 END SELECT aer_select
253
254 aer_sanity_check : SELECT CASE(config_flags%chem_opt)
255 CASE (RADM2SORG_AQ, RACMSORG_AQ, CBMZ_MOSAIC_4BIN_AQ, CBMZ_MOSAIC_8BIN_AQ)
256 if( config_flags%progn == 0 ) &
257 call wrf_error_fatal("ERROR: When using aqueous chemistry, progn must be set to 1.")
258 END SELECT aer_sanity_check
259
260 do nv=1,num_chem
261 do j=jts,jte
262 do i=its,ite
263 chem(i,kde,j,nv)=chem(i,kde-1,j,nv)
264 enddo
265 enddo
266 enddo
267
268 !
269 ! initialization for wesely (gas) dry deposition
270 !
271 drydep_select: SELECT CASE(config_flags%drydep_opt)
272 CASE (WESELY)
273 CALL wrf_debug(15,'initializing dry dep (wesely)')
274 call dep_init(id,config_flags,numgas)
275
276 END SELECT drydep_select
277 !
278 ! initialization for cbmz gas-phase chemistry
279 !
280 cbmz_select: SELECT CASE(config_flags%chem_opt)
281 CASE (CBMZ, CBMZ_BB, CBMZ_MOSAIC_4BIN, CBMZ_MOSAIC_8BIN, CBMZ_MOSAIC_4BIN_AQ, CBMZ_MOSAIC_8BIN_AQ)
282 CALL wrf_debug(15,'initializing cbmz gas-phase chemistry')
283 if(config_flags%chem_in_opt == 0 )then
284 if( .NOT. config_flags%restart ) &
285 call cbmz_init_wrf_mixrats(config_flags, &
286 z_at_w, g, &
287 chem, numgas, &
288 ids,ide, jds,jde, kds,kde, &
289 ims,ime, jms,jme, kms,kme, &
290 its,ite, jts,jte, kts,kte )
291 endif
292 END SELECT cbmz_select
293 !
294 ! Initialize the cloud droplet number and mass
295 !
296 if( (.not.config_flags%restart) .and. (config_flags%progn > 0) ) then
297 call mosaic_mixactivate_init( &
298 config_flags, chem, scalar, &
299 ims,ime, jms,jme, kms,kme, &
300 its,ite, jts,jte, kts,kte )
301
302 end if
303
304 END SUBROUTINE chem_init
305
306 !-----------------------------------------------------------------------
307 #ifdef CHEM_DBG_I
308 subroutine print_chem_species_index( chem_opt )
309 use module_state_description
310 implicit none
311
312 integer, intent(in) :: chem_opt
313
314 print*,'Index numbers for chemistry species:'
315 !
316 ! Gas species...
317 !
318 select case (chem_opt)
319 case (RADM2, RADM2SORG, RADM2SORG_AQ, RADM2_KPP, RADM2SORG_KPP)
320 print*,p_so2,"so2"
321 print*,p_sulf,"sulf"
322 print*,p_no2,"no2"
323 print*,p_no,"no"
324 print*,p_o3,"o3"
325 print*,p_hno3,"hno3"
326 print*,p_h2o2,"h2o2"
327 print*,p_ald,"ald"
328 print*,p_hcho,"hcho"
329 print*,p_op1,"op1"
330 print*,p_op2,"op2"
331 print*,p_paa,"paa"
332 print*,p_ora1,"ora1"
333 print*,p_ora2,"ora2"
334 print*,p_nh3,"nh3"
335 print*,p_n2o5,"n2o5"
336 print*,p_no3,"no3"
337 print*,p_pan,"pan"
338 print*,p_hc3,"hc3"
339 print*,p_hc5,"hc5"
340 print*,p_hc8,"hc8"
341 print*,p_eth,"eth"
342 print*,p_co,"co"
343 print*,p_ol2,"ol2"
344 print*,p_olt,"olt"
345 print*,p_oli,"oli"
346 print*,p_tol,"tol"
347 print*,p_xyl,"xyl"
348 print*,p_aco3,"aco3"
349 print*,p_tpan,"tpan"
350 print*,p_hono,"hono"
351 print*,p_hno4,"hno4"
352 print*,p_ket,"ket"
353 print*,p_gly,"gly"
354 print*,p_mgly,"mgly"
355 print*,p_dcb,"dcb"
356 print*,p_onit,"onit"
357 print*,p_csl,"csl"
358 print*,p_iso,"iso"
359 print*,p_ho,"ho"
360 print*,p_ho2,"ho2"
361 case (RACM, RACMSORG, RACMSORG_AQ, RACM_KPP, RACMPM_KPP, RACMSORG_KPP)
362 print*,p_so2,"so2"
363 print*,p_sulf,"sulf"
364 print*,p_no2,"no2"
365 print*,p_no,"no"
366 print*,p_o3,"o3"
367 print*,p_hno3,"hno3"
368 print*,p_h2o2,"h2o2"
369 print*,p_ald,"ald"
370 print*,p_hcho,"hcho"
371 print*,p_op1,"op1"
372 print*,p_op2,"op2"
373 print*,p_paa,"paa"
374 print*,p_ora1,"ora1"
375 print*,p_ora2,"ora2"
376 print*,p_nh3,"nh3"
377 print*,p_n2o5,"n2o5"
378 print*,p_no3,"no3"
379 print*,p_pan,"pan"
380 print*,p_hc3,"hc3"
381 print*,p_hc5,"hc5"
382 print*,p_hc8,"hc8"
383 print*,p_eth,"eth"
384 print*,p_co,"co"
385 print*,p_ete,"ete"
386 print*,p_olt,"olt"
387 print*,p_oli,"oli"
388 print*,p_tol,"tol"
389 print*,p_xyl,"xyl"
390 print*,p_aco3,"aco3"
391 print*,p_tpan,"tpan"
392 print*,p_hono,"hono"
393 print*,p_hno4,"hno4"
394 print*,p_ket,"ket"
395 print*,p_gly,"gly"
396 print*,p_mgly,"mgly"
397 print*,p_dcb,"dcb"
398 print*,p_onit,"onit"
399 print*,p_csl,"csl"
400 print*,p_iso,"iso"
401 print*,p_co2,"co2"
402 print*,p_ch4,"ch4"
403 print*,p_udd,"udd"
404 print*,p_hket,"hket"
405 print*,p_api,"api"
406 print*,p_lim,"lim"
407 print*,p_dien,"dien"
408 print*,p_macr,"macr"
409 print*,p_ho,"ho"
410 print*,p_ho2,"ho2"
411 case (CBMZ)
412 print*,p_so2,"so2"
413 print*,p_sulf,"sulf"
414 print*,p_no2,"no2"
415 print*,p_no,"no"
416 print*,p_o3,"o3"
417 print*,p_hno3,"hno3"
418 print*,p_h2o2,"h2o2"
419 print*,p_ald,"ald"
420 print*,p_hcho,"hcho"
421 print*,p_op1,"op1"
422 print*,p_op2,"op2"
423 print*,p_paa,"paa"
424 print*,p_ora1,"ora1"
425 print*,p_ora2,"ora2"
426 print*,p_nh3,"nh3"
427 print*,p_n2o5,"n2o5"
428 print*,p_no3,"no3"
429 print*,p_pan,"pan"
430 print*,p_hc3,"hc3"
431 print*,p_hc5,"hc5"
432 print*,p_hc8,"hc8"
433 print*,p_eth,"eth"
434 print*,p_co,"co"
435 print*,p_ol2,"ol2"
436 print*,p_olt,"olt"
437 print*,p_oli,"oli"
438 print*,p_tol,"tol"
439 print*,p_xyl,"xyl"
440 print*,p_aco3,"aco3"
441 print*,p_tpan,"tpan"
442 print*,p_hono,"hono"
443 print*,p_hno4,"hno4"
444 print*,p_ket,"ket"
445 print*,p_gly,"gly"
446 print*,p_mgly,"mgly"
447 print*,p_dcb,"dcb"
448 print*,p_onit,"onit"
449 print*,p_csl,"csl"
450 print*,p_iso,"iso"
451 print*,p_ho,"ho"
452 print*,p_ho2,"ho2"
453 print*,p_hcl,"hcl"
454 print*,p_ch3o2,"ch3o2"
455 print*,p_ethp,"ethp"
456 print*,p_ch3oh,"ch3oh"
457 print*,p_c2h5oh,"c2h5oh"
458 print*,p_par,"par"
459 print*,p_to2,"to2"
460 print*,p_cro,"cro"
461 print*,p_open,"open"
462 print*,p_op3,"op3"
463 print*,p_c2o3,"c2o3"
464 print*,p_ro2,"ro2"
465 print*,p_ano2,"ano2"
466 print*,p_nap,"nap"
467 print*,p_xo2,"xo2"
468 print*,p_xpar,"xpar"
469 print*,p_isoprd,"isoprd"
470 print*,p_isopp,"isopp"
471 print*,p_isopn,"isopn"
472 print*,p_isopo2,"isopo2"
473 print*,p_dms,"dms"
474 print*,p_msa,"msa"
475 print*,p_dmso,"dmso"
476 print*,p_dmso2,"dmso2"
477 print*,p_ch3so2h,"ch3so2h"
478 print*,p_ch3sch2oo,"ch3sch2oo"
479 print*,p_ch3so2,"ch3so2"
480 print*,p_ch3so3,"ch3so3"
481 print*,p_ch3so2oo,"ch3so2oo"
482 print*,p_ch3so2ch2oo,"ch3so2ch2oo"
483 print*,p_mtf,"mtf"
484 case (CBMZ_BB, CBMZ_MOSAIC_4BIN, CBMZ_MOSAIC_8BIN, CBMZ_MOSAIC_4BIN_AQ, CBMZ_MOSAIC_8BIN_AQ)
485 print*,p_so2,"so2"
486 print*,p_sulf,"sulf"
487 print*,p_no2,"no2"
488 print*,p_no,"no"
489 print*,p_o3,"o3"
490 print*,p_hno3,"hno3"
491 print*,p_h2o2,"h2o2"
492 print*,p_ald,"ald"
493 print*,p_hcho,"hcho"
494 print*,p_op1,"op1"
495 print*,p_op2,"op2"
496 print*,p_paa,"paa"
497 print*,p_ora1,"ora1"
498 print*,p_ora2,"ora2"
499 print*,p_nh3,"nh3"
500 print*,p_n2o5,"n2o5"
501 print*,p_no3,"no3"
502 print*,p_pan,"pan"
503 print*,p_hc3,"hc3"
504 print*,p_hc5,"hc5"
505 print*,p_hc8,"hc8"
506 print*,p_eth,"eth"
507 print*,p_co,"co"
508 print*,p_ol2,"ol2"
509 print*,p_olt,"olt"
510 print*,p_oli,"oli"
511 print*,p_tol,"tol"
512 print*,p_xyl,"xyl"
513 print*,p_aco3,"aco3"
514 print*,p_tpan,"tpan"
515 print*,p_hono,"hono"
516 print*,p_hno4,"hno4"
517 print*,p_ket,"ket"
518 print*,p_gly,"gly"
519 print*,p_mgly,"mgly"
520 print*,p_dcb,"dcb"
521 print*,p_onit,"onit"
522 print*,p_csl,"csl"
523 print*,p_iso,"iso"
524 print*,p_ho,"ho"
525 print*,p_ho2,"ho2"
526 print*,p_hcl,"hcl"
527 print*,p_ch3o2,"ch3o2"
528 print*,p_ethp,"ethp"
529 print*,p_ch3oh,"ch3oh"
530 print*,p_c2h5oh,"c2h5oh"
531 print*,p_par,"par"
532 print*,p_to2,"to2"
533 print*,p_cro,"cro"
534 print*,p_open,"open"
535 print*,p_op3,"op3"
536 print*,p_c2o3,"c2o3"
537 print*,p_ro2,"ro2"
538 print*,p_ano2,"ano2"
539 print*,p_nap,"nap"
540 print*,p_xo2,"xo2"
541 print*,p_xpar,"xpar"
542 print*,p_isoprd,"isoprd"
543 print*,p_isopp,"isopp"
544 print*,p_isopn,"isopn"
545 print*,p_isopo2,"isopo2"
546 end select
547 !
548 ! Aerosol species...
549 !
550 select case (chem_opt)
551 case (RADM2SORG, RADM2SORG_AQ, RADM2SORG_KPP, RACMSORG, RACMSORG_AQ, RACMSORG_KPP)
552 print*,p_so4aj,"so4aj"
553 print*,p_so4ai,"so4ai"
554 print*,p_nh4aj,"nh4aj"
555 print*,p_nh4ai,"nh4ai"
556 print*,p_no3aj,"no3aj"
557 print*,p_no3ai,"no3ai"
558 print*,p_orgaro1j,"orgaro1j"
559 print*,p_orgaro1i,"orgaro1i"
560 print*,p_orgaro2j,"orgaro2j"
561 print*,p_orgaro2i,"orgaro2i"
562 print*,p_orgalk1j,"orgalk1j"
563 print*,p_orgalk1i,"orgalk1i"
564 print*,p_orgole1j,"orgole1j"
565 print*,p_orgole1i,"orgole1i"
566 print*,p_orgba1j,"orgba1j"
567 print*,p_orgba1i,"orgba1i"
568 print*,p_orgba2j,"orgba2j"
569 print*,p_orgba2i,"orgba2i"
570 print*,p_orgba3j,"orgba3j"
571 print*,p_orgba3i,"orgba3i"
572 print*,p_orgba4j,"orgba4j"
573 print*,p_orgba4i,"orgba4i"
574 print*,p_orgpaj,"orgpaj"
575 print*,p_orgpai,"orgpai"
576 print*,p_ecj,"ecj"
577 print*,p_eci,"eci"
578 print*,p_p25j,"p25j"
579 print*,p_p25i,"p25i"
580 print*,p_antha,"antha"
581 print*,p_seas,"seas"
582 print*,p_soila,"soila"
583 print*,p_nu0,"nu0"
584 print*,p_ac0,"ac0"
585 print*,p_corn,"corn"
586 case (CBMZ_MOSAIC_4BIN)
587 print*,p_so4_a01,"so4_a01"
588 print*,p_no3_a01,"no3_a01"
589 print*,p_cl_a01,"cl_a01"
590 print*,p_nh4_a01,"nh4_a01"
591 print*,p_na_a01,"na_a01"
592 print*,p_oin_a01,"oin_a01"
593 print*,p_oc_a01,"oc_a01"
594 print*,p_bc_a01,"bc_a01"
595 print*,p_hysw_a01,"hysw_a01"
596 print*,p_water_a01,"water_a01"
597 print*,p_num_a01,"num_a01"
598 print*,p_so4_a02,"so4_a02"
599 print*,p_no3_a02,"no3_a02"
600 print*,p_cl_a02,"cl_a02"
601 print*,p_nh4_a02,"nh4_a02"
602 print*,p_na_a02,"na_a02"
603 print*,p_oin_a02,"oin_a02"
604 print*,p_oc_a02,"oc_a02"
605 print*,p_bc_a02,"bc_a02"
606 print*,p_hysw_a02,"hysw_a02"
607 print*,p_water_a02,"water_a02"
608 print*,p_num_a02,"num_a02"
609 print*,p_so4_a03,"so4_a03"
610 print*,p_no3_a03,"no3_a03"
611 print*,p_cl_a03,"cl_a03"
612 print*,p_nh4_a03,"nh4_a03"
613 print*,p_na_a03,"na_a03"
614 print*,p_oin_a03,"oin_a03"
615 print*,p_oc_a03,"oc_a03"
616 print*,p_bc_a03,"bc_a03"
617 print*,p_hysw_a03,"hysw_a03"
618 print*,p_water_a03,"water_a03"
619 print*,p_num_a03,"num_a03"
620 print*,p_so4_a04,"so4_a04"
621 print*,p_no3_a04,"no3_a04"
622 print*,p_cl_a04,"cl_a04"
623 print*,p_nh4_a04,"nh4_a04"
624 print*,p_na_a04,"na_a04"
625 print*,p_oin_a04,"oin_a04"
626 print*,p_oc_a04,"oc_a04"
627 print*,p_bc_a04,"bc_a04"
628 print*,p_hysw_a04,"hysw_a04"
629 print*,p_water_a04,"water_a04"
630 print*,p_num_a04,"num_a04"
631 case (CBMZ_MOSAIC_8BIN)
632 print*,p_so4_a01,"so4_a01"
633 print*,p_no3_a01,"no3_a01"
634 print*,p_cl_a01,"cl_a01"
635 print*,p_nh4_a01,"nh4_a01"
636 print*,p_na_a01,"na_a01"
637 print*,p_oin_a01,"oin_a01"
638 print*,p_oc_a01,"oc_a01"
639 print*,p_bc_a01,"bc_a01"
640 print*,p_hysw_a01,"hysw_a01"
641 print*,p_water_a01,"water_a01"
642 print*,p_num_a01,"num_a01"
643 print*,p_so4_a02,"so4_a02"
644 print*,p_no3_a02,"no3_a02"
645 print*,p_cl_a02,"cl_a02"
646 print*,p_nh4_a02,"nh4_a02"
647 print*,p_na_a02,"na_a02"
648 print*,p_oin_a02,"oin_a02"
649 print*,p_oc_a02,"oc_a02"
650 print*,p_bc_a02,"bc_a02"
651 print*,p_hysw_a02,"hysw_a02"
652 print*,p_water_a02,"water_a02"
653 print*,p_num_a02,"num_a02"
654 print*,p_so4_a03,"so4_a03"
655 print*,p_no3_a03,"no3_a03"
656 print*,p_cl_a03,"cl_a03"
657 print*,p_nh4_a03,"nh4_a03"
658 print*,p_na_a03,"na_a03"
659 print*,p_oin_a03,"oin_a03"
660 print*,p_oc_a03,"oc_a03"
661 print*,p_bc_a03,"bc_a03"
662 print*,p_hysw_a03,"hysw_a03"
663 print*,p_water_a03,"water_a03"
664 print*,p_num_a03,"num_a03"
665 print*,p_so4_a04,"so4_a04"
666 print*,p_no3_a04,"no3_a04"
667 print*,p_cl_a04,"cl_a04"
668 print*,p_nh4_a04,"nh4_a04"
669 print*,p_na_a04,"na_a04"
670 print*,p_oin_a04,"oin_a04"
671 print*,p_oc_a04,"oc_a04"
672 print*,p_bc_a04,"bc_a04"
673 print*,p_hysw_a04,"hysw_a04"
674 print*,p_water_a04,"water_a04"
675 print*,p_num_a04,"num_a04"
676 print*,p_so4_a05,"so4_a05"
677 print*,p_no3_a05,"no3_a05"
678 print*,p_cl_a05,"cl_a05"
679 print*,p_nh4_a05,"nh4_a05"
680 print*,p_na_a05,"na_a05"
681 print*,p_oin_a05,"oin_a05"
682 print*,p_oc_a05,"oc_a05"
683 print*,p_bc_a05,"bc_a05"
684 print*,p_hysw_a05,"hysw_a05"
685 print*,p_water_a05,"water_a05"
686 print*,p_num_a05,"num_a05"
687 print*,p_so4_a06,"so4_a06"
688 print*,p_no3_a06,"no3_a06"
689 print*,p_cl_a06,"cl_a06"
690 print*,p_nh4_a06,"nh4_a06"
691 print*,p_na_a06,"na_a06"
692 print*,p_oin_a06,"oin_a06"
693 print*,p_oc_a06,"oc_a06"
694 print*,p_bc_a06,"bc_a06"
695 print*,p_hysw_a06,"hysw_a06"
696 print*,p_water_a06,"water_a06"
697 print*,p_num_a06,"num_a06"
698 print*,p_so4_a07,"so4_a07"
699 print*,p_no3_a07,"no3_a07"
700 print*,p_cl_a07,"cl_a07"
701 print*,p_nh4_a07,"nh4_a07"
702 print*,p_na_a07,"na_a07"
703 print*,p_oin_a07,"oin_a07"
704 print*,p_oc_a07,"oc_a07"
705 print*,p_bc_a07,"bc_a07"
706 print*,p_hysw_a07,"hysw_a07"
707 print*,p_water_a07,"water_a07"
708 print*,p_num_a07,"num_a07"
709 print*,p_so4_a08,"so4_a08"
710 print*,p_no3_a08,"no3_a08"
711 print*,p_cl_a08,"cl_a08"
712 print*,p_nh4_a08,"nh4_a08"
713 print*,p_na_a08,"na_a08"
714 print*,p_oin_a08,"oin_a08"
715 print*,p_oc_a08,"oc_a08"
716 print*,p_bc_a08,"bc_a08"
717 print*,p_hysw_a08,"hysw_a08"
718 print*,p_water_a08,"water_a08"
719 print*,p_num_a08,"num_a08"
720 case (CBMZ_MOSAIC_4BIN_AQ)
721 print*,p_so4_a01,"so4_a01"
722 print*,p_no3_a01,"no3_a01"
723 print*,p_cl_a01,"cl_a01"
724 print*,p_nh4_a01,"nh4_a01"
725 print*,p_na_a01,"na_a01"
726 print*,p_oin_a01,"oin_a01"
727 print*,p_oc_a01,"oc_a01"
728 print*,p_bc_a01,"bc_a01"
729 print*,p_hysw_a01,"hysw_a01"
730 print*,p_water_a01,"water_a01"
731 print*,p_num_a01,"num_a01"
732 print*,p_so4_a02,"so4_a02"
733 print*,p_no3_a02,"no3_a02"
734 print*,p_cl_a02,"cl_a02"
735 print*,p_nh4_a02,"nh4_a02"
736 print*,p_na_a02,"na_a02"
737 print*,p_oin_a02,"oin_a02"
738 print*,p_oc_a02,"oc_a02"
739 print*,p_bc_a02,"bc_a02"
740 print*,p_hysw_a02,"hysw_a02"
741 print*,p_water_a02,"water_a02"
742 print*,p_num_a02,"num_a02"
743 print*,p_so4_a03,"so4_a03"
744 print*,p_no3_a03,"no3_a03"
745 print*,p_cl_a03,"cl_a03"
746 print*,p_nh4_a03,"nh4_a03"
747 print*,p_na_a03,"na_a03"
748 print*,p_oin_a03,"oin_a03"
749 print*,p_oc_a03,"oc_a03"
750 print*,p_bc_a03,"bc_a03"
751 print*,p_hysw_a03,"hysw_a03"
752 print*,p_water_a03,"water_a03"
753 print*,p_num_a03,"num_a03"
754 print*,p_so4_a04,"so4_a04"
755 print*,p_no3_a04,"no3_a04"
756 print*,p_cl_a04,"cl_a04"
757 print*,p_nh4_a04,"nh4_a04"
758 print*,p_na_a04,"na_a04"
759 print*,p_oin_a04,"oin_a04"
760 print*,p_oc_a04,"oc_a04"
761 print*,p_bc_a04,"bc_a04"
762 print*,p_hysw_a04,"hysw_a04"
763 print*,p_water_a04,"water_a04"
764 print*,p_num_a04,"num_a04"
765 print*,p_so4_cw01,"so4_cw01"
766 print*,p_no3_cw01,"no3_cw01"
767 print*,p_cl_cw01,"cl_cw01"
768 print*,p_nh4_cw01,"nh4_cw01"
769 print*,p_na_cw01,"na_cw01"
770 print*,p_oin_cw01,"oin_cw01"
771 print*,p_oc_cw01,"oc_cw01"
772 print*,p_bc_cw01,"bc_cw01"
773 print*,p_num_cw01,"num_cw01"
774 print*,p_so4_cw02,"so4_cw02"
775 print*,p_no3_cw02,"no3_cw02"
776 print*,p_cl_cw02,"cl_cw02"
777 print*,p_nh4_cw02,"nh4_cw02"
778 print*,p_na_cw02,"na_cw02"
779 print*,p_oin_cw02,"oin_cw02"
780 print*,p_oc_cw02,"oc_cw02"
781 print*,p_bc_cw02,"bc_cw02"
782 print*,p_num_cw02,"num_cw02"
783 print*,p_so4_cw03,"so4_cw03"
784 print*,p_no3_cw03,"no3_cw03"
785 print*,p_cl_cw03,"cl_cw03"
786 print*,p_nh4_cw03,"nh4_cw03"
787 print*,p_na_cw03,"na_cw03"
788 print*,p_oin_cw03,"oin_cw03"
789 print*,p_oc_cw03,"oc_cw03"
790 print*,p_bc_cw03,"bc_cw03"
791 print*,p_num_cw03,"num_cw03"
792 print*,p_so4_cw04,"so4_cw04"
793 print*,p_no3_cw04,"no3_cw04"
794 print*,p_cl_cw04,"cl_cw04"
795 print*,p_nh4_cw04,"nh4_cw04"
796 print*,p_na_cw04,"na_cw04"
797 print*,p_oin_cw04,"oin_cw04"
798 print*,p_oc_cw04,"oc_cw04"
799 print*,p_bc_cw04,"bc_cw04"
800 print*,p_num_cw04,"num_cw04"
801
802 case (CBMZ_MOSAIC_8BIN_AQ)
803 print*,p_so4_a01,"so4_a01"
804 print*,p_no3_a01,"no3_a01"
805 print*,p_cl_a01,"cl_a01"
806 print*,p_nh4_a01,"nh4_a01"
807 print*,p_na_a01,"na_a01"
808 print*,p_oin_a01,"oin_a01"
809 print*,p_oc_a01,"oc_a01"
810 print*,p_bc_a01,"bc_a01"
811 print*,p_hysw_a01,"hysw_a01"
812 print*,p_water_a01,"water_a01"
813 print*,p_num_a01,"num_a01"
814 print*,p_so4_a02,"so4_a02"
815 print*,p_no3_a02,"no3_a02"
816 print*,p_cl_a02,"cl_a02"
817 print*,p_nh4_a02,"nh4_a02"
818 print*,p_na_a02,"na_a02"
819 print*,p_oin_a02,"oin_a02"
820 print*,p_oc_a02,"oc_a02"
821 print*,p_bc_a02,"bc_a02"
822 print*,p_hysw_a02,"hysw_a02"
823 print*,p_water_a02,"water_a02"
824 print*,p_num_a02,"num_a02"
825 print*,p_so4_a03,"so4_a03"
826 print*,p_no3_a03,"no3_a03"
827 print*,p_cl_a03,"cl_a03"
828 print*,p_nh4_a03,"nh4_a03"
829 print*,p_na_a03,"na_a03"
830 print*,p_oin_a03,"oin_a03"
831 print*,p_oc_a03,"oc_a03"
832 print*,p_bc_a03,"bc_a03"
833 print*,p_hysw_a03,"hysw_a03"
834 print*,p_water_a03,"water_a03"
835 print*,p_num_a03,"num_a03"
836 print*,p_so4_a04,"so4_a04"
837 print*,p_no3_a04,"no3_a04"
838 print*,p_cl_a04,"cl_a04"
839 print*,p_nh4_a04,"nh4_a04"
840 print*,p_na_a04,"na_a04"
841 print*,p_oin_a04,"oin_a04"
842 print*,p_oc_a04,"oc_a04"
843 print*,p_bc_a04,"bc_a04"
844 print*,p_hysw_a04,"hysw_a04"
845 print*,p_water_a04,"water_a04"
846 print*,p_num_a04,"num_a04"
847 print*,p_so4_a05,"so4_a05"
848 print*,p_no3_a05,"no3_a05"
849 print*,p_cl_a05,"cl_a05"
850 print*,p_nh4_a05,"nh4_a05"
851 print*,p_na_a05,"na_a05"
852 print*,p_oin_a05,"oin_a05"
853 print*,p_oc_a05,"oc_a05"
854 print*,p_bc_a05,"bc_a05"
855 print*,p_hysw_a05,"hysw_a05"
856 print*,p_water_a05,"water_a05"
857 print*,p_num_a05,"num_a05"
858 print*,p_so4_a06,"so4_a06"
859 print*,p_no3_a06,"no3_a06"
860 print*,p_cl_a06,"cl_a06"
861 print*,p_nh4_a06,"nh4_a06"
862 print*,p_na_a06,"na_a06"
863 print*,p_oin_a06,"oin_a06"
864 print*,p_oc_a06,"oc_a06"
865 print*,p_bc_a06,"bc_a06"
866 print*,p_hysw_a06,"hysw_a06"
867 print*,p_water_a06,"water_a06"
868 print*,p_num_a06,"num_a06"
869 print*,p_so4_a07,"so4_a07"
870 print*,p_no3_a07,"no3_a07"
871 print*,p_cl_a07,"cl_a07"
872 print*,p_nh4_a07,"nh4_a07"
873 print*,p_na_a07,"na_a07"
874 print*,p_oin_a07,"oin_a07"
875 print*,p_oc_a07,"oc_a07"
876 print*,p_bc_a07,"bc_a07"
877 print*,p_hysw_a07,"hysw_a07"
878 print*,p_water_a07,"water_a07"
879 print*,p_num_a07,"num_a07"
880 print*,p_so4_a08,"so4_a08"
881 print*,p_no3_a08,"no3_a08"
882 print*,p_cl_a08,"cl_a08"
883 print*,p_nh4_a08,"nh4_a08"
884 print*,p_na_a08,"na_a08"
885 print*,p_oin_a08,"oin_a08"
886 print*,p_oc_a08,"oc_a08"
887 print*,p_bc_a08,"bc_a08"
888 print*,p_hysw_a08,"hysw_a08"
889 print*,p_water_a08,"water_a08"
890 print*,p_num_a08,"num_a08"
891
892 print*,p_so4_cw01,"so4_cw01"
893 print*,p_no3_cw01,"no3_cw01"
894 print*,p_cl_cw01,"cl_cw01"
895 print*,p_nh4_cw01,"nh4_cw01"
896 print*,p_na_cw01,"na_cw01"
897 print*,p_oin_cw01,"oin_cw01"
898 print*,p_oc_cw01,"oc_cw01"
899 print*,p_bc_cw01,"bc_cw01"
900 print*,p_num_cw01,"num_cw01"
901 print*,p_so4_cw02,"so4_cw02"
902 print*,p_no3_cw02,"no3_cw02"
903 print*,p_cl_cw02,"cl_cw02"
904 print*,p_nh4_cw02,"nh4_cw02"
905 print*,p_na_cw02,"na_cw02"
906 print*,p_oin_cw02,"oin_cw02"
907 print*,p_oc_cw02,"oc_cw02"
908 print*,p_bc_cw02,"bc_cw02"
909 print*,p_num_cw02,"num_cw02"
910 print*,p_so4_cw03,"so4_cw03"
911 print*,p_no3_cw03,"no3_cw03"
912 print*,p_cl_cw03,"cl_cw03"
913 print*,p_nh4_cw03,"nh4_cw03"
914 print*,p_na_cw03,"na_cw03"
915 print*,p_oin_cw03,"oin_cw03"
916 print*,p_oc_cw03,"oc_cw03"
917 print*,p_bc_cw03,"bc_cw03"
918 print*,p_num_cw03,"num_cw03"
919 print*,p_so4_cw04,"so4_cw04"
920 print*,p_no3_cw04,"no3_cw04"
921 print*,p_cl_cw04,"cl_cw04"
922 print*,p_nh4_cw04,"nh4_cw04"
923 print*,p_na_cw04,"na_cw04"
924 print*,p_oin_cw04,"oin_cw04"
925 print*,p_oc_cw04,"oc_cw04"
926 print*,p_bc_cw04,"bc_cw04"
927 print*,p_num_cw04,"num_cw04"
928 print*,p_so4_cw05,"so4_cw05"
929 print*,p_no3_cw05,"no3_cw05"
930 print*,p_cl_cw05,"cl_cw05"
931 print*,p_nh4_cw05,"nh4_cw05"
932 print*,p_na_cw05,"na_cw05"
933 print*,p_oin_cw05,"oin_cw05"
934 print*,p_oc_cw05,"oc_cw05"
935 print*,p_bc_cw05,"bc_cw05"
936 print*,p_num_cw05,"num_cw05"
937 print*,p_so4_cw06,"so4_cw06"
938 print*,p_no3_cw06,"no3_cw06"
939 print*,p_cl_cw06,"cl_cw06"
940 print*,p_nh4_cw06,"nh4_cw06"
941 print*,p_na_cw06,"na_cw06"
942 print*,p_oin_cw06,"oin_cw06"
943 print*,p_oc_cw06,"oc_cw06"
944 print*,p_bc_cw06,"bc_cw06"
945 print*,p_num_cw06,"num_cw06"
946 print*,p_so4_cw07,"so4_cw07"
947 print*,p_no3_cw07,"no3_cw07"
948 print*,p_cl_cw07,"cl_cw07"
949 print*,p_nh4_cw07,"nh4_cw07"
950 print*,p_na_cw07,"na_cw07"
951 print*,p_oin_cw07,"oin_cw07"
952 print*,p_oc_cw07,"oc_cw07"
953 print*,p_bc_cw07,"bc_cw07"
954 print*,p_num_cw07,"num_cw07"
955 print*,p_so4_cw08,"so4_cw08"
956 print*,p_no3_cw08,"no3_cw08"
957 print*,p_cl_cw08,"cl_cw08"
958 print*,p_nh4_cw08,"nh4_cw08"
959 print*,p_na_cw08,"na_cw08"
960 print*,p_oin_cw08,"oin_cw08"
961 print*,p_oc_cw08,"oc_cw08"
962 print*,p_bc_cw08,"bc_cw08"
963 print*,p_num_cw08,"num_cw08"
964 end select
965 end subroutine print_chem_species_index
966 #endif