From e4c95a04eaed03b6cef6661ca3b9fd8b50d958ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Chanut?=
 <jerome.chanut@mercator-ocean.fr>
Date: Fri, 29 Jul 2022 15:07:25 +0000
Subject: [PATCH] Resolve "Issues with ssh initialization in iceinit with vvl
 and AGRIF"

---
 src/OCE/IOM/restart.F90 | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/OCE/IOM/restart.F90 b/src/OCE/IOM/restart.F90
index 32e231279..acd3a54b7 100644
--- a/src/OCE/IOM/restart.F90
+++ b/src/OCE/IOM/restart.F90
@@ -30,6 +30,10 @@ MODULE restart
    USE usrdef_istate, ONLY : usr_def_istate_ssh   ! user defined ssh initial state 
    USE trdmxl_oce     ! ocean active mixed layer tracers trends variables
    USE diu_bulk       ! ???
+#if defined key_si3
+   USE iceistate, ONLY: rsshadj, nn_iceini_file
+   USE sbc_oce, ONLY: ln_ice_embd
+#endif
 #if defined key_agrif
    USE agrif_oce_interp
 #endif
@@ -435,7 +439,21 @@ CONTAINS
          ENDIF
 #if defined key_agrif
          ! Set ghosts points from parent 
-         IF (.NOT.Agrif_Root()) CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. )
+         IF (.NOT.Agrif_Root()) THEN 
+            CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. ) 
+#if defined key_si3
+            IF ( (nn_ice/=2).AND.((Agrif_Parent(nn_ice)==2).AND.                 &
+                              &   (.NOT.(Agrif_Parent(ln_rstart)                 & 
+                              &     .OR.(Agrif_Parent(nn_iceini_file)==2))).AND. &
+                              &   (.NOT.Agrif_Parent(ln_ice_embd))               &
+                              &  )) THEN
+               WHERE( ssmask(:,:) == 1._wp )
+                  ssh(:,:,Kmm) = ssh(:,:,Kmm) - Agrif_Parent(rsshadj)
+                  ssh(:,:,Kbb) = ssh(:,:,Kbb) - Agrif_Parent(rsshadj) 
+               ENDWHERE
+            ENDIF
+         ENDIF
+#endif
 #endif
          !
          ssh(:,:,Kmm) = ssh(:,:,Kbb)              !* set now values from to before ones
-- 
GitLab