subroutine GenerateGrid use basicmod use mpimod implicit none real(8)::dx,dy,dz real(8)::x1minloc,x1maxloc real(8)::x2minloc,x2maxloc real(8)::x3minloc,x3maxloc integer::i,j,k ! x coordinates x1minloc = x1min + (x1max-x1min)/ntiles(1)* coords(1) x1maxloc = x1min + (x1max-x1min)/ntiles(1)*(coords(1)+1) dx=(x1maxloc-x1minloc)/dble(ngrid1) do i=1,in x1a(i) = dx*(i-(mgn+1))+x1minloc enddo do i=1,in-1 x1b(i) = 0.5d0*(x1a(i+1)+x1a(i)) enddo ! y coordinates x2minloc = x2min + (x2max-x2min)/ntiles(2)* coords(2) x2maxloc = x2min + (x2max-x2min)/ntiles(2)*(coords(2)+1) dy=(x2maxloc-x2minloc)/dble(ngrid2) do j=1,jn x2a(j) = dy*(j-(mgn+1))+x2minloc enddo do j=1,jn-1 x2b(j) = 0.5d0*(x2a(j+1)+x2a(j)) enddo ! z coordinates x3minloc = x3min + (x3max-x3min)/ntiles(3)* coords(3) x3maxloc = x3min + (x3max-x3min)/ntiles(3)*(coords(3)+1) dz=(x3maxloc-x3minloc)/ngrid3 do k=1,kn x3a(k) = dz*(k-(mgn+1))+x3minloc enddo do k=1,kn-1 x3b(k) = 0.5d0*(x3a(k+1)+x3a(k)) enddo !$acc update device (x1a,x1b) !$acc update device (x2a,x2b) !$acc update device (x3a,x3b) return end subroutine GenerateGrid