OpenMP and CUDA Fortran

Hi all,

I'm new to multi-GPU and working on a OpenMP CUDA program. The GPU node has two CPUs and two GPUs. So at first I allocate arrays on both GPUs and assign values on them between "c$omp parallel" and "c$omp end parallel" in one subroutine. But when I use those arrays on the calculating subroutine, the subroutine went wrong. The problem is when the array is declared as "private" or "firstprivate", the array changed its address, but when it is not declared, the address of two arrays on two GPU both using the address on 0# GPU. So what did I miss or what technique should I use instead?