C  COVERTS SYMTAB TO VECTOR AND ROLL DATA
      SUBROUTINE CONVRT(SYMST3)
      INTEGER SYMST3
      COMMON/MOTION/SYMTAB(5,7,20),DIRTAB(9,2)
      K=SYMST3
C  --FORM VECTOR , ROLL AND FLEXION FOR ARMS AND LEGS--
      DO 90 M=3,6
C  --IF NO CHANGE GO TO 15
      IF(SYMTAB(1,M,K).EQ.1.0)GO TO 15
C  --COPY LAST BLOCK UP--
      L=K-1
      DO 10 I=1,5
10    SYMTAB(I,M,K)=SYMTAB(I,M,L)
      GO TO 90
C
C  --RIGHT HALF OF BODY--
15    HALF=1.0
      IF(M.EQ.4)HALF=-1.0
      IF(M.EQ.6)HALF=-1.0
C  --SAVE SYMTAB FOR CALC.--
      DEP=SYMTAB(2,M,K)
      SIDE=SYMTAB(3,M,K)
      ROLL=SYMTAB(4,M,K)
      FLEX=SYMTAB(5,M,K)
C  --NORMALIZE MODULE AS DEFAULT--
      SYMTAB(1,M,K)=DIRTAB(1,2)
      SYMTAB(2,M,K)=DIRTAB(1,1)
      SYMTAB(3,M,K)=DIRTAB(1,2)
      SYMTAB(4,M,K)=0.0
      SYMTAB(5,M,K)=0.0
C  --ANY DEPTH--
      IF(ABS(DEP).GT.1.0)GO TO 30
      DEP=0.0
      GO TO 40
30      MAG=ABS(DEP)
      S=1.0
C  --BACK?
      IF(DEP.LT.00.0)S=-1.0
C--SET COMPONENTS--
      XD=S*DIRTAB(MAG,2)
      YD=DIRTAB(MAG,1)
      ZD=0.0
C  --ANY SIDE --
40    IF(ABS(SIDE).GT.1.0)GO TO 45
      SIDE=0.0
      GO TO 50
45    MAG=ABS(SIDE)
      S=1.0
      IF((HALF.EQ.-1.0).AND.(SIDE.LT.0.0))S=-1.0
      IF((HALF.EQ.1.0).AND.(SIDE.GT.0.0))S=-1.0
C  --SET COMPONENTS--
      XS=0.0
      YS=DIRTAB(MAG,1)
      ZS=S*DIRTAB(MAG,2)*HALF
C
C  --ANY ROLL-
50    IF(ABS(ROLL).LE.1.0)GO TO 60
      S=1.0
      IF(ROLL.LT.0.0)S=-1.0
      SYMTAB(4,M,K)=S*(ABS(ROLL)-1.0)*22.5
C  --ANY FLEXION--
60    IF(ABS(FLEX).LE.1.0)GO TO 70
      S=1.0
      IF(FLEX.LT.0.0)S=-1.0
      SYMTAB(5,M,K)=S*(ABS(FLEX)-1.0)*22.5
C  --ASSIGN VECTOR COMPONENTS TO TABLE--
70    IF((ABS(DEP)+ABS(SIDE)).EQ.0.0)GO TO 90
      IF(DEP.NE.0.0)GO TO 81
      XD=0.0
      YD=0.0
      ZD=0.0
81    IF(SIDE.NE.0.0)GO TO 82
      XS=0.0
      YS=0.0
      ZS=0.0
C
82    XS=XS+XD
      YS=YS+YD
      ZS=ZS+ZD
      IF((DEP.NE.0.0).AND.(SIDE.NE.0.0))YS=YS/2.0
C  ---SET INTO TABLE--
      SYMTAB(1,M,K)=XS
      SYMTAB(2,M,K)=YS
      SYMTAB(3,M,K)=ZS
90    CONTINUE
C
C-------------------------
C  --HEAD AND TORSO--
      DO 190 M=1,2
      IF(SYMTAB(1,M,K).EQ.1.0)GO TO 150
C  --NO CHANGE ,COPY BLOCK UP---
      L=K-1
      DO 110 I=1,5
      SYMTAB(I,M,K)=SYMTAB(I,M,L)
110   CONTINUE
      GO TO 190
C
C  --SAVE SYMTAB--
150   ANOD=SYMTAB(2,M,K)
      SIDE=SYMTAB(3,M,K)
      ROLL=SYMTAB(4,M,K)
C  --NORMALIZE AS DEFAULT--
      SYMTAB(1,M,K)=DIRTAB(1,2)
      SYMTAB(2,M,K)=DIRTAB(9,1)
      SYMTAB(3,M,K)=DIRTAB(1,2)
      SYMTAB(4,M,K)=0.0
C
C  --ANY NOD--
      IF(ABS(ANOD).GT.1.0)GO TO 200
      ANOD=0.0
      GO TO 300
C  --NOD VECTOR
200   MAG=ABS(ANOD)
      MAG=10-MAG
      S=1.0
C  --EXTENSION? (POS)
      IF(ANOD.GT.0.0)S=-1.0
      XD=DIRTAB(MAG,2)*S
      YD=DIRTAB(MAG,1)
      ZD=0.0
C  --ANY SIDE--
300   IF(ABS(SIDE).GT.1.0)GO TO 350
      SIDE=0.0
      GO TO 400
C  --INCLINE VECTOER
350   MAG=ABS(SIDE)
      MAG=10-MAG
C  --LEFT SIDE(NEG)
      S=1.0
      IF(SIDE.LT.0.0)S=-1.0
      XS=0.0
      YS=DIRTAB(MAG,1)
      ZS=DIRTAB(MAG,2)*S
C
C  ---ANY ROLL
400   IF(ABS(ROLL).LE.1.0)GO TO 500
      S=1.0
C  --RIHGT ROLL
      IF(ROLL.LT.0.0)S=-1.0
      SYMTAB(4,M,K)=S*(ABS(ROLL)-1.0)*22.5
C
C  --SET VECTOR--
500   IF((ABS(ANOD)+ABS(SIDE)).EQ.0.0)GO TO 190
      IF(ANOD.NE.0.0)GO TO 181
      XD=0.0
      YD=0.0
      ZD=0.0
181   IF(SIDE.NE.0.0)GO TO 182
      XS=0.0
      YS=0.0
      ZS=0.0
182   XS=XS+XD
      YS=YS+YD
      ZS=ZS+ZD
      IF((ANOD.NE.0.0).AND.(SIDE.NE.0.0))YS=YS/2.0
C  --SET COMP. INTO TABLE--
      SYMTAB(1,M,K)=XS
      SYMTAB(2,M,K)=YS
      SYMTAB(3,M,K)=ZS
C
190   CONTINUE
C
C ----------------------------
C  --ROTATE BODY--
      M=7
      IF(SYMTAB(1,M,K).EQ.1.0)GO TO 195
C  --KEEP SAME ORIENTATION--
      L=K-1
      DO 196 I=1,5
196   SYMTAB(I,M,K)=SYMTAB(I,M,L)
      GO TO 99
C  SET NEW ANGLE--
195   SYMTAB(2,M,K)=-1.0*(SYMTAB(2,M,K)-1.0)*45.0
123   FORMAT(1X,7F7.2)
C
99    RETURN
      END
