From 37562b06c96d1d138274aee2872635fa1938236e Mon Sep 17 00:00:00 2001
From: Sebastien Masson <sebastien.masson@locean.ipsl.fr>
Date: Tue, 7 Feb 2023 11:21:23 +0000
Subject: [PATCH] Resolve "add XIOS3 compatibility"

---
 src/OCE/IOM/iom.F90 | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/OCE/IOM/iom.F90 b/src/OCE/IOM/iom.F90
index 88ddf990..44af1494 100644
--- a/src/OCE/IOM/iom.F90
+++ b/src/OCE/IOM/iom.F90
@@ -2012,7 +2012,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield2d, 1), SIZE(pfield2d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield2d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield2d )
          ENDIF
@@ -2028,7 +2030,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield2d, 1), SIZE(pfield2d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield2d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield2d )
          ENDIF
@@ -2044,7 +2048,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield3d, 1), SIZE(pfield3d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield3d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield3d )
          ENDIF
@@ -2060,7 +2066,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield3d, 1), SIZE(pfield3d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield3d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield3d )
          ENDIF
@@ -2076,7 +2084,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield4d, 1), SIZE(pfield4d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield4d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield4d )
          ENDIF
@@ -2092,7 +2102,9 @@ CONTAINS
       IF( iom_use(cdname) ) THEN
 #if defined key_xios
          IF( is_tile(SIZE(pfield4d, 1), SIZE(pfield4d, 2)) ) THEN
+#ifndef key_xios3
             CALL xios_send_field( cdname, pfield4d, ntile - 1 )
+#endif
          ELSE IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN
             CALL xios_send_field( cdname, pfield4d )
          ENDIF
@@ -2128,18 +2140,22 @@ CONTAINS
       IF( xios_is_valid_domain     (cdid) ) THEN
          CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   &
             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   &
+#ifndef key_xios3
             &    ntiles=ntiles, tile_ibegin=tile_ibegin, tile_jbegin=tile_jbegin, tile_ni=tile_ni, tile_nj=tile_nj,        &
             &    tile_data_ibegin=tile_data_ibegin, tile_data_jbegin=tile_data_jbegin,                                     &
             &    tile_data_ni=tile_data_ni, tile_data_nj=tile_data_nj,                                                     &
+#endif
             &    lonvalue_1D=lonvalue, latvalue_1D=latvalue, mask_1D=mask, nvertex=nvertex, bounds_lon_1D=bounds_lon,      &
             &    bounds_lat_1D=bounds_lat, area=area, type='curvilinear')
       ENDIF
       IF( xios_is_valid_domaingroup(cdid) ) THEN
          CALL xios_set_domaingroup_attr( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   &
             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   &
+#ifndef key_xios3
             &    ntiles=ntiles, tile_ibegin=tile_ibegin, tile_jbegin=tile_jbegin, tile_ni=tile_ni, tile_nj=tile_nj,        &
             &    tile_data_ibegin=tile_data_ibegin, tile_data_jbegin=tile_data_jbegin,                                     &
             &    tile_data_ni=tile_data_ni, tile_data_nj=tile_data_nj,                                                     &
+#endif
             &    lonvalue_1D=lonvalue, latvalue_1D=latvalue, mask_1D=mask, nvertex=nvertex, bounds_lon_1D=bounds_lon,      &
             &    bounds_lat_1D=bounds_lat, area=area, type='curvilinear' )
       ENDIF
-- 
GitLab