Неопределенная ссылка на 'qcos_' и '_g95_qcos_r16' с четырехкратной точностью в G95

StackOverflow https://stackoverflow.com//questions/20036637

  •  21-12-2019
  •  | 
  •  

Вопрос

Я пытался сделать четырехкратную точность на FORTRAN [real(kind=16)], но я продолжаю получать ошибку

C:\User\User\AppData\Local\Temp/ccUMY6b.0:forcefunction.f95:(.text+0x437):
undefined reference to 'qcos_'

Я пытался измениться qcos к cos но,

C:\User\User\AppData\Local\Temp/ccM5CBUM.0:forcefunction.f95:(.text+0x2fd1):
undefined reference to '_g95_qcos_r16'

Та же проблема для sin, abs, acos, asin, sqrt

Это было полезно?

Решение

kind=16 это не обязательно четырехкратная точность.значения вида не определены языковым стандартом и не переносятся между компиляторами.Шестнадцать может быть неподходящим значением для четырехкратной точности в вашем компиляторе.

Не все компиляторы поддерживают четырехъядерную точность на всех архитектурах.Вы можете проверить, напечатав следующие значения:

selected_real_kind (14)
selected_real_kind (17)
selected_real_kind (32)

Первый запрашивает двойную точность, следующий - промежуточную точность (10 байт), которая иногда доступна на процессорах Intel, и последний - четырехзначную.Если компилятор не поддерживает запрошенное количество десятичных разрядов, то selected_real_kind функция вернет -1.

Другие советы

Я могу подтвердить вашу проблему в моей системе с помощью g95 4.0.3.

Согласно этой теме http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2009-02/msg00668.html встроенные функции еще не реализованы для четырехкратной точности.Следовательно, вам придется изменить компилятор или использовать только двойную точность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top