580
16 Computer Programs in Vibration Analysis
Table 16.3 (continued)
**************************SUBROUTINE R8UFOR******************************
SUBROUTINE R8UFOR(ND,U,V,NK,N,M,LOCK)
**
SOLVES LV=U BY FORWARD SUBSTITUTION
**
DIMENSION U(300,20),V(300,20)
COMMON/A/NNF,NBH,L(7500),G(7500),GL(300),LD(300),GD(300)
INTEGER GD,Q
REAL L
DO 12 K=LOCK,M
12
V(1,K)=U(1,K)/L(1)
DO 13 I=2,N
Q=LD(I)-I
M1=1+LD(I-1)-Q
DO 13 K=LOCK,M
EL=0.0
IF(M1-I)10,13,10
10
CONTINUE
I1=I-1
DO 14 J=M1,I1
14
EL=EL+L(J+Q)*V(J,K)
13
V(I,K)=(U(I,K)-EL)/L(LD(I))
RETURN
END
**************************SUBROUTINE R8UDEC******************************
SUBROUTINE R8UDEC(ND,U,V,W,BD,N,M,LOCK,TOLVEC)
**
SORTS VECTORS IN U,V IN ASCENDING ORDER OF EIGENVALUES
**
DIMENSION U(300,20),V(300,20),W(300,20),BD(20)
C
THIS SECTION CALCULATES THE EIGENVALUES
DO 1 J=LOCK,M
EL=0.0
DO 2 I=1,N
2
EL=EL+U(I,J)*V(I,J)
1
BD(J)=EL
C
THIS SECTION TESTS THAT THE EIGEN VALUES ARE IN
C
DECENDING ORDER AND IF NOT SORTS THEM
LOC1=LOCK+1
DO 3 J=LOC1,M
I=J
4
K=I-1
PQ=ABS(BD(K))-ABS(BD(I))
IF(PQ)20,20,3
20
CONTINUE
EL=BD(I)
BD(I)=BD(K)
BD(K)=EL
DO 5 II=1,N
EL=U(II,I)
EL1=V(II,I)
U(II,I)=U(II,K)
V(II,I)=V(II,K)
U(II,K)=EL
V(II,K)=EL1
5
CONTINUE
I=I-1
KKL=I-1-LOCK
IF(KKL)3,3,4
3
CONTINUE
C
THIS SECTION CALCULATES THE INTERACTION BETWEEN
C
THE ITERATION VECTORS AND DECOUPLE THEM
39
DO 6 I=1,N
DO 6 J=LOCK,M
6
W(I,J)=V(I,J)
DO 8 I=LOCK,M
I1=I-1
IF(I-1)25,8,25
(continued)
Précédent

- 588/628

Suivant