A very useful feature in OpenMP is the possibility to declare allocatable arrays as THREADPRIVATE, in such a way that once initially allocated by the varius threads in a parallel region of the program, they can be privately accessed within any other parallel part of the code activated later by OMP PARALLEL - OMP END PARALLEL. This allows for saving much time by avoiding re-allocation and re-deallocation of private space within different parallel portions of the code, when those private arrays are needed from the beginning to the end of the program. I wonder if a similar possibility exists for allocatable, device arrays, to be initially allocated in a GPU by different threads in an OpenMP parallel region. I use CUDA Fortran (but this is unimportant), and it seems that on exit from the OMP parallel region responsible of allocation of the memory space in the GPU, the arrays are no longer accessible from subsequent new parallel regions of the code. Thankyou in advance for the help :)