我有一个问题,那就是如何知道在不同子程序中相同的“公共”的大小?
program hello
end program Hello
subroutine test()
real::a(10,10)
common /ttt/ a
end
subroutine test2()
real::b(10,20)
common /ttt/ b
end我只是得到complier..but的信息,我不知道最后的大小是'/ttt/'?
$gfortran -std=f95 *.f95 -o main
main.f95:13:16:
common /ttt/ b
1
Warning: Named COMMON block ‘ttt’ at (1) shall be of the same size as elsewhere (800 vs 400 bytes)
$main发布于 2018-12-17 09:46:30
这里的大小是存储在公共块中的变量的大小。在您的例子中,它是数组的大小(a或b)。数组在这两个子例程中没有相同的大小。这是不允许的,编译器会发出警告。这是一个警告,而不是错误,您可以选择忽略它。代码可能会正常工作。
https://stackoverflow.com/questions/53811496
复制相似问题