HELLOtakk@deb9:~$許容されてるんですね。行番号を外すとどうなるのでしょう。‘do.f90’takk@deb9:~$ビルドエラーになりました。使い方は分かりました。DOを使っていきます。exitFortran、次は、do構文のexitを使ってみます。exitなしの繰り返し文です。3takk@deb9:~$EXITを追加します。Jが2になったらEXITする。1takk@deb9:~$1列目のIが2回回りましたので、内部のDOだけEXITしたことがわかります。外部のDOを指定することもできるようです。ENDtakk@deb9:~$EXITにOUTERとうラベルを指定して、外部のDOを指定するようにしました。‘do-exit2.f90’takk@deb9:~$エラーになりました。DOにも書かないといけないみたいです。OUTERにしたら、ビルド通りました。1takk@deb9:~$外側のDOが指定されたので、一回だけ回って終了しました。EXITという名前は、他の言語だとプログラム終了だったりするので、紛らわしいかもしれませんが、いろんな言語の兄であるFORTRANが先なんでしょうね。cycleFortranです。CYCLEを使います。DOの繰り返しを終了するのがEXITでした。前回作ったプログラムのEXITをCYCLEに変えて実行してみます。3takk@deb9:~$次は外側のDOにラベルを付けて、CYCLEで指定してみます。1takk@deb9:~$あれ、この動きはEXITと同じなのでは。1takk@deb9:~$まったく同じですね。ところで他の言語はどう書くのでしょう。Pythonで同じようなプログラムを書いてみます。3takk@deb9:~$Fortranのexitが、Pythonのbreakで、Fortranのcycleが、Pythonのcontinueですね。PythonのこのキーワードはC言語から派生してきたのでしょうか。exitとcycleよりも、breakとcontinueの方が分かりやすい気がします。大文字小文字区別Fortranです。Fortran90の学習なので拡張子をf90に変えてビルドしていましたが、プログラム自体を全部大文字で書いてました。小文字で書く方がFortranっぽいらしいので、これからは小文字を使っていこうと思います。ところで90以降は、大文字小文字の区別はあるのでしょうか、実験してみます。2takk@deb9:~$このように、変数Iとiに別々の値を設定して、表示してみます。2takk@deb9:~$同じ値が表示されました。変数名の大文字小文字の区別はないようです。関数はどうでしょうか。HELLOtakk@deb9:~$ビルド、実行確認したら、次にprを大文字にしたPR()を追加します。endtakk@deb9:~$そしてビルド。(2)takk@deb9:~$エラーとなりました。大文字小文字の区別はないようです。gfortranで大文字小文字を区別するオプションは探すことができませんでしたが、他のコンパイラではありそうです。定数ずっとFortranは定数が使えないと思ってましたが、ありました。parameterを使うようです。定数を使う前のプログラム。3takk@deb9:~$上のプログラムを定数を使った形に変えてみます。3takk@deb9:~$変数の代入を()で括って、paramterをつければ定数になるようですが、本当に定数なのでしょうか。代入文を追加してビルドエラーとなるか確認してみます。(1)takk@deb9:~$imax=5という代入を追加しましたが、ビルドでエラーとなりました。定数となっているようですね。上記までのプログラムでは、parameterを複数行使い複数定義してましたが、変数宣言と同じく、一つのparamterに対して、複数の定数定義もできるのでこのような書き方もできます。dataFortran続きです。dataで配列の初期化を行います。50takk@deb9:~$値が同じならまとめて記述することもできます。50takk@deb9:~$初期値を設定したい配列が複数あるときは、カンマで区切って記述できます。70takk@deb9:~$dataを使わず型宣言で初期化することもできます。typeFortran続きです。なんとFortranでも構造体が使えるんですね。いうことで使ってみます。typeの間にメンバ変数を定義します。1takk@deb9:~$構造体の変数名%メンバ名でアクセスできます。当然ですが構造体は型なので、量産できます。100takk@deb9:~$構造体変数の定義は、途中で追加するのはエラーになるようです。(1)takk@deb9:~$まあこれは構造体に限ったことではなく、変数の宣言が最初にないといけないのと同じですね。whereずっとFortran学習してますが、なかなか飽きません。飽きるまで続く気がしています。