Ce n' “real*8” signifie?
Le manuel d'un programme écrit en Fortran 90 dit, "Tous les réels de variables et de paramètres sont spécifiés dans la précision 64 bits (c'est à dire real*8
)."
Selon Wikipédia, simple précision correspond à 32 bits de précision, tandis que la double précision correspond à la version 64 bits de précision, donc, apparemment, le programme utilise la double précision.
Mais ce n' real*8
veux dire?
Je pensais que le 8
signifie que 8 chiffres suivre le point décimal. Cependant, Wikipédia semble dire que la simple précision fournit généralement de 6 à 9 chiffres alors que double précision fournit généralement de 15 à 17 chiffres. Est-ce à dire que l'énoncé "64 bits de précision" est incompatible avec real*8
?
Vous devez vous connecter pour publier un commentaire.
Le 8 se réfère au nombre de octets que le type de données utilise.
Donc un entier de 32 bits est
integer*4
dans le même sens.Une recherche rapide trouvé ce guide pour les types de données de Fortran, qui comprend:
et
Il y a maintenant au moins 4 façons de spécifier la précision en Fortran.
Comme déjà répondu,
real*8
spécifie le nombre d'octets. Il est quelque peu obsolète, mais devrait être en sécurité.La nouvelle façon est avec des "types". On devrait utiliser les fonctions intrinsèques à obtenir le type qui a la précision dont vous avez besoin. Spécifier le type spécifique de la valeur numérique est risqué parce que les différents compilateurs utilisent différentes valeurs.
Encore un autre moyen est d'utiliser les types nommés de la ISO_C_Binding. Cette question traite de la nature du système pour les entiers -- il est très similaire pour les réels.
use ISO_FORTRAN_ENV
vous aurez accès à des valeurs qui spécifient réel et les types d'entiers par le nombre de bits (par exemple,real (real32) ::
etreal (real64) ::
) en tant que standard & portable manière de spécifier des types de la taille de stockage.Les étoiles de notation (comme
TYPE*n
est appelé) est un non-standard Fortran construire si elle est utilisée avecTYPE
autres queCHARACTER
.Si elle est appliquée de type caractère, elle crée un tableau de
n
caractères (ou une chaîne den
caractères).Si elle est appliquée à un autre type, il spécifie la taille de stockage en octets. Cela doit être évité à tout prix en Fortran 90+, où le concept de type GENRE est introduit. La spécification de la taille de stockage crée non-applications portables.