FTN,Y,L 
C*************************************************************
C 
C     NAME:   EQUIV 
C     SOURCE: 12824-18049 
C     RELOC:  PART OF 12824-12002 
C     PGMR:   BG,CG 
C 
C  ***********************************************************
C  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS *
C  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,  *
C  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE    *
C  * WITHOUT THE PRIOR CONSENT OF HEWLETT-PACKARD COMPANY.   *
C  ***********************************************************
* 
C*************************************************************
      SUBROUTINE VADD(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) + V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE VSUB(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) - V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE VMPY(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) * V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE VDIV(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) / V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE VSAD(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S + V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VSSB(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S - V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VSMY(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S * V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VSDV(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S / V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VPIV(S,V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = S * V1(J1) + V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE VDOT(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1),V2(1)
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      DS = DS + DBLE(V1(J1)) * DBLE(V2(J2)) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE VABS(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = ABS(V1(J1))
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VSUM(S,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1)
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      J1 = 1
      DO 10 I = 1,N 
      DS = DS + V1(J1)
   10 J1 = J1 + IX1 
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE VNRM(S,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1(1)
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      J1 = 1
      DO 10 I = 1,N 
      DS = DS + ABS(V1(J1)) 
   10 J1 = J1 + IX1 
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE VMAX(IMAX,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),MAX,TMAX 
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = V1(1) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMAX = V1(J1) 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE VMAB(IMAX,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),MAX,TMAX 
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = ABS(V1(1))
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMAX = ABS(V1(J1))
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE VMIN(IMIN,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),MIN,TMIN 
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = V1(1) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMIN = V1(J1) 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE VMIB(IMIN,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),MIN,TMIN 
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = ABS(V1(1))
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMIN = ABS(V1(J1))
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE VMOV(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VSWP(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2(1),TEMP 
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      TEMP = V1(J1) 
      V1(J1) = V2(J2) 
      V2(J2) = TEMP 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE WADD(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 + V2
      CALL WFIX2(V1,IX1)
      CALL WFIX2(V2,IX2)
   10 CALL WFIX2(V3,IX3)
      RETURN
      END 
      SUBROUTINE WSUB(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 - V2
      CALL WFIX2(V1,IX1)
      CALL WFIX2(V2,IX2)
   10 CALL WFIX2(V3,IX3)
      RETURN
      END 
      SUBROUTINE WMPY(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 * V2
      CALL WFIX2(V1,IX1)
      CALL WFIX2(V2,IX2)
   10 CALL WFIX2(V3,IX3)
      RETURN
      END 
      SUBROUTINE WDIV(V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 / V2
      CALL WFIX2(V1,IX1)
      CALL WFIX2(V2,IX2)
   10 CALL WFIX2(V3,IX3)
      RETURN
      END 
      SUBROUTINE WSAD(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S + V1 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WSSB(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S - V1 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WSMY(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S * V1 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WSDV(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S / V1 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WPIV(S,V1,IX1,V2,IX2,V3,IX3,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = S * V1 + V2
      CALL WFIX2(V1,IX1)
      CALL WFIX2(V2,IX2)
   10 CALL WFIX2(V3,IX3)
      RETURN
      END 
      SUBROUTINE WDOT(S,V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL S,V1,V2
      EMA V1,V2 
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      DO 10 I = 1,N 
      DS = DS + DBLE(V1) * DBLE(V2) 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE WABS(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = ABS(V1)
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WSUM(S,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1 
      EMA V1
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      DO 10 I = 1,N 
      DS = DS + V1
   10 CALL WFIX2(V1,IX1)
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE WNRM(S,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      REAL S,V1 
      EMA V1
      DOUBLE PRECISION DS 
      IF (N.LE.0) RETURN
      DS = 0.0D0
      DO 10 I = 1,N 
      DS = DS + ABS(V1) 
   10 CALL WFIX2(V1,IX1)
      S = SNGM(DS)
      RETURN
      END 
      SUBROUTINE WMAX(IMAX,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,MAX,TMAX
      EMA V1
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = V1
      DO 10 I = 2,N 
      CALL WFIX2(V1,IX1)
      TMAX = V1 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE WMAB(IMAX,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,MAX,TMAX
      EMA V1
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = ABS(V1) 
      DO 10 I = 2,N 
      CALL WFIX2(V1,IX1)
      TMAX = ABS(V1)
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE WMIN(IMIN,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,MIN,TMIN
      EMA V1
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = V1
      DO 10 I = 2,N 
      CALL WFIX2(V1,IX1)
      TMIN = V1 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE WMIB(IMIN,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,MIN,TMIN
      EMA V1
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = ABS(V1) 
      DO 10 I = 2,N 
      CALL WFIX2(V1,IX1)
      TMIN = ABS(V1)
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE WMOV(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = V1 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WVMOV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1,V2(1) 
      EMA V1
      IF (N.LE.0) RETURN
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = V1 
      CALL WFIX2(V1,IX1)
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE VWMOV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      REAL V1(1),V2 
      EMA V2
      IF (N.LE.0) RETURN
      J1 = 1
      DO 10 I = 1,N 
      V2 = V1(J1) 
      J1 = J1 + IX1 
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE WSWP(V1,IX1,V2,IX2,N)
     +,12824-1X049 REV.2026 800506
      REAL V1,V2,TEMP 
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      TEMP = V1 
      V1 = V2 
      V2 = TEMP 
      CALL WFIX2(V1,IX1)
   10 CALL WFIX2(V2,IX2)
      RETURN
      END 
      SUBROUTINE DVADD(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) + V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE DVSUB(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) - V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE DVMPY(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) * V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE DVDIV(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = V1(J1) / V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE DVSAD(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S + V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVSSB(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S - V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVSMY(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S * V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVSDV(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = S / V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVPIV(S,V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1),V3(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      J3 = 1
      DO 10 I = 1,N 
      V3(J3) = S * V1(J1) + V2(J2)
      J1 = J1 + IX1 
      J2 = J2 + IX2 
   10 J3 = J3 + IX3 
      RETURN
      END 
      SUBROUTINE DVDOT(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1),V2(1)
      IF (N.LE.0) RETURN
      S = 0.0D0 
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      S = S + V1(J1) * V2(J2) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVABS(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = DABS(V1(J1)) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVSUM(S,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1)
      IF (N.LE.0) RETURN
      S = 0.0D0 
      J1 = 1
      DO 10 I = 1,N 
      S = S + V1(J1)
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVNRM(S,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1(1)
      IF (N.LE.0) RETURN
      S = 0.0D0 
      J1 = 1
      DO 10 I = 1,N 
      S = S + DABS(V1(J1))
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVMAX(IMAX,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),MAX,TMAX 
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = V1(1) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMAX = V1(J1) 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVMAB(IMAX,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),MAX,TMAX 
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = DABS(V1(1)) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMAX = DABS(V1(J1)) 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVMIN(IMIN,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),MIN,TMIN 
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = V1(1) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMIN = V1(J1) 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVMIB(IMIN,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),MIN,TMIN 
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = DABS(V1(1)) 
      J1 = 1 + IX1
      DO 10 I = 2,N 
      TMIN = DABS(V1(J1)) 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 J1 = J1 + IX1 
      RETURN
      END 
      SUBROUTINE DVMOV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1)
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = V1(J1) 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVSWP(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2(1),TEMP 
      IF (N.LE.0) RETURN
      J1 = 1
      J2 = 1
      DO 10 I = 1,N 
      TEMP = V1(J1) 
      V1(J1) = V2(J2) 
      V2(J2) = TEMP 
      J1 = J1 + IX1 
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DWADD(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 + V2
      CALL WFIX4(V1,IX1)
      CALL WFIX4(V2,IX2)
   10 CALL WFIX4(V3,IX3)
      RETURN
      END 
      SUBROUTINE DWSUB(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 - V2
      CALL WFIX4(V1,IX1)
      CALL WFIX4(V2,IX2)
   10 CALL WFIX4(V3,IX3)
      RETURN
      END 
      SUBROUTINE DWMPY(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 * V2
      CALL WFIX4(V1,IX1)
      CALL WFIX4(V2,IX2)
   10 CALL WFIX4(V3,IX3)
      RETURN
      END 
      SUBROUTINE DWDIV(V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = V1 / V2
      CALL WFIX4(V1,IX1)
      CALL WFIX4(V2,IX2)
   10 CALL WFIX4(V3,IX3)
      RETURN
      END 
      SUBROUTINE DWSAD(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S + V1 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWSSB(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S - V1 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWSMY(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S * V1 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWSDV(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = S / V1 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWPIV(S,V1,IX1,V2,IX2,V3,IX3,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2,V3 
      EMA V1,V2,V3
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V3 = S * V1 + V2
      CALL WFIX4(V1,IX1)
      CALL WFIX4(V2,IX2)
   10 CALL WFIX4(V3,IX3)
      RETURN
      END 
      SUBROUTINE DWDOT(S,V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      S = 0.0D0 
      DO 10 I = 1,N 
      S = S + V1 * V2 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWABS(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = DABS(V1) 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWSUM(S,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1 
      EMA V1
      IF (N.LE.0) RETURN
      S = 0.0D0 
      DO 10 I = 1,N 
      S = S + V1
   10 CALL WFIX4(V1,IX1)
      RETURN
      END 
      SUBROUTINE DWNRM(S,V1,IX1,N)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION S,V1 
      EMA V1
      IF (N.LE.0) RETURN
      S = 0.0D0 
      DO 10 I = 1,N 
      S = S + DABS(V1)
   10 CALL WFIX4(V1,IX1)
      RETURN
      END 
      SUBROUTINE DWMAX(IMAX,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,MAX,TMAX
      EMA V1
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = V1
      DO 10 I = 2,N 
      CALL WFIX4(V1,IX1)
      TMAX = V1 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE DWMAB(IMAX,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,MAX,TMAX
      EMA V1
      IF (N.LE.0) RETURN
      IMAX = 1
      IF (N.EQ.1) RETURN
      MAX = DABS(V1)
      DO 10 I = 2,N 
      CALL WFIX4(V1,IX1)
      TMAX = DABS(V1) 
      IF (TMAX.LE.MAX) GO TO 10 
      IMAX=I
      MAX=TMAX
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE DWMIN(IMIN,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,MIN,TMIN
      EMA V1
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = V1
      DO 10 I = 2,N 
      CALL WFIX4(V1,IX1)
      TMIN = V1 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE DWMIB(IMIN,V1,IX1,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,MIN,TMIN
      EMA V1
      IF (N.LE.0) RETURN
      IMIN = 1
      IF (N.EQ.1) RETURN
      MIN = DABS(V1)
      DO 10 I = 2,N 
      CALL WFIX4(V1,IX1)
      TMIN = DABS(V1) 
      IF (TMIN.GE.MIN) GO TO 10 
      IMIN=I
      MIN=TMIN
   10 CONTINUE
      RETURN
      END 
      SUBROUTINE DWMOV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      V2 = V1 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWVMV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2(1) 
      EMA V1
      IF (N.LE.0) RETURN
      J2 = 1
      DO 10 I = 1,N 
      V2(J2) = V1 
      CALL WFIX4(V1,IX1)
   10 J2 = J2 + IX2 
      RETURN
      END 
      SUBROUTINE DVWMV(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1(1),V2 
      EMA V2
      IF (N.LE.0) RETURN
      J1 = 1
      DO 10 I = 1,N 
      V2 = V1(J1) 
      J1 = J1 + IX1 
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      SUBROUTINE DWSWP(V1,IX1,V2,IX2,N) 
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION V1,V2,TEMP 
      EMA V1,V2 
      IF (N.LE.0) RETURN
      DO 10 I = 1,N 
      TEMP = V1 
      V1 = V2 
      V2 = TEMP 
      CALL WFIX4(V1,IX1)
   10 CALL WFIX4(V2,IX2)
      RETURN
      END 
      FUNCTION SNGM(X)
     +,12824-1X049 REV.2026 800506
      DOUBLE PRECISION X,Y
      INTEGER IS(2),IY(4) 
      EQUIVALENCE (S,IS),(Y,IY) 
      Y=X 
      IS(1)=IY(1) 
      IS(2)=(IY(2).AND.177400B).OR.(IY(4).AND.377B) 
      SNGM=S
      RETURN
      END 
                                                                                                                                                                                                                                  