Есть ли способ остановить компилятор Фортран от проверки, передаются ли отрицательные аргументы в функцию SQRT? - PullRequest
0 голосов
/ 06 февраля 2019

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

...