From 8e0a05a785036e1a8d955e8ea9bbb70dc7163cc2 Mon Sep 17 00:00:00 2001
From: clem <clement.rousset@locean.ipsl.fr>
Date: Tue, 20 Sep 2022 10:20:49 +0200
Subject: [PATCH] finish the work on halos for DIA routines

---
 src/OCE/DIA/diaar5.F90 | 2 +-
 src/OCE/DIA/diahth.F90 | 8 ++++----
 src/OCE/DYN/sshwzv.F90 | 3 ++-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/OCE/DIA/diaar5.F90 b/src/OCE/DIA/diaar5.F90
index a22ad1640..05da27cd8 100644
--- a/src/OCE/DIA/diaar5.F90
+++ b/src/OCE/DIA/diaar5.F90
@@ -79,7 +79,7 @@ CONTAINS
       REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: z2d                   ! 2D workspace
       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: z3d
       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd, zgdept          ! 3D workspace (zgdept: needed to use the substitute)
-      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace
+      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn                  ! 4D workspace
       !!--------------------------------------------------------------------
       IF( ln_timing )   CALL timing_start('dia_ar5')
 
diff --git a/src/OCE/DIA/diahth.F90 b/src/OCE/DIA/diahth.F90
index dcec1291f..e7ebca2d5 100644
--- a/src/OCE/DIA/diahth.F90
+++ b/src/OCE/DIA/diahth.F90
@@ -54,8 +54,8 @@ CONTAINS
       INTEGER :: dia_hth_alloc
       !!---------------------------------------------------------------------
       !
-      ALLOCATE( hth(jpi,jpj), hd20(jpi,jpj), hd26(jpi,jpj), hd28(jpi,jpj), &
-         &      htc3(jpi,jpj), htc7(jpi,jpj), htc20(jpi,jpj), STAT=dia_hth_alloc )
+      ALLOCATE( hth(A2D(0)), hd20(A2D(0)), hd26(A2D(0)), hd28(A2D(0)), &
+         &      htc3(A2D(0)), htc7(A2D(0)), htc20(A2D(0)), STAT=dia_hth_alloc )
       !
       CALL mpp_sum ( 'diahth', dia_hth_alloc )
       IF(dia_hth_alloc /= 0)   CALL ctl_stop( 'STOP', 'dia_hth_alloc: failed to allocate arrays.' )
@@ -301,7 +301,7 @@ CONTAINS
       !
       INTEGER , INTENT(in) :: Kmm      ! ocean time level index
       REAL(wp), INTENT(in) :: ptem
-      REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pdept     
+      REAL(wp), DIMENSION(A2D(0)), INTENT(out) :: pdept     
       !
       INTEGER  :: ji, jj, jk, iid
       REAL(wp) :: zztmp, zzdep
@@ -346,7 +346,7 @@ CONTAINS
       INTEGER , INTENT(in) ::   Kmm      ! ocean time level index
       REAL(wp), INTENT(in) ::   pdep     ! depth over the heat content
       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in)    ::   pt   
-      REAL(wp), DIMENSION(jpi,jpj),     INTENT(inout) ::   phtc  
+      REAL(wp), DIMENSION(A2D(0)),      INTENT(inout) ::   phtc  
       !
       INTEGER  ::   ji, jj, jk, ik
       REAL(wp), DIMENSION(A2D(0)) ::   zthick
diff --git a/src/OCE/DYN/sshwzv.F90 b/src/OCE/DYN/sshwzv.F90
index aed60c986..71452dc72 100644
--- a/src/OCE/DYN/sshwzv.F90
+++ b/src/OCE/DYN/sshwzv.F90
@@ -315,7 +315,8 @@ CONTAINS
          IF(lwp) WRITE(numout,*) 'wzv_RK3 : now vertical velocity '
          IF(lwp) WRITE(numout,*) '~~~~~ '
          !
-         pww(:,:,jpk) = 0._wp                  ! bottom boundary condition: w=0 (set once for all)
+         pww(:,:,:) = 0._wp                  ! bottom boundary condition: w=0 (set once for all)
+         !                                   ! needed over the halos for the output (ww+wi) in diawri.F90
       ENDIF
       !
       CALL div_hor( kt, Kbb, Kmm, puu, pvv, ze3div )
-- 
GitLab