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

📄 step-rk4.f90

📁 四阶RK方法计算单波方程
💻 F90
字号:
!!!!!!!!!!!!!!!!!!!!!!!!!
!!!    阶跃单波方程   !!!
!!!!!!!!!!!!!!!!!!!!!!!!!
program step
implicit none

!!! 输入网格点数
integer,parameter::N=301
!!! 输入迭代步数
integer,parameter::M=300
real k1(N),k2(N),k3(N),k4(N),u(N),u1(N)
integer i,j
real ot,ox,c
c=1.0
ox=0.01
ot=ox/c/2

!!!初始化
do i=1,N
if (i<=101)then
u(i)=1
else
u(i)=0
end if
end do

do i=1,M

  do j=2,N
    k1(j)=-c*(u(j)-u(j-1))/ox
  end do
  k1(1)=2*k1(2)-k1(3)

  do j=2,N
    k2=-(c*(u(j)-u(j-1))/ox+c*(k1(j)-k1(j-1))/ox*ot/2)
  end do
  k2(1)=2*k2(2)-k2(3)

  do j=2,N
    k3=-(c*(u(j)-u(j-1))/ox+c*(k2(j)-k2(j-1))/ox*ot/2)
  end do
  k3(1)=2*k3(2)-k3(3)

  do j=2,N
    k4=-(c*(u(j)-u(j-1))/ox+c*(k3(j)-k3(j-1))/ox*ot)
  end do
  k4(1)=2*k4(2)-k4(3)

  do j=1,N
    u1(j)=u(j)+(k1(j)+2*k2(j)+2*k3(j)+k4(j))*ot/6
  end do

  do j=1,N
    u(j)=u1(j)
  end do

write(*,*) i

end do

do i=1,N
write(*,*) i,u(i)
open(unit=10,file='out.txt')
write(10,*) u(i)
end do

stop
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -