24小时热门版块排行榜    

查看: 683  |  回复: 11
当前主题已经存档。

老虎大王

木虫 (著名写手)


下雪的古堡(金币+1,VIP+0):恩,这样啊,这样数组xyz就解决了,谢谢了 5-14 15:39
那,Npart又是多少呢?
你可以定义如下
dimension x(1:npart), y(1:npart),z(1:npart)

但是这样做的前提是,npart必须是常量而不是变量,也就是说,在这之前,你必须有
Parameter(npart=1000)  之类的语句(假设npart=1000)
或者,如果是在子程序中,也可以在参数列表里把NPART传过来。总之,你在定义数组的时候,数组的大小必须是已知常量。要不就用动态数组。

好了,请你现在去把X, y, Z数组定义了,不管是出现在子程序,再是主程序,都要定义。然后这个程序就差不多了。

[ Last edited by 老虎大王 on 2009-5-14 at 10:43 ]
11楼2009-05-14 10:40:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★ ★
下雪的古堡(金币+1,VIP+0):呵呵,好的,我是刚学程序,程序包也是别人的,谢谢给我指出这些问题,我再好好看看,真是麻烦你了。还有别叫我老兄啊!多不好意思啊 5-14 15:42
woshilsh(金币+4,VIP+0):常来哈!这版因为兄弟,增色不少哈 5-16 15:54
老兄,我把X,y,z数组定义了,却发现你的问题竟然还在。很多问题我无法理解。

比如子程序judge (在文件Judge.f中):
double precision volxx,x(i),y(i),z(i),volxm
为什么要这样写? 而且程序中的xc,yc,zc数组也没有定义。

另外,比如eneri中有这样的语句:
        call judge(sign,npart,volx)
但是到了子程序Judge中,却是这样:
               subroutine Judge(sign,npart,volxx,volxm,npart1,npart2,volxc)
为什么要这样写?实参个数与虚参差这么多?这样虽然语法允许,但是子程序中没有对npart1,npart2,volxc等变量设置任何初值,就直接使用了。

诸如此类的问题,数组不定义,实虚参数个数不一致,变量不赋初值,也不从主程序中传过来,就直接使用等等,这些问题在你的程序中很多处出现。我晕很晕。   

你可否先把这些问题弄一下,改一改,然后我们再一步步来?

[ Last edited by 老虎大王 on 2009-5-14 at 15:17 ]
12楼2009-05-14 15:13:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 下雪的古堡 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见