我已經有了現在的代碼,但它仍然不起作用。如果代碼是正確的,請幫助我如何編譯它。我曾試圖編譯它這樣:積分法飛人的計算
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