File: fbsinv.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (49 lines) | stat: -rw-r--r-- 1,300 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      SUBROUTINE FBSINV (X,Y,IOBUFF)
C
C     SINGLE PRECISION VERSION
C
C     FBSINV IS A SPECIAL FORWARD-BACKWARD SUBSTITUTION ROUTINE FOR
C     INVPWR. IT OPERATES ON CONJUNCTION WITH SDCOMP.
C     THE ARITHMETIC PRECISION IS THAT OF THE INPUT FILE
C
C     FILEL  = MATRIX CONTROL BLOCK FOR THE LOWER TRIANGLE
C     X      = THE LOAD VECTOR
C     Y      = THE SOLUTION VECTOR
C     IOBUFF = NOT USED
C
      INTEGER         FILEL   ,PARM(3)  ,IBLK(15)
      REAL            X(1)    ,Y(1)
      COMMON /FBSX  / FILEL(7)
      EQUIVALENCE    (FILEL(3),NROW), (FILEL(5),LTYPE)
      DATA    PARM  / 4H      ,4HFBSI, 4HNV   /
C
C     FORWARD PASS
C
      PARM(1) = FILEL(1)
      IBLK(1) = FILEL(1)
      IF (LTYPE .EQ. 2) GO TO 20
      IF (LTYPE .NE. 1) GO TO 50
C
C     TRANSFER THE SINGLE PRECISION LOAD VECTOR TO THE SOLUTION VECTOR
C
      DO 10 I = 1,NROW
   10 Y(I) = X(I)
      CALL FBS1 (IBLK,Y,Y,NROW)
      GO TO 40
C
C     TRANSFER THE DOUBLE PRECISION LOAD VECTOR TO THE SOLUTION VECTOR
C
   20 NROW2 = 2*NROW
      DO 30 I = 1,NROW2
   30 Y(I) = X(I)
      CALL FBS2 (IBLK,Y,Y,NROW2)
C
   40 CALL REWIND (FILEL)
      CALL SKPREC (FILEL,1)
      RETURN
C
C     FATAL ERRORS
C
   50 CALL MESAGE (-7,PARM(1),PARM(2))
      RETURN
      END