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

📄 022.f90

📁 实现大平板的温度场分析
💻 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 + -