File: valvec.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 (136 lines) | stat: -rw-r--r-- 4,331 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
      SUBROUTINE VALVEC
C
C     LARGE ORDER REAL SYMMETRIC EIGENVALUE-EIGENVECTOR PROBLEM
C
      INTEGER         QR,MCB(8),TRI(3),QRX(3),WIL(3),VAL(3)
      DIMENSION       VCOM(30)
      COMMON /ZZZZZZ/ A(1)
      COMMON /GIVN  / TITLE(150)
CWKBR 2/94 SPR93027 COMMON /SYSTEM/ ISYS
      COMMON /SYSTEM/ ISYS, IDUMM(53), IPREC
      EQUIVALENCE     (MD   ,TITLE(3)), (VCOM(1),TITLE(101)),
     1                (N    ,VCOM( 1)), (NV     ,VCOM(   7)),
     2                (OEIGS,VCOM(11)), (NVER   ,VCOM(  13)),
     3                (NEVER,VCOM(14)), (ITERM  ,VCOM(  16))
      DATA    TRI   / 4HTRID, 4HI   , 4H    /
      DATA    QRX   / 4HQRIT, 4HER  , 4H    /
      DATA    WIL   / 4HWILV, 4HEC  , 4H    /
      DATA    VAL   / 4HVALV, 4HEC  , 4H    /
      DATA    IBEGN , IEND  / 4HBEGN, 4HEND /
C
C     DEFINITION OF VARIABLES AND DATA FORMATS
C
C     MD       INPUT MATRIX
C     N        SIZE OF MATRIX
C     NV       NUMBER OF EIGENVECTORS DESIRED
C     OEIGS    EIGENVALUE SUMMARY FILE
C     A        OPEN CORE
C     ID       POINTER TO DIAGONALS      -- N OF THEM (D.P.)
C     IO       POINTER TO OFF-DIAGONALS  -- N OF THEM (D.P.)
C     IV       POINTER TO EIGENVALUES    -- N OF THEM (D.P.)
C     IL       POINTER TO ORDER FOUND ARRAY N OF THEM (S.P.)
C     I1 - I6  POINTS TO SCRATCH ARRAYS  -- 2XN LONG
C     NVER     NUMBER OF VECTORS    ERRORS
C     NEVER    NUMBER OF EIGENVALUE ERRORS
C     ITERM    REASON FOR TERMINATION
C
C     INITIALIZATION FOR VALVEC IN BLOCKDATA ROUTINE READBD
C
C     DATA
C    1 MO, MD,MR1, M1, M2, M3, M4,LGAMA,OEIGS,PHIA,ORDER,RSTRT,NCOL,MAX/
C    *301,304,202,303,307,308,309,  201,  204, 305,   -2,   0 ,   0,253/
C
C
      VAL(3) = IBEGN
      CALL CONMSG (VAL,3,0)
      ITERM  = 1
      MCB(1) = MD
      CALL RDTRL (MCB(1))
      N  = MCB(2)
      N2 = N*IPREC
      ID = 1
      IO = ID + N2
      IV = IO + N2
      IL = IV + N2
      I1 = IL + N
      IF ((I1 + 1)/2  .EQ. I1/2) I1 = I1 + 1
      I2 = I1 + N2
      I3 = I2 + N2
      I4 = I3 + N2
      I5 = I4 + N2
      I6 = I5 + N2
C
C     TRIDIAGONALIZATION.
C
      IF (N .GT. 2) GO TO 101
CWKBD 2/94 SPR93027 CALL SMLEIG (A(ID),A(IO),A(IV)) 
CWKBNB 2/94 SPR93027
      IF ( IPREC .EQ. 2 ) CALL SMLEIG (A(ID),A(IO),A(IV)) 
      IF ( IPREC .EQ. 1 ) CALL SMLEIG1(A(ID),A(IO),A(IV)) 
CWKBNE 2/94 SPR93027
      
      IF (N-2) 300,200,300
  101 TRI(3) = IBEGN
      CALL CONMSG (TRI,3,0)
CWKBD 2/94 SPR93027 CALL TRIDI (A(ID),A(IO),A(IV),A(IL),A(I1),A(IL))
CWKBNB 2/94 SPR93027
      IF ( IPREC .EQ. 2 )
     &CALL TRIDI (A(ID),A(IO),A(IV),A(IL),A(I1),A(IL))
C                   D      O    V     A     B    
      IF ( IPREC .EQ. 1 )
     &CALL TRIDI1(A(ID),A(IO),A(IV),A(IL),A(I1),A(IL))
C                   D      O    V     A     B   
CWKBNE 2/94 SPR93027
      TRI(3) = IEND
      CALL CONMSG (TRI,3,0)
C
C     EIGENVALUES
C
  200 QR =  0
      IF (N .LE. 2) QR = 1
      QRX(3) = IBEGN
      CALL CONMSG (QRX,3,0)
CWKBD 2/94 SPR93027 CALL QRITER (A(IV),A(I1),A(IL),QR) 
CWKBNB 2/94 SPR93027
      IF ( IPREC .EQ. 2 ) CALL QRITER (A(IV),A(I1),A(IL),QR) 
      IF ( IPREC .EQ. 1 ) CALL QRITER1(A(IV),A(I1),A(IL),QR) 
CWKBNE 2/94 SPR93027
      
      QRX(3) = IEND
      CALL CONMSG (QRX,3,0)
      RSTRT  = 0
      WIL(3) = IBEGN
      CALL CONMSG (WIL,3,0)
C
C     EIGENVECTORS
C
CWKBDB 2/94 SPR93027
C     CALL WILVEC (A(ID),A(IO),A(IV),A(IL),A(I1),A(I2),A(I3),A(I4),
C     1             A(I5),A(I6),N,A(I6))
CWKBDE 2/94 SPR93027
CWKBNB 2/94 SPR93027
      IF ( IPREC .EQ. 1 )
C                    D      0    C    A      B
     &CALL WILVEC1(A(ID),A(IO),A(IV),A(IL),A(I1),A(I2),A(I3),A(I4),
     &             A(I5),A(I6),N,A(I6))
      IF ( IPREC .EQ. 2 )
C                    D      0    C    A      B
     &CALL WILVEC (A(ID),A(IO),A(IV),A(IL),A(I1),A(I2),A(I3),A(I4),
     &             A(I5),A(I6),N,A(I6))
CWKBNE 2/94 SPR93027
      WIL(3) = IEND
      CALL CONMSG (WIL,3,0)
  300 CONTINUE
      CALL GOPEN (OEIGS,A(1),1)
      MCB(1) = 4
      MCB(2) = N
      MCB(3) = NV
      MCB(4) = NEVER
      MCB(5) = NVER
      MCB(8) = ITERM
      CALL WRITE (OEIGS,MCB,8,1)
      CALL CLOSE (OEIGS,1)
      VAL(3) = IEND
      CALL CONMSG (VAL,3,0)
      RETURN
      END