diff --git a/model/src/wav_restart_mod.F90 b/model/src/wav_restart_mod.F90
index bdfff9392..adb1a6e5e 100644
--- a/model/src/wav_restart_mod.F90
+++ b/model/src/wav_restart_mod.F90
@@ -179,7 +179,7 @@ subroutine write_restart (fname, va, mapsta)
     if (addrstflds) then
       do i = 1,rstfldcnt
         vname = trim(rstfldlist(i))
-        if (vname == 'ice')call write_globalfield(vname, nseal_cpl, ice)
+        if (vname == 'ice')call write_globalfield(vname, nseal_cpl, ice(1:nsea))
       end do
     end if
 
@@ -340,7 +340,7 @@ subroutine read_restart (fname, va, mapsta, mapst2)
     if (addrstflds) then
       do i = 1,rstfldcnt
         vname = trim(rstfldlist(i))
-        if (vname == 'ice')call read_globalfield(wave_communicator, vname, nseal_cpl, ice, icei)
+        if (vname == 'ice')call read_globalfield(wave_communicator, vname, nseal_cpl, ice(1:nsea), icei)
       end do
     end if
 
@@ -365,7 +365,7 @@ subroutine write_globalfield(vname, nseal_cpl, global_input)
 
     character(len=*) , intent(in)    :: vname
     integer          , intent(in)    :: nseal_cpl
-    real             , intent(in)    :: global_input(nsea)
+    real             , intent(in)    :: global_input(:)
 
     ! local variable
     real, allocatable :: lvar(:)
@@ -406,8 +406,8 @@ subroutine read_globalfield(wave_communicator, vname, nseal_cpl, global_output,
     type(MPI_Comm)   , intent(in)    :: wave_communicator  ! needed for mpi_f08
     character(len=*) , intent(in)    :: vname
     integer          , intent(in)    :: nseal_cpl
-    real             , intent(out)   :: global_output(nsea)
-    real             , intent(out)   :: global_2d(nx,ny)
+    real             , intent(out)   :: global_output(:)
+    real             , intent(out)   :: global_2d(:,:)
 
     ! local variables
     real              :: global_input(nsea)