派生型ステートメントは、派生型定義の最初のステートメントです。
同じ型の属性は、同じ派生型ステートメントに一度しか現れません。
派生型定義が、モジュールの宣言部分内にある場合、指定できる属性は、PRIVATE または PUBLIC のみです。 派生型定義は、PRIVATE または PUBLIC のいずれかで、両方を指定することはできません。
type_name を、BYTE および DOUBLECOMPLEX 以外の組み込み型と同じ名前にしないでください。また、type_name を、他のアクセス可能な派生型の名前にしないでください。
BIND(C) によって、Fortran 派生型を、C 型と相互に使用できるよう明示的に定義します。コンポーネントは、相互使用可能な型にする必要があります。(追加情報は、型の相互運用性を参照。)BIND 属性を持つ派生型は、SEQUENCE 型にできません。 BIND 属性を持つ派生型のコンポーネントには、相互使用可能な型と型パラメーターを持たせる必要があります。POINTER または ALLOCATABLE 属性を持たせることはできません。 EXTENDS を指定する場合、型には、BIND(C) 属性を指定できません。
parent_type_name は、アクセス可能で拡張可能な型にする必要があります。拡張可能な型について詳しくは、拡張可能派生型 (Fortran 2003)を参照してください。
拡張可能な型には、ABSTRACT 属性のみを指定できます。
EXTENDS が指定された場合、SEQUENCE は、その型に対して出現できません。
EXTENDS が指定され、定義される型に、ISO_FORTRAN_ENV 組み込みモジュールからの LOCK TYPE 型の最終コンポーネントがある場合、その親タイプには、LOCK TYPE 型の最終コンポーネントが必要です。
型パラメーターの名前を指定する場合は、その型 (上位の型を含む) の中で固有にする必要があります。名前ごとに型パラメーター宣言が必要です。詳しくは、派生型パラメーター (Fortran 2003) を参照してください。
対応する END TYPE ステートメントで名前を指定する場合、type_name と同じ名前にする必要があります。
MODULE ABC
TYPE, PRIVATE :: SYSTEM ! Derived type SYSTEM can only be accessed
SEQUENCE ! within module ABC
REAL :: PRIMARY
REAL :: SECONDARY
CHARACTER(20), DIMENSION(5) :: STAFF
END TYPE
END MODULE
TYPE MULTIDIM (K,NDIMS)
INTEGER, KIND :: K
INTEGER, LEN :: NDIMS
REAL(K) :: POS(NDIMS)
END TYPE MULTIDIM
TYPE, EXTENDS(MULTIDIM) :: NAMED_MULTI (L)
INTEGER, LEN :: L
CHARACTER(L) :: NAME
END TYPE NAMED_MULTI