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