ステートメント(文)
ソースプログラムは、ステートメント(文)で構成される。ステートメント
には非実行可能ステートメントと実行可能ステートメントがある。
非実行可能ステートメントは、プログラムおよび副プログラムに関する命令
とデータ宣言がある。また、実行可能ステートメントは、代入文、動的記憶割付け、
制御ステートメント、入出力ステートメントがある。
プログラムおよび副プログラムに関する命令
- PROGRAM
- SUBROUTINE
- FUNCTION
- MODULE
- MODULE_PROCEDURE
- CONTAIN
- INTERFACE
- USE
代入文
代入文を実行すると、変数や配列要素に値が割り当てられる。
ポインタ代入文を実行すると、ポインタとその指示先が結合する。
代入文には次のものがある。
- 組み込み代入
- 利用者定義代入
- ポインタ代入
- 配列選別代入(WHERE)
データ宣言
データ宣言は、ソースプログラム内のデータの特性に関する情報を
コンパイラに知らせる。
また、そのデータに記憶域を割り振るのに必要な情報も知らせる。
- INTEGER
- REAL
- CHARACTER
- LOGICAL
- COMPLEX
- IMPLICIT
- IMPLICIT
- SEQUENCE
- NAMELIST
- ALLOCATABLE
- POINTER
- TARGET
- SAVE
- PRIVATE
- PUBLIC
- EXTERNAL
- INTRINSIC
- INTENT
- OPTIONAL
動的記憶割付け
動的記憶割付けは、実行時に記憶域を動的に確保したり、逆に記憶域を開放する
命令である。
- ALLOCATE
- DEALLOCATE
- NULLIFY
制御ステートメント
制御ステートメントはプログラムの実行順序を制御する。
- IF (ELSE, ELSE IF, END IF)
- DO (END DO, CYCLE, EXIT)
- SELECT CASE
- WHERE (ELSE,WHERE,END WHERE)
- GO TO
- DO WHILE
- CALL
- RETURN
- STOP
- END
入出力ステートメント
入出力ステートメントは、入力装置からデータを記憶域(変数)に読み込んだり、
記憶域の内容を出力装置に出力するためのものである。入出力装置には、たとえば、
ディスプレイ装置、印刷装置、磁気ディスク装置などがある。
FORMAT文以外の入出力ステートメントは実行可能なステートメントである。
- READ
- WRITE
- PRINT
- BACKSPACE
- INQUIRE
- REWIND
- CLOSE
- OPEN
- ENDFILE
- FORMAT
その他のステートメント
- ALLOCATABLE
- ASSOCIATED
- CONTINUE
- CYCLE
- DATA
- DIMENSION
- EXIT
- IMPLICIT
- NAMELIST
- PARAMETER
- POINTER
- TARGET
- PRIVATE
- PUBLIC
- SAVE
- SELECTED_INT
- SELECTED_REAL
- WHERE
プログラム単位内でのステートメントの順序
プログラム単位は、主プログラムまたは副プログラムを構成する一連の
ステートメントおよび注釈行からなり、その最後のステートメントが
END 文になっているものである。
プログラム単位内では、次の順番でステートメントを記述する必要がある。
- PROGRAM文またはサブプログラム・ステートメント
- データ宣言
- ステートメント関数定義
- 実行可能ステートメント
- END文
PROGRAM prog1 !(1)PROGRAM文
IMPLICIT NONE !(2)IMPLICIT文
REAL,DIMENSION(3) :: ab !(3)データ宣言
INTEGER :: m !(3)データ宣言
REAL :: x,y,z,p,xx !(3)データ宣言
x(y,z)=y*3+z*4 !(4)ステートメント関数定義
m=1 !(5)実行可能ステートメント
p=2.0 !(5)実行可能ステートメント
xx=x(p,3.0) !(5)実行可能ステートメント
WRITE(*,*) xx,m !(5)実行可能ステートメント
END PROGRAM prog1 !(6)END文