📄 022.f90
字号:
program zuoye1
implicit none
integer :: j,m,n,c,p=1,s,y
integer,parameter :: x=12 !节点数
real,parameter :: hd=0.06,h=1000,k=40,T0=100,Tf=0,Fo=0.1 !平板厚度,表面传热系数,导热系数,
!初始温度,环境流体温度,已知的傅里叶数
real,parameter :: dt=1,e=0.1 !时间步长,误差值
real :: Bi !毕渥数
real :: T(12,100000)!设定一个二维数组
real :: dx=hd/2/(x-2)!相临两节点间的距离
Bi=h*dx/k
!***************************为节点的初始温度赋值*******************************
y=x
do j=1,y
T(j,1)=T0
write(*,"('T(',i2,',',i5,')=',F50.2)") j,1,T(j,1)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") j,1,T(j,1)
end do
!************************经过一个时间步长后节点的温度**************************
s=x-2
n=x
m=x-1
p=p+1
T(n,p)=T(n,p-1)*(1-2*Fo*Bi-2*Fo)+2*Fo*T(n-1,p-1)+2*Fo*Bi*Tf
write(*,"('T(',i2,',',i5,')=',F50.2)") n,p,T(n,p)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") n,p,T(n,p)
do m=11,2,-1
T(m,p)=Fo*(T(m+1,p-1)+T(m-1,p-1))+(1-2*Fo)*T(m,p-1)
write(*,"('T(',i2,',',i5,')=',F50.2)") m,p,T(m,p)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") m,p,T(m,p)
end do
T(1,p)=T(3,p)
write(*,"('T(',i2,',',i5,')=',F50.2)") 1,p,T(1,p)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") 1,p,T(1,p)
!***************************各节点各个时间步长后的温度**************************
m=x-1
do while(abs(T(n,p)-T(2,p))>e)
p=p+1
T(n,p)=T(n,p-1)*(1-2*Fo*Bi-2*Fo)+2*Fo*T(n-1,p-1)+2*Fo*Bi*Tf
write(*,"('T(',i2,',',i5,')=',F50.2)") n,p,T(n,p)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") n,p,T(n,p)
do c=1,s
T(m,p)=Fo*(T(m+1,p-1)+T(m-1,p-1))+(1-2*Fo)*T(m,p-1)
write(*,"('T(',i2,',',i5,')=',F50.2)") m,p,T(m,p)
open(unit=0,file='jieguo.txt')
write(0,"('T(',i2,',',i5,')=',F50.2)") m,p,T(m,p)
m=m-1
end do
T(1,p)=T(3,p)
m=x-1
end do
stop
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -