fortran-jp.org

Logo

http://fortran-jp.org/

View the Project on GitHub degawa/fortran-jp.org

Fortran入門(作成中)

Fortranに入門する人のための情報をまとめています。

1 Fortranのプログラムの構成

1.1 主プログラム

1.1.1 program~end program

1.1.2 コンパイルと実行

1.1.3 コメント

1.2 画面表示

1.2.1 print

1.2.2 リテラル

1.3 四則演算

1.3.1 +, -, *, /

1.3.2 あまりを求める場合は関数を使う必要があり,modとmodulo があることを述べる

1.3.3 複素数,三角関数,指数・対数計算(2021-6-13 tomobe)

1.4 変数

1.4.1 implicit none

1.4.2 整数integer,実数real,複素数complex,文字character,論理値logical (※kindはモジュールを学んでから.しばらくは4バイト整数と単精度実数のみで進める.おまじないは使いたくない)

1.4.3 定数と属性(parameterの話をだす.そのときに,属性を付けることで変数に様々な情報を付与できる事を先に述べておく)

1.4.4 暗黙の型変換

1.5 read文

1.5.1 キーボード入力→変数代入

1.5.2 (ファイル入出力とreadをセットで記載してはいかがでしょう@tomobe)  -

1.6 書式

1.6.1 *の扱い

2 分岐

2.1 if

2.2 select case

2.3 名前付きif 文

3 繰り返し

3.1 do

3.2 do while

3.3 cycle, exit , stop文とerror stop文

3.4 名前付きdo文

4 配列と文字列

4.1 数(整数,実数,複素数,論理値)の配列

4.1.1 最大値,最小値を求める例題を用意しておく.その後,関数を学ぶともっと楽ができるようになることを述べる)

4.1.2 配列演算

4.1.3 部分配列

4.2 文字の配列と文字列

4.2.1 文字の配列

4.2.2 文字列

4.2.3 部分文字列(一文字でも(i:i)でアクセスしなければならないよという話)

4.2.4 index関数による文字列検索@tomobe

4.3 配列構成子(と配列の組み込み関数@tomobe(

4.3.1 matmul, transpose, reshape@tomobe

4.4 自動割り付け

4.4.1 属性の話

4.4.2 再自動割り付け

4.4.3 sourceとmold

4.5 多次元配列

4.5.1 多次元配列の定義(@tomobe

4.5.2  多次元配列の配列演算と

4.6 配列の範囲

4.6.1 負の数も使える

5 手続(関数とサブルーチン)

5.1 定義,仮引数と実引数,結果変数

5.1.1 intent(in), (out), (inout)

5.1.2 内部手続

5.1.3 命名規則(関数とサブルーチンで名前の付け方を分けるか?)

5.2 変数の寿命とsave 属性

5.3 再帰手続き

5.4 optional 引数とpresent

5.5 elemental

5.6 pure

5.7 手続の落とし穴

5.7.1 手続内で変数の宣言時初期化をするとsave属性になる

5.7.2 intent(out)の使いどころ

5.7.3 関数の戻り値を変数に代入せずにprint で表示する(gfortranだと実行が止まる)

5.8 よく使う組込関数(各変数の説明の際に示す?@tomobe

5.8.1 整数演算に関する関数

5.8.2 実数演算に関する関数

5.8.3 配列演算に関する関数

5.8.3.1 maxval, minval

5.8.3.2 any, all, lbound, ubound

6 モジュール

6.1 モジュール変数とモジュール手続

6.1.1 定義

6.1.2 モジュールの命名規則

6.1.3 use

6.1.4 only

6.1.5 別名参照

6.2 複数ファイルのコンパイル

6.3 アクセス制御

6.3.1 private, public, protected(モジュールの中か外かで区別することを強調する.protected 以外では公開しないようにする)

6.3.2 命名規則(public, protectedで外に公開するときに,モジュール変数であることが判るように付けるかどうか.)

6.4 総称名

7 変数の高度な使い方

7.1 2進数,8進数,16進数

7.1.1 10進数→2進数,8進数,16進数

7.1.2 2進数,8進数,16進数→10進数

7.2 iso_fortran_envとkind パラメータ

7.2.1 変数の取り扱えるサイズと表示範囲

7.2.1.1 整数

7.2.1.2 実数,複素数

7.2.1.2.1 4倍精度実数は使えるコンパイラと使えないコンパイラがあるよ

7.2.1.2.2 huge, tiny, epsilon など

7.2.1.3 論理型もkindで区別できるけど,わざわざ分けなくていいよ(logicalを使っていればいいよ)

7.2.2 明示的な型変換

7.2.2.1 nint, int, real, sngl, dble 等

7.2.2.2 transfer

7.3 詳細な書式

7.4 内部ファイル

7.5 非数の取り扱い

7.5.1 ieee_arithmetic モジュール

7.5.2 NaN, positive Inf, negative Inf

8 ファイル入出力

8.1 装置番号とファイルのオープン・クローズ

8.1.1 iso_fortran_env

8.1.2 newunit

8.2 書式

8.2.1 無限回繰り返し

8.2.2 colon descriptor

8.3 エラー処理

8.4 ファイルの新規作成・追記

8.5 バイナリファイルの入出力

9 派生型とクラス

9.1 定義と宣言

9.2 初期化

9.2.1 組込の構成子

9.2.2 初期化サブルーチンの作成

9.3 関数の引数,結果変数として用いる

9.4 モジュールでの定義とアクセス制御

9.5 クラスと型束縛手続

10 他人の作成したモジュールを利用する

10.1 git clone

11 大きなプログラムを書く

11.1 プログラムの設計の話

11.2 Makefile,CMake

12 オブジェクト指向プログラミング

12.1 クラスと型束縛手続き

12.2 genericと演算子のオーバーロード

12.3 ユーザ定義演算子

12.4 継承

12.4.1 extends

12.4.2 sourced allocation

13 select type

14 ポインタ

15 コマンドライン引数

16 C言語との相互利用

17 実行時間計測