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