2020年12月24日
fortranでテキストファイル出力してみる
昨日からfortranを始めた。
まず初めてコンパイル、実行したとき、
いちいちコマンドプロンプトに打ち込むのが面倒だった。
なので下記の画像のBATファイルを作成した。
このBATファイルをダブルクリックすれば
test.f90がコンパイルされ、
a.exeがフォルダ内に出力されるようなった。(下記画像)
ついでに、
a.exeをコマンドプロンプトから実行する
BATファイルを作成してみた。
で、このBATファイルをダブルクリックすると、
コマンドプロンプトが立上り、
Hello World!の文字が出た!
よしよし。
じゃあ、BATファイルを介さず、a.exeをそのままダブルクリックしてもいいかと思ったが、
ダブルクリックするとエラーで実行されない。(下記画像)
きちんとコマンドプロンプト上で実行すると実行できた。
これはコマンドプロンプト上でPASSを指定しているからである。
(環境変数でPASSを登録しても実行できる)
でもexeファイルをダブルクリックして実行できないなんて変だ、と思い
検索して調べると下記のサイトが見つかった。
>プログラミングやってみる!
>.dllが見つかりません。
>http://proprog583.blog.fc2.com/blog-entry-3.html
どうやら
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
のなかにある
・libgcc_s_seh-1.dll
・libquadmath-0.dll
・libwinpthread-1.dll
の3つがa.exeと同じフォルダにあると動くようなので
コピーしてみる。
でダブルクリックしたところ、上記サイトにあるようにエラーなく動いたが、
コマンドプロンプトが出ない(一瞬で消えている?)ので
exeファイルをダブルクリックだとHello World!の文字が見れず
プログラムが本当に想定通りに動いたか確かめれない。
なので、、、
実行されるとtextファイルをはき出すプログラムを書きたい。
(そうすればきちんと実行されたか分かるので。)
で、下記のサイトを参考にしてプログラムを書いてみた。(下記画像)
>nag
>Fortran 入門
>15 ファイル操作
>https://www.nag-j.co.jp/fortran/FI_15.html
writeのカッコの中の意味は以下のサイトを参考にした。
>[itbase2018]Fortran 実習 入出力
>https://itpass.scitec.kobe-u.ac.jp/hiki/hiki.cgi?%5Bitbase2018%5DFortran+%E5%AE%9F%E7%BF%92+%E5%85%A5%E5%87%BA%E5%8A%9B
で、コンパイルしてみる。
先ほど作ったtest.batファイルをダブルクリックするとa.exeがはき出され、
a.exeをダブルクリックするとoutput.txtがはき出される。(下記画像)
ちなみに
・libgcc_s_seh-1.dll
・libquadmath-0.dll
・libwinpthread-1.dll
の3つはフォルダ内に入れっぱなし。
理由は、素人の素朴な印象として
exeファイルって環境変数でPATHを設定しないと使えないなんて
変だな、って思ったから。
(便利なプログラム作っても、環境変数を設定しないといけないとコピペで渡せないよね。
まあ、PATHを指定したa.batを一緒に入れておけばいいわけだが。)
で、はき出されたoutput.txtの中身を開くとこうなっている。
なんか、、
1文字目になぞのスペースがある、、
どうしてだろう。
'hello, world!'と打ったから、
1文字目にスペースは入れてないのに!
そんなことが気になるのはA型だからなのか、それとも糖質制限してイライラしているのか。
で、色々調べてみる。
どうやら、書式を指定しないと1文字目にスペースが入るようだ。
なので文字列としての’(a)’をwriteのカッコ内に入力してみる。
で、コンパイルして、実行して、はき出されたテキストファイルを見てみる。
やった!できてる。(下記画像)
1文字目にスペースなしになってる!
よしよし。
今回はここまでだな。
まず初めてコンパイル、実行したとき、
いちいちコマンドプロンプトに打ち込むのが面倒だった。
なので下記の画像のBATファイルを作成した。
このBATファイルをダブルクリックすれば
test.f90がコンパイルされ、
a.exeがフォルダ内に出力されるようなった。(下記画像)
ついでに、
a.exeをコマンドプロンプトから実行する
BATファイルを作成してみた。
で、このBATファイルをダブルクリックすると、
コマンドプロンプトが立上り、
Hello World!の文字が出た!
よしよし。
じゃあ、BATファイルを介さず、a.exeをそのままダブルクリックしてもいいかと思ったが、
ダブルクリックするとエラーで実行されない。(下記画像)
きちんとコマンドプロンプト上で実行すると実行できた。
これはコマンドプロンプト上でPASSを指定しているからである。
(環境変数でPASSを登録しても実行できる)
でもexeファイルをダブルクリックして実行できないなんて変だ、と思い
検索して調べると下記のサイトが見つかった。
>プログラミングやってみる!
>.dllが見つかりません。
>http://proprog583.blog.fc2.com/blog-entry-3.html
どうやら
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
のなかにある
・libgcc_s_seh-1.dll
・libquadmath-0.dll
・libwinpthread-1.dll
の3つがa.exeと同じフォルダにあると動くようなので
コピーしてみる。
でダブルクリックしたところ、上記サイトにあるようにエラーなく動いたが、
コマンドプロンプトが出ない(一瞬で消えている?)ので
exeファイルをダブルクリックだとHello World!の文字が見れず
プログラムが本当に想定通りに動いたか確かめれない。
なので、、、
実行されるとtextファイルをはき出すプログラムを書きたい。
(そうすればきちんと実行されたか分かるので。)
で、下記のサイトを参考にしてプログラムを書いてみた。(下記画像)
>nag
>Fortran 入門
>15 ファイル操作
>https://www.nag-j.co.jp/fortran/FI_15.html
writeのカッコの中の意味は以下のサイトを参考にした。
>[itbase2018]Fortran 実習 入出力
>https://itpass.scitec.kobe-u.ac.jp/hiki/hiki.cgi?%5Bitbase2018%5DFortran+%E5%AE%9F%E7%BF%92+%E5%85%A5%E5%87%BA%E5%8A%9B
で、コンパイルしてみる。
先ほど作ったtest.batファイルをダブルクリックするとa.exeがはき出され、
a.exeをダブルクリックするとoutput.txtがはき出される。(下記画像)
ちなみに
・libgcc_s_seh-1.dll
・libquadmath-0.dll
・libwinpthread-1.dll
の3つはフォルダ内に入れっぱなし。
理由は、素人の素朴な印象として
exeファイルって環境変数でPATHを設定しないと使えないなんて
変だな、って思ったから。
(便利なプログラム作っても、環境変数を設定しないといけないとコピペで渡せないよね。
まあ、PATHを指定したa.batを一緒に入れておけばいいわけだが。)
で、はき出されたoutput.txtの中身を開くとこうなっている。
なんか、、
1文字目になぞのスペースがある、、
どうしてだろう。
'hello, world!'と打ったから、
1文字目にスペースは入れてないのに!
そんなことが気になるのはA型だからなのか、それとも糖質制限してイライラしているのか。
で、色々調べてみる。
どうやら、書式を指定しないと1文字目にスペースが入るようだ。
なので文字列としての’(a)’をwriteのカッコ内に入力してみる。
で、コンパイルして、実行して、はき出されたテキストファイルを見てみる。
やった!できてる。(下記画像)
1文字目にスペースなしになってる!
よしよし。
今回はここまでだな。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10429338
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック