From 423e9d994b1863389440628421b4bced3f6f1acd Mon Sep 17 00:00:00 2001
From: Gaelle DELAUTIER <gaelle.delautier@meteo.fr>
Date: Tue, 24 Jul 2018 09:46:16 +0200
Subject: [PATCH] Gaelle 24/07/2018 : bug surfex 8.1

---
 src/SURFEX/prep_hor_ocean_field.F90 | 9 +++++----
 src/SURFEX/read_z1d_netcdf.F90      | 8 ++++----
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/SURFEX/prep_hor_ocean_field.F90 b/src/SURFEX/prep_hor_ocean_field.F90
index 7f654d671..9bb9915bd 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 48f339892..af433b739 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(:)
-- 
GitLab