说我有一堆变量a,b,c
integer*4 a
integer*8 b
real*8 c
有没有办法确定这些变量使用多少字节而不手动计算。我有一长串的变量,我需要知道用于写出目的的大小。
答案 0 :(得分:1)
在Fortran 2008中,内在函数storage_size
是可行的方法。此外,c_sizeof
很有用。
对于Fortran 95中的整数,您可以使用bit_size
。
如果需要声明具有特定存储大小的变量,请使用模块iso_fortran_env
中的类型常量,如real32
。
当然,如果您使用过时和非标准声明integer*4
或real*8
,您始终知道字节数。它是星号后面的数字(定义为可以存储在数字类型中的默认字符数)。
如果需要某些变量集合的大小,可以使用相同的组件创建派生类型:
type,sequence :: dummy_t
integer*4 a
integer*8 b
real*8 c
end type
type(dummy_t) :: dummy
并使用storage_size(dummy)
或使用内在构造函数。
答案 1 :(得分:0)