!sample for derived type
! R422 - R429

program f
   type a0
        integer j
   end type

   type a1
	sequence
! R424.3   
!an access_spec or a PRIVATE statement within the defination is permitted
!only if the type defination is within the specification part of a module
	private
	integer i
! R424.2
!if sequence statement present, all derived type in component defination
!must be sequence type
 	type (a0) j
   end type a1

!R424.5
!must not redefine an intrinsic type
   type double
        real k
   end type

   type a2
!R427.1
!no component_attr_spec may appear more than once in a given component
!defination statement
	real,pointer,pointer::x
!R427.3
!if the POINTER attribute is specified for a component, a type_spec in
!the component_def_stmt must specify an instrinsic type or any accessible
!derived type including the type being defined.
	type (a3), pointer ::y
	type (a2), pointer ::z
!R427.2
!if the POINTER attribute is not specified for a component, a type_spec 
!in the component_def_stmt must specify an instrinsic type or a previously
!defined derived type
	type (a2) z1
!R429.1
!if the POINTER attribute is not specified, each component_array_spec
!must be an explicit_shape_spec_list
	real x1(:,:)
!R429.2
!if the POINTER attribute is specified, each component_array_spec must
!be an deferred_shape_spec_list
	real, pointer::x2(3,4:5)
!R429.3
!only when character decl , *char_length are permitted
	integer        x3*10
!R429.4
!in component_decl , char_length must be constant expression
	character      x4*(I)
	character      x5(3,7)*(8)
!R429.5
!each bound in the explicit_shape_spec must be a constant specification
!expression
	real,dimension(3:r,5)::x6
   end type a2
 
end
