Les astérisques dans Fortran: Erreur de syntaxe dans la liste d'arguments de (1)
-
27-10-2019 - |
Question
Dans le code suivant fortran77, il y a cette définition de sous-programme
SUBROUTINE MSIRNS ( D , NOBST , N , X , R , RR , SURFT ,
, INOBSI , ISUR , IDELTS , IRELPS ,
, RNOBSI , RSUR , RDELTS , RRELPS ,
, OBSD , * , * )
quel est le sens des deux derniers arguments, astérisques?
et comment puis-je appeler donc la fonction?
J'ai essayé toutes ces variantes
RES = CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD, *, *)
CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD, *, *)
RES = CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD)
mais toujours obtenir
Erreur: Erreur de syntaxe dans la liste d'arguments de (1)
La solution
Il est un spécificateur alternatif de retour:
http://www.fortran.com/ F77_std / rjcnf0001-sh-15.html # sh-15.8.3
Dans le code qui appelle MSIRNS (), vous devez remplacer les astérisques par « * N », où N est l'étiquette de la ligne de retour alternatif.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow