📄 dyn.for
字号:
C-----------------------DYN.FOR-----------------------------
DIMENSION FI(2,2),X(2),D(2)
1 ,AM(2,2),AK(2,2),PK(2,2),F1(2),PF1(2),D0(2),D1(2),D2(2)
2 ,D00(2),D11(2),D22(2)
C
OPEN (6,FILE='OUTD.')
C----------- uncoupling the equations of motion---------------
FI(1,1)= 0.8812
FI(1,2)=-1.186
FI(2,1)= 1.5260
FI(2,2)= 2.053
C
WRITE(6,90)
90 FORMAT(1X,' uncoupling the equations of motion'/)
DO 10 I=1,10
T=0.12*I
IF (T.GT.0.5) GO TO 20
X(1)=0.38720*(1.-COS(1.985*T))
X(2)=0.07713*(1.-COS(5.159*T))
GO TO 30
20 X(1)=0.38720*(COS(1.985*(T-0.5))-COS(1.985*T))
X(2)=0.07713*(COS(5.159*(T-0.5))-COS(5.159*T))
30 CONTINUE
C
DO 40 J=1,2
D(J)=0.0
DO 40 K=1,2
D(J)=D(J)+FI(J,K)*X(K)
40 CONTINUE
WRITE(6,100) I,T,D(1),D(2)
100 FORMAT(1X,'I,T,D(1),D(2)= ',I4,3F12.5)
10 CONTINUE
C
C-----------by Newmark method-----------------
A0=277.777778
A1=16.6666667
A2=33.3333333
A3=1.0
A4=1.0
A5=0.0
A6=0.06
A7=0.06
C
AM(1,1)=6./12.
AM(1,2)=1./12.
AM(2,1)=1./12.
AM(2,2)=2./12.
AK(1,1)= 3.*2.
AK(1,2)=-1.*2.
AK(2,1)=-1.*2.
AK(2,2)= 1.*2.
C
D0(1)=0.0
D0(2)=0.0
D1(1)=0.0
D1(2)=0.0
D2(1)=-12./11.
D2(2)= 72./11.
F1(1)=0.0
F1(2)=1.0
C
DO 45 J=1,2
DO 45 K=1,2
PK(J,K)=AK(J,K)+A0*AM(J,K)
45 CONTINUE
CALL SGJ(PK,2,L)
C
WRITE(6,190)
190 FORMAT(/1X,' by Newmark method '/)
DO 50 I=1,10
T=0.12*I
IF (T.GT.0.5) F1(2)=0.0
DO 55 J=1,2
FF=0.0
DO 55 K=1,2
FF=FF+AM(J,K)*(A0*D0(K)+A2*D1(K)+A3*D2(K))
PF1(J)=F1(J)+FF
55 CONTINUE
C
DO 60 J=1,2
D00(J)=0.0
DO 60 K=1,2
D00(J)=D00(J)+PK(j,k)*PF1(k)
D22(J)=A0*(D00(J)-D0(J))-A2*D1(J)-A3*D2(J)
D11(J)=D1(J)+A6*D2(J)+A7*D22(J)
60 CONTINUE
C
DO 65 J=1,2
D0(J)=D00(J)
D1(J)=D11(J)
D2(J)=D22(J)
65 CONTINUE
WRITE(6,200) I,T,D00(1),D00(2)
200 FORMAT(1X,'I,T,D00(1),D00(2)=',I4,3F12.5)
50 CONTINUE
STOP
END
C-----------------------------------------------
SUBROUTINE SGJ(A,N,L)
DIMENSION A(N,N),B(2)
L=1
DO 100 K=1,N
M=N-K+1
W=A(1,1)
DO 80 I=2,N
G=A(I,1)
B(I)=G/W
IF (I.LE.M) B(I)=-B(I)
DO 70 J=2,I
70 A(I-1,J-1)=A(I,J)+G*B(J)
80 CONTINUE
A(N,N)=1.0/W
DO 90 I=2,N
90 A(N,I-1)=B(I)
100 CONTINUE
DO 110 I=1,N-1
DO 110 J=I+1,N
110 A(I,J)=A(J,I)
RETURN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -