0

下一个程序有错误,我不知道是哪个问题。

 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)

谢谢!!

4

1 回答 1

0

当您考虑到该行的延续时,您的括号在相应行中是不平衡的!

你的意思是:

          lambdainv=lambdainv+( W(i)*X(i)**2 / (alfac+ 
     >              X(i)**2)*g(X(i)))**2

(当然,这是一个疯狂的猜测!)

于 2013-10-11T18:11:16.950 回答