前期集中 R12420 物理学特論Ⅰ 20130812-4 2013 年 8 月 28 日, 29 日 原子核科学研究のための数値シミュレーション 事前配布資料 学籍番号 氏名 目次 1. Fortran プログラム(gfortran)のインストール .........................................................................................1 2. Fortran プログラムの作成..............................................................................................................................2 2.1. プログラムファイルの作成 ..................................................................................................................2 2.2. プログラムの編集..................................................................................................................................3 2.3. fortran プログラムの作成.......................................................................................................................4 3. Fortran プログラムの実行方法......................................................................................................................6 3.1. コマンドプロンプトの起動 ..................................................................................................................6 3.2. コマンドプロンプト上のコマンド.......................................................................................................7 4. Fortran プログラムの基本............................................................................................................................12 4.1. 型の宣言 ...............................................................................................................................................12 4.2. do 文.......................................................................................................................................................13 4.3. if 文 .........................................................................................................................................................13 4.4. Read 文、Write 文................................................................................................................................14 4.5. フォーマット文....................................................................................................................................15 5. 参考資料........................................................................................................................................................16 6. 課題 ...............................................................................................................................................................17 i 1. Fortran プログラム(gfortran)のインストール 下記ページを参考にして、GFortran プログラムをインストールしてください。 参考ページ http://d.hatena.ne.jp/arakik10/20120214/1329167074 ①http://tdm-gcc.tdragon.net/ に入る ②Download のページの Bundle Installer (The easiest install) から、インストールする PC の OS にあった exe をダウンロードする。 1.OS が 32bit なら tdm-gcc-4.6.1 2.OS が 64bit なら tdm64-gcc-4.6.1 Windows7 は 64bit, それ以外は 32bit であることに注意。 図 1-1 gfortran のダウンロードページ ③参考ページに従ってインストールを行う。 1 2. Fortran プログラムの作成 ここでは初心者向けの方法を解説します。 2.1. プログラムファイルの作成 ①デスクトップにfortran という名前のフォルダを作成します。 ②fortran というフォルダの中でテキストドキュメントを作成します。 ③名前の変更から「test.f95」という名前にします。 拡張子を変更するため、メッセージが出ますが気にせずに「はい」を選択します。 これが fortran のプログラムになります。 2 2.2. プログラムの編集 ①アクセサリからメモ帳を開きます。 図 2-1 メモ帳の起動 ②メモ帳に test.f95 をドラッグすると、メモ帳上で test.f95 を編集できます。 図 2-2 メモ帳上でのフォートランファイルの編集 3 2.3. fortran プログラムの作成 ①半角英数しか使ってはいけないルールになっていますので、入力モードが「ひらがな」などの場合、 「半角英数」に変更します。 図 2-3 入力モード ②プログラムの開始と終了の指示 メモ帳上で test.f95 を編集します。 図 2-4 の一行目はプログラムの開始を指示しています。 このプログラムの名前は「test」ですという意味です。 図 2-4 の一番下の行はプログラムの終了を指示しています。 図 2-4 プログラムの開始と終了の指示 4 ③文字列の出力 何かを画面に出力させたいとき、write(6,*)と指示します。 文字列を出力させたいときは ‘ ‘ で文字列を囲います。 図 2-5 文字列出力の指示 ④メモ帳上でのプログラムファイルの保存 メモ帳で編集したプログラムファイルを保存するには、右上のバツ印をクリックします。 保存しますか?と聞かれるため、 「保存する」を選択します。 図 2-6 メモ帳上での保存 5 3. Fortran プログラムの実行方法 3.1. コマンドプロンプトの起動 ①スタートメニューをクリックします。 図 3-1 スタートメニュー ②アクセサリの中のコマンドプロンプトをクリックします。 図 3-2 アクセサリ―コマンドプロンプト ③コマンドプロンプト画面が立ち上がります。 図 3-3 アクセサリ―コマンドプロンプト 6 3.2. コマンドプロンプト上のコマンド コマンドを打ち、エンターキーを押すとコマンドが実行されます。 表 3-1 に最低限必要なコマンドをまとめます。 表 3-1 コマンドと意味 コマンド dir cd [移動先のディレクトリパス] gfortran [プログラムファイル名] プログラム実行モジュール(標準は a.exe) exit 意味 ディレクトリを表示する カレントディレクトリの変更(移動) fortran プログラムを gfortran でコンパイルします プログラムを実行する コマンドプロンプトの終了 ① ディレクトリ中のファイル確認コマンド dir “dir” というコマンドを打ったときの例を以下に示します。 ここでは、C ドライブの Users というディレクトリの akimura というディレクトリの中のディレクト リを表示しています。 また、自分がいるディレクトリ(カレントディレクトリと呼ぶ)が C:¥Users¥akimura という場所 であることを示しています。 図 3-4 コマンドプロンプト‐dir コマンドとカレントディレクトリ 7 ② ディレクトリ移動コマンド cd “cd” というコマンドを打ったときの例を以下に示します。 図 3-5 コマンドプロンプト‐cd コマンド cd [移動先のディレクトリパス]とコマンドを打ち、エンターキーを押します。 [移動先のディレクトリパス]を打つのが面倒なときは、図 3-6 のようにアドレスバーからコピーし、 コマンドプロンプト上で右クリックから貼り付けができます。 図 3-6 ディレクトリパスのコピー 図 3-7 コマンドプロンプトでの貼り付け 8 以上のコマンドにより、カレントディレクトリが変更され、 C:¥Users¥akimura という場所から C:¥Users¥akimura¥Desktop¥fortran という場所に移動しました。 図 3-8 cd コマンド dir コマンドにより、この中に先ほど作成した test.f95 が存在することが分かります。 図 3-9 dir コマンド 9 ③ コンパイルコマンド gfortran プログラムを機械語(コンピュータが作動する命令)に翻訳することをコンパイルといいます。 gfortran のコマンドを使ってコンパイルを行います。 図 3-10 のように、gfortran test.f90 と打ち、エンターキーを押します。 図 3-10 gfortran コマンド dir コマンドを打つと、プログラムの実行モジュール「a.exe」が作られていることが分かります。 図 3-11 dir コマンド 10 ④プログラム実行コマンド a.exe できたフォートランプログラムの実行モジュールを実行します。 a.exe と打ち、エンターキーを押します。 フォートランプログラム中で画面に Hello World!と表示させるように指示したので、それが表示され ています。プログラムが正しく実行できていることが確認できました。 図 3-12 プログラムの実行 ⑤コマンドプロンプトの終了 exit と打ち、エンターキーを押すとコマンドプロンプトが終了します。 図 3-13 コマンドプロンプトの終了 11 4. Fortran プログラムの基本 ここでは最も基本的な fortran プログラムのルールについて説明します。 詳細は専門書を参照してください。 4.1. 型の宣言 fortran では、プログラム冒頭に変数名の定義と共に、変数の型の定義をする必要があります。 整数型は integer で宣言します。以下のような整数を格納できます。 [例] 1 -15 9805 0 実数型は real*8 で宣言します。以下のような実数を格納できます。 [例] 0 8.78 -1.78 .83d-03 ( = 0.83×10-3) 1.8d6 ( =1.8×106) 1.3d+1 ( =1.3 ×101) -1.78d-1 ( = 1.78×10-1) 文字列型は character*数字で宣言します。文字列が 5 文字の場合は数字は 5 になります。 図 4-1 に例を示します。 program test integer :: i, j, k real*8 :: a, b, c(100) character*5 :: char1, char2 i=1 j=10 k=100 a=1.d0 b=10.d0 c(1)=1.d6 c(2)=2.d6 c(3)=5.d6 char1 = ‘abcde’ char2 = ’step1’ end program test 図 4-1 変数の型の宣言 ここで、C(100)は C(1)から C(100)まで 100 種類の数値が定義できるもので配列と呼ばれます。 12 4.2. do 文 条件を満たすまで繰り返す命令を do 文といいます。 do 文は、do から始まり enddo で終了します。図 4-2 の例では 7~9 行目が do 文になります。 7 行目は整数型の変数 i が 1 から 10 まで a に 1 を足しなさいという命令です。 do 文の中では 2 文字分「字下げ」を行うのが礼儀です。 i が 10 を超えるまでは、プログラムは do 文の中をぐるぐるとループ(繰り返し処理)します。 i が 10 を超えると do 文を抜けてプログラムが終了します。 program test2 integer :: i, j, k real*8 :: a, b, c character*5 :: char1, char2 a=0.d0 do i=1,10 a=a+1.d0 enddo end program test2 図 4-2 do 文 4.3. if 文 もしも条件通りであればこれをしなさいという条件文を if 文で表します。 図 4-3 の例では do 文の中でもしも i が 3 より小さいのであれば a に 1.0 を足しなさい、それ以外で あれば、a に 2.0 を足しなさいという意味の条件文です。 if 文の中でも 2 文字分「字下げ」を行うのが礼儀です。 program test3 integer :: i real*8 :: a a=0.d0 do i=1,10 if( i <3)then a=a+1.d0 else a=a+2.d0 endif enddo end program test3 図 4-3 if 文 13 4.4. Read 文、Write 文 write(6,*)は書き出し文で、画面に出力します。 read(5,*)は読み込み文で、キーボードから打ち込まれた数値を読み込みます。 program test4 integer :: i, imax real*8 :: a write(6,*) ‘ a, imax ? ’ read(5,*) a, imax do i=1, imax if( i <4)then a=a+1.d0 else a=a+2.d0 endif enddo write(6,*)a end program test4 このプログラムを実行すると、’ a, imax ?’の状態でコンピュータが入力待ち状態になるので、例えば、 0.0 10 と入力し Enter キーを押すと、a に 0.0 imax に 10 が入力され、引き続き 6 行目からのプロ グラムが実行されます。 a, imax ? 0.0 10 [Enter キーを押す] せっかく計算をしても、それを出力しないと何がどうなっているか分かりません。 15 行目のwrite 文により、a の値を画面に出力することができます。 ここで、write 文中の 6 の数字は 6 番出力(標準出力:画面)という意味です。この 6 は出力の番号 で既に決まっているものですが、read 文中の 5 番は入力の番号として既に決まっているものです。 それ以外の数字を書くと、その名前のファイルが作られそこに出力されます。 例えば、write(666,*)とすると、fort666 というファイルに出力されます。 14 4.5. フォーマット文 出力のフォーマットを指定することができます。 program test5 integer :: i real*8 :: a, b a=0.d0 b=0.d0 do i=1,10 if( i <4)then a=a+1.d0 b=b+0.1d0 else a=a+2.d0 b=b*2.d0 endif enddo write(6,’(f14.3, 1x, 1pe14.6)’)a,b end program test5 ここで、write 文中の’(f14.3, a, 1pe14.6)’はフォーマットを指定しています。 f14.6 は全部で 14 桁、小数点以下 6 桁の意味です。 1x は 1 文字分空けるの意味です。 1pe14.6 は実数を 14 文字表示とし、小数点以下 6 桁、小数点上 1 桁で指数表示する、の意味です。 詳細は専門書を参考としてください。 15 5. 参考資料 ①演習と応用 FORTRAN77、戸川隼人著、サイエンス社 fortran77 も 90 も基本は変わりません。 この本のf90 版が出ているかも知れませんが、こちらを使って分かりやすかったのでおすすめします。 ②Fotran90 入門、新井親夫、森北出版 文法の解説書として参照するのにおすすめ。 16 6. 課題 ①Fortran でプログラムを作成して実行し、ファイルに ‘Hello! World!’ と出力させなさい。 ②Fortran でプログラムを作成して実行し、 1 から 10 までの整数の足し算を実行しなさい。 ファイルには、1 から 2 までの和、1, 2, 3 の和、1, 2, ,3 ,4 の和…、1, 2, …, 10 の和を出力させなさい。 17
© Copyright 2024 Paperzz