File: intvec.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (33 lines) | stat: -rw-r--r-- 903 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
      SUBROUTINE INTVEC (VECTOR)
C
      INTEGER         VECTOR,XYZR(4),CHAR,VEC(4),VECWRD
      COMMON /SYSTEM/ SKIP(40), NCPW
      DATA    XYZR  / 1HX,1HY,1HZ,1HR /
      DATA    N     / 1HN/
C
      NSHAPE = 0
      VECWRD = VECTOR
      IF (VECWRD .EQ. 0) GO TO 125
      DO 101 I = 1,4
      VEC(I) = 0
  101 CONTINUE
C
C     SEPARATE THE FOUR CHARACTERS IN -VECWRD- (ANY COMBINATION OF THE
C     CHARACTERS X, Y, Z, AND R.
C
      DO 120 K = 1,4
      CHAR = KLSHFT(VECWRD,(K-1))
      CHAR = KRSHFT(CHAR,(NCPW-1))
      DO 111 I = 1,4
      IF (CHAR .EQ. KRSHFT(XYZR(I),(NCPW-1))) GO TO 115
  111 CONTINUE
      IF(CHAR .EQ. KRSHFT(N,(NCPW-1))) NSHAPE = 1
      GO TO 120
  115 VEC(I) = 1
  120 CONTINUE
C
      VECTOR = VEC(1) + 2*VEC(2) + 4*VEC(3) + 8*VEC(4)
      IF (VECTOR .EQ. 8) VECTOR = 15
      IF (NSHAPE .EQ. 1) VECTOR =-VECTOR
  125 RETURN
      END