下一个程序有错误,我不知道哪个是麻烦。
IMPLICIT NONE
DOUBLE PRECISION X(100),W(100),lambdainv,g,lambda,alfac
INTEGER i, N
N=100
alfac=939.D0*2.D22
CALL GAUSS_L(1.D0,100.D0,100,X,W)
lambdainv=0.D0
DO i=1,N
lambdainv=lambdainv+((W(i)*(X(i))**2)/(alfac+
> (X(i))**2))*g(X(i)))**2
END DO
lambda=lambdainv**(-1)
WRITE(*,*)'lambda=', lambda
STOP
END
c Funcion g
DOUBLE PRECISION FUNCTION g(X)
IMPLICIT NONE
DOUBLE PRECISION X, mu, pi
c Inicializamos las variables
mu=138.d0
pi=ATAN(1.D0)*4.D0
g=(2.d0*sqrt(mu**3))/((sqrt(pi))*(mu**2+X**2))
RETURN
END
错误是:
lambdainv=lambdainv+((W(i)*(X(i))**2)/(alfac+
1
Error: Unclassifiable statement at (1)
谢谢!
答案 0 :(得分:0)
当您考虑到该行的延续时,您的括号在相应的行中是不平衡的!
你的意思是:
lambdainv=lambdainv+( W(i)*X(i)**2 / (alfac+
> X(i)**2)*g(X(i)))**2
(当然,这是一个疯狂的猜测!)