Le 02/09/2026 à 11:17, Paul Richard Thomas a écrit :
Hello Mikael,

The new team is different to the parent team and so "I'm inclined to
think that they are different teams, and the program should output
(for each image): -1 and 12." is correct.

Thanks.
Then, it's also the expected output with -fcoarray=single, and team_number shouldn't always return -1 even with -fcoarray=single.

Expanding your example a bit:
program prog
    use, intrinsic :: iso_fortran_env, only: team_type
    implicit none
    type(team_type) :: team1, team2
    print *, team_number()
    form team (mod (this_image (), 4) +1, team1)
    change team(team1)
      form team (mod (this_image (), 2) +1, team2)
      change team(team2)
        print *, team_number(team1), team_number(team2)
      end team
    end team
end program

Results in:
pault@fedora:~/prs/coarrays$ export GFORTRAN_NUM_IMAGES=8
pault@fedora:~/prs/coarrays$ rm ./a.out;rm
*.original;~/gfc/bin/gfortran -fcoarray=lib -g ../junk.f90
-lcaf_shmem;./a.out
rm: cannot remove '*.original': No such file or directory
           -1
           -1
           -1
           -1
           -1
           -1
           -1
           -1
            3           1
            3           2
            2           2
            2           1
            4           2
            4           1
            1           2
            1           1

The other brands do the same.

Yeah, but that case is clearer. My question was more focused on the degenerate case where all images use the same number, and more specifically the single-image behaviour.

Reply via email to