JIS X 3001-1:2009 プログラム言語Fortran―第1部:基底言語 | ページ 10

  32
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
例 4.9 任意符号付き実定数表現の例を示す。
-12.78
+1.6E3
2.1
-16.E4_8
0.45E-4
10.93E7_QUAD
.123
3E4
ここで QUAD は,スカラ整定数名とする。
4.4.3 複素数型
複素数型 (complex type) は,数学的な複素数値の近似値の集合をもつ。複素数型の値は,順序付けられた二つの
実数値の組とする。1 番目の実数値を 実部 (real part),2 番目の実数値を 虚部 (imaginary part) と呼ぶ。
複素数型のデータ要素の実部 及び 虚部のそれぞれに,実数型のデータ要素を表現する近似方法を適用する。種別
(kind) 型パラメタは,複素数型要素に指定してもよい。種別型パラメタは,実部 及び 虚部の両方に対してその種別
型パラメタの値によって定まる実数の近似方法を選択する。種別型パラメタは,基本整数型とする。近似方法の種別
型パラメタは,問合せ組込み関数 KIND (13.7.59) によって知ることができる。
複素数型の型指定子は,キーワード COMPLEX とする。倍精度複素数型を指定するキーワードは定めない。型キー
ワード COMPLEX が指定され,種別型パラメタの指定がない場合,暗黙の種別値は基本実数型の種別値と同じとし,実
部 及び 虚部の型は基本実数型とし,その指定された型は 基本複素数型 (default complex) とする。
R421 複素定数表現 is ( 実部 , 虚部 )
R422 実部 is 任意符号付き整定数表現
or 任意符号付き実定数表現
or 名前付き定数
R423 虚部 is 任意符号付き整定数表現
or 任意符号付き実定数表現
or 名前付き定数
C413 (R421) 複素定数表現中のそれぞれの名前付き定数は,整数型 又は 実数型でなければならない。
複素定数表現の実部 及び 虚部が両方とも任意符号付き実定数表現の場合,その複素定数の種別型パラメタ値は,10
進精度が高いほうの種別型パラメタ値とする。精度が同じ場合,どちらを選ぶかは処理系依存とする。選ばれた複素
定数の種別型パラメタと異なるほうの任意符号付き実定数表現は,選ばれた複素定数表現の近似方法によって変換さ
れる。
実部 及び 虚部が共に整定数表現の場合,それらは基本実数型の近似方法によって変換され,複素定数は基本複素
数型となる。一方だけが整定数表現の場合,その整定数表現はもう一方の実定数表現の近似方法によって変換され,
複素定数表現の種別型パラメタ値は,その実定数表現の種別型パラメタの値に等しくなる。

――――― [JIS X 3001-1 pdf 46] ―――――

                                                                                                   33
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
例 4.10 複素定数表現の例を示す。
(1.0, -1.0)
(3, 3.1E6)
(4.0_4, 3.6E7_8)
(0., PI)
ここで,PI はあらかじめ名前付き実数型定数として宣言されているものとする。
4.4.4 文字型
文字型 (character type) は,文字列からなる値の集合をもつ。文字列 (character string) は,文字の列とする。文字
列中の文字には,文字列の左から右に,1,2,3,... と文字の個数までの番号が付けられる。文字列の 長さ (length)
とは,文字列中の文字の個数とする。文字列の長さは型パラメタで指定し,その種別は処理系依存とし,その値は 0
以上とする。文字列は,長さが異なっていてもすべて文字型とする。
処理系は,文字型のデータの値の集合を定義する一つ以上の 表現方法 (representation method) を提供しなければ
ならない。それぞれの表現方法は,種別 (kind) 型パラメタと呼ばれる型パラメタの値によって特徴付けられる。種別
型パラメタは,基本整数型とする。ある表現方法の種別型パラメタは,問合せ組込み関数 KIND (13.7.59) によって
知ることができる。組込み関数 SELECTED CHAR KIND (13.7.104) は,文字型の名前に基づいた種別値を返す。処理系
で表現可能な特定の表現方法に属するどの文字も,その表現方法の文字列中に現れてよい。
JIS X 0201-1997 で定義される文字集合を,ASCII 文字集合 (ASCII character set) 又は ASCII 文字型 (ASCII
character type) と呼ぶ。JIS X 0221-1 : 2001 UCS-4 で定義される文字集合を,ISO 10646 文字集合 (ISO 10646
character set) 又は ISO 10646 文字型 (ISO 10646 character type) と呼ぶ。
4.4.4.1 文字型指定子
文字型の型指定子は,キーワード CHARACTER とする。
種別型パラメタの指定がない場合,暗黙の種別値は KIND(’A’) とし,そのデータ要素の型は 基本文字型 (default
character) とする。
R424 文字パラメタ選択子 is 文字長パラメタ選択子
or ( LEN = 型パラメタ値 , KIND= スカラ整数初期値式 )
or = ] スカラ整数初期値式 )
( 型パラメタ値 , [ KIND
or ( KIND = 型パラメタ値 ] )
= スカラ整数初期値式 [ , LEN
R425 文字長パラメタ選択子 is ( [ LEN= ] 型パラメタ値 )
or * 文字長 [ , ]
R426 文字長 is ( 型パラメタ値 )
or スカラ整定数表現
C414 (R424) スカラ整数初期値式の値は,非負とし,処理系のもつ表現方法を指定しなければならない。
C415 (R426) スカラ整定数表現は,種別の指定を含んではならない。
C416 (R424 R425 R426) 型パラメタ値 “*” は,次の用途の場合にだけ用いてよい。
(1) 仮引数を宣言する場合
(2) 名前付き定数を宣言する場合
(3) ALLOCATE 文の型指定子中であって,それぞれの割付け実体が引継ぎ文字長をもつ文字型の仮
引数である場合
(3.5) 型保持文 (8.1.5) の型指定子 又は 派生型指定子中にある場合
(4) 外部関数において,関数結果の文字長パラメタを宣言する場合

――――― [JIS X 3001-1 pdf 47] ―――――

  34
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
C417 関数名は,その型が文字型であって,外部関数の結果の名前であるか 又は 仮引数の関数名である場合以外は,型パラメタ値 “*” で宣
言してはならない。
C418 関数名は,その関数が配列関数,ポインタ関数,再帰的関数 又は 純粋関数であるとき,型パラメタ値 “*” で宣言してはならない。
C419 (R425) 文字長パラメタ選択子中の省略可能なコンマは,その宣言型指定子が型宣言文中にある場合にだけ指定してよい。
C420 (R425) 文字長パラメタ選択子中の省略可能なコンマは,型宣言文中に区切りの 2 連コロンがない場合にだけ指定してよい。
C421 (R424) 文字値文関数 又は 文字型の文関数仮引数に対して指定する長さは,初期値式でなければならない。
組込み型指定子 CHARACTER 型中の文字パラメタ選択子 及び データ要素宣言中 又は 型定義の成分宣言中の
“* 文字長” は,文字長を指定する。データ要素宣言中 又は 成分宣言中の “* 文字長” は,文字パラメタ選択子で指定
された長さ(もしあれば)を上書きして,それぞれの長さを指定する。データ要素宣言 又は 成分宣言に “* 文字長”
を指定しないと,文字パラメタ選択子中の文字長パラメタ選択子 又は 型パラメタ値が,文字長となる。長さが文字
パラメタ選択子でも “* 文字長” でも指定されなければ,その長さは,1 とする。
文字長パラメタ値が負であるとき,宣言される文字型要素の長さは,ゼロとする。“:” の文字長パラメタ値は,無
指定型パラメタ (4.2) であることを示す。“*” の文字長パラメタ値は,次の意味をもつ。
(1) 手続の仮引数として宣言する場合は,仮引数は,結合した実引数の長さを引き継ぐ。
(2) 名前付き定数として宣言する場合は,その定数の値の長さとする。
(3) LLOCATE 文の型指定子中で用いた場合は,それぞれの割付け実体は,結合した実引数の長さを引き継ぐ。
(3.5) 型保持文の型指定子として用いた場合は,結合している要素は選択子の長さを引き継ぐ。
(4) 関数結果の文字長パラメタ値として指定する場合は,その関数を呼び出している有効域では,“*” ではない文字長パラメタ値を付けてその関数名を宣言するか,
又は 親子結合 若しくは 参照結合によってそのような定義を参照しなければならない。その関数が呼び出された時に,関数内の結果変数の長さは,この型パラメ
タ値から引き継がれる。
4.4.4.2 文字定数表現
文字定数表現 (character literal constant) は,アポストロフィ 又は 引用符によって囲まれた文字の列で記述する。
R427 文字定数表現 is [ 種別 _ ] ’[ 表現可能文字 ] ... ’
or [ 種別 _ ] "[ 表現可能文字 ] ... "
C422 (R427) 種別の値は,処理系に存在する表現方法を指定しなければならない。
囲み記号の前にある省略可能な種別は,その文字定数の種別型パラメタを指定する。種別型パラメタの指定のない
定数の型は,基本文字型とする。
種別指定のある文字型 及び 種別指定のない基本文字型に対する 表現可能文字 (representable character) は,次の
うちの一つとする。
(1) 自由形式中の表現可能文字は,処理系依存の文字集合中の任意の図形文字とする。
(2) 固定形式中の表現可能文字は,処理系依存の文字集合中の任意の文字とする。処理系は,幾つかの 又は すべての制御文字の出現を禁止してもよい。
注記 4.11 FORTRAN 77 では,文字文脈中にどの文字が出現してもよかった。一方,この規格(Fortran
90 以降)では,プログラムが二つ以上の種別の文字を含んでもよく,処理系は,基本文字型でない
文字を制御文字[拡張文字 (escape) 又は シフト文字と呼ばれる。]の挿入によって識別してもよい。
それが,あるときは意図した意味をもつ制御文字として扱われ,あるときは意味をもたない文字とし
て扱われる状況では,ファイルの処理,編集 及び 印刷が(不可能ではないにしても)困難になる。
ほとんどすべての制御文字が用途 又は 効果をもつので,同様に文字文脈中で利用できない。これが,
自由形式で図形文字だけを表現可能な文字とした理由である。それにもかかわらず,FORTRAN 77 との互換性の
ため,固定形式では制御文字が許されている。
囲み記号のアポストロフィ 又は 引用符は,文字定数表現の値の一部ではない。
アポストロフィによって囲まれた文字定数中の文字としてのアポストロフィは,間に空白を置かない二つの連続す
るアポストロフィで表す。この場合,その 2 連アポストロフィは 1 文字と数える。同様に,引用符によって囲まれた

――――― [JIS X 3001-1 pdf 48] ―――――

                                                                                                   35
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
文字定数中の文字としての引用符は,間に空白を置かない二つの連続する引用符で表し,その 2 連引用符は 1 文字と
数える。
長さゼロの文字定数表現は,文字文脈の外で,間に空白のない 2 連アポストロフィ 又は 2 連引用符で表す。
連結 (concatenation) の組込み演算 (//) は,文字型の二つのデータ要素に対して定義されている(7.2.2 参照)。二
つのデータ要素の型は,同じ種別型パラメタをもつ文字型とする。
例 4.12 文字定数表現の例を次に示す。
"DON’T"
’DON’’T’
これらの二つの文字定数表現は,いずれも値 DON’T をもつ。
’’
は,値として長さゼロの文字列をもつ。
例 4.13 基本文字型でない文字定数表現の例を示す。ここで,処理系は対応する文字集合を用意している
ものとする。
NIHONGO_’ 彼女なしでは何もできない。’
ここで,NIHONGO は日本語に対する種別型パラメタの値をもつ名前付き定数とする。
4.4.4.3 大小順序
文字種別によって定まる文字集合中の文字の大小順序は,処理系によって文字種別ごとに定義される。大小順序
(collating sequence) は,文字を負でない整数値に 1 対 1 で対応付ける。文字は,すべて異なる負でない整数値に対応
付けられる。組込み関数 CHAR (13.7.19) 及び ICHAR (13.7.50) は,この対応付けに従って文字と整数との間の変換
をする。
注記 4.14 ICHAR(’X’) は,処理系の定める大小順序に従って文字 ’X’ に対応する整数値を求める。
この規格では,基本文字型についての大小順序だけを次のとおり定める。
(1) 26 個の英大文字の大小順序は,ICHAR(’A’) < ICHAR(’B’) < < ICHAR(’Z’) とする。
(2) 10 個の数字の大小順序は,ICHAR(’0’) < ICHAR(’1’) < < ICHAR(’9’) とする。
(3) CHAR(’’) < ICHAR(’0’) < ICHAR(’9’) < ICHAR(’A’) 又は ICHAR(’
’) < ICHAR(’A’) < ICHAR(’Z’) <
ICHAR(’0’) とする。
(4) 26 個の英小文字の大小順序は,ICHAR(’a’) < ICHAR(’b’) < < ICHAR(’z’) とする。
(5) CHAR(’’) < ICHAR(’0’) < ICHAR(’9’) < ICHAR(’a’) 又は ICHAR(’
’) < ICHAR(’a’) < ICHAR(’z’) <
ICHAR(’0’) とする。
この規格では,空白を除く特殊文字 及び 下線の大小順序 並びに 大文字と小文字との間の大小順序を定めない。
ASCII の文字型の大小順序は,JIS X 0201-1997 で定義される。この規格では,その符号の順序を ASCII 大小順序
(ASCII collating sequence) と呼ぶ。ISO 10646 の文字型の大小順序は,JIS X 0221-1 : 2001 で定義されている。
注記 4.15 組込み関数 ACHAR (13.7.2) 及び IACHAR (13.7.45) は,ASCII 大小順序に従ってこれらの文
字と整数値との間の変換をする。
組込み関数 LGE,LGT,LLE 及び LLT (13.7.6313.7.66) は,ASCII 大小順序に従って文字列を比較する。英字,
数字,下線 及び 特殊文字だけを使用していれば,国際的に移植性が保証される。

――――― [JIS X 3001-1 pdf 49] ―――――

  36
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
4.4.5 論理型
論理型 (logical type) は,真 (true) と偽 (false) を表す二つの値をもつ。
処理系は,論理型データに対して一つ以上の 表現方法 (representation method) を提供しなければならない。それ
ぞれの表現方法は,種別 (kind) 型パラメタと呼ばれる型パラメタの値によって特徴付けられている。種別型パラメ
タは,基本整数型とする。表現方法の種別型パラメタは,問合せ組込み関数 KIND (13.7.59) によって知ることがで
きる。
論理型の型指定子は,キーワード LOGICAL とする。
種別型パラメタの指定がない場合,暗黙の種別値は KIND(.FALSE.) とする。そのデータ要素の型は,基本論理型
(default logical) とする。
R428 論理定数表現 is .TRUE. [ _ 種別 ]
or .FALSE. [ _ 種別 ]
C423 (R428) 種別の値は,処理系に存在する表現方法を指定しなければならない。
後ろの囲み記号に続く省略可能の種別型パラメタは,論理定数の種別型パラメタを指定する。種別型パラメタの指
定のない定数の型は,基本論理型とする。
論理型のデータ要素に対して定義された組込み演算は,7.2.4 で規定されているとおり,否定 (.NOT.),論理積
(.AND.),論理和 (.OR.),論理等価 (.EQV.) 及び 論理非等価 (.NEQV.) とする。他の型のデータ要素の値を比較し,
基本論理型の値を生じる関係演算の集合も組込みとして定義されている。関係演算については,7.2.3 に定める。
4.5 派生型
派生型は,組込み型 及び 他の派生型から構成する。
派生型の定義では,型の名前 並びに その成分 及び 型束縛手続の名前 及び 属性を定義しなければならない。
派生型には,複数の型パラメタが指定できる。それぞれの型パラメタは,種別型パラメタ 又は 長さ型パラメタと
し,暗黙値をもってもよい。
派生型の実体の 末端成分 (ultimate component) は,次のものとする。
(1) 組込み型である成分
(2) OINTER 属性 又は ALLOCATABLE 属性をもつ成分
(3) 派生型であって POINTER 属性も ALLOCATABLE 属性ももたない実体の成分の末端成分
例 4.16 次の例において,派生型の実体 kids の末端成分は,name,age 及び other kids である。
type :: person
character(len=20) :: name
integer :: age
end type person
type :: kids
type(person) :: oldest_child
type(person), allocatable, dimension(:) :: other_kids
end type kids
特に指定しなければ,成分の定義順序は記憶列の順序を意味しない。しかし,連続型 (4.5.1.2) では,記憶列の順
序を意味する。派生型が BIND 属性をもつ場合,記憶列の順序は,連携処理系 (2.5.10,15.2.3) の要求に合わせる。
4.5.1 派生型定義
R429 派生型定義 is TYPE 文
[ 型パラメタ定義文 ] ...

――――― [JIS X 3001-1 pdf 50] ―――――

次のページ PDF 51

JIS X 3001-1:2009の引用国際規格 ISO 一覧

  • ISO/IEC 1539-1:2004(IDT)

JIS X 3001-1:2009の国際規格 ICS 分類一覧

JIS X 3001-1:2009の関連規格と引用規格一覧

規格番号
規格名称