Référence non définie à 'qcos_' et '_g95_qcos_r16' avec une précision quad dans G95

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

  •  21-12-2019
  •  | 
  •  

Question

J'ai essayé de faire une précision quad sur FORTRAN[real(kind=16)], mais j'obtiens toujours une erreur

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

J'ai essayé de changer qcos à cos mais,

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

Même problème pour sin, abs, acos, asin, sqrt

Était-ce utile?

La solution

kind=16 n'est pas nécessairement une précision quadruple.les valeurs kind ne sont pas définies par le standard du langage et ne sont pas portables entre les compilateurs.Seize n'est peut-être pas la valeur idéale pour la précision quadruple sur votre compilateur.

Tous les compilateurs ne prennent pas en charge la précision quadruple sur toutes les architectures.Vous pouvez vérifier en imprimant les valeurs suivantes :

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

Le premier demande une double précision, le suivant une précision intermédiaire (10 octets) qui est parfois disponible sur les processeurs Intel, et le dernier quad.Si le compilateur ne prend pas en charge le nombre demandé de chiffres décimaux, le selected_real_kind la fonction reviendra -1.

Autres conseils

Je peux confirmer votre problème sur mon système avec g95 4.0.3.

D'après ce fil http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2009-02/msg00668.html les fonctions intrinsèques ne sont pas encore implémentées pour la précision quad.Par conséquent, vous devez changer de compilateur ou utiliser uniquement la double précision.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top