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