مرجع غير محدد إلى '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