diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 73260de518a3e05bf2139b3bdb39e3893d5a60b3..82dedf9c53d1ca47104668b5f4ba38bcfca31b80 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -13,8 +13,8 @@ INTERFACE
 !
 USE MODD_IO, ONLY: TFILEDATA
 !
-INTEGER,          INTENT(IN)   :: KMI       ! Model Index
-TYPE(TFILEDATA),  INTENT(IN)   :: TPINIFILE ! Initial file
+INTEGER,                  INTENT(IN)   :: KMI       ! Model Index
+TYPE(TFILEDATA), POINTER, INTENT(IN)   :: TPINIFILE ! Initial file
 !
 END SUBROUTINE INI_MODEL_n
 !
@@ -494,8 +494,8 @@ IMPLICIT NONE
 !*       0.1   declarations of arguments
 !
 !
-INTEGER,          INTENT(IN)   :: KMI       ! Model Index
-TYPE(TFILEDATA),  INTENT(IN)   :: TPINIFILE ! Initial file
+INTEGER,                  INTENT(IN)   :: KMI       ! Model Index
+TYPE(TFILEDATA), POINTER, INTENT(IN)   :: TPINIFILE ! Initial file
 !
 !*       0.2   declarations of local variables
 !
@@ -2649,7 +2649,7 @@ IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG  ')) THEN
     ENDIF
   ELSE
   ! case after a spawning
-    CINIFILEPGD = TPINIFILE%CNAME
+    TINIFILEPGD => TPINIFILE
   END IF
   !
   CALL GOTO_SURFEX(KMI)
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 4286492f088d90c64495e3d1b2c6705fd926201e..51df4aaedae1d60de3d23dd7fde2838a80c98949 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -2356,7 +2356,7 @@ IF (OEXIT) THEN
   END IF
   !
   CALL IO_File_close(TINIFILE)
-  IF (CSURF=="EXTE") CALL IO_File_close(TINIFILEPGD)
+  IF ( CSURF == "EXTE" .AND. .NOT.ASSOCIATED( TINIFILE, TINIFILEPGD ) ) CALL IO_File_close( TINIFILEPGD )
 !
 !*       28.1   print statistics!
 !