![](/img/trans.png)
[英]OMP: What is the difference between OMP PARALLEL DO and OMP DO (Without parallel directive at all)
[英]Compile with gfortran without c$omp& directive
這個問題與使用 gfortran -fopenmp 編譯支持 OpenMP 的 Fotran77(結合一些 C 庫)固定格式代碼有關。
這個答案討論了在繼續下一行的情況下,如果所需的列超過 72,在下一行中用於支持 OpenMP 的代碼的正確指令是c$omp&
sentinel。 例如,
代碼A
C$OMP PARALLEL SHARED(Lm,Mm, pm,pn, f,f_q, fnd_rmask,rmask, dm_u,dn_v,
& iA_q)
是不正確的固定格式 Fotran77 代碼部分。
代碼B
C$OMP PARALLEL SHARED(Lm,Mm, pm,pn, f,f_q, fnd_rmask,rmask, dm_u,dn_v,
C$OMP& iA_q)
但是,我需要使用代碼 A (現在不要問我,如果有人感興趣,我可以解釋)這給了我 gfortran 編譯器的錯誤(附上截圖)。 這個答案還說,即使我們沒有使用類似於代碼 A的c$omp&
哨兵開始下一行, ifort 也不會給出任何錯誤。 (我沒有 ifort,也沒有自己嘗試過。)
我的問題:有沒有辦法(或任何編譯器標志)可以讓 gfortran 用代碼 A愉快地編譯? 如果 ifort 可以忍受它,那么 gfortran 不能嗎? 我不敢相信沒有編譯器指令可以覆蓋所有這些。 (這並不意味着我在質疑 gfortran 開發人員的能力和原則)
如果不更改源代碼,第一個問題的答案是否定的。
你的第二個問題的答案是也許。 目前,gfortran 不支持 Intel 擴展。 gfortran 是 GCC 的一部分,GCC 是開源軟件。 您可以下載該軟件。 添加一個新選項,例如-fIntel-openmp-syntax
。 完成此工作后,您提交的補丁可能會提交到源代碼存儲庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.