如何在Fortran中指定BOZ常量的大小以静音警告

  • 本文关键字:警告 常量 BOZ Fortran fortran
  • 更新时间 :
  • 英文 :


我正在开发NCEPLIBS-g2,这是NOAA的一个免费软件库,允许气象学家和气候科学家访问GRIB2数据。

我有一个警告:

121 |   allones = Z'FFFFFFFF'
|            1
Warning: Conversion from ‘INTEGER(16)’ to ‘INTEGER(4)’ at (1) [-Wconversion]

这来自以下代码:

integer(4) :: ire00, allones
allones = Z'FFFFFFFF'

显然,BOZ常数Z'FFFFFFFF'被解释为整数(16(。

如何指示它是整数(4(,并使此警告静音?

问题的答案是将INT内在与所需的KIND说明符一起使用,例如INT(Z'FFFFFFFF',KIND(allones))。这是符合标准的,您显示的用法不在Fortran 2018中,它的含义可能因实现而异。

您显示的赋值在Fortran 2023中是有效的,BOZ常数的解释与我上面显示的INT表达式相同。关于这方面的更多信息,请参阅我在"我们都是这条总线上的僵尸"中的帖子"Fortran博士">

最新更新