Fortran 型 宣言 簡単 計算
非常勤講師 宇野 史睦
プ ラ 作成前
• イ 拡張子 見え う & Windows '
[コン パネ ]-[ プ ョン]-
[表示]-[ 録さ い 拡張子 表示 い]
• プ ラ コ 保 改行コ LF
– CR+LF い 変更
イ 拡張子& ッ '
イ .f90
プ ラ 作成 実行 流
プ ラ 目的 構成 考え
&必要 準備'
プ ラ コ 書く
&人 理解 '
ラ ッセ 出
プ ラ 実行
[ ./ .exe ]
コンパイ
&機械語 翻訳'
いいえ
い コンパイ 方法
> gfortran プ ラ .f90
プ ラ 方法
• くい いプ ラ ン 行う
– くさ ラ 遭遇 ラ 対処方法 学ぶ
– プ ラ 命 通 動 い → 間 う 人間
– 前作成 プ ラ 流用 避け
• ソ コ &プ ラ 中身' 分 や く書く
– コ ン 文&後述' 多く書 あ 見 わ う
→ 半年前 自分 作成 プ ラ 覚え い い
• / / 処理 意味 く考え
– 理解 書い プ ラ 大体間 う 意 い結果
– 人 プ ラ 流用 い あ 程度
一 書い
Fortran プ ラ 構成&文法'
決 書 方
→ 書 方や順番 間 う ラ 出 コンパイ い
program ○○ implicit none
! プ ラ 開始 integer:: i, j, k real::r
character(4)::a i = 2
j = 3 k = i + j
end program ○○
プラ範
開始
終了
い &後述'
変数方宣言 処理
(
プ ラ 処理
&例' 演算
込 書 込 繰 返
条件式
コ ン 8覚書
用語解
1 program ○○
2 implicit none
3 ! プ ラ 開始
4 integer:: i, j, k
5 real::r
6 character(4):: a
7
8 i = 2
9 j = 3
10 k = i + j
11
12 end program ○○
3: コ ン ウ
! & ラ ョン' 降
コ 無視さ
! 後 日本語 良い
! 必 半角
4,5,6: 変数8 I, j, k, r, a
値& ' 入 く 前付
入 物&後述'
8-10: 入 演算
変数 値&数値 文 列' 入
i 2 j 3 入
k i + j 結果&2+3'
変数 宣言 定義 イ
i
r
整数 integer
実数 real
1
3.14
値 保 く 箱 準備 く
※
※数値 け く文 様
文 列8character
サンプ プ ラ 作成
う プ ラ 作成 コンパイ 実行 う
program sample
implicit none
integer:: i
i = 2
write(0,*) i
end program sample
$ gfortran sample.f90
$ ./a.exe
コンパイ 実行
良く間 う箇所
文 イプ implicit none, integer, real 等
記号 間 い : コ ン 9セ コ ン
使用不可記号 使用8 - &ハイ ン'
変数 使え い
全角文 べ & '
※コ ン 除く &後述'
変数 最初 英文 数値 記号 不可
&ハイ ン 途中 使用不可 引 算 区別 '
慣 ゆ く 確認
ソ コ 書い いく
プ ラ コンパイ
配布 プ ラ test.f90 test_error.f90 コンパイ
う
$ gfortran test.f90 -o test.exe
$ ./test.exe
$ gfortran test_error.f90 -o test_error.exe
$ test_error.exe
プ ョン -o 出力 イ 指定
指定 け a.exe
※
出力さ
※
拡張子 .exe 8execution 実行 略語
プ ラ 事前 配布 中 あ ./20150411/sample/ コ
作業/
作業0
出力さ ラ
$ gfortran test_error.f90 -o test_error.exe
test_error.f90:
5
.9: 5行目 9列目 ラ integer : k1
ラ : Invalid character in name at (1) test_error.f90:
9
: 9行目 ラ wirte(*,*)k1
ラ : Unclassifiable statement at (1)
test_error.f90:
8
.1: 8行目 1列目 ラ k=11
ラ : Symbol 'k' at (1) has no IMPLICIT type
ラ 明/
test_error.f90:5.9: integer : k
1
Invalid character in name at (1) → 無効 文 列 ラ 箇所
誤
integer : k
正
integer : k
ラ 文
ラ 明
integer いう文 列 変数 宣言さ い いう ラ コ ン / 少 い 変数 宣言文 く integer いう文
列 変数 使用 う 勘 い ラ 文
ラ 明0
test_error.f90:9: wirte(*,*)k
1
ラ : Unclassifiable statement at (1) → 分類さ い い要素 ラ 文
ラ 明
write wirte イプ こ ラ
wirte いう 前 構文&機能' あ いう ラ
ラ 箇所 誤
wirte(*,*) k
正
write(*,*)
ラ 明1
test_error.f90:8.1: k=1
1
ラ : Symbol k at 1 has no IMPLICIT type
→ k Implicit &暗黙 '型 持 い &後述'
ラ 箇所 誤
integer :k
正
integer : k
ラ 文
ラ 明
k いう変数&Symbol' 変数 宣言さ い
ラ / k 変数 使用 いう型 宣言 い い
k 変数 認識さ い い &/ 間 い ラ 0 出 い '
Fortran プ ラ 構成&個々 意味'
1. program ○○
2. implicit none
3.
4. integer:: i, j, k
5. real::r, s, t
6.
7. i = 2
8. j = 3
9. r = 2.5
10. s = 3.8
11. k = i + j
12. t = r + s
13.end program ○○
48integer (整数) 入 変 数 宣言 定義
※
58real&実数' 4 実数版
7~8:整数 変数 数値 入 9~10:実数 変数 数値 入
11~12: あ 変数 別 0 変数
値 足 値 入
※ 値 入 く箱 用意
add.f90
コ ン ウ 機能 使
変数宣言 間 う 結果 う わ ?
add.f90 コ add_01.f90
r, s, t real integer 変更 実行 う
実習/
こ 場合 Fortran 文法 間 い い
コンパイ 時 ラ 出 い
→ プ ラ 作成者 意 い い結果
こ 間 い 一番 見 くい !!
コンパイ 一番大変
自分 意 結果 い 確認!
Fortran 演算式
四則演算
足 + 引く - け * 割 /
累乗 **
= 3 +5 =
3y = 3x + 5 y = x ** 3
数式
Fortran
Fortran 数式 変わ い形 計算
= 㸯
㸰
y = 1.0 / 2.0
y = 1 / 2 8割 算 実数 使用 整数 ×
文 列 場合
作業/8 moji.f90 コンパイ 実行 う
1 program moji
2 implicit none
3
4 character(12) :: say
5
6 say = "Hello (^^)/ "
7
8 write(0,"(A12)") say
9 end program moji
4: 文 列&character' 宣言
&12' 12文 分&12byte' 文
列 入 変数 定義
68 文 列変数say Hello (^^)/ 入
英数 記号 使え
8 say 出力
write 関 次回 授業 明
6 い プ ラ
Hello 変数 無いこ 教え い