アプリ版:「スタンプのみでお礼する」機能のリリースについて

gfortranによる並列計算の確認をしようとしてエラーが出てしまいます。
解説サイトの指示に従っただけなので自前で準備したのはコンパイラのインストールぐらいでそれもデフォルト通りです。
gfortranは標準でopenmpが付いてくるとのことで、以下のように実行しました。エラーの原因は何なのでしょうか。
OSはWindows10です。

実行:
gfortran -fopenmp hello.f90 -o hello.exe

実行結果:エラーメッセージ
f951.exe: Fatal Error: Reading module 'omp_lib' at line 1 column 51: Unexpected EOF
compilation terminated.

ソースプログラムhello.f90の内容は以下の通り:ダウンロード
program helloOpenMP
!$ use omp_lib
implicit none
print *, 'START'
!$omp parallel
print *, 'Hello! N =', omp_get_num_threads(), ' and I am ', omp_get_thread_num()
!$omp end parallel
print *, 'END'
end

gfortranのバージョン:
GNU Fortran (Rev1, Built by MSYS2 project) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.

よろしくお願いします。gfortranのバージョンによって動作が違うとしか考えにくいのですが。

A 回答 (2件)

No.1 のコメントへの返事です。

回答の付け足し方が分からないので、新規で失礼します。

私も scoop を試して openmp どころか gofrtran そのものがうまくいかなかった口です。一度 uninstall して、下を参考に pacman で入れたらうまく行きました。
$ pacman -R mingw-w64-x86_64-gcc-fortran

https://www.scivision.dev/install-msys2-windows/

https://packages.msys2.org/package/mingw-w64-x86 …

Windows 環境に unix like な環境を入れるのは昔から難しくて、Cygwin MinGW MSYS みんな様々に苦労しているのでまぁしょうがないと思います。
私は最近 WSL メインにしています。
    • good
    • 0
この回答へのお礼

回答有難うございます。プログラム開発は自分の構想とコーディングの間でのトラブルのフィックスという作業ですが、その大前提である開発環境のセットアップでアレコレと足並みがそろわない問題があるわけですね。データ解析(プログラミング)のRではライブラリの更新とか本体バージョンなどでいろいろ齟齬が生じて動作しないという問題がありましたが、EZRというパッケージがその問題を解決してくれるようです。その代わり古いものはいったんアンインストールを求められるようですが。Linuxもパッチを当てたりして大変でしたが、今は管理されてだいぶこの問題は緩和されたようです。そういうことを思い出しました。余談でした。

お礼日時:2020/11/02 14:35

MSYS2 gfortran 10.2.0 では問題なく実行できました。



この手のエラーはライブラリとコンパイラのべージョンが違っていると出るとか gfortran がらみのスレに書いてありました。それが本当ならインストールの問題かもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。Windowsでgfortranをインストールする方法っていろいろあると思います。MSYS2,MINGW, Cygwin,WSL上でのインストールとかです。まだあるかもしれません。私の記憶では何をインストールするかチェックマークをいれたりして取捨選択できたりしたと思います。
今回はPowershellでscoop install gcc としました。updateなどもscoopコマンドでできるようです。まるでubuntuのsudo apt get install gfortran みたいなあんばいです。それが機能をフルにカバーしていないのかとかっがりですが。その情報ソースはqiitaです。コンピュータ技術者の集団なのだから、最も信頼できるのかと思ったのですが。

お礼日時:2020/11/01 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!