[Fortran] 纯文本查看 复制代码
DIMENSION GB1(2,2),GB2(2,2),JB(2,10),GB(2,2),
$ GE1(10,2),GE2(10,2),JE(10,10),GE(2,2),XB(2)
common /INV/GBx(70,70),GBy(70,70),GBai(70,70)
common /MATRIX/A(100,100),B(100,100),AA(100,100)
DOUBLE PRECISION GBX,GBY,GBAI,GB1,GB2,GB,GE1,GE2,GE,JE,A,B,AA
C
CHARACTER RI*12,R*1,ZZI*10,ZZO*10
REAL L
C
WRITE(*,'(1X,''Input the name of input file :'')')
READ(*,'(A)')ZZI
OPEN(1,FILE=ZZI,STATUS='OLD')
WRITE(*,'(1X,''Input the name of output file :'')')
READ(*,'(A)')ZZO
OPEN(2,FILE=ZZO,STATUS='NEW')
C * * * * * * * (ARES=mm**2,rp=Kg/dm**3,E=GPa(N/mm**2),L=mm) * * * * * * * *
READ(1,*) ARES,RP,E,L
READ(1,*) NN
rp=rp*1.E+3
ares=ares*1.E-6
E=E*1.E+6
L=L*1.E-3
c
c * * * * * * * * U2=1,U8=2,F2=3,F8=4 * * * * * * * * *
c * * * * * * * K1 & K2 are the reserved variables * * * * * * * *
c
read(1,*)k1,k2
C
GB1(1,1)=-0.5
GB1(1,2)=0.5
GB1(2,1)=0.5
GB1(2,2)=-0.5
C
GB2(1,1)=0.
GB2(1,2)=-0.5*L/(ARES*E)
GB2(2,1)=-0.5*L/(ARES*E)
GB2(2,2)=0.
C
DX=L/NN
X=0
DO 10 I=1,NN
X=X+DX
JB(1,I)=-RP*DX*0.5*X/E
JB(2,I)=-RP*DX*0.5*(L-X)/E
GE1(I,1)=0.5
GE1(I,2)=0.5
GE2(I,1)=0.5*X/(ARES*E)
GE2(I,2)=-0.5*ABS(L-X)/(ARES*E)
X2=X
X1=0.
DO 20 J=1,NN
X1=X1+DX
JE(I,J)=-0.5*ABS(X1-X2)*RP*DX/E
20 CONTINUE
10 CONTINUE