我正在尝试使用第三方自动微分模块ADF95,它使用表达式-sqrt(asin(-1.0_dpr))
在特定情况下返回非数字(NaN),其中dpr
使用integer, parameter :: dpr = KIND(1.D0)
.
在尝试使用mod_adf95
命令编译一个使用该模块的简单测试程序时gfortran mod_adf95.f90 main.f90 -o test.exe
,我收到了几个错误,例如:
mod_adf95.f90:2511:36:
f%deriv(1:lena) = -sqrt(asin(-1.0_dpr))*sign(1.0_dpr,a%value)
1
Error: Argument of SQRT at (1) has a negative value
显然,负数的平方根real
是未定义的,所以我明白他们为什么会尝试使用这个表达式来获得 NaN。那么有没有办法告诉编译器忽略这些错误呢?