diff --git a/model/src/wav_pio_mod.F90 b/model/src/wav_pio_mod.F90 index 3e73b5803..4f9b637a4 100644 --- a/model/src/wav_pio_mod.F90 +++ b/model/src/wav_pio_mod.F90 @@ -313,7 +313,8 @@ subroutine wav_pio_initdecomp_2d(iodesc, use_int) ! local variables integer :: n, isea, jsea, ix, iy, nseal_cpl logical :: luse_int - integer(kind=8), allocatable :: dof2d(:) + integer(kind=PIO_OFFSET_KIND) :: lnx,lny + integer(kind=PIO_OFFSET_KIND), allocatable :: dof2d(:) #ifdef W3_PDLIB nseal_cpl = nseal - ng #else @@ -324,13 +325,16 @@ subroutine wav_pio_initdecomp_2d(iodesc, use_int) allocate(dof2d(nseal_cpl)) dof2d = 0 + lnx = int(nx,PIO_OFFSET_KIND) + lny = int(ny,PIO_OFFSET_KIND) + n = 0 do jsea = 1,nseal_cpl call init_get_isea(isea, jsea) ix = mapsf(isea,1) ! global ix iy = mapsf(isea,2) ! global iy n = n+1 - dof2d(n) = (iy-1)*nx + ix ! local index : global index + dof2d(n) = (iy-1)*lnx + ix ! local index : global index end do if (luse_int) then @@ -357,7 +361,8 @@ subroutine wav_pio_initdecomp_3d(nz, iodesc) ! local variables integer :: n, k, isea, jsea, ix, iy, nseal_cpl - integer(kind=8), allocatable :: dof3d(:) + integer(kind=PIO_OFFSET_KIND) :: lnx,lny + integer(kind=PIO_OFFSET_KIND), allocatable :: dof3d(:) #ifdef W3_PDLIB nseal_cpl = nseal - ng #else @@ -366,14 +371,17 @@ subroutine wav_pio_initdecomp_3d(nz, iodesc) allocate(dof3d(nz*nseal_cpl)) dof3d = 0 + lnx = int(nx,PIO_OFFSET_KIND) + lny = int(ny,PIO_OFFSET_KIND) + n = 0 do k = 1,nz do jsea = 1,nseal_cpl call init_get_isea(isea, jsea) - ix = mapsf(isea,1) ! global ix - iy = mapsf(isea,2) ! global iy + ix = mapsf(isea,1) ! global ix + iy = mapsf(isea,2) ! global iy n = n+1 - dof3d(n) = ((iy-1)*nx + ix) + (k-1)*nx*ny ! local index : global index + dof3d(n) = ((iy-1)*lnx + ix) + (k-1)*lnx*lny ! local index : global index end do end do