! 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
  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 value must be of type TEAM_TYPE from module 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: STAT variable can only be specified once
  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: TEAM value can only be specified once
  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: TEAM_NUMBER value can only be specified once
  rVar1 = rCoarray[1,2,3,TEAM_NUMBER=37, TEAM_NUMBER=37]
  !ERROR: Cannot specify both TEAM and TEAM_NUMBER
  rVar1 = rCoarray[1,2,3,TEAM=team1, TEAM_NUMBER=37]
  !ERROR: Cannot specify both TEAM and TEAM_NUMBER
  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
