Fortran Coder

查看: 11814|回复: 8
打印 上一主题 下一主题

[求助] 大神给改改这个代码吧,错误挺多,谢了

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2016-9-30 10:37:06 | 显示全部楼层
这代码的问题:
1. 太古老了。until 这种用法,我这里没有一个编译器支持的。fortran 只有 do while 没有 do until ,我也不知道应该如何修改它。
2. 错误太多,根本没有办法修改或运行。比如说
  a. do 100  i=0.0,30.0,0.025 do 循环的循环变量 i 应该是 integer,如果用 real 当做循环变量,后果可能会非常的严重。
  b. f=MOD(i,1/4)*fdd*4/1 既然 i 是 real 类型,那么对于 mod 函数来说,两个参数的类型必须一致。所以 1/4 也必须是 real 类型才可以。
  c.  floor(MOD(i,1.0),0.25) 这里的 floor 函数,第二个参数是 0.25!!!它表示 kind 值啊,只能是整数,哪个编译器支持 kind 为 0.25 的数据??
  d . 1/4 = 0 !!!! 这很可怕。程序代码里到处都是 1/4,而结果却是 0 ,我相信这代码就算运行了,结果也肯定与作者的想法相去甚远。
3. 没有用 implicit none
4. 一大堆 d1,d2,s4,a4,b4,c4,d4,e4,f4 这种变量,为什么不用数组?
5. 一大堆 silk1 ,silk2,silk3.....silk16 这种子程序,真的需要这么多过程?这些过程能否统一?如果不能,为何不取更有意义的名称?

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-2 08:44

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表