主题:[讨论]请教子程序的一个用法问题
我想请教下定义以及使用子程序时什么时候加(),什么时候不加啊。
比如下面的是求50到100的素数,并将他们求和。PRIM和PEIME(I)肿么用呢,有区别吗?为啥有时候写的PRIME(I)提示错误,这是数组呢?
PROGRAM LT1
IMPLICIT NONE
EXTERNAL PRIME
LOGICAL PRIME
INTEGER SUM,I,N
N=0
SUM=0
DO 10 I=50,100
IF(PRIME(I)) SUM=SUM+I
WRITE(*,'(1X,I5\)') I
N=N+1
IF(MOD(N,5).EQ.0) PRINT *
10 CONTINUE
PRINT *,SUM
PAUSE
END
LOGICAL FUNCTION PRIME(A)
INTEGER A,K,J
PRIME=.TRUE.
K=SQRT(REAL(A))
DO 20 J=2,K
IF(MOD(A,J).EQ.0) EXIT
20 CONTINUE
IF(J.LE.K) PRIME=.FALSE.
RETURN
END