我必须使用积分来计算椭圆的周长。我的Fortran 90代码是:
j
但我通过调试收到两条错误消息,即:
MODULE integral
REAL(8) :: Is, It, d
REAL(8), PARAMETER :: a=0, b= 2*ACOS(-1.0)
INTEGER :: i, j, n
CONTAINS
FUNCTION f(x)
REAL(8) :: x, f, a, b
f=SQRT((a**2 * (COS(x))* *2) + (b* *2 * (SIN(x))**2))
END FUNCTION f
FUNCTION simpson(f, a, b, Is, n)
REAL(8) :: Is, a, b, d
INTERFACE
FUNCTION f(x)
REAL(8) f,x
END FUNCTION
END INTERFACE
Is=0
d=(b-a)/n !
DO i=1, n-1, 2
Is=Is+f(a+d*(i-1))*d/3.
Is=Is+f(a+d*i)*d*4/3.
Is=Is+f(a+d*(i+1))*d/3.
ENDDO
END FUNCTION
END MODULE
PROGRAM ellipse
USE integral
IMPLICIT NONE
WRITE(*,FMT="(A)",ADVANCE="no") "Length of the semi-major axis[m]: "
READ(*,*)a
WRITE(*,FMT="(A)",ADVANCE="no") "Length of the semi-minor axis[m]: "
READ(*,*)b
WRITE(*,'(1x,E14.5)') "[m]: "
END DO
END PROGRAM ellipse
有人知道我该如何解决这个问题?我尝试了定义不同的常量/变量,但它没有用。我很开心,如果有人帮助我,我会非常感激。现在一直困扰着我!