2009-01-24 5 views
3

Existe-t-il un analogue de l'option "-fdefault-real-8" gfortran (le compilateur GNU Fortran 95) dans g77 (le compilateur GNU Fortran 77)? Cette option définit le type réel par défaut sur un type large de 8 octets.Faire un double-défaut par défaut dans g77, compilateur Fortran

J'ai actuellement un code où l'arithmétique simple précision limite ma précision, et j'ai donc besoin d'une double précision. (Ce ne sont pas seulement les valeurs intermédiaires que je veux être en double précision, qui est un drapeau FPU, je veux que tout soit en double précision.) Je sais que j'ai d'autres approches (en utilisant gfortran, en utilisant d'autres compilateurs, ou changer tous les REAL à DOUBLE PRECISIONs), mais ils ne sont pas idéaux pour ma situation.

Donc, est-il possible de définir le type réel par défaut à double précision, à savoir 8 octets de large, en g77?

+0

A. Rex, je suis curieux. Quelles erreurs voyez-vous avec gfortran? –

+0

@ ScottieT812: C'est en fait le code de mon ami, donc je ne sais pas quelles étaient les erreurs. Il dit qu'il a résolu le problème de toute façon, en partie en utilisant votre réponse. –

Répondre

1

Si vous ne trouvez pas d'indicateur dans les pages de manuel, vous pouvez essayer une macro #define.

#define REAL DOUBLE PRECISION 
+0

Bonne idée! Je pense qu'il laisse le problème des constantes étant toujours en simple précision, mais je suppose que c'est correct ... (voir http://www.fourmilab.ch/fourmilog/archives/2004-11/000432.html) –

+0

Accepté comme la meilleure idée, sinon de répondre directement à la question (il n'y aura peut-être * pas * de réponse). –

+0

Rex, une chose à surveiller est la sensibilité à la casse. Vous devriez probablement définir une macro majuscule et une macro minuscule. –

0

Comme beaucoup de FORTRAN 77 est toujours légal, est-il possible d'utiliser gfortran pour compiler votre code Fortran 77, et fournir l'option -fdefault-real-8?

+0

Ouais, c'est une bonne idée aussi. J'ai mentionné que gfortran n'est pas idéal pour ma situation parce que le code ne compile pas avec gfortran pour une raison quelconque. C'est en quelque sorte une priorité pour moi de comprendre précisément pourquoi pas ... –

Questions connexes