&;不';Fortran中长方程的t运算
任何人都可以在Fortran中找出这些行的错误:&;不';Fortran中长方程的t运算,fortran,Fortran,任何人都可以在Fortran中找出这些行的错误: if (i==1) then u(i,j+1)=u(i,j)-c*dt/2/dx*(u(i+1,j)-u(imax-1,j)) & + (c*c*dt*dt)/2/dx/dx*(u(i+1,j)-2*u(i,j)+u(imax-1,j)) 此处有更多代码: select case (case_no) C.. 1--Lax Wendroff one step scheme case (1)
if (i==1) then
u(i,j+1)=u(i,j)-c*dt/2/dx*(u(i+1,j)-u(imax-1,j)) &
+ (c*c*dt*dt)/2/dx/dx*(u(i+1,j)-2*u(i,j)+u(imax-1,j))
此处有更多代码:
select case (case_no)
C.. 1--Lax Wendroff one step scheme
case (1)
write (6,*) 'Entrance for the Lax-Wendroff one step method'
t=dt
do while (t<=18)
do i=1,41
if (i==1) then
u(i,j+1)=u(i,j)-c*dt/2/dx*(u(i+1,j)-u(imax-1,j)) &
+ c*c*dt*dt/2/dx/dx*(u(i+1,j)-2*u(i,j) &
+ u(imax-1,j))
else if (i==41) then
u(i,j+1)=u(i,j)-c*dt/2/dx*(u(i+1,j)-u(i-1,2)) &
+ c*c*dt*dt/2/dx/dx*(u(i+1,j)-2*u(i,j) &
+ u(i-1,2))
else
u(i,j+1)=u(i,j)-c*dt/2/dx*(u(i+1,j)-u(i-1,j)) &
+ c*c*dt*dt/2/dx/dx*(u(i+1,j)-2*u(i,j) &
+u(i-1,j))
end if
j=j+1
t=t+dt
end do
end do
选择案例(案例编号)
C1——Lax-Wendroff一步方案
案例(1)
写(6,*)“Lax Wendroff一步法入口”
t=dt
while(t您有固定格式的源代码特性(您在第一列中使用C来开始注释),但您询问的是自由格式行的延续。您需要确定您使用的源代码格式(在不需要与古代代码保持一致的情况下,自由格式是最好的),告诉编译器您正在以适当的方式使用自由格式(通常使用.f90文件扩展名),然后确保注释样式、标记拆分和行延续方面与该格式一致。您有固定的表单源功能(您在第一列中使用C开始注释)但您询问的是自由格式行的延续。您需要决定使用哪种源格式(在不需要与古代代码保持一致的情况下,自由格式是最好的),告诉编译器您正在以适当的方式使用自由格式(通常使用.f90文件扩展名)然后确保注释样式、标记拆分和行延续方面与该形式一致。我不相信编译器说的是1.在'u(I,j+1'处的可分类语句。'我希望它说的是1.在'u(I,j+1'处的不可分类语句。''请正确设置代码格式并准确报告错误消息。在这种情况下,前一点非常重要,因为错误的原因可能是格式不正确。好的,我已经这样做了。行看起来没问题,您可以在它周围再添加几行吗?还有,+
位于哪一列?您是如何编译的?使用wh在编译器?我相信这是因为行太长了。我试过在与u(I,j+1)相同的列中使用+和=,但不起作用。我使用gfortran作为编译器。我添加了更多有问题的代码。我不相信编译器说1。在“u(I,j+1)”处的classifiable语句,我希望它说1。在“u(I,j+1)”处的unclassifiable语句'请正确设置代码格式并准确报告错误消息。在这种情况下,前一点非常重要,因为错误的原因可能是格式不正确。好的,我已经这样做了。行看起来没问题,您可以在它周围再添加几行吗?还有,+
位于哪一列?您是如何编译的?使用wh在编译器?我相信这是因为行太长了。我试过在与u(I,j+1)相同的列中使用+和=,但不起作用。我使用gfortran作为编译器。我添加了更多有问题的代码。