diff --git a/src/arome/aux/mode_posnam_phy.F90 b/src/arome/aux/mode_posnam_phy.F90
index 54e63bdc4b2b84e503c720c0e50fa68dd31b8243..8fe3dae2a3e898c57a1995a7433ccb7ee8a65449 100644
--- a/src/arome/aux/mode_posnam_phy.F90
+++ b/src/arome/aux/mode_posnam_phy.F90
@@ -1,19 +1,20 @@
 MODULE MODE_POSNAM_PHY
 IMPLICIT NONE
 CONTAINS
-SUBROUTINE POSNAM_PHY(KUNITNML, CDNAML, LDNEEDNAM, LDFOUND, KLUOUT)
+SUBROUTINE POSNAM_PHY(TFILENAM, CDNAML, LDNEEDNAM, LDFOUND)
 !Wrapper to call the AROME version of posnam
 
+USE MODD_IO, ONLY: TFILEDATA
+
 IMPLICIT NONE
 
-INTEGER,          INTENT(IN)    :: KUNITNML  !< Logical unit to access the namelist
+TYPE(TFILEDATA),  INTENT(IN)    :: TFILENAM  !< Namelist file
 CHARACTER(LEN=*), INTENT(IN)    :: CDNAML    !< Namelist name
 LOGICAL,          INTENT(IN)    :: LDNEEDNAM !< True to abort if namelist is absent
 LOGICAL,          INTENT(OUT)   :: LDFOUND   !< True if namelist has been found
-INTEGER,          INTENT(IN)    :: KLUOUT    !< Logical unit for output
 
 #include "posnam.intfb.h"
-CALL POSNAM(KUNITNML, CDNAML)
+CALL POSNAM(TFILENAM%NLU, CDNAML)
 LDFOUND=.TRUE. !Posnam aborts if not found
 
 END SUBROUTINE POSNAM_PHY
diff --git a/src/arome/ext/suphmpa.F90 b/src/arome/ext/suphmpa.F90
index 35ceb6164e74523771d371c78cd12f7b161a24ab..faa7f789ee30b123bd4f47f561019da94a75be9f 100644
--- a/src/arome/ext/suphmpa.F90
+++ b/src/arome/ext/suphmpa.F90
@@ -61,7 +61,7 @@ USE YOMCT0 ,ONLY : LELAM
 
 USE MODD_BUDGET, ONLY : TBUCONF_ASSOCIATE, TBUCONF
 USE MODI_INI_PHYEX, ONLY: INI_PHYEX
-
+USE MODD_IO, ONLY : TFILEDATA
 !     ------------------------------------------------------------------
 
 IMPLICIT NONE
@@ -72,7 +72,7 @@ TYPE(MODEL_GENERAL_CONF_TYPE),INTENT(INOUT):: YDML_GCONF
 TYPE(TDYNA), INTENT(IN)          :: YDDYNA
 TYPE(MODEL_PHYSICS_MF_TYPE),INTENT(INOUT):: YDML_PHY_MF
 INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT
-
+TYPE(TFILEDATA) :: TPFILE
 !     ------------------------------------------------------------------
 
 
@@ -115,7 +115,8 @@ IF(LMFSHAL.OR.LEDKF) THEN
 ELSE
   CSCONV='NONE'
 ENDIF
-CALL INI_PHYEX(PHYEX%MISC%CPROGRAM, NULNAM, .TRUE., KULOUT, 0, 1, &
+TPFILE%NLU = NULNAM
+CALL INI_PHYEX(PHYEX%MISC%CPROGRAM, TPFILE, .TRUE., KULOUT, 0, 1, &
                ZTSTEP, ZDZMIN, &
                CMICRO, CSCONV, CTURB, &
                KPRINT=2, &
diff --git a/src/common/aux/ini_phyex.F90 b/src/common/aux/ini_phyex.F90
index 95c371288483251224cb7bc880762ee57bac965f..67f3626d061a61be34ef35514c7d107aa4ba61d5 100644
--- a/src/common/aux/ini_phyex.F90
+++ b/src/common/aux/ini_phyex.F90
@@ -1,4 +1,4 @@
-SUBROUTINE INI_PHYEX(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, KFROM, KTO, &
+SUBROUTINE INI_PHYEX(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, KFROM, KTO, &
                     &PTSTEP, PDZMIN, &
                     &CMICRO, CSCONV, CTURB, &
                     &LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, &
@@ -48,6 +48,7 @@ USE MODD_PARAM_LIMA_WARM, ONLY: PARAM_LIMA_WARM
 USE MODD_PARAM_LIMA_COLD, ONLY: PARAM_LIMA_COLD
 USE MODD_PARAM_LIMA_MIXED, ONLY: PARAM_LIMA_MIXED
 USE MODD_NSV,            ONLY: TNSV, NSV_ASSOCIATE
+USE MODD_IO,             ONLY: TFILEDATA
 !
 USE MODE_INI_CST, ONLY: INI_CST
 USE MODE_INI_RAIN_ICE, ONLY: INI_RAIN_ICE
@@ -86,7 +87,7 @@ USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL
 IMPLICIT NONE
 
 CHARACTER(LEN=6),  INTENT(IN) :: HPROGRAM     !< Current program
-INTEGER,           INTENT(IN) :: KUNITNML     !< Logical unit to access the namelist
+TYPE(TFILEDATA),   INTENT(IN) :: TPFILE       !< Namelist file
 LOGICAL,           INTENT(IN) :: LDNEEDNAM    !< True to abort if namelist is absent
 INTEGER,           INTENT(IN) :: KLUOUT       !< Logical unit for outputs
 INTEGER,           INTENT(IN) :: KFROM        !< Old model number
@@ -163,10 +164,10 @@ IF(CMICRO=='ICE3' .OR. CMICRO=='ICE4' .OR. CMICRO=='LIMA') THEN
     ENDIF
   ENDIF
 
-  CALL PARAM_ICEN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
+  CALL PARAM_ICEN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
                       &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
   IF(CMICRO=='LIMA') THEN
-    CALL PARAM_LIMA_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
+    CALL PARAM_LIMA_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
                         &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
   ENDIF
 
@@ -217,7 +218,7 @@ IF(CSCONV=='EDKF') THEN
   IF(LLCHANGEMODEL) CALL PARAM_MFSHALL_GOTO_MODEL(KFROM, KTO)
   IF(PRESENT(PHYEX_IN)) PARAM_MFSHALLN=PHYEX_IN%PARAM_MFSHALLN
 
-  CALL PARAM_MFSHALLN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
+  CALL PARAM_MFSHALLN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
                           &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
   IF(LLINIT) THEN
     CALL INI_MFSHALL()
@@ -233,7 +234,7 @@ IF(.TRUE.) THEN !Placeholder for configuration without cloud scheme or a differe
   IF(LLCHANGEMODEL) CALL NEB_GOTO_MODEL(KFROM, KTO)
   IF(PRESENT(PHYEX_IN)) NEBN=PHYEX_IN%NEBN
 
-  CALL NEBN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
+  CALL NEBN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
                 &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
   IF(LLINIT) THEN
     !Nothing to do, everything is read from namelist
@@ -255,7 +256,7 @@ IF(CTURB=='TKEL') THEN
     CSTURB=PHYEX_IN%CSTURB
   ENDIF
 
-  CALL TURBN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, &
+  CALL TURBN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
                  &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
   IF(LLINIT) THEN
     CALL INI_TURB(HPROGRAM)
diff --git a/src/common/aux/modd_io.F90 b/src/common/aux/modd_io.F90
index 56ae6db2b0feebb2decd74b3d29fafaa44a9d1e0..e66f61a044db4a5772afbd09b68ada9a24079613 100644
--- a/src/common/aux/modd_io.F90
+++ b/src/common/aux/modd_io.F90
@@ -30,5 +30,6 @@ TYPE TFILEDATA
   INTEGER              :: NMODEL = 0              !Model number corresponding to the file (field not always set)
   INTEGER,DIMENSION(3) :: NMNHVERSION = (/0,0,0/) !MesoNH version used to create the file
   !
+  INTEGER :: NLU = -1 ! logical unit number
 END TYPE TFILEDATA
 ENDMODULE MODD_IO
diff --git a/src/common/aux/mode_posnam_phy.F90 b/src/common/aux/mode_posnam_phy.F90
index 06a6d49bc62b4bba3487b87af125848b8d868b6e..1b7abf128aff3e0e0be1c41611a196a584b8a51c 100644
--- a/src/common/aux/mode_posnam_phy.F90
+++ b/src/common/aux/mode_posnam_phy.F90
@@ -3,33 +3,33 @@ IMPLICIT NONE
 PRIVATE
 PUBLIC :: POSNAM_PHY
 CONTAINS
-SUBROUTINE POSNAM_PHY(KULNAM, CDNAML, LDNEEDNAM, LDFOUND, KLUOUT)
+SUBROUTINE POSNAM_PHY(TFILENAM, CDNAML, LDNEEDNAM, LDFOUND)
 
 !To position namelist file at correct place for reading namelists
 !Code adapted from different sources (ECMWF, ARPIFS, MESO-NH)
 
 USE MODE_MSG, ONLY: NVERB_FATAL, NVERB_WARNING, PRINT_MSG
+USE MODD_IO, ONLY: TFILEDATA
 
 IMPLICIT NONE
 
-INTEGER,          INTENT(IN)    :: KULNAM    !< Logical unit to access the namelist
+TYPE(TFILEDATA),  INTENT(IN)    :: TFILENAM  !< Namelist file
 CHARACTER(LEN=*), INTENT(IN)    :: CDNAML    !< Namelist name
 LOGICAL,          INTENT(IN)    :: LDNEEDNAM !< True to abort if namelist is absent
 LOGICAL,          INTENT(OUT)   :: LDFOUND   !< True if namelist has been found
-INTEGER,          INTENT(IN)    :: KLUOUT    !< Logical unit for output
 
 INTEGER :: IVERB, ILEN, ISTATUS, ISCAN, IND
 CHARACTER(LEN=120) :: CLINE
 CHARACTER(LEN=1)   ::  CLTEST
 
-REWIND(KULNAM)
+REWIND(TFILENAM%NLU)
 ILEN=LEN(CDNAML)
 LDFOUND=.TRUE.
 ISTATUS=0
 ISCAN=0
 CLINE=' '
 DO WHILE(ISTATUS==0 .AND. ISCAN==0)
-  READ(KULNAM,'(A)',IOSTAT=ISTATUS) CLINE
+  READ(TFILENAM%NLU,'(A)',IOSTAT=ISTATUS) CLINE
   IF(ISTATUS<=-1) THEN
     !End of file
     LDFOUND=.FALSE.
@@ -54,7 +54,7 @@ DO WHILE(ISTATUS==0 .AND. ISCAN==0)
     ENDIF
   ENDIF
 ENDDO
-BACKSPACE(KULNAM)
+BACKSPACE(TFILENAM%NLU)
 
 END SUBROUTINE POSNAM_PHY
 
diff --git a/src/common/aux/modi_ini_phyex.F90 b/src/common/aux/modi_ini_phyex.F90
index 70e2c41ff8bb9941c8439ec64b1d7768d7ad7e4c..99055d15ef654d9e799488b0bdb154732149c461 100644
--- a/src/common/aux/modi_ini_phyex.F90
+++ b/src/common/aux/modi_ini_phyex.F90
@@ -1,7 +1,7 @@
 MODULE MODI_INI_PHYEX
 IMPLICIT NONE
 INTERFACE
-SUBROUTINE INI_PHYEX(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, KFROM, KTO, &
+SUBROUTINE INI_PHYEX(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, KFROM, KTO, &
                     &PTSTEP, PDZMIN, &
                     &CMICRO, CSCONV, CTURB, &
                     &LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, &
@@ -17,11 +17,12 @@ USE MODD_PARAM_MFSHALL_N,ONLY: PARAM_MFSHALL_t
 USE MODD_TURB_N,         ONLY: TURB_t
 USE MODD_CTURB,          ONLY: CSTURB_t
 USE MODD_NEB_N,          ONLY: NEB_t
+USE MODD_IO,             ONLY: TFILEDATA
 !
 IMPLICIT NONE
 
 CHARACTER(LEN=6),  INTENT(IN) :: HPROGRAM     !< Current program
-INTEGER,           INTENT(IN) :: KUNITNML     !< Logical unit to access the namelist
+TYPE(TFILEDATA),   INTENT(IN) :: TPFILE       !< Logical unit to access the namelist
 LOGICAL,           INTENT(IN) :: LDNEEDNAM    !< True to abort if namelist is absent
 INTEGER,           INTENT(IN) :: KLUOUT       !< Logical unit for outputs
 INTEGER,           INTENT(IN) :: KFROM        !< Old model number
diff --git a/src/lmdz/ext/mode_init_phyex.F90 b/src/lmdz/ext/mode_init_phyex.F90
index 8fb3e00d8d65f52908c3fd38f3d935bf022c5d4f..d195da1c8125465c55cdce69724a87f63461af9d 100644
--- a/src/lmdz/ext/mode_init_phyex.F90
+++ b/src/lmdz/ext/mode_init_phyex.F90
@@ -41,6 +41,7 @@ SUBROUTINE INIT_PHYEX(PTSTEP, PDZMIN, PHYEX)
 !
 USE MODD_PHYEX,      ONLY: PHYEX_t
 USE MODI_INI_PHYEX,  ONLY: INI_PHYEX
+USE MODD_IO,         ONLY: TFILEDATA
 USE print_control_mod, ONLY : lunout
 !
 IMPLICIT NONE
@@ -55,7 +56,8 @@ CHARACTER(LEN=4) :: CSCONV
 CHARACTER(LEN=4) :: CTURB
 INTEGER :: K
 LOGICAL :: LREADNAM, LOPENED
-INTEGER :: IUNITNML, ILUN
+INTEGER :: ILUN
+TYPE(TFILEDATA) :: TPFILE
 !
 !General configuration, cannot be modified by namelist
 CPROGRAM='LMDZ'
@@ -67,17 +69,17 @@ CTURB='TKEL'
 !If the namelist file exists, we use it
 INQUIRE(FILE='phyex.nam', EXIST=LREADNAM)
 IF(LREADNAM) THEN
-  IUNITNML=-1
+  TPFILE%NLU=-1
   DO ILUN=1,100
     INQUIRE(UNIT=ILUN, OPENED=LOPENED)
     IF (.NOT. LOPENED) THEN
-      IUNITNML=ILUN
+      TPFILE%NLU=ILUN
       EXIT
     END IF
   END DO
-  OPEN(ACTION='read', FILE='phyex.nam', UNIT=IUNITNML)
+  OPEN(ACTION='read', FILE='phyex.nam', UNIT=TPFILE%NLU)
 ENDIF
-CALL INI_PHYEX(HPROGRAM=CPROGRAM, KUNITNML=IUNITNML, LDNEEDNAM=.FALSE., &
+CALL INI_PHYEX(HPROGRAM=CPROGRAM, TPFILE=TPFILE, LDNEEDNAM=.FALSE., &
               &KLUOUT=lunout, KFROM=0, KTO=1, &
               &PTSTEP=PTSTEP, PDZMIN=PDZMIN, &
               &CMICRO=CMICRO, CSCONV=CSCONV, CTURB=CTURB, &
diff --git a/src/testprogs/ice_adjust/main_ice_adjust.F90 b/src/testprogs/ice_adjust/main_ice_adjust.F90
index a9a655ef39d6bd896e3d9d0bac35a3ca2987499c..a4a344f7cc9a3c57c05c7975eb47b308e82d0ec3 100644
--- a/src/testprogs/ice_adjust/main_ice_adjust.F90
+++ b/src/testprogs/ice_adjust/main_ice_adjust.F90
@@ -5,6 +5,7 @@ USE GETDATA_ICE_ADJUST_MOD
 USE COMPUTE_DIFF
 USE MODI_ICE_ADJUST
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
+USE MODD_IO,         ONLY: TFILEDATA
 USE MODD_PHYEX,      ONLY: PHYEX_t
 USE STACK_MOD
 USE OMP_LIB
@@ -58,6 +59,7 @@ INTEGER :: IBL, JLON, JLEV
 
 TYPE(DIMPHYEX_t)         :: D, D0
 TYPE(PHYEX_t)            :: PHYEX
+TYPE(TFILEDATA)          :: TPFILE
 LOGICAL                  :: LLCHECK
 LOGICAL                  :: LLCHECKDIFF
 LOGICAL                  :: LLDIFF
@@ -316,9 +318,10 @@ CMICRO='ICE3'
 CSCONV='NONE'
 CTURB='TKEL'
 PTSTEP = 50.000000000000000
+TPFILE%NLU=0
 
 !Default values
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
@@ -363,7 +366,7 @@ PHYEX%NEBN%CFRAC_ICE_ADJUST='S' ! Ice/liquid partition rule to use in adjustment
 PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S' ! Ice/liquid partition rule to use in shallow_mf
 
 !Param initialisation
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90
index d2f53a2727643d60f91a8455ff395449fcdf28be..dae54124674a212dbb5a21a45235b27eb5b39c07 100644
--- a/src/testprogs/rain_ice/main_rain_ice.F90
+++ b/src/testprogs/rain_ice/main_rain_ice.F90
@@ -5,6 +5,7 @@ USE GETDATA_RAIN_ICE_MOD
 USE COMPUTE_DIFF
 USE MODI_RAIN_ICE
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
+USE MODD_IO,         ONLY: TFILEDATA
 USE MODD_PHYEX,      ONLY: PHYEX_t
 USE STACK_MOD
 USE OMP_LIB
@@ -51,6 +52,7 @@ INTEGER :: IBL, JLON, JLEV
 
 TYPE(DIMPHYEX_t)         :: D, D0
 TYPE(PHYEX_t)            :: PHYEX
+TYPE(TFILEDATA)          :: TPFILE
 LOGICAL                  :: LLCHECK
 LOGICAL                  :: LLCHECKDIFF
 LOGICAL                  :: LLDIFF
@@ -318,9 +320,10 @@ CMICRO='ICE3'
 CSCONV='NONE'
 CTURB='TKEL'
 PTSTEP = 25.0000000000000
+TPFILE%NLU=0
 
 !Default values
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
@@ -358,7 +361,7 @@ PHYEX%PARAM_ICEN%CSUBG_RR_EVAP='NONE'
 PHYEX%PARAM_ICEN%CSUBG_PR_PDF='SIGM'
 
 !Param initialisation
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
diff --git a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
index 8de4c7cea04b98dc28ec7588e6e54420cd85d49c..75f66dc66d142052e0c64fe8ea18b7890dd0f8a4 100644
--- a/src/testprogs/rain_ice_old/main_rain_ice_old.F90
+++ b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
@@ -363,7 +363,7 @@ subroutine init_rain_ice_old(kulout)
   use modd_rain_ice_descr_n, only: rain_ice_descr_goto_model
   use modd_cloudpar_n,       only: cloudpar_goto_model
   use modd_param_ice_n
-
+  use modd_io,               only: tfiledata
   use mode_ini_rain_ice
 
   use mode_ini_cst
@@ -379,6 +379,7 @@ subroutine init_rain_ice_old(kulout)
 
   character(len=4) :: c_micro
   integer :: isplitr
+  type(tfiledata) :: tpfile
 
   call ini_cst
 
@@ -388,8 +389,8 @@ subroutine init_rain_ice_old(kulout)
   call param_ice_goto_model(1, 1)
   call rain_ice_descr_goto_model(1, 1)
   call rain_ice_param_goto_model(1, 1)
-
-  call param_icen_init('AROME ', 0, .false., kulout, &                                                                 
+  tpfile%nlu = 0
+  call param_icen_init('AROME ', tpfile, .false., kulout, &                                                                 
                       &.true., .false., .false., 0)
 
   call tbuconf_associate
diff --git a/src/testprogs/shallow/main_shallow.F90 b/src/testprogs/shallow/main_shallow.F90
index f9b313141e5f47b349d83808a73331e627d373fd..531cef4540adff9b4e15c950bfae9bf9869e61aa 100644
--- a/src/testprogs/shallow/main_shallow.F90
+++ b/src/testprogs/shallow/main_shallow.F90
@@ -5,6 +5,7 @@ USE GETDATA_SHALLOW_MOD
 USE COMPUTE_DIFF
 USE MODI_SHALLOW_MF
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
+USE MODD_IO,         ONLY: TFILEDATA
 USE MODD_PHYEX,      ONLY: PHYEX_t
 USE STACK_MOD
 USE OMP_LIB
@@ -104,6 +105,7 @@ INTEGER :: IBL, JLON, JLEV
 
 TYPE(DIMPHYEX_t)         :: D, D0
 TYPE(PHYEX_t)            :: PHYEX
+TYPE(TFILEDATA)          :: TPFILE
 LOGICAL                  :: LLCHECK
 LOGICAL                  :: LLCHECKDIFF
 LOGICAL                  :: LLDIFF
@@ -407,9 +409,10 @@ CMICRO='NONE'
 CSCONV='EDKF'
 CTURB='TKEL'
 PTSTEP = 25.0000000000000
+TPFILE%NLU=0
 
 !Default values
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
@@ -430,7 +433,7 @@ PHYEX%NEBN%LSUBG_COND=.TRUE.
 PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S'
 
 !Param initialisation
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
diff --git a/src/testprogs/turb_mnh/main_turb.F90 b/src/testprogs/turb_mnh/main_turb.F90
index 4dfdf8725cd9a370fbd1f7dd2c3c7cacfccbfcbc..2476bb8b2e15125ce3cc46d678ad6d4864ea5c5b 100644
--- a/src/testprogs/turb_mnh/main_turb.F90
+++ b/src/testprogs/turb_mnh/main_turb.F90
@@ -5,6 +5,7 @@ USE GETDATA_TURB_MOD
 USE COMPUTE_DIFF
 USE MODI_TURB
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
+USE MODD_IO,         ONLY: TFILEDATA
 USE MODD_PHYEX,      ONLY: PHYEX_t
 USE STACK_MOD
 USE OMP_LIB
@@ -113,6 +114,7 @@ INTEGER :: NPROMA, NGPBLKS, NFLEVG
 INTEGER :: IBL, JLON, JLEV
 
 TYPE(DIMPHYEX_t)         :: D, D0
+TYPE(TFILEDATA)          :: TPFILE
 TYPE(PHYEX_t)            :: PHYEX
 LOGICAL                  :: LLCHECK
 LOGICAL                  :: LLCHECKDIFF
@@ -425,9 +427,10 @@ CMICRO='ICE3'
 CSCONV='NONE'
 CTURB='TKEL'
 PTSTEP = 25.0000000000000
+TPFILE%NLU=0
 
 !Default values
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
@@ -471,7 +474,7 @@ PHYEX%TURBN%XLINI=0.1 !This line should not exist to reproduce operational setup
                       !was done (erroneously) with XLINI=0.1
 
 !Param initialisation
-CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, &
+CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
               &PTSTEP, ZDZMIN, &
               &CMICRO, CSCONV, CTURB, &
               &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &