⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dyn.for

📁 王元汉
💻 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 + -