diff --git a/src/poisson/ppm_poisson_fd.f b/src/poisson/ppm_poisson_fd.f
index 4535217e6bdb11d10c1985f0be2e8a99c509be0b..6a7f9adfd9fdc27a7aa1b46a5fe943862e61203d 100644
--- a/src/poisson/ppm_poisson_fd.f
+++ b/src/poisson/ppm_poisson_fd.f
@@ -1,140 +1,143 @@
-      !-------------------------------------------------------------------------
-      ! ppm_poisson_fd.f90
-      !-------------------------------------------------------------------------
-      !-------------------------------------------------------------------------
-      SUBROUTINE __ROUTINE(topoid,meshid,fieldin,fieldout,dtype,info)
+!-------------------------------------------------------------------------
+! ppm_poisson_fd.f
+!-------------------------------------------------------------------------
+!@ TODO: Somewhere check if fieldin is equal to fieldout and give a warning
+!-------------------------------------------------------------------------
+SUBROUTINE __ROUTINE(topoid,meshid,fieldin,fieldout,dtype,info)
 
-      USE ppm_module_topo_get
+  USE ppm_module_topo_get
 
-      IMPLICIT NONE
-      !-------------------------------------------------------------------------
-      ! Arguments
-      !-------------------------------------------------------------------------
-      INTEGER, INTENT(IN)                                         :: topoid
-      INTEGER, INTENT(IN)                                         :: meshid
-      REAL(__PREC),DIMENSION(:,:,:,:,:),POINTER                   :: fieldin
-      REAL(__PREC),DIMENSION(:,:,:,:,:),POINTER                   :: fieldout
-      !INTEGER,DIMENSION(__DIM),INTENT(IN)                         :: gstw
-      INTEGER, INTENT(IN)                                         :: dtype
-      INTEGER, INTENT(OUT)                                        :: info
+  IMPLICIT NONE
+  !-------------------------------------------------------------------------
+  ! Arguments
+  !-------------------------------------------------------------------------
+  INTEGER, INTENT(IN)                                         :: topoid
+  INTEGER, INTENT(IN)                                         :: meshid
+  REAL(__PREC),DIMENSION(:,:,:,:,:),POINTER                   :: fieldin
+  REAL(__PREC),DIMENSION(:,:,:,:,:),POINTER                   :: fieldout
+  !INTEGER,DIMENSION(__DIM),INTENT(IN)                         :: gstw
+  INTEGER, INTENT(IN)                                         :: dtype
+  INTEGER, INTENT(OUT)                                        :: info
 
-      !-------------------------------------------------------------------------
-      ! Local variables
-      !-------------------------------------------------------------------------
-      INTEGER,PARAMETER                 :: MK = __PREC
-      REAL(__PREC)                      :: t0
-      TYPE(ppm_t_topo),POINTER          :: topology
-      TYPE(ppm_t_equi_mesh)             :: mesh
-      REAL(__PREC)                      :: dx,dy,dz
-      REAL(__PREC)                      :: facx,facy,facz
-      INTEGER                           :: isub,isubl
-      INTEGER                           :: i,j,k
+  !-------------------------------------------------------------------------
+  ! Local variables
+  !-------------------------------------------------------------------------
+  INTEGER,PARAMETER                 :: MK = __PREC
+  REAL(__PREC)                      :: t0
+  TYPE(ppm_t_topo),POINTER          :: topology
+  TYPE(ppm_t_equi_mesh)             :: mesh
+  REAL(__PREC)                      :: dx,dy,dz
+  REAL(__PREC)                      :: facx,facy,facz
+  INTEGER                           :: isub,isubl
+  INTEGER                           :: i,j,k
 
-      !-------------------------------------------------------------------------
-      ! Initialise routine
-      !-------------------------------------------------------------------------
-      CALL substart('ppm_poisson_fd',t0,info)
-      !-------------------------------------------------------------------------
-      ! Get topology and mesh values
-      !-------------------------------------------------------------------------
-      CALL ppm_topo_get(topoid,topology,info)
-      IF (info .NE. 0) THEN
-        CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get topology.',isub)
-        GOTO 9999
-      ENDIF
-      mesh  = topology%mesh(meshid)
+  !-------------------------------------------------------------------------
+  ! Initialise routine
+  !-------------------------------------------------------------------------
+  CALL substart('ppm_poisson_fd',t0,info)
 
-      dx = (topology%max_physd(1)-topology%min_physd(1))/REAL(mesh%nm(1)-1)
-      dy = (topology%max_physd(2)-topology%min_physd(2))/REAL(mesh%nm(2)-1)
-      dz = (topology%max_physd(3)-topology%min_physd(3))/REAL(mesh%nm(3)-1)
+  !@ perhaps ensure that fieldin .NE. fieldout
+  !-------------------------------------------------------------------------
+  ! Get topology and mesh values
+  !-------------------------------------------------------------------------
+  CALL ppm_topo_get(topoid,topology,info)
+  IF (info .NE. 0) THEN
+     CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get topology.',isub)
+     GOTO 9999
+  ENDIF
+  mesh  = topology%mesh(meshid)
 
-      !-----------------------------------------------------------------------
-      ! Do the finite difference calculation
-      !-----------------------------------------------------------------------
-      !-----------------------------------------------------------------------
-      ! Curl, 2nd order FD
-      !-----------------------------------------------------------------------
-      IF (dtype .EQ. ppm_poisson_drv_curl_fd2) THEN
-        facx = 1.0_MK/(2.0_MK*dx)
-        facy = 1.0_MK/(2.0_MK*dy)
-        facz = 1.0_MK/(2.0_MK*dz)
+  dx = (topology%max_physd(1)-topology%min_physd(1))/REAL(mesh%nm(1)-1) !vertex
+  dy = (topology%max_physd(2)-topology%min_physd(2))/REAL(mesh%nm(2)-1)
+  dz = (topology%max_physd(3)-topology%min_physd(3))/REAL(mesh%nm(3)-1)
 
-        DO isub=1,topology%nsublist
-          isubl=topology%isublist(isub)
-          DO k=1,mesh%nnodes(3,isubl)
-            DO j=1,mesh%nnodes(2,isubl)
+  !-----------------------------------------------------------------------
+  ! Do the finite difference calculation
+  !-----------------------------------------------------------------------
+  !-----------------------------------------------------------------------
+  ! Curl, 2nd order FD
+  !-----------------------------------------------------------------------
+  IF (dtype .EQ. ppm_poisson_drv_curl_fd2) THEN
+     facx = 1.0_MK/(2.0_MK*dx)
+     facy = 1.0_MK/(2.0_MK*dy)
+     facz = 1.0_MK/(2.0_MK*dz)
+
+     DO isub=1,topology%nsublist
+        isubl=topology%isublist(isub)
+        DO k=1,mesh%nnodes(3,isubl)
+           DO j=1,mesh%nnodes(2,isubl)
               DO i=1,mesh%nnodes(1,isubl)
-                fieldout(1,i,j,k,isub) = &
-                &  facz*(fieldin(2,i  ,j  ,k+1,isub)- &
-                       & fieldin(2,i  ,j  ,k-1,isub)) &
-                & -facy*(fieldin(3,i  ,j+1,k  ,isub)- &
-                       & fieldin(3,i  ,j-1,k  ,isub))
-                fieldout(2,i,j,k,isub) = &
-                &  facx*(fieldin(3,i+1,j  ,k  ,isub)- &
-                       & fieldin(3,i-1,j  ,k  ,isub)) &
-                & -facz*(fieldin(1,i  ,j  ,k+1,isub)- &
-                       & fieldin(1,i  ,j  ,k-1,isub))
-                fieldout(3,i,j,k,isub) = &
-                &  facy*(fieldin(1,i  ,j+1,k  ,isub)- &
-                       & fieldin(1,i  ,j-1,k  ,isub)) &
-                & -facx*(fieldin(2,i+1,j  ,k  ,isub)- &
-                       & fieldin(2,i-1,j  ,k  ,isub))
+                 fieldout(1,i,j,k,isub) = &
+                      &  facy*(fieldin(3,i  ,j+1,k  ,isub)- &
+                      & fieldin(3,i  ,j-1,k  ,isub)) &
+                      & -facz*(fieldin(2,i  ,j  ,k+1,isub)- &
+                      & fieldin(2,i  ,j  ,k-1,isub))
+                 fieldout(2,i,j,k,isub) = &
+                      &  facz*(fieldin(1,i  ,j  ,k+1,isub)- &
+                      & fieldin(1,i  ,j  ,k-1,isub)) &
+                      & -facx*(fieldin(3,i+1,j  ,k  ,isub)- &
+                      & fieldin(3,i-1,j  ,k  ,isub))
+                 fieldout(3,i,j,k,isub) = &
+                      &  facx*(fieldin(2,i+1,j  ,k  ,isub)- &
+                      & fieldin(2,i-1,j  ,k  ,isub)) &
+                      & -facy*(fieldin(1,i  ,j+1,k  ,isub)- &
+                      & fieldin(1,i  ,j-1,k  ,isub))
               ENDDO
-            ENDDO
-          ENDDO
+           ENDDO
         ENDDO
-      !-----------------------------------------------------------------------
-      ! Curl, 4th order FD - untested
-      !-----------------------------------------------------------------------
-      ELSE IF (dtype .EQ. ppm_poisson_drv_curl_fd4) THEN
-        facx = 1.0_MK/(12.0_MK*dx)
-        facy = 1.0_MK/(12.0_MK*dy)
-        facz = 1.0_MK/(12.0_MK*dz)
+     ENDDO
+     !-----------------------------------------------------------------------
+     ! Curl, 4th order FD - untested
+     !-----------------------------------------------------------------------
+  ELSE IF (dtype .EQ. ppm_poisson_drv_curl_fd4) THEN
+     facx = 1.0_MK/(12.0_MK*dx)
+     facy = 1.0_MK/(12.0_MK*dy)
+     facz = 1.0_MK/(12.0_MK*dz)
 
-        DO isub=1,topology%nsublist
-          isubl=topology%isublist(isub)
-          DO k=1,mesh%nnodes(3,isubl)
-            DO j=1,mesh%nnodes(2,isubl)
+     DO isub=1,topology%nsublist
+        isubl=topology%isublist(isub)
+        DO k=1,mesh%nnodes(3,isubl)
+           DO j=1,mesh%nnodes(2,isubl)
               DO i=1,mesh%nnodes(1,isubl)
-                fieldout(1,i,j,k,isub) = &
-                &  facz*(         -fieldin(2,i  ,j  ,k+2,isub)  &
-                       &   +8.0_MK*fieldin(2,i  ,j  ,k+1,isub)  &
-                       &   -8.0_MK*fieldin(2,i  ,j  ,k-1,isub)  &
-                       &          +fieldin(2,i  ,j  ,k-2,isub)) &
-                & -facy*(         -fieldin(3,i  ,j+2,k  ,isub)  &
-                       &   +8.0_MK*fieldin(3,i  ,j+1,k  ,isub)  &
-                       &   -8.0_MK*fieldin(3,i  ,j-1,k  ,isub)  &
-                       &          +fieldin(3,i  ,j-2,k  ,isub))
-                fieldout(2,i,j,k,isub) = &
-                &  facx*(         -fieldin(3,i+2,j  ,k  ,isub)  &
-                       &   +8.0_MK*fieldin(3,i+1,j  ,k  ,isub)  &
-                       &   -8.0_MK*fieldin(3,i-1,j  ,k  ,isub)  &
-                       &          +fieldin(3,i-2,j  ,k  ,isub)) &
-                & -facz*(         -fieldin(1,i  ,j  ,k+2,isub)  &
-                       &   +8.0_MK*fieldin(1,i  ,j  ,k+1,isub)  &
-                       &   -8.0_MK*fieldin(1,i  ,j  ,k-1,isub)  &
-                       &          +fieldin(1,i  ,j  ,k-2,isub))
-                fieldout(3,i,j,k,isub) = &
-                &  facy*(         -fieldin(1,i  ,j+2,k  ,isub)  &
-                       &   +8.0_MK*fieldin(1,i  ,j+1,k  ,isub)  &
-                       &   -8.0_MK*fieldin(1,i  ,j-1,k  ,isub)  &
-                       &          +fieldin(1,i  ,j-2,k  ,isub)) &
-                & -facx*(         -fieldin(2,i+2,j  ,k  ,isub)  &
-                       &   +8.0_MK*fieldin(2,i+1,j  ,k  ,isub)  &
-                       &   -8.0_MK*fieldin(2,i-1,j  ,k  ,isub)  &
-                       &          +fieldin(2,i-2,j  ,k  ,isub))
+                 fieldout(1,i,j,k,isub) = &
+                      &  facy*(         -fieldin(3,i  ,j+2,k  ,isub)  &
+                      &   +8.0_MK*fieldin(3,i  ,j+1,k  ,isub)  &
+                      &   -8.0_MK*fieldin(3,i  ,j-1,k  ,isub)  &
+                      &          +fieldin(3,i  ,j-2,k  ,isub)) &
+                      & -facz*(         -fieldin(2,i  ,j  ,k+2,isub)  &
+                      &   +8.0_MK*fieldin(2,i  ,j  ,k+1,isub)  &
+                      &   -8.0_MK*fieldin(2,i  ,j  ,k-1,isub)  &
+                      &          +fieldin(2,i  ,j  ,k-2,isub))
+                 fieldout(2,i,j,k,isub) = &
+                      &  facz*(         -fieldin(1,i  ,j  ,k+2,isub)  &
+                      &   +8.0_MK*fieldin(1,i  ,j  ,k+1,isub)  &
+                      &   -8.0_MK*fieldin(1,i  ,j  ,k-1,isub)  &
+                      &          +fieldin(1,i  ,j  ,k-2,isub)) &
+                      & -facx*(         -fieldin(3,i+2,j  ,k  ,isub)  &
+                      &   +8.0_MK*fieldin(3,i+1,j  ,k  ,isub)  &
+                      &   -8.0_MK*fieldin(3,i-1,j  ,k  ,isub)  &
+                      &          +fieldin(3,i-2,j  ,k  ,isub))
+                 fieldout(3,i,j,k,isub) = &
+                      &  facx*(         -fieldin(2,i+2,j  ,k  ,isub)  &
+                      &   +8.0_MK*fieldin(2,i+1,j  ,k  ,isub)  &
+                      &   -8.0_MK*fieldin(2,i-1,j  ,k  ,isub)  &
+                      &          +fieldin(2,i-2,j  ,k  ,isub)) &
+                      & -facy*(         -fieldin(1,i  ,j+2,k  ,isub)  &
+                      &   +8.0_MK*fieldin(1,i  ,j+1,k  ,isub)  &
+                      &   -8.0_MK*fieldin(1,i  ,j-1,k  ,isub)  &
+                      &          +fieldin(1,i  ,j-2,k  ,isub))
               ENDDO
-            ENDDO
-          ENDDO
+           ENDDO
         ENDDO
-      ENDIF
+     ENDDO
+  ENDIF
 
-      !-------------------------------------------------------------------------
-      ! Return
-      !-------------------------------------------------------------------------
- 9999 CONTINUE
-      CALL substop('ppm_poisson_fd',t0,info)
-      RETURN
+  !-------------------------------------------------------------------------
+  ! Return
+  !-------------------------------------------------------------------------
+9999 CONTINUE
+  CALL substop('ppm_poisson_fd',t0,info)
+  RETURN
 
-      END SUBROUTINE __ROUTINE
+END SUBROUTINE __ROUTINE