質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

Q&A

解決済

2回答

9580閲覧

WindowsでのFortran実行環境構築においてコンパイルできない

anakin.jp

総合スコア5

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

0グッド

0クリップ

投稿2020/04/03 14:39

編集2020/04/03 15:43

前提・実現したいこと

Fortranおよびプログラミング初心者です.よろしくお願いいたします.
現在Fortranの実行環境を構築するため,
https://home.hiroshimau.ac.jp/rgdlab/rgdl_html/programming/
programming.html
こちらのサイトを参考にgfortranをインストールして
環境構築を行っております.

発生している問題・エラーメッセージ

gfortranインストール後,Fortranコンパイラ格納フォルダにpathを通し,
簡単なプログラムを実行するためコンパイルしようとしたところ,以下のような
エラーが発生し,実行形式ファイルが作成されません.

該当のソースコード

C:\Users\ユーザー名>cd C:\Users\ユーザー名\Documents\fortran\hello

C:\Users\ユーザー名\Documents\fortran\hello>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 9CE3-54B8 です

C:\Users\ユーザー名\Documents\fortran\hello のディレクトリ

2020/04/03 22:27 <DIR> .
2020/04/03 22:27 <DIR> ..
2020/04/03 22:23 65 hello.f90.txt
1 個のファイル 65 バイト
2 個のディレクトリ 19,725,697,024 バイトの空き領域

C:\Users\ユーザー名\Documents\fortran\hello>gfortran hello.f90
gfortran: error: hello.f90: No such file or directory

試したこと

1)コマンドプロンプト上で”gfortran –v” と打ち,gfortranのバージョン情報等が表示されたため,
インストールができていることを確認しました.
2)pathを通した後,コマンドプロンプト上で"gfortran"と打ち,以下のエラーよりpathが設定されていることを確認しました.
C:\Users\ユーザー名>gfortran
gfortran: fatal error: no input files
compilation terminated.
3)実行したいプログラムに間違いがないか確認をしました.プログラムは以下の通りです.
Program hello
print *, "Hello, world"
stop
end Program hello
4)ファイル名をhello.f90.txtに変更して実行したところ以下のようなエラーに変わりました.
C:\Users\ユーザー名i\Documents\fortran\hello>gfortran hello.f90.txt
C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt: file format not recognized; treating as linker script
C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt:1: syntax error
collect2.exe: error: ld returned 1 exit status
調べたところhttps://teratail.com/questions/89964こちらと似ていると考えたため,
再起動およびタスクマネージャーからa.exe を探したのですが見つからず,ファイルも探したのですが
見つけることができませんでした.

補足情報(FW/ツールのバージョンなど)

使用しているosはwindows10です.
gfortranのバージョン情報等を以下に記載いたします.
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=C:/Program\ Files\ (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-win32-dwarf-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/lib -L/c/mingw810/prerequisites/i686-zlib-static/lib -L/c/mingw810/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: win32
gcc version 8.1.0 (i686-win32-dwarf-rev0, Built by MinGW-W64 project)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

gfortranの後には、プログラムの書かれたファイル名を指定します。

2020/04/03 22:23 65 hello.f90.txt

hello.f90.txtという名前のファイルは存在するが、hello.f90という名前のファイルは存在しないので、gfortran hello.f90は、No such fileつまり「そんなファイルは存在しない」といエラーになります。

投稿2020/04/03 15:06

otn

総合スコア85778

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anakin.jp

2020/04/03 15:38

ご回答ありがとうございます.ご指摘いただいた通り変更したところ以下のようなエラーに変わりました. C:\Users\ユーザー名i\Documents\fortran\hello>gfortran hello.f90.txt C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt: file format not recognized; treating as linker script C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt:1: syntax error collect2.exe: error: ld returned 1 exit status 調べたところhttps://teratail.com/questions/89964こちらと似ていると考えたため, 再起動およびタスクマネージャーからa.exe を探したのですが見つからず,ファイルも探したのですが 見つけることができませんでした.もしご知見をお持ちでしたら教えていただけると幸いです.
otn

2020/04/03 15:44

そうじゃなくて、 ren hello.f90.txt hello.f90 gfortran hello.f90 では?
anakin.jp

2020/04/03 15:56

迅速な返信ありがとうございます.解決いたしました. 大変ありがとうございます. RENコマンドを使ってファイル名をすることができるんですね,大変勉強になりました.この時ファイル名がhello.f90.txtだといけない理由がわからないのですが,お教えいただけるとありがたいです.
otn

2020/04/03 16:10

gfortran や gcc だと拡張子を見てファイルの種類を判断します。txtという拡張子はgfortranは知らないので、treating as linker script ということだと思います。 fortranソースだとみなされる拡張子である必要があります。f とか f90 とか f95 とか f03 とか。
anakin.jp

2020/04/04 00:44

なるほど,拡張子を見てファイル種類を判断しているのですね.大変参考になりました. ありがとうございます.
guest

0

dirの結果、実際のファイル名はhello.f90.txtとなっているのに
gfortranの引数にはhello.f90を指定しているからでは?

投稿2020/04/03 15:05

SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anakin.jp

2020/04/03 15:37

ご回答ありがとうございます.ご指摘いただいた通り変更したところ以下のようなエラーに変わりました. C:\Users\ユーザー名i\Documents\fortran\hello>gfortran hello.f90.txt C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt: file format not recognized; treating as linker script C:/Program Files (x86)/mingw-w64/i686-8.1.0-win32-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe:hello.f90.txt:1: syntax error collect2.exe: error: ld returned 1 exit status 調べたところhttps://teratail.com/questions/89964こちらと似ていると考えたため, 再起動およびタスクマネージャーからa.exe を探したのですが見つからず,ファイルも探したのですが 見つけることができませんでした.もしご知見をお持ちでしたら教えていただけると幸いです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問