      SUBROUTINE INTCHEM4(DMSOROW,DMSOROL,EDMSROW,EDMSROL,
     1                    SUZ0ROW,SUZ0ROL,PDSFROW,PDSFROL, 
     2                      OHROW,  OHROL,H2O2ROW,H2O2ROL,
     3                      O3ROW,  O3ROL, NO3ROW, NO3ROL,
     4                    HNO3ROW,HNO3ROL, NH3ROW, NH3ROL,
     5                     NH4ROW, NH4ROL,SO4CROW,SO4CROL,
     6                    IL1,IL2,ILG,ILEV,DELT,GMT,IDAY,MDAY,ISULF)
C
C     * APR 25,2012 - Y.PENG.    NEW VERSIONO FOR GCM16:
C     *                          ADD SUZ0,PDSF FOR NEW DUST SCHEME.
C     * FEB 07,09 - K.VONSALZEN. PREVIOUS VERSION INTCHEM3 FOR GCM15H/I:
C     *                          EOST REMOVED (NOW IN SEPARATE
C     *                          ROUTINE INTCAC).  
C     * JAN 17/08 - X.MA/     PREVIOUS VERSION INTCHEM2 FOR GCM15G:
C     *             M.LAZARE. 
C     * APR 23/04 - M.LAZARE. PREVIOUS VERSION INTCHEM UP TO GCM15F.

C     *                       INTERPOLATION OF CHEMISTRY FIELDS, BASED
C     *                       ON SUBROUTINE "GETGTIO" (FOR IMASK=0 CASE).
C
C     * XXROW  = CHEMISTRY FIELD    FOR PREVIOUS TIMESTEP. 
C     * XXROL  = CHEMISTRY FIELD    AT NEXT PHYSICS TIME.
C
C     * DELT   = MODEL TIMESTEP IN SECONDS. 
C     * GMT    = NUMBER OF SECONDS IN CURRENT DAY.
C     * IDAY   = CURRENT JULIAN DAY.  
C     * MDAY   = DATE OF TARGET SST.
C
      IMPLICIT REAL   (A-H,O-Z),
     +INTEGER (I-N) 
C 
C     * SURFACE EMISSIONS/CONCENTRATIONS.
C
      REAL   DMSOROW(ILG),DMSOROL(ILG)
      REAL   EDMSROW(ILG),EDMSROL(ILG)
      REAL   SUZ0ROW(ILG),SUZ0ROL(ILG) 
      REAL   PDSFROW(ILG),PDSFROL(ILG) 
C
C     * MULTI-LEVEL SPECIES.
C
      REAL     OHROW(ILG,ILEV),  OHROL(ILG,ILEV)
      REAL   H2O2ROW(ILG,ILEV),H2O2ROL(ILG,ILEV)
      REAL     O3ROW(ILG,ILEV),  O3ROL(ILG,ILEV)
      REAL    NO3ROW(ILG,ILEV), NO3ROL(ILG,ILEV)
      REAL   HNO3ROW(ILG,ILEV),HNO3ROL(ILG,ILEV)
      REAL    NH3ROW(ILG,ILEV), NH3ROL(ILG,ILEV)
      REAL    NH4ROW(ILG,ILEV), NH4ROL(ILG,ILEV)
C
C     * CLIMATOLOGICAL SULFATE FIELD (FROM UNIT NUXSFX, IFF ISULF=0).
C
      REAL   SO4CROW(ILG,ILEV),SO4CROL(ILG,ILEV)
C-------------------------------------------------------------------- 
C     * COMPUTE THE NUMBER OF TIMESTEPS FROM HERE TO MDAY. 
C
      DAY=REAL(IDAY)+GMT/86400. 
      FMDAY=REAL(MDAY) 
      IF(FMDAY.LT.DAY) FMDAY=FMDAY+365. 
      DAYSM=FMDAY-DAY 
      ISTEPSM=NINT(DAYSM*86400./DELT)
      STEPSM=REAL(ISTEPSM)
C 
C     * GENERAL INTERPOLATION.
C 
      DO 210 I=IL1,IL2
        DMSOROW(I)  = ((STEPSM-1.) * DMSOROW(I) + DMSOROL(I)) / STEPSM 
        EDMSROW(I)  = ((STEPSM-1.) * EDMSROW(I) + EDMSROL(I)) / STEPSM 
        SUZ0ROW(I)  = ((STEPSM-1.) * SUZ0ROW(I) + SUZ0ROL(I)) / STEPSM  
        PDSFROW(I)  = ((STEPSM-1.) * PDSFROW(I) + PDSFROL(I)) / STEPSM
  210 CONTINUE
C 
      DO 250 L=1,ILEV
      DO 250 I=IL1,IL2
        OHROW  (I,L) = ((STEPSM-1.)*OHROW  (I,L) + OHROL  (I,L)) /STEPSM 
        H2O2ROW(I,L) = ((STEPSM-1.)*H2O2ROW(I,L) + H2O2ROL(I,L)) /STEPSM
        O3ROW  (I,L) = ((STEPSM-1.)*O3ROW  (I,L) + O3ROL  (I,L)) /STEPSM
        NO3ROW (I,L) = ((STEPSM-1.)*NO3ROW (I,L) + NO3ROL (I,L)) /STEPSM 
        HNO3ROW(I,L) = ((STEPSM-1.)*HNO3ROW(I,L) + HNO3ROL(I,L)) /STEPSM 
        NH3ROW (I,L) = ((STEPSM-1.)*NH3ROW (I,L) + NH3ROL (I,L)) /STEPSM 
        NH4ROW (I,L) = ((STEPSM-1.)*NH4ROW (I,L) + NH4ROL (I,L)) /STEPSM 
        IF(ISULF.EQ.0) THEN
        SO4CROW(I,L) = ((STEPSM-1.)*SO4CROW(I,L) + SO4CROL(I,L)) /STEPSM 
        ENDIF
  250 CONTINUE
C 
      RETURN
      END 
