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

Я пытался сделать четкую четкость на 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

2 ответа

Решение

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 встроенные функции еще не реализованы для четкой четверной точности. Следовательно, вы должны изменить компилятор или использовать только двойную точность.

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