Странное поведение с использованием четверной точности в Фортране с использованием Mingw (версия Anaconda)

  • Windows 7 64 бит
  • GNU Fortran (GCC) 4.7.0 20111220 (экспериментальная версия) -> Версия MinGW с 64-разрядной версией Anaconda3/Miniconda3.

Всем привет,

Я пытаюсь скомпилировать некоторый код на Фортране для использования из Python, используя F2Py. Полный проект - Solcore, на случай, если кому-то будет интересно. В Linux и MacOS все работает нормально, проблема с Windows. После некоторых усилий я прибил проблему к четырем точным переменным моего кода на Фортране, которые не обрабатываются должным образом.

Минимальный пример, который отлично работает в Linux/MacOS, но не в Windows:

program foo
  real*16 q, q2
  q = 20
  q2 = q+q
  print*, q, q2
end program foo

В Linux/MacOS это печатает, как и ожидалось:

20.0000000000000000000000000000000000         40.0000000000000000000000000000000000

Однако в Windows я получаю:

2.00000000000000000000000000000000000E+0001 1.68105157155604675313133890866087630E-4932

Оставляя в стороне научные обозначения, очевидно, что это не то, что я ожидал. Тот же самый результат появляется всякий раз, когда я пытаюсь выполнить операцию с переменными четверной точности, и я не могу найти способ.

Это не та же ошибка, на которую уже указывали переменные с четверной точностью в Fortran и версия MinGW, включенная в Anaconda.

Любое предложение будет более чем приветствоваться. Пожалуйста, имейте в виду, что, в конечном счете, мне нужно сделать эту работу с F2Py, и MinGW, включенный в Anaconda, - единственный способ, который я нашел в конце, чтобы заставить его работать после прочтения многих инструкций и руководств. Поэтому я бы предпочел придерживаться этого, если это возможно.

Большое спасибо,

Диего

0 ответов

Другие вопросы по тегам