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
展开
 我来答
天河流纹石
2013-10-15 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4057万
展开全部
您的代码,很显然不是 Fortran77 书写的。

可以看到很多 Fortran90 的语法。

至于程序的走向,你用编译器 Debug 跟踪一下就知道了。
结果同样,运行一下就能知道结果。

每一行的含义,这个要求过分了点。百度不是你的启蒙老师。
如果你对某些行有疑问,或许我和其他网友可以帮助你。

最后,你为啥要用 Fortran66 来改写呢?
Fortran77 尚且建议淘汰了,居然要用 Fortran66 ??
目前还有不支持 Fortran90 的编译器吗??
追问

原来的程序是用77编的。以上程序是我改的(子程序未改)。我想知道:用90、95格式如何改?因为子程序中的continue我不很明白(虽然子程序的含义我明白)。

另外,我的下一个问题,你说没有错误,是的。但运行结果不对,运行结果应该以此减去0.2.中间数值有、误差。

追答
是的,很多人误解 compaq visual fortran 6.5 或 6.6 与 Fortran66 的区别。

前者是一个编译器产品的版本,后者是 Fortran 语法的规范。

Debug 跟踪,可以让你一步一步(或者说一行一行)的执行代码,并时刻了解每一步的走向,每一步执行前后,各变量的值(还可以改变)

Debug 对于调试程序,查找错误,都是非常有帮助的。

它的具体操作是:插入断点,启动 Debug,单步或单过程。
插入断点,你可以在任何一行代码上右键,找到,一般叫 insert breakpoint。
Debug 有专门的菜单。启动Debug后,单步按钮会出现在工具条上(如果没有,在工具条上右键自定义一下)

补充:有误差很正常,几乎所有的编程语言都有。如果你想减少误差,可以尝试用双精度浮点。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式