有没有一种方法可以阻止Fortran编译器检查是否将负参数传递给SQRT函数?

时间:2019-02-06 14:42:21

标签: fortran automatic-differentiation

我正在尝试使用第三方自动微分模块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。那么有没有办法告诉编译器忽略这些错误?

0 个答案:

没有答案