早速、Fortran-program を書く上での約束事をいくつか学びましょう。
 
      write(*,*) 'hello !'
      end

このprogramを実行すると、画面上に hello ! と表示されます。 試してみてください。うまくできましたか?
別にhello以外の文字でもよかったのですが・・・ C言語でもPerlでもこの例にしていたので真似しています(^^;)
好きな文字を入れて試して下さいね。 ここで覚えなければならない事は、
Fortranは7カラム目(半角7文字目) 以降から本文を書く事と 最後はend と書く事で、これらを忘れるとコンパイルができません。 って言ってもすぐに馴れて、無意識の内にできるようになる のでおおげさに言う必要ないんですが(^^;)
さて、中身の解説に入ります。 write は命令文で、計算結果等を私達の目に見えるように画面やファイルに出力 させる命令です。writeの後の (*,*) は今はまったく気にする必要なくて『writeのあとはこう書くんだな』くらいの 認識でいいかなと思います。気になる方はシステムの標準値を用いているんだ と思ってて下さい。

次は計算をさせるprogramをつくります。
 
      write(*,*) 'input a'
      read(*,*) a
      write(*,*) 'input b'
      read(*,*) b
      c=a+b
      write(*,*) 'a + b =',c
      end

とりあえず、考えるより前に実行してみましょう。『習うより慣れよ!!』 画面に'input a'と表示されたら、 数字を入力しreturnキーまたはenterキー を押してみましょう。'input b'と表示されたら成功です。 更に、なにか数字を入力しreturnキーまたはenterキーを押します。 数字が画面に表示されましたか?それはあなたが入力した数字の和に なっているはずです。5行目 c=a+b を例えば c=a-b c=a*b, c=a/b, c=a**b などに書き換える事によって四則演算が可能になり電卓で出来ることは 、出来るようになったはずです。ここでもいくつか重要な事があるので 順にみていきましょう。2、4行目に新しい命令 read がでてきました。これは値を読みこむ命令で、キーボードから 入力した値を2行目はaに4行目はbにそれぞれ代入します。そのあとの (*,*) は今は詳しく触れません、write文同様システムの標準値を 用いています。5行目の等式は数学でいう等式ではありません。 c←a + b の意味で右辺の計算結果を左辺へ代入するの意味です。

ここまでで、『ん?』と思った方もいるかも知れません。さきほどの programで出力された値が2.0や2.あるいは2.000・・・など整数の2 ではなく小数点がついているはずです。入力したb、cが小数の場合 は当たり前ですが、整数同士の演算でも小数点がつきます。 これは、数学では2と2.0は同じ値なのですが、 program上では少し意味が違う為にこのような結果がでます。 次の例で確認をしましょう。
 
      write(*,*) 'input number'
      read(*,*) a
      write(*,*) a
c ---------  comment line  -----------
      write(*,*) 'input number again'
      read(*,*) i
      write(*,*) i
c
      end

2回目の数字の表示では小数点がなくなっていましたね? ところで4、8行目の先頭1カラム目にある c はコメントを書きたい時やスペースを空けたい時に用います。 cの後のコマンドはすべて無視されます。他にも ! を用いてコメントする方法もあるのですが、後に解説します。
話を戻して小数点の有無の問題ですが、 Fortranでは先頭の文字がi,j,k,l,m,nで始まる変数は整数、 それ以外は実数(整数を除く実数)として扱います。 変更も可能ですが、変更するメリットが特にみあたらないので しばらくはこの標準値でprogramを書いてみてください。 整数や実数といってもピンとこないかもしれないので、 実際にやってみましょう。
 
      atom=1.5
      ion=3
      write(*,*) 'atom ion',atom,ion
c
      n1=atom
      n2=ion
c
      write(*,*) 'n1 n2',n1,n2
c
      end

一般にはこの例題のように、変数名はatomやionなど複数 の文字列にした方がみやすいprogramになります。中身の解説にはいりましょう。 1、2行目は右辺の値を左辺の変数に代入しています。 キーボードから変数に値を入れなくてもprogram中でこのようにできます。 3行目はそれぞれの変数の値を画面に表示。 4行目はコメント行(programをみやすくするため入れています。無くても可) 5行目は右辺の変数atomに入っている値1.5を 左辺のn1へ代入。 6行目は右辺の変数ionに入っている値3を 左辺のn2へ代入。 ところで、8行目でn1とn2を表示させたら、 n1には1.5が入っているはずなのに、 1 と表示されましたね?これは整数を表す変数には小数点以下の情報を 書き込めない為に、小数点以下が切り捨てられてしまった結果です。 この整数と実数の区別の見落しは、実は私もよくやりました。 コンパイルが通ってしまい、一見正しい計算結果が得られる ように思っちゃうので、いっぱいいっぱい注意しましょう。
目次へ