Fortran小问题,

问题描述:

Fortran小问题,
EXTERNAL F
DIMENSION X(3),Y(3)
DATA X /3*0.0/
B = 2.0
N=3
M=10
EPS=1.0E-5
CALL DNMTC(X,N,B,M,EPS,F,Y)
WRITE(*,*)
DO 10 I=1,N
10 WRITE(*,100) I,X(I)
WRITE(*,*)
100 FORMAT(5X,'X(',I2,1X,')=',E13.6)
END
FUNCTION F(X,N)
DIMENSION X(N)
F1=3*X(1)+X(2)+2*X(3)*X(3)-3.0
F2=-3*X(1)+5*X(2)*X(2)+2*X(1)*X(3)-1
F3=25*X(1)*X(2)+20*X(3)+12
F=SQRT(F1*F1+F2*F2+F3*F3)
END
SUBROUTINE DNMTC(X,N,B,M,EPS,F,Y)
DIMENSION X(N),Y(N)
DOUBLE PRECISION R
REAL NRND1
A=B
K=1
R=1.0D0
Z=F(X,N)
10 IF(A.GE.EPS) THEN
L=L+1
\x05DO 20 I=1,N
20 Y(I)=-A+2.0*A*NRND1(R)+X(I)
Z1=F(Y,N)
K=K+1
IF(Z1.GE.Z) THEN
IF(K.GE.M) THEN
\x05K=1
\x05A=A/2.0
END IF
GOTO 10
ELSE
K=1
\x05DO 30 I=1,N
30 X(I)=Y(I)
Z=Z1
IF(Z.GE.EPS) GOTO 10
END IF
END IF
END
运行后:
--------------------Configuration:DNMTC0 - Win32 Debug--------------------
Compiling Fortran...
D:\MSDev\MSDEV98\MyProjects\DNMTC0\DNMTC0.FOR
Linking...
DNMTC0.OBJ :error LNK2001:unresolved external symbol _NRND1@4
Debug/DNMTC0.exe :fatal error LNK1120:1 unresolved externals
Error executing link.exe.
DNMTC0.exe - 2 error(s),0 warning(s)

NRND1 如果是函数,请书写它.
NRND1 如果是数组,请声明它.NRND1在子程序上,能不能告诉我如何改,才能运行,这程序是直接照书上写的,怎么就出错了呢,拜托了。NRND1在子程序上,能不能告诉我如何改,才能运行,这程序是直接照书上写的,怎么就出错了呢,拜托了。你并没有书写 NRND1 函数,书写以后就可以了。NRND1函数如何书写NRND1函数如何书写Fortran不规定任何叫NRND1的函数,这应该是自己写的。