مرجع غير محدد إلى '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
المحلول
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 لم يتم تنفيذ الوظائف الجوهرية للدقة الرباعية حتى الآن.لذلك، يجب عليك تغيير المترجم، أو استخدام الدقة المزدوجة فقط.