24小时热门版块排行榜    

查看: 498  |  回复: 4
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

dwma

铁杆木虫 (正式写手)

[交流] 【求助】Fortran程序

我的程序如下:(用来对两个文件的数据求和,问题是主程序不能调用子程序但编译没问题).哪位高手给看看?多谢了!

Program Main
Implicit none
Real,Dimension(5,3):: Value1,Value2,Value3
Integer Dimen1, Dimen2
Integer I,J,K
Dimen1=5
Dimen2=3
Call ReadValue(Dimen1,Dimen2,1000,'file1.txt')
Call ReadValue(Dimen1,Dimen2,2000,'file2.txt')
Do I=1,5
Value3(I,1)=(Value1(I,1)+Value2(I,1))/2
end do
Do J=1,5
    Do K=2,3
Value3(J,K)=Value1(J,K)+Value2(J,K)
end do
end do
Open(unit=3000,file='file3')
write (3000,*) ((Value3(J,K),K=1,3),J=1,5)
end



Subroutine ReadValue(Dimen1,Dimen2,UnitNum,Filename)
Integer Dimen1,Dimen2,UnitNum,I1,I2
Character*(*) Filename
Dimension Value(Dimen1,Dimen2)
Open (unit=UnitNum,file=Filename,status='old')
do I1=1,Dimen1
   do I2=1,Dimen2
   Read(UnitNum,*) Value(I1,I2)
   end do
end do
end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xujc1983

木虫 (著名写手)

苦逼青椒一枚


zzgyb(金币+1,VIP+0):谢谢你的帮助,欢迎继续关注计算模拟版!
引用回帖:
Originally posted by dwma at 2008-4-3 08:39:
多谢了!楼上哥们写的和我原来的一样,就是不行。测试结果程序执行到第一个Call前就终止了。哪位再看看?

是不是你的Fortran程序的问题,还是两个txt文件内数据的格式问题?
这段程序我刚刚调试过,一切正常啊
我的file1是:
1
2
.
.
.
15
file2是:
1
1
.
.
.
1
最后file3是:
   1.000000       3.000000       4.000000       2.500000       6.000000   
   7.000000       4.000000       9.000000       10.00000       5.500000   
   12.00000       13.00000       7.000000       15.00000       16.00000
5楼2008-04-03 13:15:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

xujc1983

木虫 (著名写手)

苦逼青椒一枚

★ ★ ★ ★
zzgyb(金币+4,VIP+0):谢谢你的参与,欢迎继续关注计算模拟版!
你的子程序写的有问题,子程序将文件中的数据保存在Value数组中,但是主程序调用的时候并没有返回该数组,应该调用的时候加上这个参数:
Program Main
Implicit none
Real,Dimension(5,3):: Value1,Value2,Value3
Integer Dimen1, Dimen2
Integer I,J,K
Dimen1=5
Dimen2=3
Call ReadValue(Dimen1,Dimen2,1000,'file1.txt',Value1)
Call ReadValue(Dimen1,Dimen2,2000,'file2.txt',Value2)
Do I=1,5
Value3(I,1)=(Value1(I,1)+Value2(I,1))/2
end do
Do J=1,5
    Do K=2,3
Value3(J,K)=Value1(J,K)+Value2(J,K)
end do
end do
Open(unit=3000,file='file3')
write (3000,*) ((Value3(J,K),K=1,3),J=1,5)
end

Subroutine ReadValue(Dimen1,Dimen2,UnitNum,Filename,Value)
Integer Dimen1,Dimen2,UnitNum,I1,I2
Character*(*) Filename
Dimension Value(Dimen1,Dimen2)
Open (unit=UnitNum,file=Filename,status='old')
do I1=1,Dimen1
   do I2=1,Dimen2
   Read(UnitNum,*) Value(I1,I2)
   end do
end do
end
2楼2008-04-03 00:37:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dwma

铁杆木虫 (正式写手)

多谢了!楼上哥们写的和我原来的一样,就是不行。测试结果程序执行到第一个Call前就终止了。哪位再看看?
3楼2008-04-03 08:39:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (小有名气)


★ ★
zzgyb(金币+2,VIP+0):谢谢你的帮助,欢迎继续关注计算模拟版!
本帖仅楼主可见
4楼2008-04-03 09:02:59
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见