      SUBROUTINE MODBEST(NIBEG,NIEND,IBEG,IEND,IEND9,NICNT,ICNT,ICNT9,
     !                   IHIST)

C Program reads MODFLOW output file and assigns gain/loss and drain flow to BESTSM
C nodes.  Also distributes these flows from seasonal to monthly data.  Finally,
C data is converted to the appropriate format for input into BESTSM.
C
      INTEGER NIBEG,NIEND,IBEG,IEND,IEND9,IENDS,NICNT,ICNT,ICNTS,ICNT9
      INTEGER STREAM,REACH,NODE(50,50),IND(50,50),FLAG(50,50)
      INTEGER LYR,ROW,COL,STR,RCH,SP,SPP,ICOUNT,MO
      REAL QIN,QAQ,QOUT,HEAD,Q1,Q2(200,12),Q3(200,12),Q4(200,12)
      REAL NIQ2(200),NIQ3(200),NIQ4(200)
      REAL IQ2(200),IQ3(200),IQ4(200),Q2MI
      REAL QINIT(200,12,20),FLOW(200,20),QMON(200,12,20),IMP(200,12,20)
      CHARACTER*14 LINE
      CHARACTER*55 SPHEAD
      CHARACTER*240 HEADER
C
      OPEN(1,"CELLNODE.DAT",STATUS="OLD")
      OPEN(2,"MESILLA.OUT",STATUS="OLD")
      OPEN(3,"IMPHEAD",STATUS="OLD")
      OPEN(4,"EPIMPWTR.DAT",STATUS="UNKNOWN")
      OPEN(6,"BESTINT.DAT",STATUS="OLD")
C
C Set the number of years to be forecasted.  Store original values of IEND
C and ICNT for reinitialization.
C
      ICOUNT = 81
      IENDS = IEND
      ICNTS = ICNT
C
C Initialize all nodes to -999.
C     
      DO 20 I=1,50
        DO 10 J=1,50
          NODE(I,J)=-999
   10   CONTINUE
   20 CONTINUE
C
C Read template for assignment of cells to nodes and type (gain/loss or drain).
c FLAG = 1 for gains/loss cells, FLAG = 0 for drain cell.
C
      DO 30 I=1,100
        READ(1,500,END=35) STREAM,REACH,NODE(STREAM,REACH),
     +                     IND(STREAM,REACH),FLAG(STREAM,REACH)
   30 CONTINUE


   35 DO 440 IC=1,ICOUNT
        IF(IC.EQ.ICOUNT) ICNT=ICNT9
  410   READ(6,450,END=40) YR6,MO,Q1,Q2(IC,MO),Q2MI,Q3(IC,MO),Q4(IC,MO)
        NIQ2(IC) = Q2(IC,MO)
        NIQ3(IC) = Q3(IC,MO) 
        NIQ4(IC) = Q4(IC,MO) 
        IF(MO.EQ.NIBEG) THEN  
          DO 420 I=1,NICNT-1
            READ(6,450,END=40) YR6,MO,Q1,Q2(IC,MO),Q2MI,Q3(IC,MO),
     !                          Q4(IC,MO)
            NIQ2(IC) = NIQ2(IC)+Q2(IC,MO) 
            NIQ3(IC) = NIQ3(IC)+Q3(IC,MO) 
            NIQ4(IC) = NIQ4(IC)+Q4(IC,MO) 
  420     CONTINUE
          DO 430 J=1,ICNT
            READ(6,450,END=40) YR6,MO,Q1,Q2(IC,MO),Q2MI,Q3(IC,MO),
     !                          Q4(IC,MO)
            IQ2(IC) = IQ2(IC)+Q2(IC,MO) 
            IQ3(IC) = IQ3(IC)+Q3(IC,MO) 
            IQ4(IC) = IQ4(IC)+Q4(IC,MO) 
  430     CONTINUE
        ELSE
          GOTO 410
        ENDIF
  440 CONTINUE
      ICNT=ICNTS

  450 FORMAT(I7,I3,5F12.0)

C
C Read/write imported water header file.  Initialize monthly flow values to 
C those in header file.
C
   40 DO 50 I=1,29
        READ(3,505) HEADER
        WRITE(4,505) HEADER
   50 CONTINUE

      DO 60 J=30,881
        READ(3,506) YR,MO,(QINIT(YR-1914,MO,I),I=1,19)
        IF(IHIST .EQ. 0) THEN
             QINIT(YR-1914,MO,17)=0
             QINIT(YR-1914,MO,18)=0
             QINIT(YR-1914,MO,19)=0
         ENDIF
   60 CONTINUE
      CLOSE(4)
C
C Read MODFLOW seasonal output file and calculate gain/losses and drain flows 
C in CFS-seasons.  Convert flow values from CFS-season to AF-season.  Gain/ 
C losses must be converted before summing.
C Use the -999 initialization to distinguish between drain and gain/loss cells
C and intermittent ones where calculations are not made.
C
      SP=0
   70 READ(2,502,END=130) LINE
        IF(LINE(1:1).EQ.'0'.AND.LINE(14:14).EQ.'L') THEN
   80     BACKSPACE 2
          BACKSPACE 2
          READ(2,503) SPHEAD
          IF(SPHEAD(40:52).EQ.'STRESS PERIOD') THEN
            READ(SPHEAD(53:55),504) SP
          ELSE
            GOTO 80
          ENDIF
   90     READ(2,502,END=130) LINE
          IF(LINE(1:1).EQ.'0'.AND.LINE(14:14).EQ.'L') THEN 
            READ(2,*)
            READ(2,*)
            READ(2,*)
            DO 100 I=1,432 
              READ(2,501) LYR,ROW,COL,STR,RCH,QIN,QAQ,QOUT,HEAD
              IF(LYR.EQ.1) THEN
                IF(NODE(STR,RCH).EQ.-999) THEN
                  GOTO 100
                ELSEIF(FLAG(STR,RCH).EQ.0) THEN
                  FLOW(SP,IND(STR,RCH))=QOUT
                ELSEIF(FLAG(STR,RCH) .EQ. 1) THEN
                  FLOW(SP,IND(STR,RCH))=FLOW(SP,IND(STR,RCH))+QAQ
                ELSE
                  FLOW(SP,IND(STR,RCH))=FLOW(SP,IND(STR,RCH))+QOUT
                ENDIF
              ENDIF
  100       CONTINUE
          ELSE
            GOTO 90
          ENDIF
        ELSE
          GOTO 70
        ENDIF
C
C Initialize all monthly flow values to 0.
C
      DO 120 I=1,19
        DO 110 J=1,12
          QMON(SP,J,I)=0.
  110   CONTINUE 
  120 CONTINUE
C   
C Distribute seasonal flows into monthly values.  Use the subscript 9 values
C to account for the possibility of a shorter irrigation season data set in
C the last year.
C
        SPP = 2*ICOUNT-1
        IF(SP.EQ.SPP) THEN
          IEND = IEND9
          ICNT = ICNT9
        ENDIF
        CALL MONDIST(NIBEG,NIEND,IBEG,IEND,NICNT,ICNT,SP,FLOW,QMON,
     !              Q2,Q3,Q4,NIQ2,NIQ3,NIQ4,IQ2,IQ3,IQ4)
      GOTO 70
C
C Reinitialize IEND and ICNT.  Replace drain flows and gain/losses at nodes.  
C Convert flows into one set per year.
C
  130 SP=0
      IEND = IENDS
      ICNT = ICNTS
      DO 170 I=1,ICOUNT
        SP=SP+1
        DO 140 J=1,12
          DO 135 K=1,19 
            IMP(I,J,K) = QMON(SP,J,K)
  135     CONTINUE
  140   CONTINUE
        SP=SP+1
        DO 160 J=1,12
          DO 150 K=1,19
             IF(QMON(SP,J,K).NE.0.) THEN
               IMP(I,J,K) = QMON(SP,J,K)
             ENDIF
  150     CONTINUE
  160   CONTINUE
  170 CONTINUE
C
C MODFLOW created 162 stress periods (2 seasons for 81 model years, 1915-1995) 
C but BESTSM only runs for 71 model years, 1925-1995.  Discard the first ten         
C years of data.
C
      OPEN(4,"EPIMPWTR.DAT",STATUS="OLD") 
      DO 175 I=1,29
        READ(4,505) HEADER
  175 CONTINUE
      DO 190 I=1,ICOUNT
        YR = I + 1914
        IF(IHIST .EQ. 1 .AND. YR .LT. 1965) GOTO 190
        IF (YR.LT.1924) GOTO 190
        DO 180 J=1,12
          IF(IHIST.EQ.1 .AND. YR.EQ.1965 .AND. J.LT.10) THEN
             GOTO 180
          ELSEIF (YR.EQ.1924.AND.J.LT.10) THEN
            GOTO 180 
          ELSEIF (YR.LT.1995) THEN
            WRITE(4,506) YR,J,(QINIT(I,J,K),K=1,3),
     !                   (IMP(I,J,K),K=4,16),(QINIT(I,J,K),K=17,19)
          ELSEIF (YR.EQ.1995.AND.J.LT.10) THEN
            WRITE(4,506) YR,J,(QINIT(I,J,K),K=1,3),
     +                   (IMP(I,J,K),K=4,16),(QINIT(I,J,K),K=17,19)
          ENDIF
  180   CONTINUE
  190 CONTINUE
C
  500 FORMAT(5I10)
  501 FORMAT(I16,4I10,F18.4,4F15.4)
  502 FORMAT(A14)
  503 FORMAT(A55)
  504 FORMAT(I3)
  505 FORMAT(A230)
  506 FORMAT(I20,I10,19F10.0)
C
      CLOSE(1)
      CLOSE(2)
      CLOSE(3)
      CLOSE(4)
      CLOSE(5)

      END
C
***********************************************************************************************
C      
      SUBROUTINE MONDIST(NIBEG,NIEND,IBEG,IEND,NICNT,ICNT,SP,FLOW,QMON,
     !                   Q2,Q3,Q4,NIQ2,NIQ3,NIQ4,IQ2,IQ3,IQ4)
C
      INTEGER  SP,NIBEG,NIEND,IBEG,IEND,NICNT,ICNT,SIGN
      REAL  NIMIDEM,IMIDEM,NIETDEM,IETDEM,REM
      REAL  FLOW(200,20),QMON(200,12,20)
      REAL  NISEL,NIPIC,NIDEL,NILAM,NIEAS,NIMON,ISEL,IPIC,IDEL,ILAM
      REAL  Q2(200,12),Q3(200,12),Q4(200,12),NIQ2(200),NIQ3(200)
      REAL  NIQ4(200),IQ2(200),IQ3(200),IQ4(200)
      REAL  IEAS,IMON
      REAL  SEL(12),PIC(12),DEL(12),LAM(12),EAS(12),MON(12)
      DATA  SEL/0.026,0.022,0.035,0.077,0.106,0.116,0.148,0.159,
     +          0.136,0.090,0.049,0.036/
      DATA  PIC/0.063,0.055,0.067,0.085,0.088,0.093,0.108,0.117,
     +          0.104,0.084,0.071,0.065/
      DATA  DEL/0.054,0.047,0.065,0.085,0.092,0.098,0.115,0.121,
     +          0.111,0.086,0.066,0.060/
      DATA  LAM/0.039,0.033,0.054,0.083,0.101,0.112,0.129,0.140,
     +          0.121,0.082,0.058,0.048/
      DATA  EAS/0.039,0.035,0.062,0.088,0.098,0.109,0.127,0.141,
     +          0.124,0.080,0.052,0.045/
      DATA  MON/0.049,0.043,0.062,0.087,0.094,0.100,0.120,0.130,
     +          0.114,0.084,0.062,0.055/
C
C Calculate total seasonal fraction of yearly drain flow based on user 
C specifed season lengths.
C
      REM=MOD(SP,2)
      IF(REM.GT.0) THEN
        SIGN=1
        IC=(SP+1)/2
      ELSE
        SIGN=0
        IC=SP/2
      ENDIF
      NISEL=0.
      NIPIC=0.
      NIDEL=0.
      NILAM=0.
      NIEAS=0.
      NIMON=0.
      ISEL=0.
      IPIC=0.
      IDEL=0.
      ILAM=0.
      IEAS=0.
      IMON=0.
      IF(SIGN.EQ.1) THEN
        IF(NIBEG.LT.NIEND) THEN
          DO 200 I=NIBEG,NIEND
            NISEL = NISEL + SEL(I)
            NIPIC = NIPIC + PIC(I)
            NIDEL = NIDEL + DEL(I)
            NILAM = NILAM + LAM(I)
            NIEAS = NIEAS + EAS(I)
            NIMON = NIMON + MON(I)
  200     CONTINUE
        ELSEIF(NIBEG.GT.NIEND) THEN
          DO 210 J = NIBEG,12
            NISEL = NISEL + SEL(J)
            NIPIC = NIPIC + PIC(J)
            NIDEL = NIDEL + DEL(J)
            NILAM = NILAM + LAM(J)
            NIEAS = NIEAS + EAS(J)
            NIMON = NIMON + MON(J)
  210     CONTINUE
          DO 220 K = 1,NIEND
            NISEL = NISEL + SEL(K)
            NIPIC = NIPIC + PIC(K)
            NIDEL = NIDEL + DEL(K)
            NILAM = NILAM + LAM(K)
            NIEAS = NIEAS + EAS(K)
            NIMON = NIMON + MON(K)
  220     CONTINUE
        ELSEIF(NIBEG.EQ.NIEND) THEN
            NISEL = NISEL + SEL(NIBEG)
            NIPIC = NIPIC + PIC(NIBEG)
            NIDEL = NIDEL + DEL(NIBEG)
            NILAM = NILAM + LAM(NIBEG)
            NIEAS = NIEAS + EAS(NIBEG)
            NIMON = NIMON + MON(NIBEG)
        ENDIF
      ELSE
        IF(IBEG.LT.IEND) THEN
          DO 230 I=IBEG,IEND
            ISEL = ISEL + SEL(I)
            IPIC = IPIC + PIC(I)
            IDEL = IDEL + DEL(I)
            ILAM = ILAM + LAM(I)
            IEAS = IEAS + EAS(I)
            IMON = IMON + MON(I)
  230     CONTINUE
        ELSEIF(IBEG.GT.IEND) THEN
          DO 240 J = IBEG,12
            ISEL = ISEL + SEL(J)
            IPIC = IPIC + PIC(J)
            IDEL = IDEL + DEL(J)
            ILAM = ILAM + LAM(J)
            IEAS = IEAS + EAS(J)
            IMON = IMON + MON(J)
  240     CONTINUE
          DO 250 K = 1,IEND
            ISEL = ISEL + SEL(K)
            IPIC = IPIC + PIC(K)
            IDEL = IDEL + DEL(K)
            ILAM = ILAM + LAM(K)
            IEAS = IEAS + EAS(K)
            IMON = IMON + MON(K)
  250     CONTINUE
        ELSEIF(IBEG.EQ.IEND) THEN
            ISEL = ISEL + SEL(IBEG)
            IPIC = IPIC + PIC(IBEG)
            IDEL = IDEL + DEL(IBEG)
            ILAM = ILAM + LAM(IBEG)
            IEAS = IEAS + EAS(IBEG)
            IMON = IMON + MON(IBEG)
        ENDIF      
      ENDIF
C
C Convert seasonal drain flows to monthly drain volumes based on the monthly 
C distributions.  Monthly drain volume = total season flow * monthly fraction 
C of year / seasonal fraction of year.  Selden=node 2050(IND 4), 
C Picacho=2160(IND 6), Del Rio=2280(IND 10), LaMesa=2330(IND 11), 
C East=3050(IND 12), Montoya=3180(IND 15).  Calculate monthly gains/losses by 
C linearly distribution (nodes 2110(IND 7),2270(IND 9), 3060 (IND 13), 
C 3090(IND 14), 3190(IND 16)).  Convert seasonal gain/losses flows from CFS 
C to monthly volumes based on a linear distribution in AF/mo.  Monthly gain/
C losses = total seasonal flow / number of months per season.
C      
      IF(SIGN.EQ.1) THEN
        IF(NIBEG.LT.NIEND) THEN
          DO 260 I=NIBEG,NIEND
           QMON(SP,I,4)=FLOW(SP,4)/43560*86400*30.4*NICNT*SEL(I)/NISEL
           QMON(SP,I,6)=FLOW(SP,6)/43560*86400*30.4*NICNT*PIC(I)/NIPI 
           QMON(SP,I,10)=FLOW(SP,10)/43560*86400*30.4*NICNT*DEL(I)/NIDEL
           QMON(SP,I,11)=FLOW(SP,11)/43560*86400*30.4*NICNT*LAM(I)/NILAM
          QMON(SP,I ,12)=FLOW(SP,12)/43560*86400*30.4*NICNT*EAS(I)/NIEAS
           QMON(SP,I,15)=FLOW(SP,15)/43560*86400*30.4*NICNT*MON(I)/NIMON

           QMON(SP,I,7)=-1*FLOW(SP,7)/43560*86400*30.4
           QMON(SP,I,9)=-1*FLOW(SP,9)/43560*86400*30.4
           QMON(SP,I,13)=-1*FLOW(SP,13)/43560*86400*30.4
           QMON(SP,I,14)=-1*FLOW(SP,14)/43560*86400*30.4
           QMON(SP,I,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(NIQ2(IC) .GT. 0) THEN
              QMON(SP,I,5)=FLOW(SP,5)/43560*86400*30.4*NICNT*
     !                     Q2(IC,I)/NIQ2(IC)
           ELSE
              QMON(SP,I,5)=0.
           ENDIF
           IF((NIQ3(IC)+NIQ4(IC)) .GT. 0) THEN
              QMON(SP,I,8)=FLOW(SP,8)/43560*86400*30.4*NICNT*
     !                     (Q3(IC,I)+Q4(IC,I))/(NIQ3(IC)+NIQ4(IC))
           ELSE
              QMON(SP,I,8)=0.
           ENDIF

  260     CONTINUE
        ELSEIF(NIBEG.GT.NIEND) THEN
          DO 270 J = NIBEG,12    
            QMON(SP-1,J,4)=FLOW(SP,4)/43560*86400*30.4*NICNT*
     !                     SEL(J)/NISEL
            QMON(SP-1,J,6)=FLOW(SP,6)/43560*86400*30.4*NICNT*
     !                     PIC(J)/NIPIC 
            QMON(SP-1,J,10)=FLOW(SP,10)/43560*86400*30.4*NICNT*
     !                      DEL(J)/NIDEL
            QMON(SP-1,J,11)=FLOW(SP,11)/43560*86400*30.4*NICNT*
     !                      LAM(J)/NILAM
            QMON(SP-1,J,12)=FLOW(SP,12)/43560*86400*30.4*NICNT*
     !                      EAS(J)/NIEAS
            QMON(SP-1,J,15)=FLOW(SP,15)/43560*86400*30.4*NICNT*
     !                      MON(J)/NIMON
            QMON(SP-1,J,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP-1,J,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP-1,J,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP-1,J,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP-1,J,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(NIQ2(IC) .GT. 0) THEN
               QMON(SP-1,J,5)=FLOW(SP,5)/43560*86400*30.4*NICNT*
     !                       Q2(IC,J)/NIQ2(IC)
           ELSE
               QMON(SP-1,J,5)=0.
           ENDIF
           IF((NIQ3(IC)+NIQ4(IC)) .GT. 0) THEN
              QMON(SP-1,J,8)=FLOW(SP,8)/43560*86400*30.4*NICNT*
     !                       (Q3(IC,J)+Q4(IC,J))/(NIQ3(IC)+NIQ4(IC))
           ELSE
              QMON(SP-1,J,8)=0.
           ENDIF
  270     CONTINUE
          DO 280 K = 1,NIEND
           QMON(SP,K,4)=FLOW(SP,4)/43560*86400*30.4*NICNT*SEL(K)/NISEL
           QMON(SP,K,6)=FLOW(SP,6)/43560*86400*30.4*NICNT*PIC(K)/NIPIC 
           QMON(SP,K,10)=FLOW(SP,10)/43560*86400*30.4*NICNT*DEL(K)/NIDEL
           QMON(SP,K,11)=FLOW(SP,11)/43560*86400*30.4*NICNT*LAM(K)/NILAM
           QMON(SP,K,12)=FLOW(SP,12)/43560*86400*30.4*NICNT*EAS(K)/NIEAS
           QMON(SP,K,15)=FLOW(SP,15)/43560*86400*30.4*NICNT*MON(K)/NIMON
           QMON(SP,K,7)=-1*FLOW(SP,7)/43560*86400*30.4
           QMON(SP,K,9)=-1*FLOW(SP,9)/43560*86400*30.4
           QMON(SP,K,13)=-1*FLOW(SP,13)/43560*86400*30.4
           QMON(SP,K,14)=-1*FLOW(SP,14)/43560*86400*30.4
           QMON(SP,K,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(NIQ2(IC) .GT. 0) THEN
              QMON(SP,K,5)=FLOW(SP,5)/43560*86400*30.4*NICNT*
     !                     Q2(IC,K)/NIQ2(IC)
           ELSE
              QMON(SP,K,5)=0.
           ENDIF
           IF((NIQ3(IC)+NIQ4(IC)) .GT. 0) THEN
               QMON(SP,K,8)=FLOW(SP,8)/43560*86400*30.4*NICNT*
     !                      (Q3(IC,K)+Q4(IC,K))/(NIQ3(IC)+NIQ4(IC))
           ELSE
               QMON(SP,K,8)=0.
           ENDIF
  280     CONTINUE
        ELSEIF(NIBEG.EQ.NIEND) THEN
            QMON(SP,NIBEG,4)=FLOW(SP,4)/43560*86400*30.4*NICNT*
     !                       SEL(NIBEG)/NISEL
            QMON(SP,NIBEG,6)=FLOW(SP,6)/43560*86400*30.4*NICNT*
     !                       PIC(NIBEG)/NIPIC 
            QMON(SP,NIBEG,10)=FLOW(SP,10)/43560*86400*30.4*NICNT*
     !                        DEL(NIBEG)/NIDEL
            QMON(SP,NIBEG,11)=FLOW(SP,11)/43560*86400*30.4*NICNT*
     !                        LAM(NIBEG)/NILAM
            QMON(SP,NIBEG,12)=FLOW(SP,12)/43560*86400*30.4*NICNT*
     !                        EAS(NIBEG)/NIEAS
            QMON(SP,NIBEG,15)=FLOW(SP,15)/43560*86400*30.4*NICNT*
     !                        MON(NIBEG)/NIMON
            QMON(SP,NIBEG,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP,NIBEG,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP,NIBEG,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP,NIBEG,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP,NIBEG,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(NIQ2(IC) .GT. 0) THEN
              QMON(SP,NIBEG,5)=FLOW(SP,5)/43560*86400*30.4*NICNT*
     !                         Q2(IC,NIBEG)/NIQ2(IC)
           ELSE
              QMON(SP,NIBEG,5)=0.
           ENDIF
           IF((NIQ3(IC)+NIQ4(IC)) .GT. 0) THEN
              QMON(SP,NIBEG,8)=FLOW(SP,8)/43560*86400*30.4*NICNT*
     !                  (Q3(IC,NIBEG)+Q4(IC,NIBEG))/(NIQ3(IC)+NIQ4(IC))
           ELSE
              QMON(SP,NIBEG,8)=0.
           ENDIF
        ENDIF
      ELSE
        IF(IBEG.LT.IEND) THEN
          DO 290 I=IBEG,IEND
            QMON(SP,I,4)=FLOW(SP,4)/43560*86400*30.4*ICNT*SEL(I)/ISEL
            QMON(SP,I,6)=FLOW(SP,6)/43560*86400*30.4*ICNT*PIC(I)/IPIC 
            QMON(SP,I,10)=FLOW(SP,10)/43560*86400*30.4*ICNT*DEL(I)/IDEL
            QMON(SP,I,11)=FLOW(SP,11)/43560*86400*30.4*ICNT*LAM(I)/ILAM
            QMON(SP,I,12)=FLOW(SP,12)/43560*86400*30.4*ICNT*EAS(I)/IEAS
            QMON(SP,I,15)=FLOW(SP,15)/43560*86400*30.4*ICNT*MON(I)/IMON

            QMON(SP,I,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP,I,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP,I,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP,I,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP,I,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(IQ2(IC) .GT. 0) THEN
              QMON(SP,I,5)=FLOW(SP,5)/43560*86400*30.4*ICNT*
     !                     Q2(IC,I)/IQ2(IC)
           ELSE
              QMON(SP,I,5)=0.
           ENDIF
           IF((IQ3(IC)+IQ4(IC)) .GT. 0) THEN
             QMON(SP,I,8)=FLOW(SP,8)/43560*86400*30.4*ICNT*
     !                    (Q3(IC,I)+Q4(IC,I))/(IQ3(IC)+IQ4(IC))
           ELSE
              QMON(SP,I,8)=0.
           ENDIF
  290     CONTINUE
        ELSEIF(IBEG.GT.IEND) THEN
          DO 300 J = IBEG,12
            QMON(SP-1,J,4)=FLOW(SP,4)/43560*86400*30.4*ICNT*
     !                   SEL(J)/ISEL
            QMON(SP-1,J,6)=FLOW(SP,6)/43560*86400*30.4*ICNT*
     !                   PIC(J)/IPIC 
            QMON(SP-1,J,10)=FLOW(SP,10)/43560*86400*30.4*ICNT*
     !                    DEL(J)/IDEL
            QMON(SP-1,J,11)=FLOW(SP,11)/43560*86400*30.4*ICNT*
     !                    LAM(J)/ILAM
            QMON(SP-1,J,12)=FLOW(SP,12)/43560*86400*30.4*ICNT*
     !                    EAS(J)/IEAS
            QMON(SP-1,J,15)=FLOW(SP,15)/43560*86400*30.4*ICNT*
     !                    MON(J)/IMON
            QMON(SP-1,J,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP-1,J,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP-1,J,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP-1,J,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP-1,J,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(IQ2(IC) .GT. 0) THEN
              QMON(SP-1,J,5)=FLOW(SP,5)/43560*86400*30.4*ICNT*
     !                       Q2(IC,J)/IQ2(IC)
           ELSE
              QMON(SP-1,J,5)=0.
           ENDIF
           IF((IQ3(IC)+IQ4(IC)) .GT. 0) THEN
               QMON(SP-1,J,8)=FLOW(SP,8)/43560*86400*30.4*ICNT*
     !                       (Q3(IC,J)+Q4(IC,J))/(IQ3(IC)+IQ4(IC))
           ELSE
               QMON(SP-1,J,8)=0.
           ENDIF
  300     CONTINUE
          DO 310 K = 1,IEND
            QMON(SP,K,4)=FLOW(SP,4)/43560*86400*30.4*ICNT*SEL(K)/ISEL
            QMON(SP,K,6)=FLOW(SP,6)/43560*86400*30.4*ICNT*PIC(K)/IPIC 
            QMON(SP,K,10)=FLOW(SP,10)/43560*86400*30.4*ICNT*DEL(K)/IDEL
            QMON(SP,K,11)=FLOW(SP,11)/43560*86400*30.4*ICNT*LAM(K)/ILAM
            QMON(SP,K,12)=FLOW(SP,12)/43560*86400*30.4*ICNT*EAS(K)/IEAS
            QMON(SP,K,15)=FLOW(SP,15)/43560*86400*30.4*ICNT*MON(K)/IMON
            QMON(SP,K,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP,K,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP,K,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP,K,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP,K,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(IQ2(IC) .GT. 0) THEN
               QMON(SP,K,5)=FLOW(SP,5)/43560*86400*30.4*ICNT*
     !                      Q2(IC,K)/IQ2(IC)
           ELSE
               QMON(SP,K,5)=0.
           ENDIF
           IF((IQ3(IC)+IQ4(IC)) .GT. 0) THEN
               QMON(SP,K,8)=FLOW(SP,8)/43560*86400*30.4*ICNT*
     !                     (Q3(IC,K)+Q4(IC,K))/(IQ3(IC)+IQ4(IC))
           ELSE
               QMON(SP,K,8)=0.
           ENDIF

  310     CONTINUE
        ELSEIF(IBEG.EQ.IEND) THEN
            QMON(SP,IBEG,4)=FLOW(SP,4)/43560*86400*30.4*ICNT*
     !                      SEL(IBEG)/ISEL
            QMON(SP,IBEG,6)=FLOW(SP,6)/43560*86400*30.4*ICNT*
     !                      PIC(IBEG)/IPIC 
            QMON(SP,IBEG,10)=FLOW(SP,10)/43560*86400*30.4*ICNT*
     !                       DEL(IBEG)/IDEL
            QMON(SP,IBEG,11)=FLOW(SP,11)/43560*86400*30.4*ICNT*
     !                       LAM(IBEG)/ILAM
            QMON(SP,IBEG,12)=FLOW(SP,12)/43560*86400*30.4*ICNT*
     !                       EAS(IBEG)/IEAS
            QMON(SP,IBEG,15)=FLOW(SP,15)/43560*86400*30.4*ICNT*
     !                       MON(IBEG)/IMON
            QMON(SP,IBEG,7)=-1*FLOW(SP,7)/43560*86400*30.4
            QMON(SP,IBEG,9)=-1*FLOW(SP,9)/43560*86400*30.4
            QMON(SP,IBEG,13)=-1*FLOW(SP,13)/43560*86400*30.4
            QMON(SP,IBEG,14)=-1*FLOW(SP,14)/43560*86400*30.4
            QMON(SP,IBEG,16)=-1*FLOW(SP,16)/43560*86400*30.4

           IF(IQ2(IC) .GT. 0) THEN
              QMON(SP,IBEG,5)=FLOW(SP,5)/43560*86400*30.4*ICNT*
     !                         Q2(IC,IBEG)/IQ2(IC)
           ELSE
              QMON(SP,IBEG,5)=0.
           ENDIF
           IF((IQ3(IC)+IQ4(IC)) .GT. 0) THEN
              QMON(SP,IBEG,8)=FLOW(SP,8)/43560*86400*30.4*ICNT*
     !                   (Q3(IC,IBEG)+Q4(IC,IBEG))/(IQ3(IC)+IQ4(IC))
           ELSE
              QMON(SP,IBEG,8)=0.
           ENDIF
        ENDIF
      ENDIF
      END

