! RUN: %python %S/test_errors.py %s %flang_fc1 ! C929 No specifier shall appear more than once in a given ! image-selector-spec-list. ! C930 TEAM and TEAM_NUMBER shall not both appear in the same ! image-selector-spec-list. ! C931 A stat-variable in an image-selector shall not be a coindexed object. subroutine s1() use ISO_FORTRAN_ENV save type(team_type) :: team1, team2 real :: rCoarray[10,20,*] real :: rVar1, rVar2 integer :: iVar1, iVar2 integer, dimension(4) :: intArray integer :: intScalarCoarray[*] integer :: intCoarray[3, 4, *] integer :: smallIntCoarray[4, *] intCoVar = 343 ! OK rVar1 = rCoarray[1,2,3] associate (x => rCoarray) rVar1 = x[1,2,3] ! also ok end associate !ERROR: 'rcoarray' has corank 3, but coindexed reference has 2 cosubscripts rVar1 = rCoarray[1,2] associate (x => rCoarray) !ERROR: 'x' has corank 3, but coindexed reference has 2 cosubscripts rVar1 = x[1,2] end associate !ERROR: Must have INTEGER type, but is REAL(4) rVar1 = rCoarray[1,2,3.4] !ERROR: Must have INTEGER type, but is REAL(4) iVar1 = smallIntCoarray[3.4] !ERROR: Must be a scalar value, but is a rank-1 array rVar1 = rCoarray[1,intArray,3] ! OK rVar1 = rCoarray[1,2,3,STAT=iVar1, TEAM=team2] !ERROR: TEAM= specifier must have type TEAM_TYPE from ISO_FORTRAN_ENV rVar1 = rCoarray[1,2,3,STAT=iVar1, TEAM=2] ! OK rVar1 = rCoarray[1,2,3,STAT=iVar1, TEAM_NUMBER=38] ! OK rVar1 = rCoarray[1,2,3,STAT=iVar1] ! OK rVar1 = rCoarray[1,2,3,STAT=intArray(2)] !ERROR: Must have INTEGER type, but is REAL(4) rVar1 = rCoarray[1,2,3,STAT=rVar2] !ERROR: Must be a scalar value, but is a rank-1 array rVar1 = rCoarray[1,2,3,STAT=intArray] ! Error on C929, no specifier can appear more than once !ERROR: coindexed reference has multiple STAT= specifiers rVar1 = rCoarray[1,2,3,STAT=iVar1, STAT=iVar2] ! OK rVar1 = rCoarray[1,2,3,TEAM=team1] ! Error on C929, no specifier can appear more than once !ERROR: coindexed reference has multiple TEAM= or TEAM_NUMBER= specifiers rVar1 = rCoarray[1,2,3,TEAM=team1, TEAM=team2] ! OK rVar1 = rCoarray[1,2,3,TEAM_NUMBER=37] ! OK rVar1 = rCoarray[1,2,3,TEAM_NUMBER=iVar1] ! Error, team number is a scalar integer expression !ERROR: Must be a scalar value, but is a rank-1 array rVar1 = rCoarray[1,2,3,TEAM_NUMBER=intArray] ! Error, team number is a scalar integer expression !ERROR: Must have INTEGER type, but is REAL(4) rVar1 = rCoarray[1,2,3,TEAM_NUMBER=3.7] ! Error on C929, no specifier can appear more than once !ERROR: coindexed reference has multiple TEAM= or TEAM_NUMBER= specifiers rVar1 = rCoarray[1,2,3,TEAM_NUMBER=37, TEAM_NUMBER=37] !ERROR: coindexed reference has multiple TEAM= or TEAM_NUMBER= specifiers rVar1 = rCoarray[1,2,3,TEAM=team1, TEAM_NUMBER=37] !ERROR: coindexed reference has multiple TEAM= or TEAM_NUMBER= specifiers rVar1 = rCoarray[1,2,3,TEAM_number=43, TEAM=team1] ! OK for a STAT variable to be a coarray integer rVar1 = rCoarray[1,2,3,stat=intScalarCoarray] ! Error for a STAT variable to be a coindexed object !ERROR: Image selector STAT variable must not be a coindexed object rVar1 = rCoarray[1,2,3,stat=intCoarray[2,3, 4]] end subroutine s1