Я пытаюсь использовать сторонний модуль автоматического дифференцирования, 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.Так есть ли способ сказать компилятору игнорировать эти ошибки?