Отключить обработчик FPE во время выполнения в Фортране
У меня есть библиотека, написанная на Фортране, которая использует MKL от Intel (связана статически). Я использую ifort для компиляции и компоновки.
Когда я связываю свою библиотеку (динамически) с другим кодом, используя опцию -fpe0, я получаю исключения с плавающей запятой в MKL, что, по мнению Intel, является известной вещью, и мне не о чем беспокоиться. Я предполагаю, что это связано с некоторыми умозрительными казнями.
Однако, когда кто-то другой использует мою библиотеку, он может попытаться использовать -fpe0 для связи своего кода с моей библиотекой, и это может привести к проблемам. Поэтому мне было интересно: есть ли способ отключить обработчик FPE во время выполнения при входе в мою библиотеку и возвращении его в исходное состояние по возвращении?
Спасибо!
1 ответ
Как отметил Владимир, запрошенная функциональность обеспечивается встроенным модулем ieee_exceptions: см. Здесь
Это поддерживается Intel ifort по крайней мере с версии 12 (проверено) и, вероятно, gfortran с версии 4.10 (не проверено).