2011-10-20 6 views
1

에서 인수 목록에서 구문 오류,이 서브 루틴 정의별표 다음 포트란 코드 (1)

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) 

하지만 항상 얻을 시도

Error: Syntax error in argument list at (1)

답변

2

그것은 대체 반환 지정자의 : MSIRNS를 호출하는 코드에서

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

() 별표를 "* N"으로 바꾸어야합니다. 여기서 N은 al의 레이블입니다. ternate 리턴 라인.

+1

확실하게 오래된 코드 ... 대체 return은 Fortran 95에서 "노후화"로 선언되었으므로 새 프로그램에서 사용해서는 안됩니다. –