警告:GNU 扩展
Warning: GNU Extension
当我将包裹提交给 CRAN 时,它没有通过自动传入检查并出现以下警告:
* checking whether package 'EpiILM' can be installed ... WARNING
Found the following significant warnings:
Warning: GNU Extension: Different type kinds at (1)
和相应的日志文件说
Epimcmc.f95:440.25:
psi= min(1.0,exp(ratio))
1
Warning: GNU Extension: Different type kinds at (1)
当我使用 R CMD CHECK 和 R CMD CHECK --as-cran 测试我的包时,两者都没有产生警告或注释。我在我的 MacOS 上使用 R 版本 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" 并且代码是用 Fortran 95 编写的。
有什么建议吗?
您的代码太短,无法准确诊断,但可以安全地推断出代码中未显示的部分是什么。
您的 ratio
与默认类型不同,可能是“双精度”。
但 1.0
是默认类型(也称为单精度)。
Fortran 不允许在 min()
中混合不同种类,但您可以在
中这样做
min(1.0,exp(ratio))
要解决此问题,请使用与 ratio
相同类型的文字。所以如果是double precision
,可以用:
min(1.0d0, exp(ratio))
如果是一些 real(rk)
你可以使用
min(1.0_rk, exp(ratio))
也可以使用real(.., kind=rk)
函数
警告说 GNU Fortran 编译器认识到它在 Fortran 中是不允许的,但允许它作为非标准扩展。 CRAN 编码标准是否允许使用此扩展是另一个问题。可能不会,如果它被拒绝了。
当我将包裹提交给 CRAN 时,它没有通过自动传入检查并出现以下警告:
* checking whether package 'EpiILM' can be installed ... WARNING
Found the following significant warnings:
Warning: GNU Extension: Different type kinds at (1)
和相应的日志文件说
Epimcmc.f95:440.25:
psi= min(1.0,exp(ratio))
1
Warning: GNU Extension: Different type kinds at (1)
当我使用 R CMD CHECK 和 R CMD CHECK --as-cran 测试我的包时,两者都没有产生警告或注释。我在我的 MacOS 上使用 R 版本 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" 并且代码是用 Fortran 95 编写的。
有什么建议吗?
您的代码太短,无法准确诊断,但可以安全地推断出代码中未显示的部分是什么。
您的 ratio
与默认类型不同,可能是“双精度”。
但 1.0
是默认类型(也称为单精度)。
Fortran 不允许在 min()
中混合不同种类,但您可以在
min(1.0,exp(ratio))
要解决此问题,请使用与 ratio
相同类型的文字。所以如果是double precision
,可以用:
min(1.0d0, exp(ratio))
如果是一些 real(rk)
你可以使用
min(1.0_rk, exp(ratio))
也可以使用real(.., kind=rk)
函数
警告说 GNU Fortran 编译器认识到它在 Fortran 中是不允许的,但允许它作为非标准扩展。 CRAN 编码标准是否允许使用此扩展是另一个问题。可能不会,如果它被拒绝了。