diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90
index 41b2517e82ab245e22b95ee51f74844aac4402aa..452a44938e026350027e73988bfdfcfbe1df07a8 100644
--- a/src/MNH/prep_surf_mnh.f90
+++ b/src/MNH/prep_surf_mnh.f90
@@ -12,19 +12,20 @@
       MODULE MODI_PREP_SURF_MNH
 !     #############################
 INTERFACE
-      SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE)
+      SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE,OINIFILEOPEN)
 !
-CHARACTER(LEN=28), INTENT(IN)    :: HATMFILE    ! name of the Atmospheric file
-CHARACTER(LEN=6),  INTENT(IN)    :: HATMFILETYPE! type of the Atmospheric file
+CHARACTER(LEN=28),INTENT(IN) :: HATMFILE    ! name of the Atmospheric file
+CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file
+LOGICAL, OPTIONAL,INTENT(IN) :: OINIFILEOPEN! Open the INI file here (or not)
 !
 END SUBROUTINE PREP_SURF_MNH
 !
 END INTERFACE
 END MODULE MODI_PREP_SURF_MNH
 !
-!     #######################################################
-      SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE)
-!     #######################################################
+!     ############################################################
+      SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE,OINIFILEOPEN)
+!     ############################################################
 !
 !!****  *PREP_SURF_MNH* - calls surface field preparation
 !!
@@ -56,6 +57,7 @@ USE MODD_LUNIT_n,     ONLY : CINIFILE, TINIFILE
 USE MODD_MNH_SURFEX_n
 USE MODD_TIME_n,      ONLY : TDTCUR
 !
+USE MODE_FM,       ONLY : IO_FILE_OPEN_ll
 USE MODE_PREP_CTL, ONLY : PREP_CTL
 !
 USE MODI_INIT_PGD_SURF_ATM
@@ -68,8 +70,9 @@ IMPLICIT NONE
 !*       0.1   Declarations of arguments
 !              -------------------------
 !
-CHARACTER(LEN=28), INTENT(IN)   :: HATMFILE    ! name of the Atmospheric file
-CHARACTER(LEN=6),  INTENT(IN)   :: HATMFILETYPE! type of the Atmospheric file
+CHARACTER(LEN=28),INTENT(IN) :: HATMFILE    ! name of the Atmospheric file
+CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file
+LOGICAL, OPTIONAL,INTENT(IN) :: OINIFILEOPEN! Open the INI file here (or not)
 !
 !*       0.2   Declarations of local variables
 !              -------------------------------
@@ -99,6 +102,10 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE,  &
                        TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, &
                        TDTCUR%TDATE%DAY, TDTCUR%TIME          )
 CALL PREP_SURF_ATM(YSURF_CUR,'MESONH',HATMFILE,YATMFILETYPE,HATMFILE,YATMFILETYPE,YLCTL)
+IF (PRESENT(OINIFILEOPEN)) THEN
+  !This is done here because model dimensions were not known before this call (for PREP_SURFEX)
+  IF (OINIFILEOPEN) CALL IO_FILE_OPEN_ll(TINIFILE)
+END IF
 CALL WRITE_SURF_ATM_n(YSURF_CUR,'MESONH','PRE',.FALSE.)
 CALL WRITE_DIAG_SURF_ATM_n(YSURF_CUR,'MESONH','PRE')
 !
diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90
index 9e98c8a6630b37acd91e2f26f894bb29bcf41fca..f588034fb55c86b61cc37ceba81fd85ff247bc8f 100644
--- a/src/MNH/prep_surfex.f90
+++ b/src/MNH/prep_surfex.f90
@@ -57,6 +57,7 @@ USE MODE_MODELN_HANDLER
 USE MODE_SPLITTINGZ_ll
 !
 USE MODI_OPEN_PRC_FILES
+USE MODI_PREP_SURF_MNH
 USE MODI_READ_ALL_NAMELISTS
 USE MODI_VERSION
 !
@@ -180,11 +181,10 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.)
 CALL GOTO_SURFEX(1)
 !
 CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1)
-!
-CALL IO_FILE_OPEN_ll(TINIFILE)
+!The open is done later in PREP_SURF_MNH when domain dimensions are known
 !
 TFILE_SURFEX => TINIFILE
-CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE)
+CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE,OINIFILEOPEN=.TRUE.)
 NULLIFY(TFILE_SURFEX)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90
index 27ae4046daca74c2f44f92d0312ccf36c3aba09f..86fbeaea8de6206fa63e51e97db82749aab8c31f 100644
--- a/src/MNH/write_hgrid.f90
+++ b/src/MNH/write_hgrid.f90
@@ -87,7 +87,7 @@ TYPE(TFILEDATA), INTENT(IN)  :: TPFILE    ! File to write
 !*       1.     TEST ON MODEL INDEX
 !	        -------------------
 ! KMI may be 0
-IF (KMI<0 .OR. KMI>JPMODELMAX) CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_HGRID_n','KMI<0 .OR. KMI>JPMODELMAX')
+IF (KMI<0 .OR. KMI>JPMODELMAX) CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_HGRID','KMI<0 .OR. KMI>JPMODELMAX')
 IF (KMI/=0) THEN
   CALL WRITE_HGRID_n(TPFILE)
   RETURN