Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法运行Fortran代码_Fortran - Fatal编程技术网

无法运行Fortran代码

无法运行Fortran代码,fortran,Fortran,我的程序运行有错误,我真的不知道为什么,你能帮我吗?问题如下: 流动问题是粘性扩散的经典例子。利用边界层理论推导了该问题的控制方程,将全N-S方程简化为单抛物型偏微分方程。 在必要的初始和边界条件下 t=0:u(0)=0,u(0.04m)=0 t>0:u(0)=40.0,u(0.04m)=u=0.0m/s 这个问题在物理上可以描述为两个无限大的板块之间的瞬态粘性驱动流,两个板块之间的距离为0.04m。最初,两个板块都处于静止状态。时间t=0后,上板以40.0m/s的速度沿正x方向运动。由于填充板

我的程序运行有错误,我真的不知道为什么,你能帮我吗?问题如下:

流动问题是粘性扩散的经典例子。利用边界层理论推导了该问题的控制方程,将全N-S方程简化为单抛物型偏微分方程。 在必要的初始和边界条件下

t=0:u(0)=0,u(0.04m)=0

t>0:u(0)=40.0,u(0.04m)=u=0.0m/s

这个问题在物理上可以描述为两个无限大的板块之间的瞬态粘性驱动流,两个板块之间的距离为0.04m。最初,两个板块都处于静止状态。时间t=0后,上板以40.0m/s的速度沿正x方向运动。由于填充板之间空间的流体的粘度,随着时间的推移,连续的流体层开始运动。最终,随着速度剖面在时间上变得或多或少恒定,系统达到“准稳态”。控制方程非常适合使用有限差分技术来解决瞬态区域中的问题

DUFORT-FRANKEL方案的Fortran计算机代码

! Homework1 DUFORT FRANKE SCHEME
! Program computes the numerical solution to the
! Transient Flow Problem.
! The following initial and bounadry conditions are applied:
! t=0: u(y=0)=40.0m/s
! t>0: u(y=0)=0.0; u(y=0.04m)=0.0
      parameter(maxn=30,eps=1.0e-3)
      integer k,m,mm,count
      real*8 u_old(1001,maxn),u_new(1001,maxn),y(maxn)
      real*8 t,tau,h,r,tmax,u_init,nu,sum,error
!

      data h,m,u_init,nu,r,tmax /0.001,41,0.0,2.17e-4,0.217,2.5e5/
!
      open(unit=1,file='hw1_dufort.out',status='unknown')
      tau=r*h**2/nu
      mm=m-1
      error=1.0
!
      count=0
      k=1
      t=0.0
      y(1)=0.0
!
      do 2 i=2,m
      y(i)=y(i-1)+h
2     continue
!
      write(1,*)'Velocity Results:'
      write(1,10)t,(u_old(k,j),j=1,m)
      do while ((error.gt.eps).and.(count.lt.1080))
      count=count+1
      sum=0.0
      t=t+tau
      u_old(k,1)=40.0
      u_old(k,m)=0.0
      do 4 i=2,mm
      if (k.lt.2) then
      u_new(k,i)=(2.0*r/(1.0+2.0*r))*(u_old(k,i+1)+u_old(k,i-1))
      else
      u_new(k,i)=(2.0*r/(1.0+2.0*r))*(u_old(k,i+1)+u_old(k,i-1))+ ((1.0 -
     &    2.0*r)/(1.0+2.0*r))*u_old(k-1,i)
      end if
      end do
!
      10 format(2x,f10.3,2x,41f8.4)
      write(1,'(" Number of steps for convergence = ",i4)')count
      end

您应该将代码编辑为
code
,必要时将其缩进以使其可读。此外,请添加更多信息,说明您迄今为止尝试了什么,以及出现了什么错误。考虑到这是一个家庭作业问题,人们可能只能在概念上或想法上提供帮助。您的代码中缺少一个
4 continue
,这可能是您遇到的一个错误。