主题:主程序和子程序参数传递问题
program main
real,allocatable:: a(:,:)
allocate a(405,405)
....
call test(a)
end program
subroutine test(a)
real:: a(405,405)
....
end subroutine
我用的是CVF6.6,我的代码大体上是上面的格式,其中a是输出参数,但call test的时候就中断了,似乎是说内存空间的问题,然后改为下边代码:
program main
real,allocatable:: a(:,:)
allocate a(405,405)
....
call test(a)
end program
subroutine test(a)
real,allocatable:: a(:,:)
allocate a(405,405)
....
end subroutine
编译时报warning:
Warning: In the call to STIFF_WHOLE, actual argument does not match the type and kind of the corresponding dummy argument.
可以执行,但在子程序算的a是正确的,但主程序传出来的参数就错误了,似乎主程序的a值是胡乱初始化的,和test子程序的a值一点关系没有。
这个问题折磨我好几天了,一直无法解决,求大家帮助,谢谢了。
real,allocatable:: a(:,:)
allocate a(405,405)
....
call test(a)
end program
subroutine test(a)
real:: a(405,405)
....
end subroutine
我用的是CVF6.6,我的代码大体上是上面的格式,其中a是输出参数,但call test的时候就中断了,似乎是说内存空间的问题,然后改为下边代码:
program main
real,allocatable:: a(:,:)
allocate a(405,405)
....
call test(a)
end program
subroutine test(a)
real,allocatable:: a(:,:)
allocate a(405,405)
....
end subroutine
编译时报warning:
Warning: In the call to STIFF_WHOLE, actual argument does not match the type and kind of the corresponding dummy argument.
可以执行,但在子程序算的a是正确的,但主程序传出来的参数就错误了,似乎主程序的a值是胡乱初始化的,和test子程序的a值一点关系没有。
这个问题折磨我好几天了,一直无法解决,求大家帮助,谢谢了。