diff --git a/hysop/backend/host/fortran/operator/poisson_rotational.py b/hysop/backend/host/fortran/operator/poisson_rotational.py
index fa54c554bde7373fedbb36c2fc60da45df227e80..2313766784a17815b2a2aeacafa12a3ffe88b3f4 100644
--- a/hysop/backend/host/fortran/operator/poisson_rotational.py
+++ b/hysop/backend/host/fortran/operator/poisson_rotational.py
@@ -161,8 +161,10 @@ class PoissonRotationalFFTW(FortranFFTWOperator):
         """
         assert self.dim==3
         ghosts_w = self.output_fields[self.vorticity].ghosts
+        changeLayout, dv, dw = self._initialize_mem_layout()
+        # Vectors are given in ZYX layout to Fortran
         self.dvorticity.data =\
-            fftw2py.projection_om_3d(self.dvorticity.data[0],
-                                     self.dvorticity.data[1],
-                                     self.dvorticity.data[2], ghosts_w)
+            fftw2py.projection_om_3d(dw[2], dw[1], dw[0], ghosts_w)
+        if changeLayout:
+            self._finalize_mem_layout(dv)
         self.dvorticity.exchange_ghosts()