diff --git a/src/SURFEX/prep_hor_ocean_field.F90 b/src/SURFEX/prep_hor_ocean_field.F90
index 7f654d671bfc21b431b64356b4d959db5725768a..9bb9915bdcd0024ff43f0c185d13793cab996479 100644
--- a/src/SURFEX/prep_hor_ocean_field.F90
+++ b/src/SURFEX/prep_hor_ocean_field.F90
@@ -84,7 +84,7 @@ REAL, POINTER, DIMENSION(:,:,:)    ::ZFIELDIN=>NULL()!field to interpolate horiz
 REAL, POINTER, DIMENSION(:,:)      ::ZFIELD=>NULL()  !field to interpolate horizontally
 REAL, ALLOCATABLE, DIMENSION(:,:,:)::ZFIELDOUT!field interpolated horizontally
 !
-INTEGER                       :: JLEV    ! loop on oceanic vertical level
+INTEGER                       :: JLEV, JLEV2    ! loop on oceanic vertical level
 INTEGER                       :: IK1
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !----------------------------------------------------------------------------
@@ -114,10 +114,11 @@ END IF
 ALLOCATE(ZFIELDOUT  (KLAT,SIZE(ZFIELDIN,2),SIZE(ZFIELDIN,3)) )
 ALLOCATE(ZFIELD(SIZE(ZFIELDIN,1),SIZE(ZFIELDIN,3)))
 !
-DO JLEV=1,SIZE(ZFIELDIN,2)
+DO JLEV=NOCKMIN,NOCKMAX
+  JLEV2 = JLEV - NOCKMIN + 1
   WHERE (PSEABATHY(:)-XZHOC(JLEV)>0.) LINTERP(:) = .FALSE.
-  ZFIELD(:,:)=ZFIELDIN(:,JLEV,:)
-  CALL HOR_INTERPOL(DTCO, U, GCP, KLUOUT,ZFIELD,ZFIELDOUT(:,JLEV,:))
+  ZFIELD(:,:)=ZFIELDIN(:,JLEV2,:)
+  CALL HOR_INTERPOL(DTCO, U, GCP, KLUOUT,ZFIELD,ZFIELDOUT(:,JLEV2,:))
   LINTERP(:) = .TRUE.
 ENDDO
 !
diff --git a/src/SURFEX/read_z1d_netcdf.F90 b/src/SURFEX/read_z1d_netcdf.F90
index 48f3398924ef7832e2323cddb7e697a899710e74..af433b7392ff96229cc157444ba18483b7a4522f 100644
--- a/src/SURFEX/read_z1d_netcdf.F90
+++ b/src/SURFEX/read_z1d_netcdf.F90
@@ -61,14 +61,14 @@ IF (CTYPE_SEAFLX=="NETCDF") THEN
   YFILENAME=TRIM(CFILE_SEAFLX)
   YNCVARNAME="depth"
   CALL READ_DIM_CDF(YFILENAME,YNCVARNAME,JDIMENSION)
-  NOCKMAX=JDIMENSION
-  ALLOCATE(XZHOC(0:JDIMENSION))
+  NOCKMAX=JDIMENSION-1
+  ALLOCATE(XZHOC(0:NOCKMAX))
   XZHOC(0)=0.
 !
 !*    2.      Read the array in the netcdf file
 !             ---------------------------------
-  CALL READ_Z1D_CDF(YFILENAME,YNCVARNAME,XZHOC(1:JDIMENSION))
-  IF (XZHOC(2)>0) XZHOC(:)=-XZHOC(:)
+  CALL READ_Z1D_CDF(YFILENAME,YNCVARNAME,XZHOC(0:NOCKMAX))
+  IF (XZHOC(1)>0) XZHOC(:)=-XZHOC(:)
 !  WRITE(0,*) 'Oceanic vertical grid readed in netcdf file'
 !  WRITE(0,*) 'Number of level',NOCKMAX+1
 !  WRITE(0,*) 'Depth of vertical level',XZHOC(:)