Tellement étrange. FORTRAN nécessite-t-il que les variables soient réinitialisées après leur envoi en tant que paramètres? J'ai continué à obtenir une erreur de segmentation chaque fois que j'envoyais les mêmes arguments à un autre sous-programme. J'ai découvert que les valeurs des arguments étaient effacées entre le premier appel et le second, sans aucune réaffectation des arguments entre les appels de fonction ou même dans les deux fonctions. La portée de ces arguments est limitée au programme principal (je n'utilise pas de blocs COMMON).FORTRAN efface les valeurs arg entre les appels de fonction?
Je ne peux pas afficher de code maintenant que j'écris de mon téléphone, mais avez-vous des idées? La solution de contournement temporaire consiste à réaffecter les valeurs juste avant d'appeler la deuxième fonction.
Merci pour l'aide.
pas de code, pas de plaisir. –
Je suis d'accord avec Stefano, il est impossible de savoir ce qui ne va pas sans voir le code. Est-ce que vous spécifiez l'intention de vos arguments? (Vous devriez l'être.) Quand vous écrivez que la portée des arguments est limitée au programme principal, mais que vous transmettez ces variables comme arguments aux sous-programmes, vous me confondez - si vous passez un argument à un sous-programme -programme sa portée est étendue, bien qu'il puisse sembler avoir un nom différent. –
D'accord. La portée est étendue. Combinez cela avec appel par référence et un changement de valeur négligé dans le sous-programme, et vous avez une recette pour segfault. –