      PROGRAM ARTEST
      DIMENSION XP(10),YP(10)
      DATA XP/200.,700.,800.,1000.,900.,300.,800.,250.,700.,200./
      DATA YP/500.,700.,500.,400.,100.,100.,300.,300.,600.,400./
C
C               TESTING PROGRAM FOR AREA.
c     CALL INITT(960)
      YP(2) = 200.
      N = 10
      DO 300 I = 3,N
c     CALL ERASE
      IX = XP(1)
      IY = YP(1)
c     CALL MOVABS(IX,IY)
      DO 100 J = 1,I
      IX = XP(J+1)
      IY = YP(J+1)
      IF (J.LT.I) GO TO 100
      IX = XP(1)
      IY = YP(1)
c 100 CALL DRWABS(IX,IY)
  100 continue
      CALL AREA(I,XP,YP,A)
c     CALL FINITT(0,767)
      PRINT 9000, I,A
      PRINT 9001, (XP(J), J=1,I)
      PRINT 9001, (YP(J), J=1,I)
      READ 9002,INP
  300 CONTINUE
 9000 FORMAT (I5,1P3E20.8)
 9001 FORMAT (10F12.3)
 9002 FORMAT (I1)
      END
      SUBROUTINE AREA(N,XP,YP,A)
C     THE SUBROUTINE AREA DETERMINES THE AREA
C     OF A POLYGON (REGULAR OR IRREGULAR, INCLUDING CONCAVE AND
C     RE-ENTRANT).  WRITTEN BY MELVIN L. PRUEITT.  VERSION AUG. 25,1980.
C  N  IS THE NUMBER OF VERTICES OF THE POLYGON.
C  XP, YP ARE ARRAYS GIVING THE COORDINATES OF THE POLYGON VERTICES.
C  A  IS THE AREA RETURNED TO THE CALLER.  IT IS POSITIVE IF THE NET
C     ROTATION OF THE POLYGON IS CLOCKWISE AND NEGATIVE IF THE
C     NET ROTATION IS COUNTERCLOCKWISE.
      DIMENSION XP(1),YP(1)
      N1 = N-1
      X1 = XP(1)
      Y1 = YP(1)
      X2 = XP(2)
      Y2 = YP(2)
      A = 0.
C                         MAIN LOOP.
      DO 500 I = 2,N1
      X3 = XP(I+1)
      Y3 = YP(I+1)
      A = A+(Y2+Y1)*(X2-X1)+(Y3+Y2)*(X3-X2)+(Y1+Y3)*(X1-X3)
      X2 = X3
  500 Y2 = Y3
      A = .5*A
      RETURN
      END
