anchor.diff:    allocate(iupper(0:num_procs-1, 2))
   
   
  -  do n = 0, nProcX - 1
  -    ilower(n * nProcY:(n+1)*nProcY - 1,1) = n * nx / nProcX
  -    iupper(n * nProcY:(n+1)*nProcY - 1,1) = ((n+1) * nx / nProcX) - 1
  -  end do
  -  ! correct final iupper value to include the global halo
  -  iupper((nProcX-1)*nProcY:nProcX*nProcY,1) = nx + 1
  -
  -  do n = 0, nProcY - 1
  -    ilower(n * nProcX:(n+1)*nProcX - 1,2) = n * ny / nProcY
  -    iupper(n * nProcX:(n+1)*nProcX - 1,2) = ((n+1) * ny / nProcY) - 1
  -  end do
  -  ! correct final iupper value to include the global halo
  -  iupper((nProcY-1)*nProcX:nProcX*nProcY,2) = ny + 1
  +  do i = 0, nProcX - 1
  +    ilower(i * nProcY:(i+1)*nProcY - 1,1) = i * nx / nProcX
  +    iupper(i * nProcY:(i+1)*nProcY - 1,1) = ((i+1) * nx / nProcX) - 1
  +  end do
  +  ! correct first ilower value to exclude the global halo
  +  ilower(0,1) = 1
  +
  +  do j = 0, nProcY - 1
  +    ilower(j * nProcX:(j+1)*nProcX - 1,2) = j * ny / nProcY
  +    iupper(j * nProcX:(j+1)*nProcX - 1,2) = ((j+1) * ny / nProcY) - 1
  +  end do
  +  ! correct first ilower value to exclude the global halo
  +  ilower(0,2) = 1
   
   if (myid .eq. 0) then
     print *, 'ilower (x) = ', ilower(:,1)
  
positive.code:     ! 2*pi in this calculation
  #else
      ! use the external pressure solver
  ! ilower(myid,1), & 
  !            iupper(myid,1), ilower(myid,2), iupper(myid,2)
  
  
negative.code:   ! Main input files
    character(30) :: initUfile, initVfile, initHfile, initEtaFile
    character(30) :: zonalWindFile, meridionalWindFile
  
    ! External pressure solver variables
    ! except for the logical switch, none of these are used
    ! unless the external solver is used.
  