fortran编程。有一个fortran77编的程序。请问子程序各行含义及程序走向、结果。
如果子程序用fortran6编程,可以简化到什么程度。谢谢programazimplicitnoneinteger,parameter::m=6,n=960integer...
如果子程序用fortran6编程,可以简化到什么程度。谢谢
program az
implicit none
integer,parameter::m=6,n=960
integer mv1,mv2,mv0
real,parameter::pi=3.1415926
real mgama,omig1,omig2,xin,xout,u0,w0,g0,alfa,e0,vis0,brs,&
phertz,al,h0,hc,a1,a2,a3,a4
real x(m,0:n),dx(m),nk(m)
mgama=2.0
omig1=0.3
omig2=0.02
xin=-4.6
xout=1.4
call grid(x,dx,nk,xin,xout,m,n)
stop
end
subroutine grid(x,dx,nk,xin,xout,m,n)
real x(m,0:n),dx(m),nk(m)
nk(1)=30
do 20 k=2,m
nk(k)=nk(1)*2**(k-1)
20 continue
do 30 k=1,m
dx(k)=(xout-xin)/nk(k)
30 continue
do 50 k=1,m
do 40 i=0,nk(k)
x(k,i)=xin+dx(k)*i
40 continue
50 continue
end 展开
program az
implicit none
integer,parameter::m=6,n=960
integer mv1,mv2,mv0
real,parameter::pi=3.1415926
real mgama,omig1,omig2,xin,xout,u0,w0,g0,alfa,e0,vis0,brs,&
phertz,al,h0,hc,a1,a2,a3,a4
real x(m,0:n),dx(m),nk(m)
mgama=2.0
omig1=0.3
omig2=0.02
xin=-4.6
xout=1.4
call grid(x,dx,nk,xin,xout,m,n)
stop
end
subroutine grid(x,dx,nk,xin,xout,m,n)
real x(m,0:n),dx(m),nk(m)
nk(1)=30
do 20 k=2,m
nk(k)=nk(1)*2**(k-1)
20 continue
do 30 k=1,m
dx(k)=(xout-xin)/nk(k)
30 continue
do 50 k=1,m
do 40 i=0,nk(k)
x(k,i)=xin+dx(k)*i
40 continue
50 continue
end 展开
1个回答
展开全部
您的代码,很显然不是 Fortran77 书写的。
可以看到很多 Fortran90 的语法。
至于程序的走向,你用编译器 Debug 跟踪一下就知道了。
结果同样,运行一下就能知道结果。
每一行的含义,这个要求过分了点。百度不是你的启蒙老师。
如果你对某些行有疑问,或许我和其他网友可以帮助你。
最后,你为啥要用 Fortran66 来改写呢?
Fortran77 尚且建议淘汰了,居然要用 Fortran66 ??
目前还有不支持 Fortran90 的编译器吗??
可以看到很多 Fortran90 的语法。
至于程序的走向,你用编译器 Debug 跟踪一下就知道了。
结果同样,运行一下就能知道结果。
每一行的含义,这个要求过分了点。百度不是你的启蒙老师。
如果你对某些行有疑问,或许我和其他网友可以帮助你。
最后,你为啥要用 Fortran66 来改写呢?
Fortran77 尚且建议淘汰了,居然要用 Fortran66 ??
目前还有不支持 Fortran90 的编译器吗??
追问
追答
是的,很多人误解 compaq visual fortran 6.5 或 6.6 与 Fortran66 的区别。
前者是一个编译器产品的版本,后者是 Fortran 语法的规范。
Debug 跟踪,可以让你一步一步(或者说一行一行)的执行代码,并时刻了解每一步的走向,每一步执行前后,各变量的值(还可以改变)
Debug 对于调试程序,查找错误,都是非常有帮助的。
它的具体操作是:插入断点,启动 Debug,单步或单过程。
插入断点,你可以在任何一行代码上右键,找到,一般叫 insert breakpoint。
Debug 有专门的菜单。启动Debug后,单步按钮会出现在工具条上(如果没有,在工具条上右键自定义一下)
补充:有误差很正常,几乎所有的编程语言都有。如果你想减少误差,可以尝试用双精度浮点。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询