The type parameter order of a non-extended type is the order of the type parameter list in the derived type definition. The type parameter order of an extended type consists of the order of its parent type followed by the order of the type parameter list in the derived type definition.
A type parameter declared in an extended type must not have the same name as any accessible component or type parameter of its parent type.
Consider the following:
Type :: t1 (k1,k2)
Integer, kind :: k1,k2
Real(k1) :: a(k2)
End type
Type, extends (t1) :: t2(k3)
Integer, kind :: k3
Logical(k3) flag
End type
The type parameter order for type t1 is k1, then k2.
The type parameter order for type t2 is k1, then k2, then k3.