Звездочки в Фортране: синтаксическая ошибка в списке аргументов в (1) - PullRequest
1 голос
/ 20 октября 2011

В следующем коде fortran77 есть это определение подпрограммы

  SUBROUTINE 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, *, *)
    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)

, но всегда получаю

Ошибка: синтаксическая ошибка в списке аргументов в (1)

1 Ответ

2 голосов
/ 20 октября 2011

Это альтернативный спецификатор возврата:

http://www.fortran.com/F77_std/rjcnf0001-sh-15.html#sh-15.8.3

В коде, который вызывает MSIRNS (), вам необходимо заменить звездочки на «* N», где N - метка альтернативной обратной строки.

...