blob: 62cd8fd68868bf3f5940da13a09a3a3958c5d4b7 [file] [log] [blame]
! { dg-do compile }
! Tests the fix for PR28590, in which pointer components of sequence
! types would give the error that the component is itself not a
! sequence type (4.4.1) if the component was not already defined.
!
! Contributed by Chris Nelson <ccnelson@itacllc.com>
!
module data_types
Integer, Parameter :: kindAry = selected_int_kind(r=8)
Integer, Parameter :: kindInt = selected_int_kind(r=8)
Integer, Parameter :: kindQ = selected_real_kind(p=6,r=37)
Integer, Parameter :: kindXYZ = selected_real_kind(p=13,r=200)
Integer, Parameter :: kindDouble = selected_real_kind(p=13,r=200)
type GroupLoadInfo
sequence
Integer(kindAry) :: loadMode
Integer(kindAry) :: normalDir
Real(kindQ) :: refS, refL, refX, refY, refZ
Real(kindQ) :: forcex, forcey, forcez
Real(kindQ) :: forcexv, forceyv, forcezv
Real(kindQ) :: momx, momy, momz
Real(kindQ) :: momxv, momyv, momzv
Real(kindQ) :: flmassx, flmassy, flmassz
Real(kindQ) :: flmomtmx, flmomtmy, flmomtmz
Real(kindQ) :: flheatN
end type GroupLoadInfo
type GroupRigidMotion
sequence
Integer(kindInt) :: motiontyp
Real(kindXYZ), dimension(3) :: xref
Real(kindXYZ), dimension(3) :: angCurrent
Real(kindXYZ), dimension(3) :: xdot
Real(kindXYZ), dimension(3) :: angNew
Real(kindXYZ), dimension(3) :: angRate
Real(kindDouble) :: curTim
Real(kindXYZ) , pointer :: properties
Type(PrescribedMotionData) , pointer :: PrescribeDat
end type GroupRigidMotion
type PrescribedMotionData
sequence
Integer(kindInt) :: prescr_typ
Real(kindXYZ), dimension(3) :: xvel
Real(kindXYZ) :: amplitude
Real(kindXYZ) :: frequency
Real(kindXYZ) :: phase
Real(kindXYZ), dimension(3) :: thetadot
Real(kindXYZ), dimension(3) :: thetaddot
end type PrescribedMotionData
type GroupDeformingMotion
sequence
Integer(kindAry) :: nmodes
end type GroupDeformingMotion
type GroupLL
sequence
type(GroupLL) , pointer :: next
type(GroupLL) , pointer :: parent
character(32) :: name
type(GroupDefLL) , pointer :: entities
type(GroupLoadInfo) , pointer :: loadInfo
type(GroupRigidMotion) , pointer :: RigidMotion
type(GroupDeformingMotion), pointer :: DeformingMotion
end type GroupLL
type GroupDefLL
sequence
type ( GroupDefLL ), pointer :: next
Integer(kindInt) :: zone
Integer(kindInt) :: surface
type ( GroupLL ), pointer :: subGrp
Integer(kindInt) :: normalDir
Integer(kindInt), dimension(:), pointer :: subset
end type GroupDefLL
end module data_types
! { dg-final { cleanup-modules "data_types" } }