Attempt 1 - Parallelization in one dimension
After having been acquainted with the code and, I started off with sketching the problem on pen and paper. I found that most natural way to parallelize the problem was to utilize the current functions to the extent possible, and this meant dividing the global domain into local ones by creating both the global and local domains using the createWater function, but with different size arguments. In both cases the domains are created with the ghostlines. To avoid unnecessary communication, the global domain is created in each process.