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

📄 5.txt

📁 文件1.txt,2.txt,3.txt和5.txt为用Fortran编写的有限元程序 4.txt为用c++编写的钢筋混凝土异形柱的全过程非线性分析源程序
💻 TXT
字号:
CHARACTER*12 FK,FH
INTEGER CM(6),RR(20),R,A,RJ,PJ
REAL BM(2,2),KM(6,6),FO(2),K(4000),FR(20,3)
COMMON MI,MJ,PJ
COMMON /CC1 /MN(100,2),R(100,3)
COMMON /CC2 /EA(100),X(100,Y(100),Z(100),
COMMON /CC3/C(2,6),CK(6,2), CV(2), CN(6)
COMMON /CC4 /P1(60,4),PP(200)
COMMON /CC5 A(200)
C
WRITE(*,*)’DATA file name?’
READ(*,’(A)’)FK
OPEN(21,FILE=FK,STATUS=’OLD’)
WRITE(*,*)’OUT file name?’
READ(*,’(A)’)FH
OPEN(21,FILE=FK,STATUS=’NEW’)
C
WRITE(21,30)FH
FORMAT(1X,’OUT file name,A)
READ(20,*),MI,JM,RJ,PJ
WRITE(21,40)MI,JM,RJ,PJ
FORMAT(1X,’MI=’,I3,’RJ=’,I3,’JP=’,I3,)
READ(20,*)(RR(I),I=1,RJ)
WRITE(21,50) (RR(I),I=1,RJ)
RORMAT(1X,’RR(I)=’/8X,50(/1X,10I6)
READ(20,*)((R(I,J),J=1,3),I=1,RJ)
WRITE (21,60)((R(I,J),J=1,3),I=1,RJ)
FORMAT(1X,’R(i,j)=’/8X,50(/1X,12I6)
READ(20,*)((MN(I,J),J=1,2),I=1,MI)
WRITE (21,70)((R(I,J),J=1,2),I=1,MI)
FORMAT(1X,’MN(i,j)=’/8X,50(/1X,10I6)
READ(20,*)(X(I),Y(I),Z(I),I=1,MI)
WRITE (21,80) (X(I),Y(I),Z(I),I=1,MJ)
FORMAT(1X,’X(i)--Y(i)--Z(i)=’/1X,100(/1X,9F8.3))
READ(20,*)(EA(I),I=1,MI)
WRITE(21,90)(EA(I),I=1,MI)
FORMAT(1X,’EA(i) =’/1X,100(/1X,6E12.3))
IF(PJ.NE.0)THEN
READ(20,*)((P1(I,J),J=1,4),I=1,PJ)
WRITE (21,100)((P1(I,J),J=1,4),I=1,PJ)
FORMAT(1X,’P1(i) =’/1X,50(/1X,F4.1,3E13.3))
END IF
C
N=0
MAX=0
DO 140 I=1,RJ
DO 140 J=1,3
J1=R(I,J)
IF(J1.EQ.1) THEN
N=N+1
R(I,J)=N
END IF
WRITE(*,160)I,J,R(I,J)
140	CONTINU
NJ=RJ+1
DO 170 I=NJ,MJ
DO 170 J=1,3
N=N+1
R(I,J)=N
WRITE(*,160)I,J,R(I,J)
160	FORMAT(*,1X,’R(‘,I3,’,I3,’)=’,I3)
170	CONTINUE
WRITE(*,180)N
180	FORMAT(1X,’N=’,I3)
DO 190 I=1,N
A(I)=0
190	CONTINUE
DO 220 M=1,MI
CALL DJWB(M,CM)
DO 210 IS=1,6
I1=CM(IS)
IF(I1.EQ.0) GOTO 210
DO 200 IT=1,6
IW=CM(IT)
IF(IW.EQ.0.RO.IW.GT.I1)GOTO 200
IU=I1-IW+1
IF(IU.GT.A(I1)) A(I1)=IU
200	  CONTINUE
210   CONTINUE
220	CONTINUE
DO 230 I=2,N
IF (A(I).GI.MAX)MAX=A(I)
A(I)=A(I)+A(I-1)
230	CONTINUE
WRITE(*,240)(I,A(I),I=1,N)
240   FORMAT(1X,5(’A(’,I3,’)=’,I3,2X))
WRITE (*,250) MAX
250   FORMAT(4X,’MAX=’.I3)
C
N1=A(N)
DO 260 I=1,N1
K(I)=0.0
260	CONTINUE
DO 320 M=1,MI
CALL DCS(M,AL.COX,COY,COZ)
CALL DGJ1(M,AL,BM)
IF (COX.EQ.1.0) TOTO 270
CALL BH(COX,COY,COZ,C)
CALL DGJ2(C,BM,KM)
270   CALL DJWB(M,CM)
CALL DJ2(C,BM,KM)
CALL DJMB(M,CM)
WRITE (*,280)M
280   FORMAT(4X,’KM(I,J)=(’,I3,’)’)
WRITE (*,290)((KM(IS,IT),IT=1,6),IS=1,6)
290	FORMAT(1X,6E12.4)
DO 310 IS =1,6
IF (CM(IS).EQ.0) GOTO 310
IW=CM(IS)
DO 300 IT =1,IS
IF (CM(IT).EQ.0) GOTO 300
IG=CM(IT)
IF (IW.GE.IG) IU =A(IW)-IW+IG
IF (IW.LT.IG) IU= A(IG)-IG+IW
K(IU)=K(IU)+KM(IS,IT)
300	CONTINUE
310	CONTINUE
320   CONTINUE
WRITE (*,*),’K(N)=’
WRITE (*,340) (K(IS)),IS=1,N1)
340	FORMAT(1X,5E12.4)
C
DO 370 I =1,N
PP(I)=0,0
370	CONTINUE
WRITE (*,*)’PJ(I,J)=’
WRITE(*,380)((P1(I,J),J=1,4,I=1,PJ)
380   FORMAT (1X,F4.1,3F10.4)
DO 400 I=1,PJ
IS=IFIX(P1(I,1))
DO 390 J=1,3
IT=J+1
IU=R(IS,J)
IF(IU.EQ.0) GOTO 390
PP(IU)=PP(IU)+P1(I,IT)
390	CONTINUE
400	CONTINUE
C
DO 460 I=2,N
IS=A(I)
IT=A(I-1)
IV=I-IS+IT+1
DO 450 J=IV,I
J2=A(J)
J3=A(J-1)
IW=IS-I+J
J1=J-1
H=0.0
DO 440 IU =IV,J1
I1=J-J2+J3
IF(I1.GE.IU) GOTO 440
I2=A(IU)
IG=IS-I+IU
IJ=I2-J+IU
H=H+K(IG)*K(IJ)/K(I2)
440	CONTINUE
K(IW)=K(IW)-H
450	CONTINUE
460	CONTINUE
PP(1)=PP(1)/K(1)
DO 480 I=2,N
IS=A(I)
IT=A(I-1)
IV=I-IS+IT+1
I1=I-1
H=0.0
DO 470 J=IV,I1
IW=IS-I+J
H=H+K(IW)*PP(J)
470   CONTINUE
PP(I)=(PP(I)-H)/K(IS)
480	CONTINUE
DO 500 I2=2,N
I=N+2-I2
IU=A(I)
I1=I-1
IT=A(I1)
J1=I+IT-TU+1
DO 490 J=J1,I1
M1=A(J)
H=K(W)/K(M1)
PP(J)=PP(J)-H*PP(I)
490   CONTINUE
500	CONTINUE
WRITE (*,530)
WRITE (21,530)
530	FORMAT (21X,’jie gou jie dian wei yi’)
WRITE (*,540)
WRITE (21,540)
540   FORMAT (23X,11(’---’))
WRITE(*,550)
WRITE(21,550)
550	FORMAT(7X,’I’,15X,’NX’,13X,’NY’,14X,’NF’/)
DO 580 I=1,MJ
DO 560 J=1,3
CN(J)=0.0
IT=R(I,J)
IF(IT.EQ.0) GOTO 560
CN(J)=PP(IT)
560	CONTINUE
WRITE (*,570)I,(CN(I1),I1=1,3)
WRITE (21,570)I(CM(I1),I1=1,3)
570	FORMAT (5X,I3,3X,3E,3E16.3)
580	CONTINUE
C
WRITE(*,590)
WRITE(21,590)
590	FORMAT (20X,’dan yuan gan duan nei li’)
WRITE (*,600)
WRITE (21,600)
600   FORMAT (23X,11(’---’))
WRITE (*,610)
WRITE (21,610)
610	   RMAT(7X,’I’,21X,’NI’,16X,’NJ’/)
DO 640 I=1,MI
CALL DNL(I,FO)
FO(1)=-FO(1)
WRITE (*,620)I,(FO(J),J=1,2)
WRITE (21,620)I(FO(J),J=1,2)
620	FORMAT(5X,I3,8X.2E18.4)
640	CONTINUE
WRITE (*,650)
WRITE (21,660)
660   FORMAT (20X,13(’---’))
WRITE(*,680)
WRITE(21,680)
680	FORMAT(7X,’I’,14X,’RI’,14X,’RY’,14X,’RZ’/)
CALL ZZFL(RR,RF)
CLOSE (20)
CLOSE (21)
END
C
SUBROUTINE DGJ1(M,AL,BM)
COMMON MI,MJ
COMMON /CC2 /EA(100),EE(300)
REAL BM(2,2)
B1=EA(M)/AL
BM(1,1)=B1
BM(1,2)=-B1
BM(2,2)=B1
END
C
SUBROUTINE DCS (I,AL,COX,XOY,COZ)
COMMON MI,MJ
COMMON /CC1/MN(100,2),NN(300)
COMMON CC2/EA(100),X(100),Y(100),Z(100)
REAL AL,COX,COY,COZ
IU=MN(I,1)
IV=MN(I.2)
XL=X(IV)-X(IU)
YL=Y(IV)-Y(IU)
ZL=Z(IV)-Z(IU)
AL=SQRT(XL*XL+YL*YL+ZL*ZL)
COX=XL/AL
COY=YL/AL
COZ=ZL/AL
END
C
SUBOUITINE BH(COX,XOY,COZ,C)
REAL COX,COY,COZ,C(2,6)
DO 20 IS=1,2
DO 10 IT=1,6
C(IS,IT)=0.0
10	CONTINUE
20	CONTINUE
C(1,1)=COX
C(1,2)=COY
C(1,3)=COZ
C(2,4)=COX
C(2,5)=COY
C(2,6)=COZ
END
C
SUBROUTINE DGJ2(C,BM,KM)
DIMENSION C(2,6),BM(2,2),CK(6,2)
REAL KM(6,6)
DO 30 IS=1,6
DO 20 IT=1,2
CK(IS,IT)=0.0
DO 10 M=1,2
CK (IS,IT)=CK(IS,IT)+C(M,IS)*BM(M,IT)
10	CONTINUE
20	CONTINUE
30	CONTINUE
DO 60 IS =1,6
DO 50 IT =1,6
KM(IS,IT) =0.0
DO 40 M =1,2
KM(IS,IT)=KM(IS,IT)+CK(IS,IT)*C(M,IT)
40   CONTINUE
50   CONTINUE
60	CONTINUE
END
C
SUBROUTINE DJWB(I,CM)
COMMON MI,MJ
COMMON /CC1 /MN(100,2),R(100,3)
INTEGER R,CM(6)
I1=MN(I,1)
I2=MN(I,2)
DO 10 J=1,3
J1=R(I1,J)
CM(J+3)=J1
10	CONTINUE
END
C
SUBROUTINE DNL (I,FO)
COMMON MI,MJ,RJ,PI
COMMON /CC1/MN(100,2),R(100,3)
COMMON /CC2 /EA(100),X(100,Y(100),Z(100),
COMMON /CC3/C(2,6),CK(6,2), CV(2), CN(6)
COMMON /CC4 /P1(60,4),PP(200)
INTEGER PI,CM(6)
REAL FO(2),BM(2,2)
CALL DCS(I,AL,COX,COY,COZ)
CALL DGJ1(I,AL,BM)
CALL DJWB(I,CM)
DO 10 J=1,6
IF (CM(J).NE.0) THEN
IB=CM(J)
D=PP(IB)
CN(J)=D
ELSE
CN(J)=0.0
END IF
10	CONTINUE
CALL BH(COX,COY,COZ,C)
DO 30 J=1,2
CV(J)=CV(J)+C(J,IS)*CN(IS)
20	CONTINUE
30	CONTINUE
DO 50 J=1,2
FO(J)=0.0
DO 40 IS=1,2
FO(J)=FO(J)+BM(J,IS)*CV(IS)
40   CONTINUE
50	CONTINUE
END
C
SUBROUTE ZZFL (RR,RF)
COMMON MI,MJ,RJ,PJ
COMMON /CC1/MN(100,2),R(100,3)
COMMON /CC2 /EA(100),X(100,Y(100),Z(100),
COMMON /CC3/C(2,6),CK(6,2), CV(2), CN(6)
COMMON /CC4 /P1(60,4),PP(200)
DIMENSION RF(20,3),KM(6,6),FO (2)
INTEGER PI,PJ,R,RJ,RR(20)
DO 10 I=1,RJ
DO 10 J=1,3
RF(I,J)=0.0
10	CONTINUE
DO 150 IS =1,RJ
I1=RR(IS)
DO 60 JT=1,MI
JI=MN(JT,1)
J2=MN(JT,2)
CALL DCS(JT,AL ,COX,COY,COZ)
CALL BH(COX,COY,COZ,C)
IF (I1.NE.J1) GOTO 40
CALL DNL (JT,FO)
DO 20 K1=1,3
DO 20 K2=1,2
RF(IS,K1)=RF(IS,K1)+C(K2,K1)*FO(K2)
20	CONTINUE
GOTO 60
40	IF(I1.NE.J2) GOTO 60
CALL DNL(JT,FO)
DO 50 K1=1,3
DO 50 K2=1,2
K3=K1+3
RF(IS,K1)=RF(IS,K1)+C(K2,K3)*FO(K2)
50	CONTINUE
60	CONTINUE
IF (PJ.NE.0)THEN
DO 80 JT=1,PJ
IV=IFIX(P1(JT,1))
IF (I1.NE.IV) GOTO 80
DO 70 K1=1,3
K2=K1+1
RF(IS,K1)=RF(IS,K1)-P1(JT,K2)
70	CONTINUE
GOTO 90
80	CONTINUE
END IF
90   WRITE(*,100)I1,(RF(IS,JA),JA=1,3)
WRITE (21,100) I1,(RF(IS,JA),JA=1,3)
100	FORMAT(5X,I3,3X,3F16.5)
150	CONTINUE
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -