! { dg-do run } ! { dg-options "-fcoarray=lib -lcaf_single" } ! { dg-additional-options "-latomic" { target libatomic_available } } program check_caf_send_by_ref implicit none type T integer, allocatable :: scal integer, allocatable :: array(:) end type T type(T), save :: obj[*] integer :: me, np, i me = this_image() np = num_images() obj[np]%scal = 42 ! Check the token for the scalar is set. if (obj[np]%scal /= 42) STOP 1 ! Now the same for arrays. obj[np]%array = [(i * np + me, i = 1, 15)] if (any(obj[np]%array /= [(i * np + me, i = 1, 15)])) STOP 2 end program check_caf_send_by_ref