Domanda

Ho provato a creare Quad Precision su Fortran [Real (tipo= 16)], ma continuo a ricevere errori

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

Ho provato a modificare qcos a cos ma,

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

Lo stesso problema per sin, abs, acos, asin, sqrt

È stato utile?

Soluzione

kind=16 non è necessariamente QUAD PRECISION.I valori gentili non sono definiti dallo standard della lingua e non sono portatili su compilatori.Sedici potrebbe non essere il valore gentile per Quad Precision sul tuo compilatore.

Non tutti i compilatori supportano la precisione Quad per tutte le architetture.È possibile controllare stampando i seguenti valori:

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

Le prime richieste a doppia precisione, la successiva precisione intermedia (10 byte) disponibile a volte sui processori Intel e l'ultimo quad.Se il compilatore non supporta il numero richiesto di cifre decimali, la funzione selected_real_kind restituirà -1.

Altri suggerimenti

Posso confermare il tuo problema sul mio sistema con G95 4.0.3.

Secondo questo thread http://coding.derkeiler.com/archive/fortran/comp.lang.fortran/2009-02/msg00668.html Le funzioni intrinseche non sono ancora implementate per Quad Precision.Pertanto, è necessario modificare il compilatore o utilizzare solo la doppia precisione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top