如何在gfortran中获得双倍大小

如何在gfortran中获得双倍大小,fortran,gfortran,Fortran,Gfortran,给我4 print *, sizeof(DOUBLE) 给我8(我假设的是正确的) 不幸的是,这不会编译: DOUBLE PRECISION x print *, sizeof(x) 有没有办法在一个sizeof()调用中实现这一点?是GNU扩展,因此不一定是可移植的 从: 论点应为任何类型、等级或形状 因此,以下工作: print *, "size of DOUBLE:", sizeof(DOUBLE PRECISION) 1.d0是双精度文字。要获得单个精度浮点的大小,请使用1.e

给我4

print *, sizeof(DOUBLE)
给我8(我假设的是正确的)

不幸的是,这不会编译:

DOUBLE PRECISION x 
print *, sizeof(x)
有没有办法在一个sizeof()调用中实现这一点?

是GNU扩展,因此不一定是可移植的

从:

论点应为任何类型、等级或形状

因此,以下工作:

print *, "size of DOUBLE:",  sizeof(DOUBLE PRECISION)

1.d0
是双精度文字。要获得单个精度浮点的大小,请使用
1.e0
1.

您回答了自己的问题…
DOUBLE PRECISION x print*,sizeof(x)
问题是:有没有一种方法可以在一次sizeof()调用中实现这一点?在
0d0
之前没有定义它,它是一个双精度
类型的文本常量
double
是一个变量(除非有
implicit
语句,否则默认为实数)。
program test
  print *,sizeof(1.d0)
end program