diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index 203a8b45fcd22672546b0351b1259a808c7d0fa6..490481b6f59e7d2d055127a8dc7ecc58d2f40da8 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -758,6 +758,7 @@ END SUBROUTINE WRITE_SURFX2COV_MNH
 !!      original                                                     01/08/03
 !!      G.TANGUY 03/2009   add replace ZUNDEF(surfex) by XUNDEF(MNH)
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 07/02/2023: treat 2D case separately
 !----------------------------------------------------------------------------
 !
 !*      0.    DECLARATIONS
@@ -843,12 +844,24 @@ IF (HDIR=='H' .OR. HDIR=='A') THEN
   WHERE (ZWORK==ZUNDEF) ZWORK=XUNDEF
 !
   IF (HDIR=='H') THEN
-    CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD)
-    CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP)
+    IF ( SIZE(PFIELD,2) == 1 ) THEN
+      ! 2D case
+      CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX2_MNH',TZFIELD)
+      CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,1),KRESP)
+    ELSE
+      CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD)
+      CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP)
+    END IF
   END IF
   IF (HDIR=='A') THEN
-    CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD)
-    CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP)
+    IF ( SIZE(PFIELD,2) == 1 ) THEN
+      ! 2D case
+      CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX2_MNH',TZFIELD)
+      CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:,1),KRESP)
+    ELSE
+      CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD)
+      CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP)
+    END IF
   END IF
 !
   DEALLOCATE(ZWORK)