[Fortran] 纯文本查看 复制代码
!变荷载和温度下多元复合地基
implicit none
real rw,re,rs,H,Th1,Ew,Es !尺寸参数
real a,b,T
real kh,kw,ks !渗透性参数
real s,n,Y,C1,C2,Th !压缩模量
real F,F1,F2,F3,M
real Fa,Tm1,Tm2,Tm3,Tm
real Pi !定义圆周率pai
real U !平均固结度
integer mm,mmE !mm--循环变量,mmE--循环中止数
integer NN !为ut累积控制变量
real temp,utemp
!定义数组
real ut
dimension ut(0:100)
!打开数据文件
open(16,file='Input.dat',status='old')
!读入数据
read(16,*) rw,re,rs,H,Th1
read(16,*) a,b,T
read(16,*) kh,kw,ks
read(16,*) Ew,Es
write(*,*) rw, re, rs,H,Th1
write(*,*) a,b,T
write(*,*) kh,kw,ks
write(*,*) Ew,Es
pause
!参数计算部分
Pi=3.141592654
n=re/rw
s=rs/rw
Y=Ew/Es
F1=(log(n/s)+(kh/ks)*log(s)-0.75)*(n*n/(n*n-1))
F2=(1-kh/ks)*(1-(s*s)/(4*n*n))*(s*s)/(n*n-1)
F3=(kh/ks)*(1/(n*n-1))*(1-1/(4*n*n))
F=F1+F2+F3
Th=0.0001
10 IF (Th.LE.100) THEN
temp=0.0
utemp=0.0
U=0.0
mmE=100
IF (Th.LE.Th1) THEN
DO mm=1,mmE
! temp=0.0
M=(2.0*mm-1.0)*Pi/2.0
C1=1/(a*T+b)
C2=(a*T+b)
Tm1=(4*kw*(n*n-1+Y)*C2)/(kh*n*n*(n*n-1))
Tm2=(H*H*C2)/(M*M)
Tm3=(F*re*re*kw)/(2.0*n*n*kh)
Tm=Tm1/(Tm2+Tm3) !就是tao m
temp=1.0/(Tm*Th1)*2.0/(M*M)*(1-exp(-Tm*Th))
utemp=utemp+temp
ENDDO
U=Th/Th1-Utemp !原
ELSEIF (Th.GE.Th1) THEN
DO mm=1,mmE
M=(2.0*mm-1.0)*Pi/2.0
Tm1=(4*kw*(n*n-1+Y)*C2)/(kh*n*n*(n*n-1))
Tm2=(H*H*C2)/(M*M)
Tm3=(F*re*re*kw)/(2.0*n*n*kh)
Tm=Tm1/(Tm2+Tm3) !就是tao m
temp=1.0/(Tm*Th1)*(2.0/(M*M))*(exp(Tm*(Th1-Th))-exp(-Tm*Th))
Utemp=Utemp+temp
ENDDO
U=1.0-Utemp
ENDIF
!打开输出文件
open(16,file='Output.dat',status='Old')
write(16,*) Th,U
IF (Th.LT.0.001) THEN
Th=Th+0.0001
goto 10
ELSEIF(Th.LT.0.01) THEN
Th=Th+0.001
goto 10
ELSEIF(Th.LT.0.1) THEN
Th=Th+0.01
goto 10
ELSEIF(Th.LT.1.0) THEN
Th=Th+0.1
goto 10
ELSEIF(Th.LT.10) THEN
Th=Th+1
goto 10
ELSE
Th=Th+10
ENDIF
GOTO 10
ENDIF
END ! 程序结束符号