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