|
这代码的问题:
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 这种子程序,真的需要这么多过程?这些过程能否统一?如果不能,为何不取更有意义的名称?
|
|