电算程序

  • 格式:doc
  • 大小:60.00 KB
  • 文档页数:7

c **** static analysis for plane frame systemes ****c **** main program 1999-05-18 ****DIMENSION JE(2,100),JN(3,100),JC(6),EA(100),EI(100),X(100), * Y(100),PJ(2,50),PF(4,100)REAL*8 KE(6,6),KD(6,6),T(6,6),P(300),KB(200,20),F(6),F0(6), * D(6),BL,SI,CO,S,COPEN(5,FILE='FRAM2.DAT')READ(5,*) NE,NJ,N,NW,NPJ,NPFREAD(5,*) (X(J),Y(J),(JN(I,J),I=1,3),J=1,NJ)READ(5,*) ((JE(I,J),I=1,2),EA(J),EI(J),J=1,NE)IF(NPJ.NE.0) READ(5,*) ((PJ(I,J),I=1,2),J=1,NPJ)IF(NPF.NE.0) READ(5,*) ((PF(I,J),I=1,4),J=1,NPF)WRITE(*,10) NE,NJ,N,NW,NPJ,NPFWRITE(*,20) (J,X(J),Y(J),(JN(I,J),I=1,3),J=1,NJ)WRITE(*,30) (J,(JE(I,J),I=1,2),EA(J),EI(J),J=1,NE)IF(NPJ.NE.0) WRITE(*,40) ((PJ(I,J),I=1,2),J=1,NPJ)IF(NPF.NE.0) WRITE(*,50) ((PF(I,J),I=1,4),J=1,NPF)10 FORMAT(/6X,'NE=',I5,2X,'NJ=',I5,2X,'N=',I5,2X,'NW=',I5,2X, * 'NPJ=',I5,2X,'NPF=',I5)20 FORMAT(/7X,'NODE',7X,'X',11X,'Y',12X,'XX',8X,'YY',8X,'ZZ'/ * (1X,I10,2F12.4,3I10))30 FORMAT(/4X,'ELEMENT',4X,'NODE-I',4X,'NODE-J',11X,'EA',13X, * 'EI'/(1X,3I10,2E15.6))40 FORMAT(/7X,'CODE',7X,'PX-PY-PM'/(1X,F10.0,F15.4))50 FORMAT(/4X,'ELEMENT',7X,'IND',10X,'A',14X,'Q',/* (1X,2F10.0,2E15.4))DO 55 I=1,N55 P(I)=0.D0IF(NPJ.EQ.0) GO TO 65DO 60 I=1,NPJL=PJ(1,I)60 P(L)=PJ(2,I)65 IF(NPF.EQ.0) GO TO 90DO 70 I=1,NPFM=PF(1,I)CALL SCL(M,NE,NJ,BL,SI,CO,JE,X,Y)CALL EFX(I,NPF,BL,PF,F0)CALL CTM(SI,CO,T)CALL EJC(M,NE,NJ,JE,JN,JC)DO 75 L=1,6S=0.D0DO 80 K=1,680 S=S-T(K,L)*F0(K)F(L)=S75 CONTINUEDO 85 J=1,6L=JC(J)IF(L.EQ.0) GO TO 85P(L)=P(L)+F(J)85 CONTINUE70 CONTINUE90 DO 95 I=1,NDO 100 J=1,NW100 KB(I,J)=0.D095 CONTINUEDO 105 M=1,NECALL SCL(M,NE,NJ,BL,SI,CO,JE,X,Y)CALL CTM(SI,CO,T)CALL ESM(M,NE,BL,EA,EI,KD)CALL EJC(M,NE,NJ,JE,JN,JC)DO 110 I=1,6DO 115 J=1,6S=0.D0DO 120 L=1,6DO 125 K=1,6125 S=S+T(L,I)*KD(L,K)*T(K,J)120 CONTINUEKE(I,J)=S115 CONTINUE110 CONTINUEDO 130 L=1,6I=JC(L)IF(I.EQ.0) GO TO 130DO 135 K=1,6J=JC(K)IF(J.EQ.0.OR.J.LT.I) GO TO 135JJ=J-I+1KB(I,JJ)=KB(I,JJ)+KE(L,K)135 CONTINUE130 CONTINUE105 CONTINUEN1=N-1DO 140 K=1,N1IM=K+NW-1IF(N.LT.IM) IM=NI1=K+1DO 145 I=I1,IML=I-K+1C=KB(K,L)/KB(K,1)JM=NW-L+1DO 150 J=1,JMJJ=J+I-K150 KB(I,J)=KB(I,J)-C*KB(K,JJ)145 P(I)=P(I)-C*P(K)140 CONTINUEP(N)=P(N)/KB(N,1)DO 155 K=1,N1I=N-KJM=K+1IF(NW.LT.JM) JM=NWDO 160 J=2,JML=J+I-1160 P(I)=P(I)-KB(I,J)*P(L)155 P(I)=P(I)/KB(I,1)WRITE(*,165)165 FORMAT(/7X,'NODE',10X,'U',14X,'V',11X,'CATA') DO 170 I=1,NJDO 175 J=1,3D(J)=0.D0L=JN(J,I)IF(L.EQ.0) GO TO 175D(J)=P(L)175 CONTINUEWRITE(*,180) I,D(1),D(2),D(3)180 FORMAT(1X,I10,3E15.6)170 CONTINUEWRITE(*,200)200 FORMAT(/4X,'ELEMENT',13X,'N',17X,'Q',17X,'M') DO 205 M=1,NECALL SCL(M,NE,NJ,BL,SI,CO,JE,X,Y)CALL ESM(M,NE,BL,EA,EI,KD)CALL CTM(SI,CO,T)CALL EJC(M,NE,NJ,JE,JN,JC)DO 210 I=1,6L=JC(I)D(I)=0.D0IF(L.EQ.0) GO TO 210D(I)=P(L)210 CONTINUEDO 220 I=1,6F(I)=0.D0DO 230 J=1,6DO 240 K=1,6240 F(I)=F(I)+KD(I,J)*T(J,K)*D(K)230 CONTINUE220 CONTINUEIF(NPF.EQ.0) GO TO 270DO 250 I=1,NPFL=PF(1,I)IF(M.NE.L) GO TO 250CALL EFX(I,NPF,BL,PF,F0)DO 260 J=1,6260 F(J)=F(J)+F0(J)250 CONTINUE270 WRITE(*,280) M,(F(I),I=1,6)280 FORMAT(/1X,I10,3X,'N1=',F12.4,3X,'Q1=',F12.4,3X,'M1=',F12.4 * /14X,'N2=',F12.4,3X,'Q2=',F12.4,3X,'M2=',F12.4)205 CONTINUECLOSE(5)STOPENDCSUBROUTINE EJC(M,NE,NJ,JE,JN,JC)DIMENSION JE(2,NE),JN(3,NJ),JC(6)J1=JE(1,M)J2=JE(2,M)DO 10 I=1,3JC(I)=JN(I,J1)10 JC(I+3)=JN(I,J2)RETURNENDCSUBROUTINE SCL(M,NE,NJ,BL,SI,CO,JE,X,Y)DIMENSION JE(2,NE),X(NJ),Y(NJ)REAL*8 BL,SI,CO,DX,DYJ1=JE(1,M)J2=JE(2,M)DX=X(J2)-X(J1)DY=Y(J2)-Y(J1)BL=DSQRT(DX*DX+DY*DY)SI=DY/BLCO=DX/BLRETURNENDCSUBROUTINE ESM(M,NE,BL,EA,EI,KD)DIMENSION EA(NE),EI(NE)REAL*8 KD(6,6),BL,S,G,G1,G2,G3G=EA(M)/BLG1=2.D0*EI(M)/BLG2=3.D0*G1/BLG3=2.D0*G2/BLDO 10 I=1,6DO 10 J=1,610 KD(I,J)=0.D0KD(1,1)=GKD(1,4)=-GKD(4,4)=GKD(2,2)=G3KD(5,5)=G3KD(2,5)=-G3KD(2,3)=-G2KD(2,6)=-G2KD(3,5)=G2KD(5,6)=G2KD(3,3)=2.D0*G1KD(6,6)=2.D0*G1KD(3,6)=G1DO 20 I=1,5I1=I+1DO 30 J=I1,630 KD(J,I)=KD(I,J)20 CONTINUERETURNENDCSUBROUTINE CTM(SI,CO,T)REAL*8 T(6,6),SI,CODO 10 I=1,6DO 10 J=1,610 T(I,J)=0.D0T(1,1)=COT(1,2)=SIT(2,1)=-SIT(2,2)=COT(3,3)=1.D0DO 20 I=1,3DO 20 J=1,320 T(I+3,J+3)=T(I,J)RETURNENDCSUBROUTINE EFX(I,NPF,BL,PF,F0)DIMENSION PF(4,NPF)REAL*8 F0(6),A,B,C,G,Q,S,BLIND=PF(2,I)A=PF(3,I)Q=PF(4,I)C=A/BLG=C*CB=BL-ADO 5 J=1,65 F0(J)=0.D0GO TO (10,20,30,40,50,60,70),IND10 S=Q*A*0.5D0F0(2)=-S*(2.D0-2.D0*G+C*G)F0(5)=-S*G*(2.D0-C)S=S*A/6.D0F0(3)=S*(6.D0-8.D0*C+3.D0*G)F0(6)=-S*C*(4.D0-3.D0*C)GO TO 10020 S=B/BLF0(2)=-Q*S*S*(1.D0+2.D0*C)F0(5)=-Q*G*(1.D0+2.D0*S)F0(3)=Q*S*S*AF0(6)=-Q*B*GGOTO 10030 S=B/BLF0(2)=-6.D0*Q*C*S/BLF0(5)=-F0(2)F0(3)=Q*S*(2.D0-3.D0*S)F0(6)=Q*C*(2.D0-3.D0*C)GO TO 10040 S=Q*A*0.25D0F0(2)=-S*(2.D0-3.D0*G+1.6D0*G*C)F0(5)=-S*G*(3.D0-1.6D0*C)S=S*AF0(3)=S*(2.D0-3.D0*C+1.2D0*G)/1.5D0F0(6)=-S*C*(1.D0-0.8D0*C)GO TO 10050 F0(1)=-Q*A*(1.D0-0.5D0*C)F0(4)=-0.5D0*Q*C*AGOTO 10060 F0(1)=-Q*B/BLF0(4)=-Q*CGO TO 10070 S=B/BLF0(2)=-Q*G*(3.D0*S+C)F0(5)=-F0(2)S=S*B/BLF0(3)=-Q*S*AF0(6)=Q*G*B100 RETURNEND。