24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 451  |  回复: 4

gxaaas

木虫 (正式写手)


[资源] 【求助】比较怪异的Fortran程序问题【已完结】已有1人参与

求教问题:print某个变量后程序的结果会有变化,具体print位置见下面程序
程序简化后如下:
CODE:
******************************************************
program main
...
use b, only : elec_a,elec_b
...
allocate(elec_a(n,m))
allocate(elec_b(n,m))
...
end
******************************************************
module b
real,allocatable :: elec_a(n,m),elec_b(n,m)
end
******************************************************
subroutine a
...
use b, only : elec_a,elec_b
...
real :: y(n,m),x(n,m),calxy(n,m)
y=elec_a
x=elec_b
call derive(n,m,y,x,calxy)
print *,'calxy',calxy  !加上这句后影响程序的输出结果:(:(
...
end
*******************************************************
subroutine derive(n,m,y0,x0,cal)
...
end
*******************************************************

[ Last edited by zyj8119 on 2010-12-14 at 04:19 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
gxaaas(金币+5):多谢回复,我都赋初值了,另外程序比较大不方便贴上来。 2010-08-22 15:31:39
我不懂 Fortran 90 以后的程序,但估计是因为某个变量未赋初值造成的。你可以看一下这个贴子,与你的问题比较相似……

Fortran 95: WRITE to screen changes output to WRITE to file
http://www.physicsforums.com/showthread.php?t=419319
2楼2010-08-22 15:00:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余泽成(金币+1):谢谢参与应助! 2010-08-22 15:55:28
你最好能给出一个完整的程序,如果不是很大的话,以方便别人测试……
3楼2010-08-22 15:01:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gxaaas

木虫 (正式写手)



余泽成(金币+1):谢谢分享经验! 2010-08-22 17:25:36
找到原因了,是因为矩阵相乘的时候没注意,一个用real,另一个用complex。
4楼2010-08-22 16:03:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
zyj81195楼
2010-11-09 19:58   回复  
引用回帖:
Originally posted by gxaaas at 2010-08-22 16:03:01: 找到原因了,是因为矩阵相乘的时候没注意,一个用real,另一个用complex。

谢谢分享!!!!
相关版块跳转 我要订阅楼主 gxaaas 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见