我正在尝试使用第三方自动微分模块ADF95,该模块在特定情况下使用表达式-sqrt(asin(-1.0_dpr))
返回一个非数字(NaN),其中{{1} }是使用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
的平方根是不确定的,因此,我明白了为什么他们会尝试使用此表达式来获得NaN。那么有没有办法告诉编译器忽略这些错误?