普通的大小是多少? fortran77

时间:2018-12-17 08:40:12

标签: fortran

我有一个问题,如何知道在不同子程序中相同的“ common”的大小?

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

我只是得到编译器的信息。但是我不知道'/ 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

1 个答案:

答案 0 :(得分:1)

此处的大小是存储在公共块中的变量的大小。在您的情况下,它是数组的大小(ab)。在这两个子例程中,数组的大小不同。这是不允许的,编译器会发出警告。这是一个警告,而不是错误,您可以选择忽略它。该代码可能可以正常工作。