1! { dg-do compile } 2! Tests the fix for PR28590, in which pointer components of sequence 3! types would give the error that the component is itself not a 4! sequence type (4.4.1) if the component was not already defined. 5! 6! Contributed by Chris Nelson <ccnelson@itacllc.com> 7! 8module data_types 9 Integer, Parameter :: kindAry = selected_int_kind(r=8) 10 Integer, Parameter :: kindInt = selected_int_kind(r=8) 11 12 Integer, Parameter :: kindQ = selected_real_kind(p=6,r=37) 13 Integer, Parameter :: kindXYZ = selected_real_kind(p=13,r=200) 14 Integer, Parameter :: kindDouble = selected_real_kind(p=13,r=200) 15 16 type GroupLoadInfo 17 sequence 18 Integer(kindAry) :: loadMode 19 Integer(kindAry) :: normalDir 20 Real(kindQ) :: refS, refL, refX, refY, refZ 21 Real(kindQ) :: forcex, forcey, forcez 22 Real(kindQ) :: forcexv, forceyv, forcezv 23 Real(kindQ) :: momx, momy, momz 24 Real(kindQ) :: momxv, momyv, momzv 25 Real(kindQ) :: flmassx, flmassy, flmassz 26 Real(kindQ) :: flmomtmx, flmomtmy, flmomtmz 27 Real(kindQ) :: flheatN 28 end type GroupLoadInfo 29 30 type GroupRigidMotion 31 sequence 32 Integer(kindInt) :: motiontyp 33 Real(kindXYZ), dimension(3) :: xref 34 Real(kindXYZ), dimension(3) :: angCurrent 35 Real(kindXYZ), dimension(3) :: xdot 36 Real(kindXYZ), dimension(3) :: angNew 37 Real(kindXYZ), dimension(3) :: angRate 38 Real(kindDouble) :: curTim 39 Real(kindXYZ) , pointer :: properties 40 Type(PrescribedMotionData) , pointer :: PrescribeDat 41 end type GroupRigidMotion 42 43 type PrescribedMotionData 44 sequence 45 Integer(kindInt) :: prescr_typ 46 Real(kindXYZ), dimension(3) :: xvel 47 Real(kindXYZ) :: amplitude 48 Real(kindXYZ) :: frequency 49 Real(kindXYZ) :: phase 50 Real(kindXYZ), dimension(3) :: thetadot 51 Real(kindXYZ), dimension(3) :: thetaddot 52 end type PrescribedMotionData 53 54 type GroupDeformingMotion 55 sequence 56 Integer(kindAry) :: nmodes 57 end type GroupDeformingMotion 58 59 type GroupLL 60 sequence 61 type(GroupLL) , pointer :: next 62 type(GroupLL) , pointer :: parent 63 character(32) :: name 64 type(GroupDefLL) , pointer :: entities 65 type(GroupLoadInfo) , pointer :: loadInfo 66 type(GroupRigidMotion) , pointer :: RigidMotion 67 type(GroupDeformingMotion), pointer :: DeformingMotion 68 end type GroupLL 69 70 type GroupDefLL 71 sequence 72 type ( GroupDefLL ), pointer :: next 73 Integer(kindInt) :: zone 74 Integer(kindInt) :: surface 75 type ( GroupLL ), pointer :: subGrp 76 Integer(kindInt) :: normalDir 77 Integer(kindInt), dimension(:), pointer :: subset 78 end type GroupDefLL 79end module data_types 80