Действительно ли возможно выделить несколько общих массивов в CUDA Fortran, не прибегая к использованию только одного общего массива и смещению индекса?
Указатели не работают, указатель и цельатрибуты конфликтуют с атрибутом «shared».
Это то, что я хочу достичь:
attributes(global) subroutine shared_sub_arrays()
integer :: i
real, shared, dimension(*), target :: alldata
real, shared, dimension(:), pointer :: left
real, shared, dimension(:), pointer :: centre
real, shared, dimension(:), pointer :: right
i = threadIdx%x
left => alldata(1:3)
centre => alldata(4:6)
right => alldata(7:9)
left(i) = 1.0
centre(i) = 2.0
right(i) = 3.0
end subroutine shared_sub_arrays
Кто-нибудь знает другой способ сделать это?
Заранее спасибо за помощь