chemics_init.F

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