プログラムを使うための知識


目   次

最低限の知識
 1 プログラムの動く環境:コマンドプロンプト
  1.1 コマンドプロンプトとは
  1.2 プログラムの保存場所
  1.3 プログラムの実行
  1.4 バッチファイル
 2 データの作り方(FORTRANのデータ)
  2.1 FORTRANのファイル
  2.2 FORMAT
応用知識
 3 コマンドプロンプトの使い方
  3.1 コマンドプロンプトの開き方
  3.2 コマンドプロンプトのコマンド
 4 Path設定
 4.1 常にPATHを設定する方法
 4.2 一時的にPATHを通す方法
 4.3 Pathを使わない方法


最低限の知識


1 プログラムの動く環境:コマンドプロンプト

大事な注意:
Windowsでは同じ名前のファイルをコピーしようとすると,「同じ名前のファイルがあります」という警告が出てきます。しかし,コマンドプロンプトではそのような親切はありません。同じ名前のファイルを作成すると,無条件に前のファイルの上に重ね書きされます。くれぐれもご用心ください。
 コマンドプロンプト内では,大文字と小文字の区別はありません。例えば,AAA.datとaaa.datも同じ意味です。ただし,作る際には大文字で設定すれば大文字の,小文字で設定すれば小文字の名前でファイルが作られます。

1.1 コマンドプロンプトとは
 プログラムはWindows上ではコマンドプロンプトの上で実行されます。コマンドプロンプトはWindowsの前のOSであるMS-DOS時代のものですが,今も,用意されています。
 スタートマークのメニューの中に

があります。ここで,コマンドプロンプトを選択すると,次の画面が出てきます。

ただし,これからプログラムが実行できる環境になるまでには少し手間が掛かります。これについては,応用知識を見てください。以下では最も簡単な使い方のみを示します。


1.2 プログラムの保存場所
 コマンドプロンプト上でコマンド(プログラム,ファイル名など)を入力するとコマンドプロンプトは,1)現在のフォルダ,2)Pathで指定した場所,を探しに行きます。つまり,現在のフォルダを探し,なければPathで指定した場所を探しに行くわけです。これ以外に,3)プログラムの入っている場所を実行時に指定する。という方法もあります。ここでは,一番簡単な,現在のフォルダ(一般には,データの入っているフォルダ)にプログラムの一緒にあるあることにします。

1.3 プログラムの実行
 まだ,コマンドプロンプトを開く方法を示したわけではありませんが(3章参照),仮に開いていたとしての話です。
 コマンドプロンプトで次のように入力します。
プログラム名<データファイル>出力ファイル
たとえば,YUSAYUSA.exeを実行プログラムのファイル名として
YUSAYUSA.exe<DATA.dat>OUT.out
ここで,DATA.datは,マニュアルに説明してある入力データとなるテキストファイルです。またOUT.outは計算結果が出力されるテキストファイル名です(ファイル名は自由です。)。もし,この部分がなく,
YUSAYUSA.exe<DATA.dat
と入力すると,結果がコマンドプロンプトに表示されます。ただし,コマンドプロンプトは多くの行を記憶することができないので,出力が多すぎると最初の方が消えてしまうので,全くお勧めしません。また,
YUSAYUSA.exe
と入力すると,入力データはコマンドプロンプトで入力していく事になります。1~2行程度の入力データでしたらこれもありでしょうが,普通はお勧めしません。
 ただし,現状では,この入力をするコマンドプロンプトを開くことができません。そこで,次に示すバッチファイルを作って実行します。

1.4 バッチファイル
 バッチファイルは,拡張子が「bat」であるファイルです。テキストファイルですが,実行形式のファイルという面白いファイルです。例えば,「GO.bat」というファイルを作るとします。テキストファイルですから,中身はテキストです。そこで,その中身を
YUSAYUSA.exe<DATA.dat
PAUSE

の様に作ります。バッチファイルでは実行できるプログラムしか入力できません。実行プログラムを最初から順番に実行していくのがバッチファイルの役割です。この例では,YUSAYUSA.exeを実行し,終了後PAUSEを実行するというのがこの内容です。
 エクスプローラ上でこのファイルをダブルクリックすると,コマンドプロンプトが自動的に開き,プログラムを実行し,終わった時点でコマンドプロンプトが動作を停止します。何かキーを押すとコマンドプロンプトが閉じます。
 実は,PAUSEの行は必要というわけではありません。ただし,この行がないと,YUSAYUSA.exeの実行が終わるとコマンドプロンプトが閉じます。順調にプログラムが実行されているのなら問題がないのですが,エラーの表示があるときは,コマンドプロンプト上に表示されます。それを見るために,PAUSEを入れて,プログラムの実行が終わったときにコマンドプロンプトが閉じないようにしているわけです。

2 データの作り方(FORTRANのデータ)
2.1 FORTRANのファイル
 FORTRAN で用いられるファイルには,書式付きと書式なしがあります。
 書式付きは ASCII コードで書かれているもので,いわゆるテキストファイルです。標準的な入出力ディバイスはもちろんこの形式です。入力データをWindowsのテキストエディターなどで作れば,自動的にこの形式になっているので,ユーザーは特に気にする必要はありません。
 これに対して書式なしファイルはバイナリーで書かれているので,同じ内容を記述するのにファイルサイズは小さくなりますが,内容を直接見ることはできません。内容を取り出すには,書かれた書式と同じ書式で読みとる必要がああります。例えば,地震応答解析の時刻歴などはデータ量が膨大になりますので,この形式で出力されています。しかし内容を直接見ることはできません。内容を取り出すには,書かれた書式と同じ書式で読みとる必要がああります。私のプログラムでは,専用の読み込み,出力ファイルも用意しています。
 Unix,Macなど,他のOSで作ったデータをコピーして使うときには,次の点に注意してください。
(1)ファイルの日本語コード
(2)改行マーク
このうち,日本語のコードはテキストで見れば異常かどうかがすぐわかります。一方,改行マークは目に見えません。使うのは,
文字コード:Shift-JIS
改行コード:CR+LF
です。コードの変換は,多くの無料のソフトが公開されています。例えば,Vectorのサイト
https://www.vector.co.jp/vpack/filearea/win95/util/text/conv/code/
に多く紹介されています。
 なお,改行コード,CRはキャリジリターン,LFはラインフィードの意味で,昔の英語のタイプライターから来ています。CRは同じ行で前の方にタイプ位置を動かす,LFは1行送るという意味です。従って,CR+LFは改行してタイプ位置を先頭に持ってくると言う意味です。しかし,現在のテキストファイルでは両方を指定する必要はない(CRに相当する操作がない)ので,他のOSではLFだけで改行を表していることもあるので,注意が必要なのです。


2.2 FORMAT
 FORTRAN では,書式付きファイル(テキストファイル)に書かれている内容を判断するために,FORMAT という特殊な方法でデータの種類を指定します。つまり,プログラムが要求するデータに合わせるように,指定された場所に指定されたデータを用意する必要があります。例えば,整数が要求されているところに,文字や実数を入力してはいけないのです。
 プログラムではFORMATという形式で読み込むデータの種類と数字を書く場所を指定しています。
例えば,(I5, 2X, F6.0, 2F7.3, A9)とプログラムでFORMATを指定したとき(これは,入力マニュアルにも書いてあります),行の左から,5桁の整数,2桁のスペース,6桁の実数,7桁の実数二つ,9桁の文字の入力が必要となります。例えば次のような入力をしたとします
___56__5.64__2.65489_5.016__data_qqq (_はブランクを表す)
すると,56,5.64,2.65489,5.016という数字ととdata_qqqという文字が入力されます。
 マニュアルには,何桁目から何桁目に入力するという様にも書いてありますので,間違えないでください。なお,整数は右寄せ,文字は(ブランクも意味があるので)左寄せで入力するのが約束です。また,実数は小数点があれば,どこに書いてあっても構いません。


応用知識


3 コマンドプロンプトの使い方
3.1 コマンドプロンプトの開き方
 Windows10からコマンドプロンプトは標準ではなくなり,PowerShellが標準になりました。そちらでも同じことはできますが,コマンドプロンプトの常識がほとんど通用しなくなります。もちろん,最初にも書いたように,コマンドプロンプトは今でも使えます。ただし,最初に書いた方法では,c:\ユーザー\ユーザー名が開きますので,それから,データの入っているフォルダに移動する必要があります。cdというコマンドを使えばできますが,結構やっかいです。そこで,エクスプローラのフォルダ名を右クリックし「コマンドウインドウをここで開く」というメニューを出して,それをクリックすればそのフォルダが開くようにしておけば便利です。
 多くのWebサイトに方法が載っています。ただ,レジストリーをいじるので,結構やっかいです。ところが,
このサイト
にそれらを自動でしてくれるregファイルがアップされていました。こちらを右クリックして名前を付けてリンク先を保存で保存していただくと,それをダブルクリックするだけで可能になります。レジストリーをいじるので,自己責任でと書いてあります。私はあちこちで使っていますが,問題は起きていません。ただ,ドライブのルートではこの機能は働きません。メニューはあるのですがエラーメッセージが出てきて,動きません。それ以下のフォルダでは問題なく動いています。

ただし,この方法では,レジストリーを変更する必要があります。それがいやだという人には,もうちょっと手間が掛かりますが,次の様な方法もあります。
  1. エクスプローラで開きたいフォルダを開きます。例えば,

    ではD:\aaaを開いた状態です。ここで,赤枠の部分(現在のフォルダの位置が表示されている)を消して,代わりに「cmd」を入力し,Returnキーを押します。すると,コマンドプロンプトが開きます。上の例では

    となり,D:\aaaが左上に表示されていますので,現在のフォルダで開いていることがわかります。

    昔は,コマンドプロンプトの横幅は半角80文字で固定されていましたので,よく2行になりました(特に,現在開いているフォルダが階層の下の方にあるとき)。2行になってもそれは表示だけの事なのですが,結構見にくかったです。しかし,Windows10から(だと思いますが),サイズが自由になりました。コマンドプロンプトの枠を捕まえて広げたりすることが可能です。また,フォントなどを設定することもできます。上の図の右上の黒い四角をクリックすると

    というメニューが出ますので,この,規定値の所で編集できます。
     また,昔は,コピー,ペーストなどもこの画面を出して「編集」の所で行う必要がありましたら,今は,Windows共通のショートカット(Control+c,Control+v,Control+x)等も使えるようになっています。Powershellのおかげで冷遇されているように見えるコマンドプロンプトですが,改善はされているんですね。

    3.2 コマンドプロンプトのコマンド
    例えば,このサイトではやさしく説明しています。以下では,私が普段使うもののみを紹介します。
    (1)フォルダの移動
     フォルダ名の前にドット二つ「..」を付けると上のフォルダを意味します。
     フォルダ名の後に\を付けると,\の前は現在のフォルダの中にあるフォルダ名,\の後はファイル(フォルダ)名になります。
     フォルダの移動は「cd」コマンドです。例えば,
    cd ..:一つ上のフォルダに移動
    cd aaa:現在のフォルダの中にあるaaaというフォルダに移動
     同じように,copy(コピーする),mv(移動する)のコマンドにも使うことができます。例えば
    copy aaa.exe ..:aaa.exeというファイルを一つ上のフォルダにコピー
    mv bbb.txt qqq/rrr.txt:bbb.txtというファイルをそのフォルダの中にあるqqqというフォルダの中に,rrr.txtという名前で移動
    最もこのようなことは,エクスプローラで行うと簡単かもしれません。

    プログラムの実行も,ここで行います。例えば,先に挙げた
    YUSAYUSA.exe<DATA.dat>OUT.out
    も,この上で直接入力できます。

    前と同じコマンドを入力したいときには,F3キーが使えます。また,↑↓でいくつか前に入力したコマンドを復活させることもできます。

    なお,Windowsではある種の拡張子は実行形式のプログラムと自動的に認識されます。「exe」「bat」「com」などです。それらは拡張子まで入力しなくても構いません。例えば, YUSAYUSA.exe<DATA.dat>OUT.out
    YUSAYUSA<DATA.dat>OUT.out
    は同じ意味です。また,前に作った,「GO.bat」というファイルも単に「GO」と入力するだけです。

    4 Path設定
     Pathというのは,フォルダを指定しておけば,常にそこを参照するという場所を設定するためのツールです。例えば,私は,
    D:\FORTRAN\PROGRAM
    というフォルダに普段使うプログラムをすべて入れています。「1.2 プログラムの保存場所」ではデータとプログラムを同じ場所に入れてあるとして説明をしましたが,それだと,フォルダを変えたときにプログラムも一緒に移動する必要があり,不便ですが,PATH設定をしてある所に入れておけば,プログラムを一つ用意するだけでどこからでも使うことができます。

    4.1 常にPATHを設定する方法
     WindoesのシステムにPATHを設定する方法です。コントロールパネル→システム→システムの詳細設定を選択すると以下の画面になります。

    ここで,一番下の「環境変数」を押すと

    が現れます。図のように,下のWindowの中のPATHを選び,下にある編集を押します。すると,編集画面が出てきますので,右上にある新規のボタンを押して,PATHの場所を入力します。PATHの場所は絶対番地で設定する必要があります。私の場合ですと,
    D:\FORTRAN\PROGRAM
    の様で,ドライブ名から,対象となるフォルダまで順番に設定していきます。

    4.2 一時的にPATHを通す方法
     コマンドプロンプトで以下の行を入力します。
    PATH %PATH%; D:\FORTRAN\Program
    ここで,「%PATH%;」はこれまでに指定したPathといういみで,これに新しく「D:\FORTRAN\Program」というフォルダをPathに加えるという意味です。したがって,この部分はユーザーが適当に変えてください(プログラムが入っているフォルダを指定します。なお「%PATH%;」の最後はセミコロン,「D:\FORTRAN\Program」ではコロンを使っているので間違えないようにしてください。
     コマンドプロンプトが閉じられると,このPath指定は有効ではなくなります。従って,常に,コマンドプロンプトを開いたときに入力する必要があります。これが邪魔くさいという方は,バッチファイルを作ります。例えば,「Path.bat」というファイルを作ってその中は
    PATH %PATH%; D:\FORTRAN\Program
    という1行のデータにします。
     ただし,コマンドプロンプトを開いたときにいつもPath.batを実行しないといけません。ファイルを移してくるのでしたら,実行プログラムを写してくるのと手間はそれほど変わりません。それで,このバッチファイルを,例えばCドライブのルートに置くことにすれば,コマンドプロンプトを開いたときに最初に, c:\path
    とだけ入力すればOKになります。バッチファイルは実行形式のファイルなので,.batは不要です。

    4.3 Pathを使わない方法
     Pathを使わないで,直接ファイルを設定することも可能です。3.2項でコマンドプロンプトのファイル名の指定方法を示しましたが,これを使います。前に,
    YUSAYUSA.exe<DATA.dat>OUT.out
    を示しましたが,この場合には,YUSAYUSA.exeというプログラム,DATA.datというデータファイルが現在のフォルダ(コマンドプロンプトを開いているフォルダ。コマンドプロンプトの最初に表示されている)にあり,OUT.outというファイルも同じフォルダに作成されます。これを
    D:\FORTRAN:PROGRAN\YUSAYUSA.exe<..\DATA.dat>result/OUT.out
    の様に書けば,D:\FORTRAN:PROGRANというフォルダにあるYUSAYUSA.exeを実行するが,データは現在のフォルダの一つ上のフォルダにあるDATA.dat,また結果は,このフォルダ内にあるresultというフォルダの中にOUT.outとして保存されるという意味になります。
     なお,プログラムではこれ以外にも多くのファイルを使います。それらは現在のフォルダにある必要があります。もちろん,これらも同様な方法でプログラムのデータ入力の際に設定できますが,一般にプログラムの入力欄ではそれほど多くのスペースをファイル名のために用意しているわけではありませんので,入力できないと考えます。