        !COMPILER-GENERATED INTERFACE MODULE: Fri May 22 16:58:42 2020
        ! This source file is for reference only and may not completely
        ! represent the generated interface used by the compiler.
        MODULE COMPUTE_ADD_SOURCES_VISCOELASTIC__genmod
          INTERFACE
            SUBROUTINE COMPUTE_ADD_SOURCES_VISCOELASTIC(ACCEL_ELASTIC,IT&
     &,I_STAGE)
              USE SPECFEM_PAR, ONLY :                                   &
     &          P_SV,                                                   &
     &          ELASTIC,                                                &
     &          NGLOB_ELASTIC,                                          &
     &          NSOURCES,                                               &
     &          SOURCE_TYPE,                                            &
     &          ANGLESOURCE,                                            &
     &          SOURCE_TIME_FUNCTION,                                   &
     &          IS_PROC_SOURCE,                                         &
     &          ISPEC_SELECTED_SOURCE,                                  &
     &          SOURCEARRAY,                                            &
     &          HXIS_STORE,                                             &
     &          HGAMMAS_STORE,                                          &
     &          IBOOL
              REAL(KIND=4) :: ACCEL_ELASTIC(3,NGLOB_ELASTIC)
              INTEGER(KIND=4) :: IT
              INTEGER(KIND=4) :: I_STAGE
            END SUBROUTINE COMPUTE_ADD_SOURCES_VISCOELASTIC
          END INTERFACE
        END MODULE COMPUTE_ADD_SOURCES_VISCOELASTIC__genmod


      SUBROUTINE DT_NEWHGR(Xlim1,Xlim2,Xlim3,Xlimb,Ibin,Irefn)

C***********************************************************************
C                                                                      *
C     Histogram initialization.                                        *
C                                                                      *
C     input:  XLIM1/XLIM2  lower/upper edge of histogram-window        *
C             XLIM3        bin size                                    *
C             IBIN    > 0  number of bins in equidistant lin. binning  *
C                     = -1 reset histograms                            *
C                     < -1 |IBIN| number of bins in equidistant log.   *
C                          binning or log. binning in user def. struc. *
C             XLIMB(*)     user defined bin structure                  *
C                                                                      *
C     The bin structure is sensitive to                                *
C             XLIM1, XLIM3, IBIN     if     XLIM3 > 0   (lin.)         *
C             XLIM1, XLIM2, IBIN     if     XLIM3 = 0   (lin. & log.)  *
C             XLIMB, IBIN            if     XLIM3 < 0                  *
C                                                                      *
C                                                                      *
C     output: IREFN        histogram index                             *
C                          (= -1 for inconsistent histogr. request)    *
C                                                                      *
C This subroutine is based on a original version by R. Engel.          *
C This version dated 22.4.95 is written  by S. Roesler.                *
C***********************************************************************

      IMPLICIT NONE
      DOUBLE PRECISION dx , TINY , xhi , Xlim1 , Xlim2 , Xlim3 , Xlimb ,
     &                 xlow , ZERO
      INTEGER i , Ibin , ihis , Irefn , k
      SAVE

      INCLUDE 'inc/dtflka'

      LOGICAL lstart

      PARAMETER (ZERO=0.0D0,TINY=1.0D-10)

      DIMENSION Xlimb(*)

C histograms

      INCLUDE 'inc/dthis1'
C auxiliary common for histograms
      INCLUDE 'inc/dthis2'

      DATA lstart/.TRUE./

C reset histogram counter
      IF ( lstart .OR. (Ibin.EQ.-1) ) THEN
         IHIsl = 0
         IF ( Ibin.EQ.-1 ) RETURN
         lstart = .FALSE.
      END IF

      ihis = IHIsl + 1
C check for maximum number of allowed histograms
      IF ( ihis.GT.NHIS ) THEN

         IF ( LPRi.GT.4 ) WRITE (LOUt,99010) ihis , NHIS , ihis
99010    FORMAT (1X,'NEWHGR:   warning!  number of histograms (',I4,
     &           ') exceeds array size (',I4,')',/,21X,'histogram',I3,
     &           ' skipped!')

         Irefn = -1
         GOTO 99999
      END IF

      Irefn = ihis
      IBIns(ihis) = ABS(Ibin)
C check requested number of bins
      IF ( IBIns(ihis).GE.NDIM ) THEN

         IF ( LPRi.GT.4 ) WRITE (LOUt,99020) Ibin , NDIM , NDIM
99020    FORMAT (1X,'NEWHGR:   warning!  number of bins (',I3,
     &           ') exceeds array size (',I3,')',/,21X,
     &           'and will be reset to ',I3)
         IBIns(ihis) = NDIM
      END IF
      IF ( IBIns(ihis).EQ.0 ) THEN

         IF ( LPRi.GT.4 ) WRITE (LOUt,99030) Ibin , ihis
99030    FORMAT (1X,'NEWHGR:   warning!  inconsistent number of',
     &           ' bins (',I3,')',/,21X,'histogram',I3,' skipped!')
         Irefn = -1
         GOTO 99999
      END IF

C initialize arrays
      DO i = 1 , NDIM
         DO k = 1 , 3
            HISt(k,ihis,i) = ZERO
            HISt(k+3,ihis,i) = ZERO
            TMPhis(k,ihis,i) = ZERO
         END DO
         HISt(7,ihis,i) = ZERO
      END DO
      DENtry(1,ihis) = ZERO
      DENtry(2,ihis) = ZERO
      OVErf(ihis) = ZERO
      UNDerf(ihis) = ZERO
      TMPufl(ihis) = ZERO
      TMPofl(ihis) = ZERO

C bin str. sensitive to lower edge, bin size, and numb. of bins
      IF ( Xlim3.GT.ZERO ) THEN
         DO k = 1 , IBIns(ihis) + 1
            HISt(1,ihis,k) = Xlim1 + DBLE(k-1)*Xlim3
         END DO
         ISWi(ihis) = 1
C bin str. sensitive to lower/upper edge and numb. of bins
      ELSE IF ( Xlim3.EQ.ZERO ) THEN
C   linear binning
         IF ( Ibin.GT.0 ) THEN
            xlow = Xlim1
            xhi = Xlim2
            IF ( Xlim2.LE.Xlim1 ) THEN

               IF ( LPRi.GT.4 ) WRITE (LOUt,99040) Xlim1 , Xlim2
99040          FORMAT (1X,'NEWHGR:   warning!  inconsistent x-range',/,
     &                 21X,'(XLIM1,XLIM2 = ',2E11.4,')')
               Irefn = -1
               GOTO 99999
            END IF
            ISWi(ihis) = 1
         ELSE IF ( Ibin.LT.-1 ) THEN
C   logarithmic binning
            IF ( (Xlim1.LE.ZERO) .OR. (Xlim2.LE.ZERO) ) THEN

               IF ( LPRi.GT.4 ) WRITE (LOUt,99050) Xlim1 , Xlim2
99050          FORMAT (1X,'NEWHGR:   warning!  inconsistent log. ',
     &                 'binning',/,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
               Irefn = -1
               GOTO 99999
            END IF
            IF ( Xlim2.LE.Xlim1 ) THEN

               IF ( LPRi.GT.4 ) WRITE (LOUt,99060) Xlim1 , Xlim2
99060          FORMAT (1X,'NEWHGR:   warning!  inconsistent x-range',/,
     &                 21X,'(XLIM1,XLIM2 = ',2E11.4,')')
               Irefn = -1
               GOTO 99999
            END IF
            xlow = LOG10(Xlim1)
            xhi = LOG10(Xlim2)
            ISWi(ihis) = 3
         END IF
         dx = ABS(xhi-xlow)/DBLE(MAX(IBIns(ihis),1))
         DO k = 1 , IBIns(ihis) + 1
            HISt(1,ihis,k) = xlow + DBLE(k-1)*dx
         END DO
      ELSE
C user defined bin structure
         DO k = 1 , IBIns(ihis) + 1
            IF ( Ibin.GT.0 ) THEN
               HISt(1,ihis,k) = Xlimb(k)
               ISWi(ihis) = 2
            ELSE IF ( Ibin.LT.-1 ) THEN
               HISt(1,ihis,k) = LOG10(Xlimb(k))
               ISWi(ihis) = 4
            END IF
         END DO
      END IF

C histogram accepted
      IHIsl = ihis

99999 END SUBROUTINE


C
C	$Id: dashdb.f,v 1.5 2008-07-27 00:23:04 haley Exp $
C
C                Copyright (C)  2000
C        University Corporation for Atmospheric Research
C                All Rights Reserved
C
C The use of this Software is governed by a License Agreement.
C
      SUBROUTINE DASHDB (IPAT)
C
C ARGUMENTS              IPAT
C ON INPUT                 IPAT IS A 16-BIT DASH PATTERN.  BY DEFAULT
C                          EACH BIT IN THE PATTERN REPRESENTS 3 PLOTTER
C                          ADDRESS UNITS (1=SOLID, 0=BLANK)
C
C
C
C USER ENTRY POINT.
C DASHDB GIVES AN INTERNAL REPRESENTATION TO THE DASH PATTERN WHICH IS
C SPECIFIED IN ITS ARGUMENT. THIS INTERNAL REPRESENTATION IS PASSED
C TO ROUTINE CFVLD IN THE COMMON-BLOCK DASHD1.
C
      DIMENSION IPAT(1)
      COMMON/INTPR/IPAU,FPART,TENSN,NP,SMALL,L1,ADDLR,ADDTB,MLLINE,
     1    ICLOSE
C
C DASHD1 IS FOR COMMUNICATION BETWEEN THE ROUTINES DASHDB AND CFVLD.
C ISL, MNCSTR AND IGP ARE INITIALIZED IN DASHBDX.
C
      COMMON /DASHD1/  ISL,  L,  ISIZE,  IP(100),  NWDSM1,  IPFLAG(100)
     1                 ,MNCSTR, IGP
C
C IFCFLG IS THE FIRST CALL FLAG FOR DASHDB. IT IS INITIALIZED IN
C DASHBDX.
C
      COMMON /DDFLAG/ IFCFLG
C
C IFSTFL CONTROLS THAT FRSTD IS CALLED BEFORE VECTD IS CALLED (IN CFVLD)
C WHENEVER DASHDB HAS BEEN CALLED. IT IS INITIALIZED IN DASHBDX AND
C REFERENCED IN CFVLD.
C
      COMMON /DCFLAG/ IFSTFL
C
C IFSTF2 CONTROLS THAT THE FRSTD ENTRY IS CALLED IN FDVDLD BEFORE THE
C VECTD ENTRY IS CALLED WHENEVER DASHDB OR DASHDC HAS BEEN CALLED.
C IT IS INITIALIZED IN DASHBDX AND REFERENCED IN FDVDLD.
C
      COMMON /DFFLAG/ IFSTF2
C
C LOCAL VARIABLES TO DASHDB ARE SAVED IN DSAVE6 FOR THE NEXT CALL TO
C DASHDB.
C
      COMMON /DSAVE6/ MASK, NCHRWD, NBWD, MNCST1
      SAVE
C
C Do a call forcing a BLOCKDATA to be loaded from a binary library.
C
      CALL DASHBD
C THE FOLLOWING CALL IS FOR LIBRARY STATISTICS GATHERING AT NCAR
      CALL Q8QST4 ('GRAPHX', 'DASHSUPR', 'DASHDB', 'VERSION  1')
      IF (IFCFLG .EQ. 2) GOTO 10
C
C CHECK IF THE CONSTANTS IN THE BLOCKDATA DASHBDX ARE LOADED CORRECTLY
C
      IF (MNCSTR .EQ. 15) GOTO 6
      CALL SETER('DASHDB -- BLOCKDATA DASHBDX APPARENTLY NOT LOADED CORR
     1ECTLY',1,2)
    6 CONTINUE
C
C INITIALIZATION
C
      MNCST1 = MNCSTR + 1
C
C MASK IS AN ALL SOLID PATTERN
C
      MASK=IOR(ISHIFT(32767,1),1)
C
      IFCFLG = 2
C
C L - NUMBER OF WORDS IN THE FINAL PATTERN, POINTER TO IP ARRAY.
C ISL - FLAG FOR ALL SOLID PATTERN (1) OR ALL GAP PATTERN (-1).
C IFSTFL - FLAG TO CONTROL THAT FRSTD IS CALLED IN CFVLD BEFORE VECTD IS
C          CALLED, WHENEVER DASHDB OR DASHDC HAS BEEN CALLED.
C IFSTF2 - FLAG TO CONTROL THAT FRSTD IS CALLED IN FDVDLD BEFORE VECTD
C          IS CALLED, WHENEVER DASHDB OR DASHDC HAS BEEN CALLED.
C
   10 CONTINUE
      NCHRTS = 0
      L = 0
      ISL = 0
      IFSTFL = 1
      IFSTF2 = 1
C
      ICRT = IPAU*ISHIFT(1,15-10)
      IF (IPAT(1) .NE. 0) GO TO 260
      ISL = -1
      RETURN
  260 IF (IPAT(1) .NE. MASK) GO TO 270
      ISL = 1
      RETURN
  270 NMODE1 = IAND(ISHIFT(IPAT(1),-15),1)
      DO 290 I = 1,16
      IF (NMODE1 .NE. IAND(ISHIFT(IPAT(1),I-16),1)) GO TO 280
      NMODE1 = 1 - NMODE1
      L = L + 1
      IP(L) = 0
      IPFLAG(L) = 1 - 2*NMODE1
  280 IP(L) = IP(L) + ICRT
  290 CONTINUE
      RETURN
      END


        SUBROUTINE MA_SC3D ( marrpt, iret )
C************************************************************************
C* MA_SC3D			 				        *
C*								        *
C* This subroutine calls the routine which decodes the groups in        *
C* section 3 of the drifting buoy report. This section contains         *
C* temperatures, salinity and current (when available) at selected      *
C* depths.                                                              *
C*                                                                      *
C* MA_SC3D  ( MARRPT, IRET )                                            *
C*                                                                      *
C* Input parameters:						        *
C*      MARRPT          CHAR*           Report array                    *
C*	LSEC3           INTEGER         Length of section 3             *
C*      ISEC3           INTEGER         Pointer to start of section 3   *
C*								        *
C* Output parameters:						        *
C*	RIVALS(IRQ3D1) 	REAL		Quality control indicator for   *
C*	                                temperature/salinity profile.   *
C*	                                WMO Code Table 3334.            *
C*	RIVALS(IRQ3D2) 	REAL		Quality control indicator for   *
C*	                                current profile.  WMO Code      *
C*	                                Table 3334.                     *
C*	IRET	 	INTEGER	    	Return code		        *
C*				   	  0 = Normal return 	        *
C*                                        1 = Problems                  *
C**								        *
C* Log:								        *
C* R. Hollern/NCEP       8/96                                           *
C* D. Kidwell/NCEP       4/97	Changed interface, reorganized header   *
C*				and comments				*
C* D. Kidwell/NCEP      10/97	Changed interface                       *
C* R. Hollern/NCEP       7/99   Decoded the quality control indicators  *
C************************************************************************
        INCLUDE         'GEMPRM.PRM'
        INCLUDE  	'macmn.cmn'
C*
        CHARACTER*(*)   marrpt
C*
        CHARACTER       fld1*1
C------------------------------------------------------------------------
        iret = 0
        ipt = isec3
        iend = isec3 + lsec3 - 1
C
C*      Get the quality control indicator for temperature/salinity
C*      profile.
C
        fld1 = marrpt (ipt:ipt)
        CALL  ST_INTG ( fld1, ival, ier )
        IF ( ier .eq. 0 ) rivals ( irq3d1 ) = FLOAT ( ival )
C
C*      Get the quality control indicator for current profile.
C
        ipt = ipt + 1
        fld1 = marrpt (ipt:ipt)
        CALL  ST_INTG ( fld1, ival, ier )
        IF ( ier .eq. 0 ) rivals ( irq3d2 ) = FLOAT ( ival )
C
        DO WHILE ( ipt .lt. iend )
C
            ipt = ipt + 1
C
            IF ( marrpt ( ipt:ipt+4 ) .eq. ' 8887' ) THEN
C
C*              Decode the depth, temperature and salinity data groups.
C
                ipt = ipt + 5
C
                CALL MA_TESA( marrpt, iend, ipt, jret )
C
              ELSE IF ( marrpt ( ipt:ipt+2 ) .eq. ' 66' ) THEN
C
C*              Will add routines later to decode these groups.
C
            END IF
        END DO
C*
	RETURN
        END


c
c   Dint – version 2.0  is licensed under the Apache License, Version 2.0 (the "License");
c   you may not use Dint – version 2.0 except in compliance with the License.
c   You may obtain a copy of the License at
c       http://www.apache.org/licenses/LICENSE-2.0
c   The license is also given in the LICENSE file.
c   Unless required by applicable law or agreed to in writing, software
c   distributed under the License is distributed on an "AS IS" BASIS,
c   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
c   See the License for the specific language governing permissions and limitations under the License.
c
c -------------------------------------------------------------------------------------------
c  Dint : Direct Nonadiabatic Trajectories A code for non-Born–Oppenheimer molecular dynamics
c
c  version 2.0
c
c  A. W. Jasper
c  Argonne National Laboratory
c
c  Rui Ming Zhang
c  Tsinghua University
c
c  and
c
c  D. G. Truhlar
c  University of Minnesota
c
c  copyright  2020
c  Donald G. Truhlar and Regents of the University of Minnesota
c----------------------------------------------------------------------------------------------

      subroutine nmpot(symb,xx0,mm,nclu,nn,vec,repflag,nsurft,d,
     & itype,mcpar,v)

c     returns the energy EE of a structure displaced from XX0 along NN
c     mass-scaled vector VEC by some distance DD

      implicit none
      include 'param.f'
      integer i,j,k,nclu,repflag,nn,itype(3*mnat),mcpar(2,3*mnat),
     & a1,a2,n1,nsurft,maxstep,im
      double precision xx(3,mnat),vec(3,mnat,3*mnat),
     & xx0(3,mnat),d(3*mnat),mm(mnat),pema(mnsurf),pemd(mnsurf,mnsurf),
     & gpema(3,mnat,mnsurf),gpemd(3,mnat,mnsurf,mnsurf),
     & dvec(3,mnat,mnsurf,mnsurf),v(mnsurf),phi,gtmp,gtmp1,gapgrad,h12
      character*2 symb(mnat)

      common/lz/gapgrad,h12

      do j=1,3
      do k=1,nclu
        xx(j,k)=xx0(j,k)
      enddo
      enddo

c Do Cartesian normal mode displacements first
      do i=1,nn
        if (itype(i).eq.0) then ! Cartesian
        do j=1,3
        do k=1,nclu
          xx(j,k)=xx(j,k)+vec(j,k,i)*d(i)*dsqrt(mu/mm(k))
        enddo
        enddo
        endif
      enddo

c           write(80,*)nclu
c          write(80,1081)i,phi
c          do k=1,nclu
c            write(80,1080)symb(k),(xx(j,k)*autoang,j=1,3)
c          enddo

C Do torsions next
      do i=1,nn
        if (itype(i).eq.1) then ! torsion
        a1=mcpar(1,i)
        a2=mcpar(2,i)
        n1=a2-1
        phi=d(i)
           call torphi(xx,nclu,a1,a2,phi,n1)
c           write(80,*)nclu
c           write(80,1081)i,phi
c           do k=1,nclu
c             write(80,1080)symb(k),(xx(j,k)*autoang,j=1,3)
c           enddo
c 1080       format(a2,3f15.5)
c 1081       format(i7,50f15.5)
c          stop
        endif
      enddo

c get energy
      call getpem(xx,nclu,pema,pemd,gpema,gpemd,dvec,symb)
      do i=1,nsurft
      if (repflag.eq.1) then
        v(i) = pemd(i,i)
      else
        v(i) = pema(i)
      endif
      enddo

c          write(80,*)nclu
c          write(80,1081)0,v(1)*autoev,v(2)*autoev,gtmp,
c     & pemd(1,2)*autocmi
c          do i=1,nclu
c            write(80,1080)symb(i),(xx(j,i)*autoang,j=1,3)
c 1080       format(a2,3f15.5)
c 1081       format(i7,50f15.5)
c          enddo

c      gapgrad=gtmp
c      h12=pemd(1,2)

      return
      end


! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! Parameter Module File
!
! Generated by KPP-2.1 symbolic chemistry Kinetics PreProcessor
!       (http://www.cs.vt.edu/~asandu/Software/KPP)
! KPP is distributed under GPL, the general public licence
!       (http://www.gnu.org/copyleft/gpl.html)
! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech
!     With important contributions from:
!        M. Damian, Villanova University, USA
!        R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
!
! File                 : mozcart_Parameters.f90
! Time                 : Mon Feb 27 11:08:44 2017
! Working directory    : /data/ksetigui/setigui/WRFV3_171015/chem/KPP/mechanisms/mozcart
! Equation file        : mozcart.kpp
! Output root filename : mozcart
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MODULE mozcart_Parameters

  USE mozcart_Precision
  PUBLIC
  SAVE

! NSPEC - Number of chemical species
  INTEGER, PARAMETER :: NSPEC = 83
! NVAR - Number of Variable species
  INTEGER, PARAMETER :: NVAR = 81
! NVARACT - Number of Active species
  INTEGER, PARAMETER :: NVARACT = 80
! NFIX - Number of Fixed species
  INTEGER, PARAMETER :: NFIX = 2
! NREACT - Number of reactions
  INTEGER, PARAMETER :: NREACT = 196
! NVARST - Starting of variables in conc. vect.
  INTEGER, PARAMETER :: NVARST = 1
! NFIXST - Starting of fixed in conc. vect.
  INTEGER, PARAMETER :: NFIXST = 82
! NONZERO - Number of nonzero entries in Jacobian
  INTEGER, PARAMETER :: NONZERO = 740
! LU_NONZERO - Number of nonzero entries in LU factoriz. of Jacobian
  INTEGER, PARAMETER :: LU_NONZERO = 837
! CNVAR - (NVAR+1) Number of elements in compressed row format
  INTEGER, PARAMETER :: CNVAR = 82
! NLOOKAT - Number of species to look at
  INTEGER, PARAMETER :: NLOOKAT = 0
! NMONITOR - Number of species to monitor
  INTEGER, PARAMETER :: NMONITOR = 0
! NMASS - Number of atoms to check mass balance
  INTEGER, PARAMETER :: NMASS = 1
! PI - Value of pi
  REAL(kind=dp), PARAMETER :: PI = 3.14159265358979

! Index declaration for variable species in C and VAR
!   VAR(ind_spc) = C(ind_spc)

  INTEGER, PARAMETER :: ind_SO4 = 1
  INTEGER, PARAMETER :: ind_NH3 = 2
  INTEGER, PARAMETER :: ind_N2O = 3
  INTEGER, PARAMETER :: ind_C2H6 = 4
  INTEGER, PARAMETER :: ind_C3H8 = 5
  INTEGER, PARAMETER :: ind_BIGENE = 6
  INTEGER, PARAMETER :: ind_BIGALK = 7
  INTEGER, PARAMETER :: ind_SO2 = 8
  INTEGER, PARAMETER :: ind_H2O2 = 9
  INTEGER, PARAMETER :: ind_TOLUENE = 10
  INTEGER, PARAMETER :: ind_CRESOL = 11
  INTEGER, PARAMETER :: ind_EO = 12
  INTEGER, PARAMETER :: ind_N2O5 = 13
  INTEGER, PARAMETER :: ind_XOH = 14
  INTEGER, PARAMETER :: ind_XOOH = 15
  INTEGER, PARAMETER :: ind_DMS = 16
  INTEGER, PARAMETER :: ind_C2H5OH = 17
  INTEGER, PARAMETER :: ind_CH3OOH = 18
  INTEGER, PARAMETER :: ind_H2 = 19
  INTEGER, PARAMETER :: ind_MACROOH = 20
  INTEGER, PARAMETER :: ind_C2H5OOH = 21
  INTEGER, PARAMETER :: ind_C3H7OOH = 22
  INTEGER, PARAMETER :: ind_ROOH = 23
  INTEGER, PARAMETER :: ind_ENEO2 = 24
  INTEGER, PARAMETER :: ind_MEKOOH = 25
  INTEGER, PARAMETER :: ind_HO2NO2 = 26
  INTEGER, PARAMETER :: ind_C2H4 = 27
  INTEGER, PARAMETER :: ind_HYDRALD = 28
  INTEGER, PARAMETER :: ind_ONIT = 29
  INTEGER, PARAMETER :: ind_EO2 = 30
  INTEGER, PARAMETER :: ind_TOLOOH = 31
  INTEGER, PARAMETER :: ind_CH3COOOH = 32
  INTEGER, PARAMETER :: ind_MEK = 33
  INTEGER, PARAMETER :: ind_CH3COOH = 34
  INTEGER, PARAMETER :: ind_POOH = 35
  INTEGER, PARAMETER :: ind_PAN = 36
  INTEGER, PARAMETER :: ind_GLYOXAL = 37
  INTEGER, PARAMETER :: ind_TERPOOH = 38
  INTEGER, PARAMETER :: ind_HNO3 = 39
  INTEGER, PARAMETER :: ind_CH4 = 40
  INTEGER, PARAMETER :: ind_CH3OH = 41
  INTEGER, PARAMETER :: ind_ISOPOOH = 42
  INTEGER, PARAMETER :: ind_MPAN = 43
  INTEGER, PARAMETER :: ind_TOLO2 = 44
  INTEGER, PARAMETER :: ind_BIGALD = 45
  INTEGER, PARAMETER :: ind_C10H16 = 46
  INTEGER, PARAMETER :: ind_O1D_CB4 = 47
  INTEGER, PARAMETER :: ind_ALKOOH = 48
  INTEGER, PARAMETER :: ind_MEKO2 = 49
  INTEGER, PARAMETER :: ind_PO2 = 50
  INTEGER, PARAMETER :: ind_CH3COCH3 = 51
  INTEGER, PARAMETER :: ind_O = 52
  INTEGER, PARAMETER :: ind_ISOPNO3 = 53
  INTEGER, PARAMETER :: ind_GLYALD = 54
  INTEGER, PARAMETER :: ind_ALKO2 = 55
  INTEGER, PARAMETER :: ind_C2H5O2 = 56
  INTEGER, PARAMETER :: ind_C3H7O2 = 57
  INTEGER, PARAMETER :: ind_CO = 58
  INTEGER, PARAMETER :: ind_ISOP = 59
  INTEGER, PARAMETER :: ind_ONITR = 60
  INTEGER, PARAMETER :: ind_C3H6 = 61
  INTEGER, PARAMETER :: ind_CH3CHO = 62
  INTEGER, PARAMETER :: ind_RO2 = 63
  INTEGER, PARAMETER :: ind_TERPO2 = 64
  INTEGER, PARAMETER :: ind_HYAC = 65
  INTEGER, PARAMETER :: ind_MACR = 66
  INTEGER, PARAMETER :: ind_CH3COCHO = 67
  INTEGER, PARAMETER :: ind_XO2 = 68
  INTEGER, PARAMETER :: ind_MVK = 69
  INTEGER, PARAMETER :: ind_MACRO2 = 70
  INTEGER, PARAMETER :: ind_ISOPO2 = 71
  INTEGER, PARAMETER :: ind_CH2O = 72
  INTEGER, PARAMETER :: ind_NO2 = 73
  INTEGER, PARAMETER :: ind_MCO3 = 74
  INTEGER, PARAMETER :: ind_OH = 75
  INTEGER, PARAMETER :: ind_NO = 76
  INTEGER, PARAMETER :: ind_CH3O2 = 77
  INTEGER, PARAMETER :: ind_CH3CO3 = 78
  INTEGER, PARAMETER :: ind_HO2 = 79
  INTEGER, PARAMETER :: ind_NO3 = 80
  INTEGER, PARAMETER :: ind_O3 = 81

! Index declaration for fixed species in C
!   C(ind_spc)

  INTEGER, PARAMETER :: ind_H2O = 82
  INTEGER, PARAMETER :: ind_M = 83

! Index declaration for fixed species in FIX
!    FIX(indf_spc) = C(ind_spc) = C(NVAR+indf_spc)

  INTEGER, PARAMETER :: indf_H2O = 1
  INTEGER, PARAMETER :: indf_M = 2

END MODULE mozcart_Parameters