diff --git a/src/diagnose.F90 b/src/diagnose.F90
index f3f286152acc7647ad98f57e7fac8cc7381dbbfb..47f83a16178768af567f94e7d84dde9c4ca4f1bf 100644
--- a/src/diagnose.F90
+++ b/src/diagnose.F90
@@ -43,6 +43,7 @@ SUBROUTINE diagnose(kstep)
      CALL creatg(fidrst, '/Basic', 'Basic data')
      CALL creatg(fidrst, '/Basic/moments_e', 'electron moments')
      CALL creatg(fidrst, '/Basic/moments_i', 'ion moments')
+     CALL creatg(fidrst, '/Basic/phi', 'ES potential')
 
      IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(rstfile), ' created'
      CALL flush(6)
@@ -442,10 +443,10 @@ SUBROUTINE checkpoint_save(cp_step)
   WRITE(dset_name, "(A, '/', i6.6)") "/Basic/moments_e", cp_step
   IF (num_procs .EQ. 1) THEN
     CALL putarr(fidrst, dset_name, moments_e(ips_e:ipe_e,ijs_e:ije_e,&
-                                                      ikrs:ikre,ikzs:ikze,updatetlevel), ionode=0)
+                                                      ikrs:ikre,ikzs:ikze,1), ionode=0)
   ELSE
     CALL putarr(fidrst, dset_name, moments_e(ips_e:ipe_e,ijs_e:ije_e,&
-                                                      ikrs:ikre,ikzs:ikze,updatetlevel), pardim=3)
+                                                      ikrs:ikre,ikzs:ikze,1), pardim=3)
   ENDIF
 
   CALL attach(fidrst, dset_name, 'cstep', cstep)
@@ -458,10 +459,25 @@ SUBROUTINE checkpoint_save(cp_step)
   WRITE(dset_name, "(A, '/', i6.6)") "/Basic/moments_i", cp_step
   IF (num_procs .EQ. 1) THEN
     CALL putarr(fidrst, dset_name, moments_i(ips_i:ipe_i,ijs_i:ije_i,&
-                                                      ikrs:ikre,ikzs:ikze,updatetlevel), ionode=0)
+                                                      ikrs:ikre,ikzs:ikze,1), ionode=0)
   ELSE
     CALL putarr(fidrst, dset_name, moments_i(ips_i:ipe_i,ijs_i:ije_i,&
-                                                      ikrs:ikre,ikzs:ikze,updatetlevel), pardim=3)
+                                                      ikrs:ikre,ikzs:ikze,1), pardim=3)
+  ENDIF
+
+  CALL attach(fidrst, dset_name, 'cstep', cstep)
+  CALL attach(fidrst, dset_name, 'time', time)
+  CALL attach(fidrst, dset_name, 'jobnum', jobnum)
+  CALL attach(fidrst, dset_name, 'dt', dt)
+  CALL attach(fidrst, dset_name, 'iframe2d', iframe2d)
+  CALL attach(fidrst, dset_name, 'iframe5d', iframe5d)
+
+  ! Write state of system to restart file
+  WRITE(dset_name, "(A, '/', i6.6)") "/Basic/phi", cp_step
+  IF (num_procs .EQ. 1) THEN
+    CALL putarr(fidrst, dset_name, phi(ikrs:ikre,ikzs:ikze), ionode=0)
+  ELSE
+    CALL putarr(fidrst, dset_name, phi(ikrs:ikre,ikzs:ikze), pardim=1)
   ENDIF
 
   CALL attach(fidrst, dset_name, 'cstep', cstep)
diff --git a/src/inital.F90 b/src/inital.F90
index 5ad14fcd8f61b041d1da4fed2b3dc72fe3429963..a5ad1edb2243eee3d0e7f62c6e2e4beed2ef6006 100644
--- a/src/inital.F90
+++ b/src/inital.F90
@@ -21,10 +21,11 @@ SUBROUTINE inital
     CALL load_cp
   ELSE
     CALL init_moments
+    !!!!!! Set phi !!!!!!
+    IF (my_id .EQ. 1) WRITE(*,*) 'Init phi'
+    CALL poisson
   ENDIF
-  !!!!!! Set phi !!!!!!
-  IF (my_id .EQ. 1) WRITE(*,*) 'Init phi'
-  CALL poisson
+
 
   !!!!!! Set Sepj, Sipj and dnjs coeff table !!!!!!
   IF ( NON_LIN .OR. (A0KH .NE. 0)) THEN;
@@ -124,7 +125,7 @@ SUBROUTINE load_cp
 
   WRITE(rstfile,'(a,a1,i2.2,a3)') TRIM(rstfile0),'_',job2load,'.h5'
 
-  WRITE(*,'(3x,a)') "Resume from previous run"
+  IF (my_id .EQ. 0) WRITE(*,'(3x,a)') "Resume from previous run"
 
   CALL openf(rstfile, fidrst,mpicomm=MPI_COMM_WORLD)
 
@@ -139,9 +140,13 @@ SUBROUTINE load_cp
     WRITE(dset_name, "(A, '/', i6.6)") "/Basic/moments_i", n_
 
     ! Read state of system from restart file
-    CALL getarr(fidrst, dset_name, moments_i(ips_i:ipe_i,ijs_i:ije_i,ikrs:ikre,ikzs:ikze,updatetlevel),pardim=3)
-    CALL getarr(fidrst, dset_name, moments_e(ips_e:ipe_e,ijs_e:ije_e,ikrs:ikre,ikzs:ikze,updatetlevel),pardim=3)
-
+    WRITE(dset_name, "(A, '/', i6.6)") "/Basic/moments_i", n_
+    CALL getarr(fidrst, dset_name, moments_i(ips_i:ipe_i,ijs_i:ije_i,ikrs:ikre,ikzs:ikze,1),pardim=3)
+    WRITE(dset_name, "(A, '/', i6.6)") "/Basic/moments_e", n_
+    CALL getarr(fidrst, dset_name, moments_e(ips_e:ipe_e,ijs_e:ije_e,ikrs:ikre,ikzs:ikze,1),pardim=3)
+    WRITE(dset_name, "(A, '/', i6.6)") "/Basic/phi", n_
+    CALL getarr(fidrst, dset_name, phi(ikrs:ikre,ikzs:ikze),pardim=1)
+    
     ! Read time dependent attributes
     CALL getatt(fidrst, dset_name, 'cstep', cstep)
     CALL getatt(fidrst, dset_name, 'time', time)
@@ -153,7 +158,7 @@ SUBROUTINE load_cp
 
   CALL closef(fidrst)
 
-  WRITE(*,'(3x,a)') "Reading from restart file "//TRIM(rstfile)//" completed!"
+  IF (my_id .EQ. 0) WRITE(*,'(3x,a)') "Reading from restart file "//TRIM(rstfile)//" completed!"
 
 END SUBROUTINE load_cp
 !******************************************************************************!