From 4330cd82bf30201048760e1b688b265304451844 Mon Sep 17 00:00:00 2001
From: "Christian.Ethe" <rgzi002@jean-zay-pp2.idris.fr>
Date: Fri, 29 Jul 2022 13:49:57 +0200
Subject: [PATCH] Fix iom_nf90.F90

---
 src/OCE/IOM/iom_nf90.F90 | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/OCE/IOM/iom_nf90.F90 b/src/OCE/IOM/iom_nf90.F90
index 67997b9a4..6a95cdd39 100644
--- a/src/OCE/IOM/iom_nf90.F90
+++ b/src/OCE/IOM/iom_nf90.F90
@@ -697,10 +697,12 @@ CONTAINS
 
             IF( PRESENT(pv_r2d) )  ishape(1:2) = SHAPE(pv_r2d)
             IF( PRESENT(pv_r3d) )  ishape(1:3) = SHAPE(pv_r3d)
-            IF(     ishape(1) == Ni_0 .AND. ishape(2) == Nj_0 ) THEN
-               ix1 = 1      ;   ix2 = Ni_0   ;   iy1 = 1      ;   iy2 = Nj_0
-            ELSEIF( ishape(1) == jpi  .AND. ishape(2) == jpj  ) THEN
-               ix1 = Nis0   ;   ix2 = Nie0   ;   iy1 = Njs0   ;   iy2 = Nje0
+            IF(     ishape(1) == Ni_0   .AND. ishape(2) == Nj_0   ) THEN           ! array with 0 halo
+               ix1 = 1      ;   ix2 = Ni_0     ;   iy1 = 1      ;   iy2 = Nj_0
+            ELSEIF( ishape(1) == jpi    .AND. ishape(2) == jpj    ) THEN           ! array with nn_hls halos
+               ix1 = Nis0   ;   ix2 = Nie0     ;   iy1 = Njs0   ;   iy2 = Nje0
+            ELSEIF( ishape(1) == Ni_0+1 .AND. ishape(2) == Nj_0+1 ) THEN           ! nn_hls = 2 and array with 1 halo
+               ix1 = 2      ;   ix2 = Ni_0+1   ;   iy1 = 2      ;   iy2 = Nj_0+1
             ELSE
                CALL ctl_stop( 'iom_nf90_rp0123d: should have been an impossible case...' )
             ENDIF
-- 
GitLab