      SUBROUTINE STPAX3 ( AGAIN)
      INTEGER IFORCE(25), ISTRES(100), ELEMID, IBLOCK(62,14)
     1,       ICLOCK(62,14),CANGLE
C
      REAL    SAVEF(75), SAVES(75)
C
      LOGICAL AGAIN
C
      COMMON /SDR2X7/ DUM(100),STRESS(100),FORCE(25)
     1,               SKIP(729),BLOCK(62,14),CLOCK(62,14)
C
C SCRATCH BLOCK
      COMMON /SDR2X8/ DISP(59),NANGLE,ELEMID,UNU(94),KANGLE,KLEMID
      COMMON /ISAVE / ISAVEF(75),ISAVES(75)
C
      COMMON /SDR2DE/ DUM5(33), IPART
C
      COMMON /SDR2X4/ DUM4(51),KTYPE
C
C
      EQUIVALENCE ( ISTRES(1), STRESS(1)), ( IFORCE(1), FORCE(1))
     1,            (IBLOCK(1,1), BLOCK(1,1))
     2,            (ICLOCK(1,1),CLOCK(1,1)),(ISAVEF(1),SAVEF(1))
     3,            (ISAVES(1),SAVES(1)),(NANGLE,CANGLE)
C
      IF ( AGAIN ) GO TO 10
      AGAIN = .TRUE.
      KANGLE = 0
   10 NANGLE = KANGLE
      ELEMID = KLEMID
      NANGLE = NANGLE + 1
      KANGLE = NANGLE
C
C
C  BRANCH TO INSERT STRESSES AND FORCES INTO FORCE AND STRESS OR
C                                            SAVEF AND SAVES
C
C    KTYPE=1 - REAL OUTPUT FROM BLOCK IS TRANSFERED TO CLOCK, THEN
C              STORED IN FORCE AND STRESS, NOTHING IN SAVEF AND SAVES
C    KTYPE=2 - COMPLEX OUTPUT
C    IPART=1 - IMAGINARY PART OF COMPLEX OUTPUT FROM BLOCK, STORED
C              IN SAVEF AND SAVES
C    IPART=2 - REAL PART OF COMPLEX OUTPUT FROM CLOCK STORED IN
C              FORCE AND STRESS
C
      IF(KTYPE.EQ.2) GO TO 19
      DO 15 I=1,62
      DO 15 J=1,14
   15 CLOCK(I,J) = BLOCK(I,J)
   19 CONTINUE
C
C  OUTPUT FORCES FOR THIS ANGLE
      IFORCE(1)=ELEMID
      FORCE(2) = CLOCK(1,CANGLE)
      DO 20 I=1,16
      FORCE(2+I) = CLOCK(46+I,CANGLE)
   20 CONTINUE
C
C OUTPUT STRESSES
      ISTRES  (1) = ELEMID
      STRESS(2) = CLOCK(1,CANGLE)
      DO 30 I=1,45
      STRESS(2+I) = CLOCK(I+1,CANGLE)
   30 CONTINUE
C
      IF(KTYPE.EQ.2) GO TO 40
      IF(CANGLE .EQ. 14) GO TO 100
      IF(ICLOCK(1,CANGLE+1) .EQ. 1) GO TO 100
      GO TO 70
C
   40 CONTINUE
C
C  OUTPUT FORCES FOR THIS ANGLE
      ISAVEF(1)=ELEMID
      SAVEF(2) = BLOCK (1,NANGLE)
      DO 50 I=1,16
      SAVEF (2+I) = BLOCK (46+I, NANGLE)
   50 CONTINUE
C
C OUTPUT STRESSES
      ISAVES(1) = ELEMID
      SAVES(2) = BLOCK(1,NANGLE)
      DO 60 I=1,45
      SAVES(2+I) = BLOCK(I+1,NANGLE)
   60 CONTINUE
C
      IF (NANGLE .EQ. 14) GO TO 100
      IF (IBLOCK(1,NANGLE+1) .EQ. 1)  GO TO 100
   70 CONTINUE
C
      RETURN
  100 AGAIN = .FALSE.
      RETURN
      END
