https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124071

            Bug ID: 124071
           Summary: [F18] Fortran runtime error:  Cannot assign new image
                    index in FORM TEAM
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pault at gcc dot gnu.org
  Target Milestone: ---

This reduced version of <
https://github.com/MichaelSiehl/Fortran_2018_Teams--The_team_number_intrinsics_optional_team_argument
> fails with

pault@fedora:~/prs/pdt$ export GFORTRAN_NUM_IMAGES=15
pault@fedora:~/prs/pdt$ ~/gfc-test/bin/gfortran -fcoarray=lib -O2
../coarrays/Siehl_teams.f90  -lcaf_shmem -g;time ./a.out
Fortran runtime error: Fortran runtime error: Cannot assign new image index in
FORM TEAM.Cannot assign new image index in FORM TEAM.

Fortran runtime error: Cannot assign new image index in FORM TEAM.
Fortran runtime error: Fortran runtime error: ERROR: Image 1(pid: 42169) failed
with signal 0, exitstatus 1.

...repeats and hangs before all images have emitted error message.


program Main
! please compile and run with 15 coarray images
  use,intrinsic :: ISO_FORTRAN_ENV, only: team_type
  implicit none
  !
  integer :: intTeamNumber
  type (team_type) :: MainTeam
  type (team_type) :: SubTeam
! MainTeam **************************************
  intTeamNumber = int ((this_image()-1)/3.)+1
  form team (intTeamNumber, MainTeam) ! Creates the 3 child teams in MainTeam
    sync all
    change team (MainTeam)
! SubTeam ***************************************
    intTeamNumber = int ((this_image()-1)/2.)+1
    form team (intTeamNumber, SubTeam) ! this generates 6 teams (2 new sub-
                                       ! teams in the 3 main teams resp.)
                                       ! within the change team (MainTeam)
                                       ! construct

      change team (SubTeam)
!
      SubTeam_select: select case (team_number())
!
      case (1) SubTeam_select
        write(*,'(a,i4,a,i4)') 'image number(case 1): ', this_image(), &
                               ' of team number: ', &
                               team_number(MainTeam)*100+team_number()
      case (2) SubTeam_select
        write(*,'(a,i4,a,i4)') 'image number(case 2): ', this_image(), &
                               ' of team number: ', &
                               team_number(MainTeam)*100+team_number()
!
      end select SubTeam_select
!
    end team !(SubTeam)
  end team !(MainTeam)
end program Main

On the otherhand:
pault@fedora:~/prs/pdt$ export FOR_COARRAY_NUM_IMAGES=15
pault@fedora:~/prs/pdt$ ifx -coarray ../coarrays/Siehl_teams.f90;time ./a.out
image number(case 2):    1 of team number:  102
image number(case 2):    1 of team number:  202
image number(case 2):    1 of team number:  302
image number(case 2):    1 of team number:  402
image number(case 2):    1 of team number:  502
image number(case 1):    1 of team number:  301
image number(case 1):    2 of team number:  301
image number(case 1):    1 of team number:  101
image number(case 1):    2 of team number:  101
image number(case 1):    2 of team number:  201
image number(case 1):    2 of team number:  401
image number(case 1):    1 of team number:  401
image number(case 1):    1 of team number:  201
image number(case 1):    2 of team number:  501
image number(case 1):    1 of team number:  501

Reply via email to