回 帖 发 新 帖 刷新版面

主题:fortran子程序问题求助

请教:
        我做的程序中有一段子程序做一个简单的计算,返回一个值,,在主程序中输出这个值是正确的,可写到一个数组中后,再输出这个数组就全成0.00000了,,,,

program main
implicit none
real::parta(2,1e6)
integer i,num
real b
num=1e6
do i=1,num
call s(i,b)
parta(1,i)=b
write(*,*)
enddo
stop
end


subroutine s(a1,a2)
implicit none
real a2integer a1

call random_seed(a1)
call random_number(a2)

return
end subroutine






回复列表 (共3个回复)

沙发

random_seed会改变i的值,导致你所有的数据都写到parta的同一个位置了
正确方法是call random_seed()

板凳

尚需从头“修炼”,+U。

3 楼

XIEXIE

我来回复

您尚未登录,请登录后再回复。点此登录或注册