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