我已经有了现在的代码,但它仍然不起作用。如果代码是正确的,请帮助我如何编译它。我曾试图编译它这样:积分法飞人的计算
gfortran trap.f -fopenmp
PROGRAM TRAP
USE OMP_LIB
DOUBLE PRECISION INTEG, TMPINT
DOUBLE PRECISION A, B
PARAMETER (A=3.0, B=7.0)
INTEGER N
PARAMETER (N=10)
DOUBLE PRECISION H
DOUBLE PRECISION X
INTEGER I
DOUBLE PRECISION F
H = (B-A)/N
INTEG = 0.0
TMPINT = 0.0
!$omp parallel firstprivate(X, TMPINT) shared(INTEG)
!$omp do
DO 10 I=1,N-1,1
X=A+I*H
TMPINT = TMPINT + F(X)
10 CONTINUE
!$omp end do
!$omp critical
INTEG = INTEG + TMPINT
!$omp end critical
!$omp end parallel
NTEG = (INTEG+(F(A)+F(B))/2.0)*H
PRINT *, "WITH N=", N, "INTEGRAL=", INTEG
END
FUNCTION F(X)
DOUBLE PRECISION X
F = X/(X + 1) * EXP(-X + 2)
END
编译器提供了以下问题:
[http://i.stack.imgur.com/QPknv.png][1]
[http://i.stack.imgur.com/GYkmN.png][2]
为什么这么多downvotes? (尽管最好将错误消息作为文本包含在问题中......) – roygvib
请以文本形式给出错误消息。屏幕阅读器无法翻译图像,并且很难通过全文搜索查找错误消息... –
[我看,看起来OP好像多次发表过类似的问题(?)。嗯。] – roygvib