| 查看: 1201 | 回复: 6 | |||
| 本帖产生 1 个 程序强帖 ,点击这里进行查看 | |||
[交流]
【求助】此程序没有错误,怎么运行不出来?
|
|||
|
|
» 猜你喜欢
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有6人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有9人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有8人回复
情人节自我反思:在爱情中有过遗憾吗?
已经有4人回复
球磨粉体时遇到了大的问题,请指教!
已经有12人回复
江汉大学解明教授课题组招博士研究生/博士后
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Perl 生物信息学编程求助,运行出现问题,烦请帮忙查找一下错误,谢谢!
已经有3人回复
【求助】程序运行已经无错误,但是输入文件有问题,求教。
已经有23人回复
【求助】此FORTRAN90程序没有错误,但是运行不出来。
已经有4人回复
【求助】有很多错误的程序,找不出来了
已经有18人回复
【求助】程序运行后出现的错误 access violation
已经有15人回复
» 抢金币啦!回帖就可以得到:
医学超声影像负责人招聘-中国科学院赣江创新研究院
+1/975
石河子大学化学化工学院CJ学者领衔分子炼油团队招收博士、硕士。【接收调剂】
+1/83
陆军军医大学第二附属医院(新桥医院)冉茜课题组招聘科研人员
+1/79
贺电中定位于“积极作用”,是不是对基金委工作不够满意?
+1/79
龙凤Tai——写给恋人的第100封情书
+1/77
一个陌生女人的来信
+1/76
国家级青年人才课题组招收2026级硕士研究生
+1/41
香港中文大学医学院 诚聘 研究助理教授 (医工结合/生物信息学方向)
+1/32
南京医科大学国家级高层次青年人才团队招收博士后
+1/17
澳大利亚麦考瑞大学(Macquarie University)国际博士硕士全额奖学金-计算机-26年中开学
+1/15
湖南大学-分析检测技术和生物柔性传感器-招收1名博士研究生 (2026年,第二批)
+1/12
澳门大学生物医学影像实验室诚招博士生(2026秋季入学)
+1/7
上海大学生物有机电子材料及器件团队博士研究生招聘
+1/7
中国地质大学(武汉)杨华明课题组刘磊研究员招收冶金固废资源高值化利用方向博士
+1/6
南京大学能源与资源学院徐加陵课题组招聘:科研助理、硕士生、博士生
+1/6
哈工大(深圳)国家级青年人才 钟颖教授课题组 新增26级博士名额!欢迎报名!
+1/5
墨尔本大学(QS13)急招CSC博士(补齐全奖)/访问学者/博士后 (材料/生物医学/器官芯片等)
+1/5
澳科大招收2026年秋季药剂学/生物材料方向全奖博士研究生(春节不打烊)
+1/4
美国密苏里大学“柔性电子”课题组诚聘博士研究生和博士后
+1/1
德国图宾根大学诚招全奖岗位制博士(地下流固化学反应耦合数值模拟方向)
+1/1
2楼2010-11-24 21:58:16
zyj8119(金币+3):那应该怎么改? 2010-11-24 22:50:28
|
这一段代码是错误的 do 6 i=1,7 7 Z(i,(j+1))=1+beta(i)-q(i)*beta(i)*(Z(i,j)-beta(i))/(Z(i,j)+ * epsilon*beta(i))*(Z(i,j)+sigma*beta(i)) do 8 j=1,100000 factor(i)=(factor(i)-Z(i,j)/Z(i,(j+1))) 8 continue if(ABS(Z(i,(j+1))-Z(i,j)).lt.1E-6)goto 7 正是它导致了“死机”或运行不出来! 原因很简单,你定义数组Z的维数为(7,100000),当对J的循环完成后J=100001;此时执行 if(ABS(Z(i,(j+1))-Z(i,j)).lt.1E-6)goto 7 第2行(即标号为7的行)对Z(i,(j+1))的赋值就超出了Z的定义范围,由此导致死循环或不可预测的结果。此外,if(ABS(Z(i,(j+1))-Z(i,j)).lt.1E-6)goto 7中的(Z(i,(j+1))也是未定义的! [ Last edited by ykwang on 2010-11-24 at 22:39 ] |
3楼2010-11-24 22:33:36
4楼2010-11-24 23:23:15
|
仅从下列一段代码看不出你要做什么。例如因为J的初值为0,所以下列代码中用红字划出的Z(i,j)中必然包含了Z(i,0),而按你在Dimension中的说明Z(i,0)是无定义的!因此,建议你先把数学模型搞清楚再修改代码才能见效。 do 6 i=1,7 7 Z(i,(j+1))=1+beta(i)-q(i)*beta(i)*(Z(i,j)-beta(i))/(Z(i,j)+ * epsilon*beta(i))*(Z(i,j)+sigma*beta(i)) do 8 j=1,100000 factor(i)=(factor(i)-Z(i,j)/Z(i,(j+1))) 8 continue if(ABS(Z(i,(j+1))-Z(i,j)).lt.1E-6)goto 7 6 continue [ Last edited by ykwang on 2010-11-24 at 23:41 ] |
5楼2010-11-24 23:40:35
6楼2010-11-24 23:49:15
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
nono2009(金币+2):鼓励应助 2010-11-25 07:41:11
zyj8119(金币+2):谢谢兄台认真回复。。。 2010-11-25 08:27:59
zyj8119(金币+10, 程序强帖+1):谢谢跟进。 2010-12-14 04:22:10
nono2009(金币+2):鼓励应助 2010-11-25 07:41:11
zyj8119(金币+2):谢谢兄台认真回复。。。 2010-11-25 08:27:59
zyj8119(金币+10, 程序强帖+1):谢谢跟进。 2010-12-14 04:22:10
|
因为事先不知道要经过多少次迭代才能收敛,所以不能采用数组方式。其实只需要两个变量即可实现这一迭代过程:一个为Old,另一个New,并将New的计算过程用一个子程序CalcFun(各种变量)来实现。有关的伪代码如下: Old = 0D0 给Old赋初值 10 CALL CalcFun(各种变量,New) 计算结果由New返回 IF(ABS(New-Old).LT.1E-6)GOTO 20 收敛后退出 Old = New 更新Old GOTO 10 构成迭代过程 20 WRITE(*,*)‘Converged!' |
7楼2010-11-25 01:08:10













回复此楼