diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90
index 404c55ac3fc0a01bca8c62aed96a8cfef80fc330..7693be14b2b1c3a0945966babaf2c491dc7ec287 100644
--- a/src/MNH/adv_forcingn.f90
+++ b/src/MNH/adv_forcingn.f90
@@ -71,7 +71,7 @@ END MODULE MODI_ADV_FORCING_n
 !!        TDTADVFRC: date of each advecting-forcing profile
 !!        XUFRC,XVFRC,XWFRC,XTHFRC,XRVFRC: advecting-forcing variables
 !!      Module MODD_LUNIT :  contains logical unit names for all models
-!!        CLUOUT0 : name of output-listing
+!!        TLUOUT0 : output-listing
 !!      Module MODD_PARAMETERS: declaration of parameter variables
 !!        JPVEXT: define the number of marginal points out of the 
 !!        physical domain along the vertical direction.    
@@ -101,7 +101,7 @@ USE MODE_FM
 USE MODE_IO_ll
 !
 USE MODD_DYN
-USE MODD_LUNIT
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
 USE MODD_TIME
 USE MODD_BUDGET
@@ -149,12 +149,11 @@ LOGICAL,DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2),SIZE(PTHM,3)) :: GRELAX_MASK_FRC ! M
 !*        1.   PREPARATION OF FORCING
 !              ----------------------
 !
-
+ILUOUT0 = TLUOUT0%NLU
+!
 IF (GSFIRSTCALL) THEN
 !
   GSFIRSTCALL = .FALSE.
-!
-  CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !!*        1.1  printout number of forcing profiles
 !
   WRITE(UNIT=ILUOUT0,FMT='(" THERE ARE ",I2," ADV FORCING FIELDs  AT:")') NADVFRC
@@ -201,7 +200,6 @@ ELSE
   IF( .NOT. TEMPORAL_LT ( TPDTCUR, TDTADVFRC(JXP) ) ) THEN
     JSX_ADV = JSX_ADV +1
     JXP= JSX_ADV +1
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
     WRITE(UNIT=ILUOUT0,FMT='(" THE ADV FORCING FIELDS ARE INTERPOLATED NOW" ,&
     & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_ADV,JXP
     CALL TEMPORAL_DIST ( TDTADVFRC(JXP)%TDATE%YEAR,TDTADVFRC(JXP)%TDATE%MONTH,   &
diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 6d1e3cebb7f5849b47060acc176263694a7e23bb..c04932c4c300d3ea82573ef0b1ae5cd97223e158 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -8,7 +8,7 @@
 !     ###########################
 !
 INTERFACE
-      SUBROUTINE ADVECTION_METSV (HLUOUT, TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME,  &
+      SUBROUTINE ADVECTION_METSV (TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME,          &
                             HMET_ADV_SCHEME,HSV_ADV_SCHEME, HCLOUD, KSPLIT,    &
                             OSPLIT_CFL, PSPLIT_CFL, OCFL_WRIT,                 &
                             HLBCX, HLBCY, KRR, KSV, TPDTCUR, PTSTEP,           &
@@ -23,8 +23,6 @@ USE MODD_TYPE_DATE, ONLY: DATE_TIME
 LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
 CHARACTER(LEN=6),       INTENT(IN)   :: HMET_ADV_SCHEME, & ! Control of the 
                                         HSV_ADV_SCHEME, &  ! scheme applied 
                                         HUVW_ADV_SCHEME
@@ -66,7 +64,7 @@ END INTERFACE
 !
 END MODULE MODI_ADVECTION_METSV
 !     ##########################################################################
-      SUBROUTINE ADVECTION_METSV (HLUOUT, TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME,  &
+      SUBROUTINE ADVECTION_METSV (TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME,          &
                             HMET_ADV_SCHEME,HSV_ADV_SCHEME, HCLOUD, KSPLIT,    &
                             OSPLIT_CFL, PSPLIT_CFL, OCFL_WRIT,                 &
                             HLBCX, HLBCY, KRR, KSV, TPDTCUR, PTSTEP,           &
@@ -140,28 +138,28 @@ END MODULE MODI_ADVECTION_METSV
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAM_n
-USE MODD_CONF,  ONLY : LNEUTRAL,NHALO,L1D, L2D
-USE MODD_CTURB, ONLY : XTKEMIN
-USE MODD_CST 
 USE MODD_BUDGET
+USE MODD_CST 
+USE MODD_CTURB,     ONLY: XTKEMIN
+USE MODD_CONF,      ONLY: LNEUTRAL,NHALO,L1D, L2D
 USE MODD_IO_ll,     ONLY: TFILEDATA
+USE MODD_LUNIT_n,   ONLY: TLUOUT
+USE MODD_PARAM_n
 USE MODD_TYPE_DATE, ONLY: DATE_TIME
 !
-USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL
-USE MODE_FM
+USE MODE_FIELD,     ONLY: TFIELDDATA, TYPEREAL
 USE MODE_FMWRIT
 USE MODE_IO_ll
 USE MODE_ll
 USE MODE_MSG
 !
+USE MODI_ADV_BOUNDARIES
+USE MODI_BUDGET
 USE MODI_CONTRAV
+USE MODI_GET_HALO
 USE MODI_PPM_RHODJ
 USE MODI_PPM_MET
 USE MODI_PPM_SCALAR
-USE MODI_ADV_BOUNDARIES
-USE MODI_BUDGET
-USE MODI_GET_HALO
 !
 !-------------------------------------------------------------------------------
 !
@@ -172,8 +170,6 @@ IMPLICIT NONE
 LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for synchronous
                                                       ! file opening
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
 CHARACTER(LEN=6),       INTENT(IN)   :: HMET_ADV_SCHEME, & ! Control of the 
                                         HSV_ADV_SCHEME, &  ! scheme applied 
                                         HUVW_ADV_SCHEME
@@ -268,6 +264,8 @@ TYPE(TFIELDDATA) :: TZFIELD
 !*       0.     INITIALIZATION                        
 !	        --------------
 !
+ILUOUT = TLUOUT%NLU
+!
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 !
 GTKE=(SIZE(PTKET)/=0)
@@ -355,8 +353,6 @@ END IF
 !
 !* prints in the output file the maximum CFL
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
 ZCFLU_MAX = MAX_ll(ZCFLU,IINFO_ll)
 ZCFLV_MAX = MAX_ll(ZCFLV,IINFO_ll)
 ZCFLW_MAX = MAX_ll(ZCFLW,IINFO_ll)
diff --git a/src/MNH/aircraft_balloon.f90 b/src/MNH/aircraft_balloon.f90
index 56763877d0106cad356b3a7331a128cec080bc11..162d447adb2bf90bb9cac71b35d8ff35a998a143 100644
--- a/src/MNH/aircraft_balloon.f90
+++ b/src/MNH/aircraft_balloon.f90
@@ -14,7 +14,7 @@ MODULE MODI_AIRCRAFT_BALLOON
 !
 INTERFACE
 !
-      SUBROUTINE AIRCRAFT_BALLOON(HLUOUT, PTSTEP,                       &
+      SUBROUTINE AIRCRAFT_BALLOON(PTSTEP,                               &
                                   TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                                   PXHAT, PYHAT, PZ,                     &
                                   PMAP, PLONOR, PLATOR,                 &
@@ -22,7 +22,6 @@ INTERFACE
                                   PTS, PRHODREF, PCIT, PSEA)
 !
 USE MODD_TYPE_DATE
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -58,7 +57,7 @@ END INTERFACE
 END MODULE MODI_AIRCRAFT_BALLOON
 !
 !     ###################################################################
-      SUBROUTINE AIRCRAFT_BALLOON(HLUOUT, PTSTEP,                       &
+      SUBROUTINE AIRCRAFT_BALLOON(PTSTEP,                               &
                                   TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                                   PXHAT, PYHAT, PZ,                     &
                                   PMAP, PLONOR, PLATOR,                 &
@@ -115,7 +114,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -154,236 +152,236 @@ IF(.NOT. ALLOCATED(XSVW_FLUX)) &
 ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4)))
 !
 IF (TBALLOON1%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON1, PSEA                                            )
 ENDIF
 IF (TBALLOON2%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON2, PSEA                                            )
 ENDIF
 IF (TBALLOON3%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON3, PSEA                                            )
 ENDIF
 IF (TBALLOON4%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON4, PSEA                                            )
 ENDIF
 IF (TBALLOON5%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON5, PSEA                                            )
 ENDIF
 IF (TBALLOON6%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON6, PSEA                                            )
 ENDIF
 IF (TBALLOON7%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON7, PSEA                                            )
 ENDIF
 IF (TBALLOON8%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON8, PSEA                                            )
 ENDIF
 IF (TBALLOON9%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TBALLOON9, PSEA                                            )
 ENDIF
 !
 IF (TAIRCRAFT1%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT1, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT2%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT2, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT3%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT3, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT4%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT4, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT5%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT5, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT6%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT6, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT7%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT7, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT8%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT8, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT9%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT9, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT10%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT10, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT11%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT11, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT12%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT12, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT13%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT13, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT14%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT14, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT15%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT15, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT16%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT16, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT17%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT17, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT18%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT18, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT19%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT19, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT20%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT20, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT21%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT21, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT22%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT22, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT23%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT23, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT24%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT24, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT25%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT25, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT26%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT26, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT27%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT27, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT28%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT28, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT29%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT29, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT30%NMODEL /= 0) THEN
-CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
+CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,                &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
                            TAIRCRAFT30, PSEA                                          )
diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90
index d2b5c32b9789a39fdfa8563c5939b3043477b696..3589097600637337b40af1dda9bee4268b0958c5 100644
--- a/src/MNH/aircraft_balloon_evol.f90
+++ b/src/MNH/aircraft_balloon_evol.f90
@@ -14,7 +14,7 @@ MODULE MODI_AIRCRAFT_BALLOON_EVOL
 !
 INTERFACE
 !
-      SUBROUTINE AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP,       &
+      SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP,               &
                        TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                        PXHAT, PYHAT, PZ,                     &
                        PMAP, PLONOR, PLATOR,                 &
@@ -24,7 +24,6 @@ INTERFACE
 USE MODD_TYPE_DATE
 USE MODD_AIRCRAFT_BALLOON
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -60,7 +59,7 @@ END INTERFACE
 END MODULE MODI_AIRCRAFT_BALLOON_EVOL
 !
 !     ########################################################
-      SUBROUTINE AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP,       &
+      SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP,               &
                        TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                        PXHAT, PYHAT, PZ,                     &
                        PMAP, PLONOR, PLATOR,                 &
@@ -138,58 +137,53 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_TYPE_DATE
-!
-USE MODD_PARAMETERS
-USE MODD_CST
 USE MODD_AIRCRAFT_BALLOON
-USE MODD_GRID
-USE MODD_TIME
 USE MODD_CONF
+USE MODD_CST
 USE MODD_DIAG_IN_RUN
+USE MODD_GRID
+USE MODD_LUNIT_n,          ONLY: TLUOUT
+USE MODD_NESTING
+USE MODD_NSV,              ONLY : NSV_LIMA_NI,NSV_LIMA_NR,NSV_LIMA_NC
+USE MODD_PARAMETERS
+USE MODD_PARAM_LIMA,       ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
+                                 XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
+                                 XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC
+USE MODD_PARAM_LIMA_COLD,  ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
+                                 XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,&
+                                 XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS
+USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,&
+                                 XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG
+USE MODD_PARAM_LIMA_WARM,  ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,&
+                                 XBC_L=>XBC,XAC_L=>XAC
+USE MODD_PARAM_n,          ONLY: CCLOUD
+USE MODD_RAIN_ICE_DESCR,   ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,&
+                                 XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,&
+                                 XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,&
+                                 XLBC_I=>XLBC,XBC_I=>XBC,XAC_I=>XAC,&
+                                 XALPHAC2_I=>XALPHAC2,XNUC2_I=>XNUC2,&
+                                 XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XLBEXS_I=>XLBEXS,&
+                                 XLBS_I=>XLBS,XCCS_I=>XCCS,XAS_I=>XAS,XBS_I=>XBS,XCXS_I=>XCXS,&
+                                 XALPHAG_I=>XALPHAG,XNUG_I=>XNUG,XDG_I=>XDG,XLBEXG_I=>XLBEXG,&
+                                 XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,&
+                                 XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,&
+                                 XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,&
+                                 XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA
+USE MODD_REF_n,            ONLY: XRHODREF
+USE MODD_TIME
 USE MODD_TURB_FLUX_AIRCRAFT_BALLOON
-USE MODD_PARAM_n, ONLY : CCLOUD
-!
-USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,&
-                               XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,&
-                               XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,&
-                               XLBC_I=>XLBC,XBC_I=>XBC,XAC_I=>XAC,&
-                               XALPHAC2_I=>XALPHAC2,XNUC2_I=>XNUC2,&
-                               XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XLBEXS_I=>XLBEXS,&
-                               XLBS_I=>XLBS,XCCS_I=>XCCS,XAS_I=>XAS,XBS_I=>XBS,XCXS_I=>XCXS,&
-                               XALPHAG_I=>XALPHAG,XNUG_I=>XNUG,XDG_I=>XDG,XLBEXG_I=>XLBEXG,&
-                               XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,&
-                               XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,&
-                               XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,&
-                               XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA
-USE MODE_FSCATTER,ONLY : QEPSW,QEPSI,BHMIE,MOMG,MG
-USE MODE_FGAU,    ONLY : GAULAG
-USE MODD_REF_n,   ONLY : XRHODREF
-USE MODI_GAMMA,   ONLY : GAMMA
-USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,&
-                                XBC_L=>XBC,XAC_L=>XAC
-USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
-                                XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,&
-                                XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS
-
-USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,&
-                                XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG
-USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
-                           XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
-                           XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC
+USE MODD_TYPE_DATE
 !
-USE MODE_FM, ONLY : FMLOOK_ll
-USE MODE_IO_ll
+USE MODE_FGAU,             ONLY: GAULAG
+USE MODE_FSCATTER,         ONLY: QEPSW,QEPSI,BHMIE,MOMG,MG
 USE MODE_GRIDPROJ
+USE MODE_IO_ll
 USE MODE_ll
 USE MODE_MSG
 !
-USE MODI_WATER_SUM
+USE MODI_GAMMA,            ONLY: GAMMA
 USE MODI_TEMPORAL_DIST
-!
-USE MODD_NESTING
-!
-USE MODD_NSV, ONLY : NSV_LIMA_NI,NSV_LIMA_NR,NSV_LIMA_NC
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -197,7 +191,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -353,7 +346,7 @@ IF(.NOT. ALLOCATED(XRCW_FLUX)) &
 ALLOCATE(XRCW_FLUX(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3)))
 IF(.NOT. ALLOCATED(XSVW_FLUX)) &
 ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4)))
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 ZR = 0.
 !
diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90
index f986c94a339617d4fb5fa5b8c71ecc138aa918ac..634fb6a63e5678b9b2822f67cd977745da12c081 100644
--- a/src/MNH/anel_balancen.f90
+++ b/src/MNH/anel_balancen.f90
@@ -49,7 +49,6 @@ END MODULE MODI_ANEL_BALANCE_n
 !!
 !!    EXTERNAL
 !!    --------
-!!    FMLOOK   : to retrieve a logical unit number associated with a file
 !!    TRID     : to compute coefficients for the flat operator
 !!    PRESSURE : to solve the pressure equation and add the pressure term to
 !!               wind
@@ -117,7 +116,6 @@ END MODULE MODI_ANEL_BALANCE_n
 !
 USE MODE_ll
 USE MODE_IO_ll
-USE MODE_FM
 USE MODE_MODELN_HANDLER
 !
 USE MODD_CONF    ! declarative modules
@@ -130,7 +128,6 @@ USE MODD_REF_n
 USE MODD_FIELD_n
 USE MODD_DYN_n
 USE MODD_LBC_n
-USE MODD_LUNIT_n
 !
 USE MODI_TRIDZ    ! interface modules
 USE MODI_PRESSUREZ
@@ -149,8 +146,7 @@ REAL, OPTIONAL                 :: PRESIDUAL
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: ILUOUT,IRESP           ! Logical unit number for output listing and
-                                  ! return code
+INTEGER :: IRESP                  ! return code
 INTEGER :: IIY,IJY                ! same variable for Y decomposition
 INTEGER :: ITCOUNT                ! counter value of temporal loop set to 1 ( this
                                   ! means that no guess of the pressure is available for
@@ -198,8 +194,6 @@ TYPE(LIST_ll), POINTER :: TZFIELDS_ll=>NULL()   ! list of fields to exchange
 !*       1.     PROLOGUE  :
 !               --------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
-
 CALL GET_DIM_EXT_ll('Y',IIY,IJY)
 IF (L2D) THEN
   ALLOCATE(ZBFY(IIY,IJY,SIZE(XRHODJ,3)))
@@ -224,7 +218,7 @@ CALL MPPDB_CHECK3D(XUT,"anel_balancen1-::XUT",PRECISION)
 !               -------------------------------
 !
 !
-CALL TRIDZ(CLUOUT0,CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM,  &
+CALL TRIDZ(CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM,        &
           ZAF,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,XRHODJ,XTHVREF,XZZ,ZBFY,&
           ZBFB,ZBF_SXP2_YP1_Z) 
 CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen1-after TRIDZ::XRHODJ",PRECISION)
@@ -284,14 +278,13 @@ GCLOSE_OUT=.FALSE.
 YFMFILE='UNUSED'
 !
 IMI = GET_CURRENT_MODEL_INDEX()
-CALL PRESSUREZ(CLUOUT,                                               &
-              CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,ITCOUNT,XRELAX,IMI,  &
-              XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,ZDXHATM,ZDYHATM,ZRHOM, &
-              ZAF,ZBFY,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,            &
-              IRR,IRRL,IRRI,ZDRYMASST,ZREFMASS,ZMASS_O_PHI0,         &
-              ZTH,ZRR,XRHODREF,XTHVREF,XRVREF,XEXNREF, XLINMASS,     &
-              ZRU,ZRV,ZRW,ZPABST,                                    &
-              ZBFB,ZBF_SXP2_YP1_Z,PRESIDUAL                          )
+CALL PRESSUREZ(CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,ITCOUNT,XRELAX,IMI,  &
+               XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,ZDXHATM,ZDYHATM,ZRHOM, &
+               ZAF,ZBFY,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,            &
+               IRR,IRRL,IRRI,ZDRYMASST,ZREFMASS,ZMASS_O_PHI0,         &
+               ZTH,ZRR,XRHODREF,XTHVREF,XRVREF,XEXNREF, XLINMASS,     &
+               ZRU,ZRV,ZRW,ZPABST,                                    &
+               ZBFB,ZBF_SXP2_YP1_Z,PRESIDUAL                          )
 !
 CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen3.2-after pressurez halo::XRHODJ",PRECISION)
 CALL MPPDB_CHECK3D(ZRU,"anel_balancen3.2-after pressurez::ZRU",PRECISION)
diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90
index d9f0f1bfb62d082506e3d2268988e01c68552fa1..78cc43ffb75ad734f5431fbf5aaba4915de8cbd7 100644
--- a/src/MNH/c2r2_adjust.f90
+++ b/src/MNH/c2r2_adjust.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HLUOUT, HRAD,                   &
+      SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HRAD,                           &
                              HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,    &
                              PRHODJ, PSIGS, PPABST,                       &
                              PTHS, PRVS, PRCS, PCNUCS,                    &
@@ -24,8 +24,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA
 !
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                     ! turbulence scheme
 CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
@@ -58,7 +56,7 @@ END INTERFACE
 !
 END MODULE MODI_C2R2_ADJUST
 !     ##########################################################################
-      SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HLUOUT, HRAD,                   &
+      SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HRAD,                           &
                              HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,    &
                              PRHODJ, PSIGS, PPABST,                       &
                              PTHS, PRVS, PRCS, PCNUCS,                    &
@@ -155,18 +153,18 @@ END MODULE MODI_C2R2_ADJUST
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS
-USE MODD_CST
-USE MODD_CONF
 USE MODD_BUDGET
-USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODD_NSV, ONLY : NSV_C2R2BEG
+USE MODD_CONF
+USE MODD_CST
+USE MODD_IO_ll,   ONLY: TFILEDATA
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_NSV,     ONLY: NSV_C2R2BEG
+USE MODD_PARAMETERS
 !
 USE MODI_CONDENS
 USE MODI_BUDGET
 !
 USE MODE_FIELD
-USE MODE_FM
 USE MODE_FMWRIT
 USE MODE_MSG
 !
@@ -177,8 +175,6 @@ IMPLICIT NONE
 !
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                     ! turbulence scheme
 CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
@@ -228,7 +224,7 @@ TYPE(TFIELDDATA)    :: TZFIELD
 !*       1.     PRELIMINARIES
 !               -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 ZEPS= XMV / XMD
 !
 IF (OSUBG_COND) THEN
diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90
index d7e48fda2a125ee18e97feb77d764931af5357e8..9517f7cbaafad1097e2658a7a3b16f7b1e919b32 100644
--- a/src/MNH/change_gribex_var.f90
+++ b/src/MNH/change_gribex_var.f90
@@ -106,7 +106,6 @@ END MODULE MODI_CHANGE_GRIBEX_VAR
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    Module MODI_SHUMAN     : interface for Shuman operators
 !!
 !!    IMPLICIT ARGUMENTS
@@ -162,19 +161,18 @@ END MODULE MODI_CHANGE_GRIBEX_VAR
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-USE MODE_THERMO
-!
-USE MODI_SHUMAN
-USE MODI_WATER_SUM
-!
-USE MODD_CONF           ! declaration modules
+USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_LUNIT
 USE MODD_CST
-USE MODD_REF
 USE MODD_GRID_n
+USE MODD_LUNIT, ONLY: CLUOUT0, TLUOUT0
 USE MODD_PARAMETERS
+USE MODD_REF
+!
+USE MODE_THERMO
+!
+USE MODI_SHUMAN
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -203,7 +201,7 @@ REAL,DIMENSION(:,:,:), INTENT(OUT),OPTIONAL:: PW_LS      ! vertical wind compone
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER                                                  :: IRESP, ILUOUT0
+!
 INTEGER                                                  :: IIU,IJU,ILU
 INTEGER                                                  :: JL,JRR
 REAL,DIMENSION(:,:,:), ALLOCATABLE                       :: ZPFLUX_LS
@@ -292,7 +290,7 @@ DO JRR=2,SIZE(PR_LS,4)
   PR_LS(:,:,:,JRR) =  1. / (1./MAX(PQ_LS(:,:,:,JRR),1.E-12) - 1.)
 END DO
 !
-PR_LS(:,:,:,1)=SM_PMR_HU(CLUOUT0,PPMASS_LS(:,:,:),                    &
+PR_LS(:,:,:,1)=SM_PMR_HU(PPMASS_LS(:,:,:),                              &
                          PT_LS(:,:,:)*(1.+(XRV/XRD-1.)*PQ_LS(:,:,:,1)), &
                          PHU_LS(:,:,:),PR_LS(:,:,:,:),KITERMAX=100)
 !
@@ -434,7 +432,6 @@ IF (PRESENT(PW_LS)) THEN
 END IF
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine CHANGE_GRIBEX_VAR completed'
+WRITE(TLUOUT0%NLU,*) 'Routine CHANGE_GRIBEX_VAR completed'
 !
 END SUBROUTINE CHANGE_GRIBEX_VAR
diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90
index 6f0db02238df019eae11907fa6f224ab21e103ec..f44d4307f348fa81c732c69530512a5a75d135fa 100644
--- a/src/MNH/check_zhat.f90
+++ b/src/MNH/check_zhat.f90
@@ -42,7 +42,6 @@ END MODULE MODI_CHECK_ZHAT
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    function FMREAD
 !!
 !!    IMPLICIT ARGUMENTS
@@ -77,17 +76,15 @@ END MODULE MODI_CHECK_ZHAT
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODD_CONF           ! declaration modules
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT
-USE MODD_GRID_n
+USE MODD_CONF
 USE MODD_DIM_n
+USE MODD_GRID_n
+USE MODD_IO_ll,            ONLY: TFILEDATA
+USE MODD_LUNIT,            ONLY: TLUOUT0
 USE MODD_PARAMETERS
 !
 USE MODE_FMREAD
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 !
 IMPLICIT NONE
 !
@@ -115,7 +112,7 @@ TYPE(TFILEDATA),POINTER :: TZFMFILE
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90
index eb9f489ff4f28b060645c6cac5819ecaa3bc9082..aeb678265dba79126e2e72a7f4d3c6402722cfc7 100644
--- a/src/MNH/check_zs.f90
+++ b/src/MNH/check_zs.f90
@@ -44,7 +44,6 @@ END MODULE MODI_CHECK_ZS
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    function FMREAD
 !!
 !!    IMPLICIT ARGUMENTS
@@ -82,17 +81,16 @@ END MODULE MODI_CHECK_ZS
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONF           ! declaration modules
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT
-USE MODD_GRID_n
+USE MODD_CONF
 USE MODD_DIM_n
-USE MODD_PARAMETERS
+USE MODD_GRID_n
+USE MODD_IO_ll,            ONLY: TFILEDATA
+USE MODD_LUNIT,            ONLY: TLUOUT0
 USE MODD_NESTING
+USE MODD_PARAMETERS
 !
-USE MODE_FM
 USE MODE_FMREAD
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 !
 IMPLICIT NONE
 !
@@ -126,7 +124,7 @@ INTEGER                           :: JI,JJ  ! loop counters
 TYPE(TFILEDATA),POINTER           :: TZFMFILE
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/clean_conc_ice_c1r3.f90 b/src/MNH/clean_conc_ice_c1r3.f90
index a65b05e559a8a0db9ea4d9d5d0148caee97ec14a..089f07cee815594a7c5a61d3975625a6a32dd93c 100644
--- a/src/MNH/clean_conc_ice_c1r3.f90
+++ b/src/MNH/clean_conc_ice_c1r3.f90
@@ -14,9 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE CLEAN_CONC_ICE_C1R3 (HLUOUT,PR,PSV)
-!
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT    ! name of the output-listing
+      SUBROUTINE CLEAN_CONC_ICE_C1R3 (PR,PSV)
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PR     ! microphysical mixing 
 REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV    ! microphys. concentrations
@@ -28,7 +26,7 @@ END INTERFACE
 END MODULE MODI_CLEAN_CONC_ICE_C1R3
 !
 !     ##############################################
-      SUBROUTINE CLEAN_CONC_ICE_C1R3 (HLUOUT,PR,PSV)
+      SUBROUTINE CLEAN_CONC_ICE_C1R3 (PR,PSV)
 !     ##############################################
 !
 !!****  *CLEAN_CONC_ICE_C1R3 * - reinitialize the ice crystal
@@ -72,24 +70,20 @@ END MODULE MODI_CLEAN_CONC_ICE_C1R3
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN
 USE MODD_CONF,           ONLY : NVERB
-!
-USE MODE_FM
+USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN
+USE MODD_LUNIT_n,        ONLY : TLUOUT
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT    ! name of the output-listing
-!
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PR     ! microphysical mixing 
 REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV    ! microphys. concentrations
 !
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER    :: IRESP   ! Return code of FM routines
 INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !  
 !-------------------------------------------------------------------------------
@@ -97,7 +91,7 @@ INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    INITIALIZATION
 !              --------------
diff --git a/src/MNH/clean_conc_rain_c2r2.f90 b/src/MNH/clean_conc_rain_c2r2.f90
index 47116545632332b6698911d4cb427ad2c1960fab..e65835100976590c691069234510d6d6eb836c58 100644
--- a/src/MNH/clean_conc_rain_c2r2.f90
+++ b/src/MNH/clean_conc_rain_c2r2.f90
@@ -14,9 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE CLEAN_CONC_RAIN_C2R2 (HLUOUT,PR,PSV)
-!
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT    ! name of the output-listing
+      SUBROUTINE CLEAN_CONC_RAIN_C2R2 (PR,PSV)
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PR     ! microphysical mixing 
 REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV    ! microphys. concentrations
@@ -28,7 +26,7 @@ END INTERFACE
 END MODULE MODI_CLEAN_CONC_RAIN_C2R2
 !
 !     ########################################################
-      SUBROUTINE CLEAN_CONC_RAIN_C2R2 (HLUOUT,PR,PSV)
+      SUBROUTINE CLEAN_CONC_RAIN_C2R2 (PR,PSV)
 !     ########################################################
 !
 !!****  *CLEAN_CONC_RAIN_C2R2 * - reinitialize the droplet/raindrop
@@ -72,24 +70,20 @@ END MODULE MODI_CLEAN_CONC_RAIN_C2R2
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN
 USE MODD_CONF,            ONLY : NVERB
-!
-USE MODE_FM
+USE MODD_LUNIT_n,         ONLY : TLUOUT
+USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT    ! name of the output-listing
-!
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PR     ! microphysical mixing 
 REAL,  DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV    ! microphys. concentrations
 !
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER    :: IRESP   ! Return code of FM routines
 INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !  
 !-------------------------------------------------------------------------------
@@ -97,7 +91,7 @@ INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    INITIALIZATION
 !              --------------
diff --git a/src/MNH/compute_exner_from_ground.f90 b/src/MNH/compute_exner_from_ground.f90
index 1d6585317e10f4644b1146d5f95b0238549e43eb..fa0f411277d4488a302306375369461c3a310e77 100644
--- a/src/MNH/compute_exner_from_ground.f90
+++ b/src/MNH/compute_exner_from_ground.f90
@@ -119,11 +119,9 @@ END MODULE MODI_COMPUTE_EXNER_FROM_GROUND3
 !* 0.    DECLARATIONS
 !        ------------
 !
-USE MODE_FM
-!
-USE MODD_CONF  ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_CST
+USE MODD_LUNIT
 USE MODD_PARAMETERS
 !
 USE MODI_SHUMAN
@@ -141,7 +139,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEXNMASS  ! Exner function at mass points
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER :: ILUOUT0,IRESP
+!
 INTEGER :: IKB,IKU,JK
 REAL    :: ZD1      ! switch for thinshell approximation
 REAL    :: ZGSCPD   ! = g/Cpd
@@ -156,8 +154,6 @@ IKB=JPVEXT+1
 IKU=SIZE(PZFLUX,3)
 ZGSCPD = XG/XCPD
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
 !-------------------------------------------------------------------------------
 !
 !*       2.   COMPUTATION OF THE EXNER FUNCTION AT FLUX POINTS
diff --git a/src/MNH/compute_exner_from_top.f90 b/src/MNH/compute_exner_from_top.f90
index 58278883e3d7b6f196ec49b48f61bdacc8ee40ba..ea2bf803dc188bbd01b0164dff95ada5ad1350a9 100644
--- a/src/MNH/compute_exner_from_top.f90
+++ b/src/MNH/compute_exner_from_top.f90
@@ -117,11 +117,9 @@ END MODULE MODI_COMPUTE_EXNER_FROM_TOP3D
 !* 0.    DECLARATIONS
 !        ------------
 !
-USE MODE_FM
-!
-USE MODD_CONF  ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_CST
+USE MODD_LUNIT
 USE MODD_PARAMETERS
 !
 USE MODI_SHUMAN
@@ -139,7 +137,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEXNMASS  ! Exner function at mass points
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER :: ILUOUT0,IRESP
+!
 INTEGER :: IKB,IKE,IKU,JK
 REAL    :: ZD1      ! switch for thinshell approximation
 REAL    :: ZGSCPD   ! = g/Cpd
@@ -150,8 +148,6 @@ REAL, DIMENSION(SIZE(PZFLUX,1),SIZE(PZFLUX,2),SIZE(PZFLUX,3)) :: ZZM
 !*       1.    INITIALIZATIONS
 !              ---------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
 IKB=JPVEXT+1
 IKE=SIZE(PZFLUX,3)-JPVEXT
 IKU=SIZE(PZFLUX,3)
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index 8847d6397cb38159c677d5e5e330166dec527152..80aff4d870f53010eb168ff5d4235bfce20c7703 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -529,8 +529,8 @@ IF ( LAIRCRAFT_BALLOON ) THEN
   CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:),PTOWN=ZTOWN(:,:))
   DO ISTEPBAL=1,NTIME_AIRCRAFT_BALLOON,INT(XSTEP_AIRCRAFT_BALLOON)
 !
-    CALL AIRCRAFT_BALLOON(CLUOUT,XSTEP_AIRCRAFT_BALLOON, &
-                      TDTEXP, TDTMOD, TDTCUR, TXDTBAL, &
+    CALL AIRCRAFT_BALLOON(XSTEP_AIRCRAFT_BALLOON,                &
+                      TDTEXP, TDTMOD, TDTCUR, TXDTBAL,           &
                       XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI, &
                       XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT,    &
                       XTKET, XTSRAD, XRHODREF,XCIT,ZSEA)
@@ -547,7 +547,7 @@ IF ( LAIRCRAFT_BALLOON ) THEN
   CALL IO_WRITE_HEADER(TZDIACFILE)
   CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE)
   CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE)
-  CALL MENU_DIACHRO(TZDIACFILE,CLUOUT,'END')
+  CALL MENU_DIACHRO(TZDIACFILE,'END')
   CALL IO_FILE_CLOSE_ll(TZDIACFILE)
   WRITE(ILUOUT0,*) ' '
   WRITE(ILUOUT0,*) 'DIAG AFTER CLOSE DIACHRONIC FILE'
diff --git a/src/MNH/dry_mass.f90 b/src/MNH/dry_mass.f90
index 3dbda26db39a2fd4a5f3f29c4f0ecc9ff4d0dd36..f020cb3795819578dee7a322db800469a157a539 100644
--- a/src/MNH/dry_mass.f90
+++ b/src/MNH/dry_mass.f90
@@ -12,9 +12,8 @@
       MODULE MODI_DRY_MASS
 !     ####################
 INTERFACE
-      SUBROUTINE DRY_MASS(HLUOUT,PTHV,PR,PJ,PPABS,PDRYMASS)
+      SUBROUTINE DRY_MASS(PTHV,PR,PJ,PPABS,PDRYMASS)
 !
-CHARACTER(LEN=*),         INTENT(IN)  :: HLUOUT    ! output listing
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHV      ! virtual potential temperature
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PR        ! water mixing ratio
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PJ        ! jacobian
@@ -26,7 +25,7 @@ END SUBROUTINE DRY_MASS
 END INTERFACE
 END MODULE MODI_DRY_MASS
 !     ######spl
-      SUBROUTINE DRY_MASS(HLUOUT,PTHV,PR,PJ,PPABS,PDRYMASS)
+      SUBROUTINE DRY_MASS(PTHV,PR,PJ,PPABS,PDRYMASS)
 !     ##########################################
 !
 !!****  *DRY_MASS* - computation of the total dry air mass 
@@ -117,18 +116,16 @@ END MODULE MODI_DRY_MASS
 !        ------------
 !
 USE MODD_CONF                   ! declaration modules
-USE MODD_LUNIT
+USE MODD_LUNIT_n, ONLY : TLUOUT
 USE MODD_CST
 USE MODD_PARAMETERS
 !
 USE MODE_ll
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
 !              ------------------------
-CHARACTER(LEN=*),         INTENT(IN)  :: HLUOUT    ! output listing
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHV      ! virtual potential temperature
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PR        ! water mixing ratio
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PJ        ! jacobian
@@ -138,7 +135,6 @@ REAL,                   INTENT(OUT) :: PDRYMASS  ! dry mass
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER :: ILUOUT,IRESP
 INTEGER :: JRR
 REAL,   DIMENSION(SIZE(PJ,1),SIZE(PJ,2),SIZE(PJ,3)) :: ZRHOD, ZSUMR
 INTEGER :: IINFO_ll       ! return code of parallel routine
@@ -166,7 +162,6 @@ PDRYMASS=SUM3D_ll(PJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll)
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-WRITE(ILUOUT,*) 'Routine DRYMASS completed'
+WRITE(TLUOUT%NLU,*) 'Routine DRYMASS completed'
 !
 END SUBROUTINE DRY_MASS
diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90
index 380a38de35658f849af505d0b14736da674edd2e..7a8e0ecd00d2e947f6ea3082890cbeb419b96671 100644
--- a/src/MNH/elec_trid.f90
+++ b/src/MNH/elec_trid.f90
@@ -13,14 +13,13 @@
 !
 INTERFACE
 !
-      SUBROUTINE ELEC_TRID(HLUOUT,HLBCX,HLBCY,                          &
+      SUBROUTINE ELEC_TRID(HLBCX,HLBCY,                                 &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP               )
 !
 IMPLICIT NONE
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -71,7 +70,7 @@ END INTERFACE
 END MODULE MODI_ELEC_TRID
 !
 !     ###################################################################
-      SUBROUTINE ELEC_TRID(HLUOUT,HLBCX,HLBCY,                          &
+      SUBROUTINE ELEC_TRID(HLBCX,HLBCY,                                 &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP               )
@@ -185,11 +184,11 @@ END MODULE MODI_ELEC_TRID
 !              ------------
 USE MODD_CST
 USE MODD_CONF
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 !
 USE MODE_ll
 USE MODE_IO_ll
-USE MODE_FM
 USE MODE_MSG
 !
 !JUAN
@@ -203,7 +202,6 @@ IMPLICIT NONE
 !
 !
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -302,7 +300,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:)              :: ZRHOM_2D   , ZDZM_2D
 !*       1.1  retrieve a logical unit number
 !             ------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       1.2  compute loop bounds
 !             -------------------
diff --git a/src/MNH/elec_tridz.f90 b/src/MNH/elec_tridz.f90
index 7cf604d136b50d2083b1858dd49bea24079a7fa2..dc902daf959b85c911e79a3bb0a2dffaaf00a633 100644
--- a/src/MNH/elec_tridz.f90
+++ b/src/MNH/elec_tridz.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE ELEC_TRIDZ(HLUOUT,HLBCX,HLBCY,                         &
+      SUBROUTINE ELEC_TRIDZ(HLBCX,HLBCY,                                &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP,              &
@@ -22,7 +22,6 @@ INTERFACE
 !
 IMPLICIT NONE
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -79,7 +78,7 @@ END INTERFACE
 END MODULE MODI_ELEC_TRIDZ
 !
 !     ###################################################################
-      SUBROUTINE ELEC_TRIDZ(HLUOUT,HLBCX,HLBCY,                         &
+      SUBROUTINE ELEC_TRIDZ(HLBCX,HLBCY,                                &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP,              &
@@ -194,11 +193,11 @@ END MODULE MODI_ELEC_TRIDZ
 !              ------------
 USE MODD_CST
 USE MODD_CONF
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 !
 USE MODE_ll
 USE MODE_IO_ll
-USE MODE_FM
 USE MODE_MSG
 !++cb - Z_SPLITTING
 USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll
@@ -213,7 +212,6 @@ IMPLICIT NONE
 !
 !
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -328,7 +326,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:)              :: ZRHOM_2D   , ZDZM_2D
 !*       1.1  retrieve a logical unit number
 !             ------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       1.2  compute loop bounds
 !             -------------------
diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90
index 74bd64b40f275d15f52df2e72c69885310dd9a40..1a6cf88e19c75a8036d8cd5301cf403b1f2b2ddc 100644
--- a/src/MNH/endstep_budget.f90
+++ b/src/MNH/endstep_budget.f90
@@ -14,14 +14,13 @@
 !
 INTERFACE
 !
-      SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,HLUOUT,KTCOUNT,              &
-                               TPDTCUR,TPDTMOD,PTSTEP,KSV            )
+      SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT,       &
+                               TPDTCUR,TPDTMOD,PTSTEP,KSV)
 !
 USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODD_TYPE_DATE
 !
 TYPE(TFILEDATA),   INTENT(IN) :: TPDIAFILE  ! file to write
-CHARACTER (LEN=*), INTENT(IN) :: HLUOUT     ! name of output listing
 INTEGER,           INTENT(IN) :: KTCOUNT    ! temporal loop counter
 TYPE (DATE_TIME),  INTENT(IN) :: TPDTCUR    ! Current date and time
 TYPE (DATE_TIME),  INTENT(IN) :: TPDTMOD    ! Creation date and time
@@ -34,10 +33,10 @@ END INTERFACE
 !
 END MODULE MODI_ENDSTEP_BUDGET
 !
-!     ###############################################################
-      SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,HLUOUT,KTCOUNT,             &
-                               TPDTCUR,TPDTMOD,PTSTEP,KSV           )
-!     ###############################################################
+!     ####################################################
+      SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT,       &
+                               TPDTCUR,TPDTMOD,PTSTEP,KSV)
+!     ####################################################
 !
 !!****  *ENDSTEP_BUDGET* - routine to call the routine write_budget 
 !!                           
@@ -118,7 +117,6 @@ IMPLICIT NONE
 !*       0.1   Declarations of arguments :
 !
 TYPE(TFILEDATA),   INTENT(IN) :: TPDIAFILE  ! file to write
-CHARACTER (LEN=*), INTENT(IN) :: HLUOUT     ! name of output listing
 INTEGER,           INTENT(IN) :: KTCOUNT    ! temporal loop counter
 TYPE (DATE_TIME),  INTENT(IN) :: TPDTCUR    ! Current date and time
 TYPE (DATE_TIME),  INTENT(IN) :: TPDTMOD    ! Creation date and time
@@ -138,7 +136,7 @@ SELECT CASE(CBUTYPE)
 !*	 1.1    storage of the budget fields 
 !
     IF( MODULO(KTCOUNT,NBUSTEP*NBUWRNB) == 0 ) THEN  
-      CALL WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,TPDTMOD,PTSTEP, KSV )
+      CALL WRITE_BUDGET(TPDIAFILE,TPDTCUR,TPDTMOD,PTSTEP, KSV )
 !
 !*	 1.2    resetting the budget arrays to 0.
 !
@@ -174,7 +172,7 @@ SELECT CASE(CBUTYPE)
 !
 !*	 2.1    storage of the budget fields
 ! 
-      CALL WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,TPDTMOD,PTSTEP, KSV)
+      CALL WRITE_BUDGET(TPDIAFILE,TPDTCUR,TPDTMOD,PTSTEP, KSV)
 !
 !*	 2.2    reset the budget fields to 0.
 !
diff --git a/src/MNH/error_on_temperature.f90 b/src/MNH/error_on_temperature.f90
index 57252d68cb929d4f0d96f8ed4507601e81657450..ee23049bb4ddd46abb6a891c3002eebd655fbd79 100644
--- a/src/MNH/error_on_temperature.f90
+++ b/src/MNH/error_on_temperature.f90
@@ -69,18 +69,16 @@ END MODULE MODI_ERROR_ON_TEMPERATURE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODI_COEF_VER_INTERP_LIN
-USE MODI_VER_INTERP_LIN
-!
-USE MODD_CONF           ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_CST
-USE MODD_REF_n
 USE MODD_FIELD_n, ONLY: XTHT
+USE MODD_LUNIT,   ONLY: TLUOUT0
+USE MODD_REF_n
 USE MODD_VER_INTERP_LIN
 !
+USE MODI_COEF_VER_INTERP_LIN
+USE MODI_VER_INTERP_LIN
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -104,7 +102,7 @@ REAL,DIMENSION(:,:,:), ALLOCATABLE:: ZP1,ZT1  ! work arrays
 REAL,DIMENSION(:,:,:), ALLOCATABLE:: ZP2,ZT2  ! work arrays
 LOGICAL,DIMENSION(:,:,:), ALLOCATABLE :: GMASK! .T. where pressure level is significant
 !
-INTEGER                           :: IRESP, ILUOUT0
+INTEGER                           :: ILUOUT0
 INTEGER                           :: IIU,IJU,ILU,IKU
 INTEGER                           :: JP
 !
@@ -198,7 +196,7 @@ END DO
 !*     4.     Prints
 !             ------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 WRITE(ILUOUT0,*) ''
 WRITE(ILUOUT0,*) 'Temperature RMS between begin and end of PREP_REAL_CASE :'
diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90
index 3507eda6ff15df634f74b76d5b0188e5ce7b6ab4..3ded9cb76d722c8ce1ef20f405e61adef424ed85 100644
--- a/src/MNH/fast_terms.f90
+++ b/src/MNH/fast_terms.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE FAST_TERMS( KRR, KMI, HLUOUT, HRAD,                    &
+      SUBROUTINE FAST_TERMS( KRR, KMI, HRAD,                            &
                              HTURBDIM, HSCONV, HMF_CLOUD,               &
                              OSUBG_COND, PTSTEP,                        &
                              PRHODJ, PSIGS, PPABST,                     &
@@ -24,8 +24,6 @@ INTERFACE
          !
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KMI      ! Model index 
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                     ! turbulence scheme
 CHARACTER(LEN=4),         INTENT(IN)    :: HSCONV   ! Shallow convection scheme
@@ -63,7 +61,7 @@ END INTERFACE
 END MODULE MODI_FAST_TERMS
 !
 !     ##########################################################################
-      SUBROUTINE FAST_TERMS( KRR, KMI, HLUOUT, HRAD,                    &
+      SUBROUTINE FAST_TERMS( KRR, KMI, HRAD,                            &
                              HTURBDIM, HSCONV, HMF_CLOUD,               &
                              OSUBG_COND, PTSTEP,                        &
                              PRHODJ, PSIGS, PPABST,                     &
@@ -162,15 +160,16 @@ END MODULE MODI_FAST_TERMS
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS
+USE MODD_BUDGET
 USE MODD_CST
 USE MODD_CONF
-USE MODD_BUDGET
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_PARAMETERS
 !
-USE MODI_CONDENS
-USE MODI_BUDGET
-USE MODE_FM
 USE MODE_FMWRIT
+!
+USE MODI_BUDGET
+USE MODI_CONDENS
 USE MODI_GET_HALO
 !
 IMPLICIT NONE
@@ -180,8 +179,6 @@ IMPLICIT NONE
 !
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KMI      ! Model index 
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                     ! turbulence scheme
 CHARACTER(LEN=4),         INTENT(IN)    :: HSCONV   ! Shallow convection scheme
@@ -238,7 +235,8 @@ INTEGER             :: ILUOUT     ! Logical unit of output listing
 !*       1.     PRELIMINARIES
 !               -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
+!
 ZEPS= XMV / XMD
 !
 IF (OSUBG_COND) THEN
diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90
index 2ef4e0c92173b3af89ba780c7fc1cc14ce96df44..04db4fdfc6f65d6cfa14e802539a3494d8954cb1 100644
--- a/src/MNH/free_atm_profile.f90
+++ b/src/MNH/free_atm_profile.f90
@@ -60,8 +60,6 @@ END MODULE MODI_FREE_ATM_PROFILE
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  : to retrieve a logical unit number associated
-!!                       with a file
 !!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
@@ -96,25 +94,21 @@ END MODULE MODI_FREE_ATM_PROFILE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODI_PGDFILTER
+USE MODD_CONF
+USE MODD_GRID_n
+USE MODD_IO_ll, ONLY: TFILEDATA
+USE MODD_LUNIT, ONLY: TLUOUT0
+USE MODD_PARAMETERS
+USE MODD_VER_INTERP_LIN
+!
 USE MODI_COEF_VER_INTERP_LIN
+USE MODI_PGDFILTER
 USE MODI_VER_INTERP_LIN
 USE MODI_VERT_COORD
 !
 USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL
 USE MODE_FMWRIT
-USE MODE_FM
-!
-USE MODD_CONF  ! declaration modules
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT
-USE MODD_LUNIT_n
-USE MODD_GRID_n
-USE MODD_PARAMETERS
-USE MODD_VER_INTERP_LIN
-!JUAN REALZ
 USE MODE_MPPDB
-!JUAN REALZ
 !
 IMPLICIT NONE
 !
@@ -165,9 +159,6 @@ INTEGER, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) &
 REAL, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) &
                                       :: ZK_BL_TOP  ! as K_BL_TOP but real
 INTEGER                               :: IIMIN, IIMAX, IJMIN, IJMAX
-
-INTEGER           :: IRESP
-
 REAL, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) &
                                       :: Z2D ! field to be recorded
 REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) &
@@ -176,8 +167,8 @@ REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) &
                                       :: ZZMASS ! MESO-NH output mass grid
 TYPE(TFIELDDATA)  :: TZFIELD
 !-------------------------------------------------------------------------------
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
+ILUOUT0 = TLUOUT0%NLU
 !
 IIU=SIZE(PZMASS_MX,1)
 IJU=SIZE(PZMASS_MX,2)
diff --git a/src/MNH/get_sizex_lb.f90 b/src/MNH/get_sizex_lb.f90
index 8e93830ce14a05465b1d8d21c531dbe6622581c5..71d99adcb16c2451345cfa7acdb3e0ae4bc96b2a 100644
--- a/src/MNH/get_sizex_lb.f90
+++ b/src/MNH/get_sizex_lb.f90
@@ -13,12 +13,10 @@
 !
 INTERFACE
 !
-      SUBROUTINE GET_SIZEX_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMX,   &
-           KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU,                &
-           KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2)
+      SUBROUTINE GET_SIZEX_LB(KIMAX_ll,KJMAX_ll,KRIMX,               &
+                              KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, &
+                              KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2    )
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models
 INTEGER,               INTENT(IN)   :: KIMAX_ll  !  Dimensions  in x direction 
                                                  ! of the physical domain,
 INTEGER,               INTENT(IN)   :: KJMAX_ll  !  Dimensions  in y direction 
@@ -39,11 +37,11 @@ END MODULE MODI_GET_SIZEX_LB
 !
 !
 !
-!     #############################################################
-      SUBROUTINE GET_SIZEX_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMX,   &
-           KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU,               &
-           KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2)
-!     #############################################################
+!     #################################################################
+      SUBROUTINE GET_SIZEX_LB(KIMAX_ll,KJMAX_ll,KRIMX,               &
+                              KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, &
+                              KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2    )
+!     ################################################################
 !
 !!****  *GET_SIZEX_LB* - routine to get the size of the West-East LB arrays
 !!                       for each sub-domain
@@ -95,14 +93,11 @@ END MODULE MODI_GET_SIZEX_LB
 !              ------------ 
 USE MODD_PARAMETERS
 USE MODE_ll
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models
 INTEGER,               INTENT(IN)   :: KIMAX_ll  !  Dimensions  in x direction 
                                                  ! of the physical domain,
 INTEGER,               INTENT(IN)   :: KJMAX_ll  !  Dimensions  in y direction 
@@ -121,15 +116,11 @@ INTEGER :: IXOR, IYOR, IXEND, IYEND ! Coordinates of the LB zone
                                     ! (in global coordinates)
 INTEGER :: IXORI, IYORI, IXENDI, IYENDI ! Coordinates of
                                         ! the intersection in local coordinates
-INTEGER :: ILUOUT,IRESP   !  Logical unit number and status code
-                          ! associated with HLUOUT 
 !-------------------------------------------------------------------------------
 !
 !*       1.   INITIALIZATIONS
 !              -------------- 
 !   
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
 KISIZEXF=0
 KJSIZEXF=0
 KISIZEXFU=0
diff --git a/src/MNH/get_sizey_lb.f90 b/src/MNH/get_sizey_lb.f90
index 51491f23abdab5929abc3d5c3cbf36b5e9a716c6..8ae70b88938c752c1252adf7f91e60fa6ce624d9 100644
--- a/src/MNH/get_sizey_lb.f90
+++ b/src/MNH/get_sizey_lb.f90
@@ -13,12 +13,10 @@
 !
 INTERFACE
 !
-      SUBROUTINE GET_SIZEY_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMY,   &
-           KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV,                &
-           KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2)
+      SUBROUTINE GET_SIZEY_LB(KIMAX_ll,KJMAX_ll,KRIMY,               &
+                              KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, &
+                              KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2    )
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models
 INTEGER,               INTENT(IN)   :: KIMAX_ll  !  Dimensions  in x direction 
                                                  ! of the physical domain,
 INTEGER,               INTENT(IN)   :: KJMAX_ll  !  Dimensions  in y direction 
@@ -39,11 +37,11 @@ END MODULE MODI_GET_SIZEY_LB
 !
 !
 !
-!     #############################################################
-      SUBROUTINE GET_SIZEY_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMY,   &
-           KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV,               &
-           KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2)
-!     #############################################################
+!     ################################################################
+      SUBROUTINE GET_SIZEY_LB(KIMAX_ll,KJMAX_ll,KRIMY,               &
+                              KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, &
+                              KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2    )
+!     ################################################################
 !
 !!****  *GET_SIZEY_LB* - routine to get the size of the South-North LB arrays
 !!                       for each sub-domain
@@ -95,14 +93,11 @@ END MODULE MODI_GET_SIZEY_LB
 !              ------------ 
 USE MODD_PARAMETERS
 USE MODE_ll
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models
 INTEGER,               INTENT(IN)   :: KIMAX_ll  !  Dimensions  in x direction 
                                                  ! of the physical domain,
 INTEGER,               INTENT(IN)   :: KJMAX_ll  !  Dimensions  in y direction 
@@ -121,15 +116,11 @@ INTEGER :: IXOR, IYOR, IXEND, IYEND ! Coordinates of the LB zone
                                     ! (in global coordinates)
 INTEGER :: IXORI, IYORI, IXENDI, IYENDI ! Coordinates of
                                         ! the intersection in local coordinates
-INTEGER :: ILUOUT,IRESP   !  Logical unit number and status code
-                          ! associated with HLUOUT 
 !-------------------------------------------------------------------------------
 !
 !*       1.   INITIALIZATIONS
 !              -------------- 
 !   
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
 KISIZEYF=0
 KJSIZEYF=0
 KISIZEYFV=0
diff --git a/src/MNH/gps_zenith_grid.f90 b/src/MNH/gps_zenith_grid.f90
index b56c3b26cecceee2e850c60ffdb256f54551a5be..b954e9acaa678406663945c4ffaa46746f3c75be 100644
--- a/src/MNH/gps_zenith_grid.f90
+++ b/src/MNH/gps_zenith_grid.f90
@@ -78,9 +78,7 @@ END MODULE MODI_GPS_ZENITH_GRID
 !
 !
 USE MODD_PARAMETERS
-USE MODD_LUNIT
 USE MODD_CST
-USE MODE_FM
 USE MODD_GR_FIELD_n
 USE MODD_DIAG_FLAG
 USE MODD_GRID, ONLY: XLONORI,XLATORI
@@ -112,7 +110,6 @@ INTEGER :: IJB,IJE          ! Loop limits for coordinate Y
 INTEGER :: IKB,IKE          ! Loop limits for coordinate Z
 INTEGER :: JK               ! Loop variables of control
 INTEGER :: IIU,IJU,IKU      ! Loop variables of model 
-INTEGER :: ILUOUT0, IRESP   ! file unit and return code for output
 REAL,  DIMENSION(:),ALLOCATABLE         :: ZXHATM,ZYHATM   ! mass-point positions 
 REAL,  DIMENSION(:,:,:),ALLOCATABLE     :: ZZHATM   ! mass level altitude  
 !-------- Physical parameters for the integration ----------------------------
@@ -134,7 +131,6 @@ REAL, DIMENSION(:,:),ALLOCATABLE   :: ZGTOP            !  gravity of top of mode
 !*       1.     INTIALIZE DIMENSIONS AND ALLOCATE ARRAYS
 !               ----------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 IIU = SIZE (PTEMP,1)
 IJU = SIZE (PTEMP,2)
diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90
index c9cd97b666f826d1e6dc9eecb4e5dcc74308cc3d..466d60dcf55d4940b6dd873f3d35e325eb619d99 100644
--- a/src/MNH/ini_aircraft_balloon.f90
+++ b/src/MNH/ini_aircraft_balloon.f90
@@ -14,7 +14,7 @@ MODULE MODI_INI_AIRCRAFT_BALLOON
 !
 INTERFACE
 !
-      SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,HLUOUT,             &
+      SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,                    &
                                       PTSTEP, TPDTSEG, PSEGLEN,     &
                                       KRR, KSV, KKU, OUSETKE,       &
                                       PLATOR, PLONOR                )
@@ -23,7 +23,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_TYPE_DATE
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPINIFILE !Initial file
-CHARACTER(LEN=*),   INTENT(IN) :: HLUOUT  ! output listing
 REAL,               INTENT(IN) :: PTSTEP  ! time step
 TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
@@ -43,7 +42,7 @@ END INTERFACE
 END MODULE MODI_INI_AIRCRAFT_BALLOON
 !
 !     ###############################################################
-      SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,HLUOUT,             &
+      SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,                    &
                                       PTSTEP, TPDTSEG, PSEGLEN,     &
                                       KRR, KSV, KKU, OUSETKE,       &
                                       PLATOR, PLONOR                )
@@ -90,11 +89,12 @@ USE MODD_CONF
 USE MODD_DIAG_FLAG
 USE MODD_DYN_n
 USE MODD_GRID
-USE MODD_IO_ll, ONLY : TFILEDATA
+USE MODD_IO_ll,   ONLY : TFILEDATA
+USE MODD_LUNIT_n, ONLY : TLUOUT
 USE MODD_PARAM_n, ONLY : CCLOUD
 USE MODD_PARAMETERS
 !
-USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL
+USE MODE_FIELD,   ONLY : TFIELDDATA, TYPEREAL
 USE MODE_GRIDPROJ
 USE MODE_IO_ll
 USE MODE_ll
@@ -109,7 +109,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPINIFILE !Initial file
-CHARACTER(LEN=*),   INTENT(IN) :: HLUOUT  ! output listing
 REAL,               INTENT(IN) :: PTSTEP  ! time step
 TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
@@ -134,7 +133,7 @@ TYPE(TFIELDDATA) :: TZFIELD
 !----------------------------------------------------------------------------
 !
 IMI=GET_CURRENT_MODEL_INDEX()
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !----------------------------------------------------------------------------
 !
 !*      1.   Default values
diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90
index 061adfd1c7f88b8907a4b6a8675e0cc92c6420c0..dd7702eedaa01c1567291383a6dbb86a7e1c9d6a 100644
--- a/src/MNH/ini_cpl.f90
+++ b/src/MNH/ini_cpl.f90
@@ -146,7 +146,6 @@ END MODULE MODI_INI_CPL
 !!
 !!    EXTERNAL
 !!    --------
-!!      FMLOOK      : to retrieve a logical unit number 
 !!      IO_READ_FIELD: to read data in LFI_FM file
 !!      IO_FILE_CLOSE_ll : to close a FM-file
 !!      INI_LS      : to initialize larger scale fields
@@ -218,16 +217,20 @@ END MODULE MODI_INI_CPL
 !
 !*       0.    DECLARATIONS
 !              ------------
-USE MODD_PARAMETERS 
+USE MODD_CH_MNHC_n
 USE MODD_CONF
 USE MODD_CTURB
 USE MODD_DYN
-USE MODD_TIME_n                
-USE MODD_LUNIT_n
+USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT
 USE MODD_NSV
-USE MODD_CH_MNHC_n
+USE MODD_PARAMETERS
+USE MODD_TIME_n
+! #ifdef MNH_FOREFIRE
+! USE MODD_PASPOL
+! USE MODD_FOREFIRE
+! USE MODD_FOREFIRE_n
+! #endif
 !
-USE MODE_FM
 USE MODE_FMREAD
 USE MODE_IO_ll
 USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
@@ -235,14 +238,9 @@ USE MODE_MSG
 USE MODD_NESTING
 USE MODE_TIME
 !
-USE MODI_TEMPORAL_DIST
 USE MODI_INI_LS
 USE MODI_INI_LB
-#ifdef MNH_FOREFIRE
-USE MODD_PASPOL
-USE MODD_FOREFIRE
-USE MODD_FOREFIRE_n
-#endif
+USE MODI_TEMPORAL_DIST
 !
 IMPLICIT NONE
 !
@@ -341,7 +339,7 @@ LOGICAL :: GLSOURCE ! switch for the source term (for ini_ls and ini_lb)
 GSKIP(:)=.FALSE.
 GEND=.FALSE.
 NCPL_TIMES(:,:) = NUNDEF
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !-------------------------------------------------------------------------------
 !
@@ -481,7 +479,7 @@ END IF
 GLSOURCE=.TRUE.
 ZLENG = (NCPL_TIMES(NCPL_CUR,1)-2) * PTSTEP
 !
-CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, &
+CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, &
              PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS)
 !
 !
@@ -510,7 +508,7 @@ CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,
 !END IF
  
 GLSOURCE=.TRUE.
-CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV,           &
+CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV,                  &
      KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll,              &
      KSIZELBXTKE_ll,KSIZELBYTKE_ll,                                  &
      KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll,          &
diff --git a/src/MNH/ini_dynamics.f90 b/src/MNH/ini_dynamics.f90
index c5c85d1c587bbd44706f339613be0b3458098226..e0983710791da5a607e5ff98049e0b7e008131c5 100644
--- a/src/MNH/ini_dynamics.f90
+++ b/src/MNH/ini_dynamics.f90
@@ -6,7 +6,7 @@
       MODULE MODI_INI_DYNAMICS
 !     ########################
 INTERFACE
-SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,            &
+SUBROUTINE INI_DYNAMICS(PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,                   &
                PDXHAT,PDYHAT,PZHAT,HLBCX,HLBCY,PTSTEP,                       &
                OVE_RELAX,OVE_RELAX_GRD,OHORELAX_UVWTH,OHORELAX_RV,           &
                OHORELAX_RC,OHORELAX_RR,OHORELAX_RI,OHORELAX_RS,OHORELAX_RG,  &
@@ -32,7 +32,6 @@ SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,            &
 USE MODE_TYPE_ZDIFFU
 IMPLICIT NONE
 !
-CHARACTER(LEN=*),       INTENT(IN)        :: HLUOUT    ! name for output-listing
 REAL, DIMENSION(:,:),   INTENT(IN)        :: PLON,PLAT !Longitude and latitude
 REAL, DIMENSION(:,:,:), INTENT(IN)        :: PRHODJ    ! rho J
 REAL, DIMENSION(:,:,:), INTENT(IN)        :: PTHVREF   ! virtual potential 
@@ -176,7 +175,7 @@ END INTERFACE
 !
 END MODULE MODI_INI_DYNAMICS
 !     ######################################################################
-SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,            &
+SUBROUTINE INI_DYNAMICS(PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,                   &
                PDXHAT,PDYHAT,PZHAT,HLBCX,HLBCY,PTSTEP,                       &
                OVE_RELAX,OVE_RELAX_GRD,OHORELAX_UVWTH,OHORELAX_RV,           &
                OHORELAX_RC,OHORELAX_RR,OHORELAX_RI,OHORELAX_RS,OHORELAX_RG,  &
@@ -284,14 +283,14 @@ SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ,            &
 USE MODD_CONF
 USE MODD_CST
 USE MODD_GRID
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
-USE MODI_TRID
-USE MODI_TRIDZ
 USE MODI_RELAXDEF
+! USE MODI_TRID
+USE MODI_TRIDZ
 USE MODI_ZDIFFUSETUP
-USE MODE_ll
-USE MODE_FM
 !
+USE MODE_ll
 USE MODE_TYPE_ZDIFFU
 !
 IMPLICIT NONE
@@ -300,7 +299,6 @@ IMPLICIT NONE
 !
 !  intent in arguments
 !
-CHARACTER(LEN=*),       INTENT(IN)        :: HLUOUT    ! name for output-listing
 REAL, DIMENSION(:,:),   INTENT(IN)        :: PLON,PLAT !Longitude and latitude
 REAL, DIMENSION(:,:,:), INTENT(IN)        :: PRHODJ    ! rho J
 REAL, DIMENSION(:,:,:), INTENT(IN)        :: PTHVREF   ! virtual potential 
@@ -443,8 +441,7 @@ REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZGAMMA ! Gamma =K(lambda-lambd
 REAL                                       :: ZMBETA ! -beta
 REAL                                       :: ZCDR   ! to convert degrees in
                                                      ! radians 
-INTEGER                                    :: ILUOUT,IRESP ! Logical unit number
-                                      !  for output_listing file, and return code
+INTEGER                                    :: ILUOUT ! Logical unit number for output_listing file
 INTEGER                                    :: IIU,IJU !  Upper bounds in x,y directions
 LOGICAL                                    :: GHORELAX
 LOGICAL, DIMENSION(7) :: GHORELAXR ! local array of logical
@@ -484,11 +481,11 @@ END IF
 !              ---------------------------------
 !
 IF (.NOT.L1D) THEN
-! CALL TRID(HLUOUT,HLBCX,HLBCY,                                           &
+! CALL TRID(HLBCX,HLBCY,                                                  &
 !           PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,PAF,                 &
 !           PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,                            &
 !           PRHODJ,PTHVREF,PZZ,PBFY)
-  CALL TRIDZ(HLUOUT,HLBCX,HLBCY,                                          &
+  CALL TRIDZ(HLBCX,HLBCY,                                                 &
             PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,PAF,                 &
             PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,                            &
             PRHODJ,PTHVREF,PZZ,PBFY,PBFB,                                 &
@@ -572,7 +569,7 @@ ENDIF
 !
 IF (NVERB >= 10) THEN
   CALL GET_DIM_EXT_ll ('B',IIU,IJU)
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT = TLUOUT%NLU
 !
   WRITE(ILUOUT,*) 'INI_DYNAMICS : Some PCORIOZ values'
   WRITE(ILUOUT,*) '(1,1)          (IIU/2,IJU/2)         (IIU,IJU)  '
diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90
index aa95cef9a2915f715e2a6aabc87d540828b84164..be332d00c2fb814cc45d7bf8f5df63a407564eaf 100644
--- a/src/MNH/ini_elecn.f90
+++ b/src/MNH/ini_elecn.f90
@@ -83,46 +83,45 @@ END MODULE MODI_INI_ELEC_n
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_ll
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-USE MODE_IO_ll
-USE MODE_FM
-USE MODE_FMREAD
-!
-USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll
-USE MODD_ELEC_DESCR
-USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E
+USE MODD_CLOUDPAR_n, ONLY : NSPLITR
+USE MODD_CONF, ONLY : CEQNSYS,CCONF,CPROGRAM
 USE MODD_CONF_n, ONLY : NRR
-USE MODD_IO_ll,  ONLY : TFILEDATA
-USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT
 USE MODD_CST
-USE MODD_CONF, ONLY : CEQNSYS,CCONF,CPROGRAM
+USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll
 USE MODD_DYN
-USE MODD_REF
-USE MODD_TIME
+USE MODD_DYN_n, ONLY : XRHOM, XTRIGSX, XTRIGSY, XAF, XCF, XBFY, XBFB, XDXHATM, &
+                       XDYHATM, NIFAXX, NIFAXY, XBF_SXP2_YP1_Z
+USE MODD_ELEC_DESCR
 USE MODD_ELEC_FLASH
+USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E
 USE MODD_GET_n, ONLY : CGETINPRC, CGETINPRR, CGETINPRS, CGETINPRG, CGETINPRH, &            
                        CGETCLOUD, CGETSVT
+USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT
+USE MODD_IO_ll,  ONLY : TFILEDATA
+USE MODD_LBC_n, ONLY : CLBCX, CLBCY
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_PARAM_C2R2, ONLY : LDEPOC
+USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT
+USE MODD_PARAM_ICE, ONLY : LDEPOSC
 USE MODD_PRECIP_n, ONLY : XINPRR, XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, &
                           XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D,&
                           XINDEP,XACDEP
-USE MODD_PARAM_ICE, ONLY : LDEPOSC
-USE MODD_PARAM_C2R2, ONLY : LDEPOC
-USE MODD_CLOUDPAR_n, ONLY : NSPLITR
+USE MODD_REF
 USE MODD_REF_n, ONLY : XRHODJ, XTHVREF
-USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT
-USE MODD_DYN_n, ONLY : XRHOM, XTRIGSX, XTRIGSY, XAF, XCF, XBFY, XBFB, XDXHATM, &
-                       XDYHATM, NIFAXX, NIFAXY, XBF_SXP2_YP1_Z
-USE MODD_LBC_n, ONLY : CLBCX, CLBCY
-
-USE MODI_ELEC_TRID
+USE MODD_TIME
+!
+USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+USE MODE_IO_ll
+USE MODE_FMREAD
+USE MODE_ll
+!
+USE MODI_ELEC_TRIDZ
 USE MODI_INI_CLOUD
-USE MODI_INI_PARAM_ELEC
-USE MODI_INI_RAIN_ICE_ELEC
 USE MODI_INI_FIELD_ELEC
 USE MODI_INI_FLASH_GEOM_ELEC
+USE MODI_INI_PARAM_ELEC
+USE MODI_INI_RAIN_ICE_ELEC
 USE MODI_READ_PRECIP_FIELD
-USE MODI_ELEC_TRIDZ
 !
 !
 IMPLICIT NONE
@@ -146,7 +145,6 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZY    ! metric coefficient dzy
 !
 !*       0.2   declarations of local variables
 !
-INTEGER :: IRESP   ! Return code of FM routines 
 INTEGER :: ILUOUT  ! Logical unit number of output-listing
 !
 INTEGER :: IIU     ! Upper dimension in x direction (local)
@@ -169,7 +167,7 @@ CHARACTER (LEN=3) :: YEQNSYS
 !*       0.    PROLOGUE
 !              --------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
 IKU = SIZE(PZZ,3)
@@ -314,7 +312,7 @@ ALLOCATE (XBFB_E(SIZE(XBFB,1),SIZE(XBFB,2),SIZE(XBFB,3)))
 ALLOCATE (XBF_SXP2_YP1_Z_E(SIZE(XBF_SXP2_YP1_Z,1),SIZE(XBF_SXP2_YP1_Z,2),&
                            SIZE(XBF_SXP2_YP1_Z,3)))
 !
-CALL ELEC_TRIDZ (HLUOUT,CLBCX,CLBCY,                         &
+CALL ELEC_TRIDZ (CLBCX,CLBCY,                                &
            XMAP,XDXHAT,XDYHAT,XDXHATM,XDYHATM,XRHOM_E,XAF_E, & 
            XCF_E,XTRIGSX,XTRIGSY,NIFAXX,NIFAXY,              &
            XRHODJ,XTHVREF,PZZ,XBFY_E,XEPOTFW_TOP,            &
diff --git a/src/MNH/ini_ice_c1r3.f90 b/src/MNH/ini_ice_c1r3.f90
index fe884be5060238326d4fe794602bab5798f90076..2b87606f03b060c4c072a653154b7546f336f98d 100644
--- a/src/MNH/ini_ice_c1r3.f90
+++ b/src/MNH/ini_ice_c1r3.f90
@@ -98,26 +98,25 @@ END MODULE MODI_INI_ICE_C1R3
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
 USE MODD_CST
-USE MODD_LUNIT
+USE MODD_ICE_C1R3_DESCR
+USE MODD_ICE_C1R3_PARAM
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
+USE MODD_PARAM_C1R3
 USE MODD_PARAM_C2R2,      ONLY : XALPHAC,XNUC,XALPHAR,XNUR
 USe MODD_RAIN_C2R2_DESCR, ONLY : XAR,XBR,XCR,XDR,XF0R,XF1R,XAC,XBC,XCC,XDC, &
                                  XLBC,XLBEXC,XLBR,XLBEXR
-USE MODD_PARAM_C1R3
-USE MODD_ICE_C1R3_DESCR
-USE MODD_ICE_C1R3_PARAM
 USE MODD_REF
 !
 USE MODI_GAMMA
 USE MODI_GAMMA_INC
-USE MODI_RRCOLSS
-USE MODI_RZCOLX
-USE MODI_RSCOLRG
 USE MODI_READ_XKER_RACCS
-USE MODI_READ_XKER_SDRYG
 USE MODI_READ_XKER_RDRYG
+USE MODI_READ_XKER_SDRYG
+USE MODI_RRCOLSS
+USE MODI_RSCOLRG
+USE MODI_RZCOLX
 !
 !
 IMPLICIT NONE
@@ -160,7 +159,6 @@ REAL :: ZFDINFTY              ! Factor used to define the "infinite" diameter
 !
 !
 INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
 LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
                     ! listing
 REAL     :: ZCONC_MAX ! Maximal concentration for snow
@@ -197,7 +195,7 @@ REAL     :: ZFAC_ZRNIC ! Zrnic factor used to decrease Long Kernels
 !        1.     INTIALIZE OUTPUT LISTING AND COMPUTE KSPLITG FOR EACH MODEL
 !               -----------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !*       1.1    Set the graupel maximum fall velocity
 !
diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90
index 54f92d9a8265fd80fc4fd9b2da647372092a84c5..7afd3aabba753be544381b6c6743d75d66d3bf8d 100644
--- a/src/MNH/ini_lb.f90
+++ b/src/MNH/ini_lb.f90
@@ -8,7 +8,7 @@
 !
 INTERFACE 
 !
-SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV,                            &
+SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV,                                   &
      KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll,                     &
      KSIZELBXTKE_ll,KSIZELBYTKE_ll,                                         &
      KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll,                 &
@@ -23,7 +23,6 @@ SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV,                            &
 USE MODD_IO_ll, ONLY: TFILEDATA
 !
 TYPE(TFILEDATA),       INTENT(IN)   :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),     INTENT(IN)   :: HLUOUT    ! name for output-listing of nested models
 LOGICAL,               INTENT(IN)   :: OLSOURCE  ! switch for the source term
 ! Larger Scale fields (source if OLSOURCE=T,  fields at time t-dt if OLSOURCE=F) :
 INTEGER,               INTENT(IN)   :: KSV       ! number of passive variables
@@ -66,7 +65,7 @@ END INTERFACE
 !
 END MODULE MODI_INI_LB
 !     ############################################################
-SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV,                   &
+SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV,                          &
      KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll,            &
      KSIZELBXTKE_ll,KSIZELBYTKE_ll,                                &
      KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll,        &
@@ -136,30 +135,29 @@ SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV,                   &
 !
 !*       0.    DECLARATIONS
 !
-
-USE MODD_NSV
-USE MODD_CONF
+USE MODD_CH_AEROSOL
+USE MODD_CH_M9_n,         ONLY: CNAMES, CICNAMES
 USE MODD_CTURB
+USE MODD_CONF
 USE MODD_DUST
+USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
+USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
 USE MODD_IO_ll,           ONLY: TFILEDATA
-USE MODD_SALT
-USE MODD_CH_AEROSOL
+USE MODD_LG,              ONLY: CLGNAMES
+USE MODD_LUNIT_n,         ONLY: TLUOUT
+USE MODD_NSV
+USE MODD_PARAMETERS,      ONLY: JPHEXT,NMNHNAMELGTMAX
 USE MODD_PARAM_LIMA
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES
 USE MODD_PARAM_n
+USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES
+USE MODD_SALT
 !
 USE MODE_FIELD,           ONLY: TFIELDDATA,TYPELOG,TYPEREAL
-USE MODE_FM
 USE MODE_FMREAD
 USE MODE_MSG
 !
-USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES
-USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
-USE MODD_CH_M9_n,         ONLY: CNAMES, CICNAMES
-USE MODD_LG,              ONLY: CLGNAMES
-USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
-USE MODD_PARAMETERS,      ONLY: JPHEXT,NMNHNAMELGTMAX
-USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES
-USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -167,7 +165,6 @@ IMPLICIT NONE
 !
 !
 TYPE(TFILEDATA),       INTENT(IN)   :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),     INTENT(IN)   :: HLUOUT    ! name for output-listing of nested models
 LOGICAL,               INTENT(IN)   :: OLSOURCE  ! switch for the source term
 ! Larger Scale fields (source if OLSOURCE=T,  fields at time t-dt if OLSOURCE=F) :
 INTEGER,               INTENT(IN)   :: KSV       ! number of passive variables
@@ -221,7 +218,7 @@ INTEGER             :: JSV,JRR                    ! Loop index for MOIST AND
                                                   !  additional scalar variables 
 INTEGER             :: IRR                        !  counter for moist variables
 INTEGER             :: IRESP
-INTEGER                :: ILUOUT   !  Logical unit number associated with HLUOUT
+INTEGER             :: ILUOUT   !  Logical unit number associated with TLUOUT
 LOGICAL :: GHORELAX_UVWTH  ! switch for the horizontal relaxation for U,V,W,TH in the FM file 
 LOGICAL :: GHORELAX_TKE    ! switch for the horizontal relaxation for tke in the FM file
 LOGICAL :: GHORELAX_R, GHORELAX_SV ! switch for the horizontal relaxation 
@@ -248,7 +245,7 @@ ENDIF
 !*       1.    SOME INITIALIZATIONS
 !              --------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90
index 8054f4171c4b4e40f5f4b471f68480ce69f7e923..05f3c1b7fc91cfb195eee55f795c542eae15e59d 100644
--- a/src/MNH/ini_lima_cold_mixed.f90
+++ b/src/MNH/ini_lima_cold_mixed.f90
@@ -39,27 +39,26 @@ END MODULE MODI_INI_LIMA_COLD_MIXED
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
 USE MODD_CST
-USE MODD_REF
+USE MODD_LUNIT, ONLY: TLUOUT0
+USE MODD_PARAMETERS
 USE MODD_PARAM_LIMA
-USE MODD_PARAM_LIMA_WARM
 USE MODD_PARAM_LIMA_COLD
 USE MODD_PARAM_LIMA_MIXED
-USE MODD_PARAMETERS
-USE MODD_LUNIT
+USE MODD_PARAM_LIMA_WARM
+USE MODD_REF
 !
-USE MODI_LIMA_FUNCTIONS
 USE MODI_GAMMA
 USE MODI_GAMMA_INC
-USE MODI_RRCOLSS
-USE MODI_RZCOLX
-USE MODI_RSCOLRG
+USE MODI_LIMA_FUNCTIONS
+USE MODI_READ_XKER_GWETH
 USE MODI_READ_XKER_RACCS
-USE MODI_READ_XKER_SDRYG
 USE MODI_READ_XKER_RDRYG
+USE MODI_READ_XKER_SDRYG
 USE MODI_READ_XKER_SWETH
-USE MODI_READ_XKER_GWETH
+USE MODI_RRCOLSS
+USE MODI_RSCOLRG
+USE MODI_RZCOLX
 !
 IMPLICIT NONE
 !
@@ -92,7 +91,6 @@ REAL :: ZFDINFTY              ! Factor used to define the "infinite" diameter
 !
 !
 INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
 LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
                     ! listing
 REAL     :: ZCONC_MAX ! Maximal concentration for snow
@@ -119,8 +117,7 @@ REAL     :: ZFAC_ZRNIC ! Zrnic factor used to decrease Long Kernels
 !-------------------------------------------------------------------------------
 !
 !
-! Initialize output listing
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !
 !*       1.     CHARACTERISTICS OF THE SPECIES
diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90
index 2862e1f11ae863c13243258f8fe7c13a6f8d17c0..718e918cf4a03ad94bfc2e3a440aa1c4451414ef 100644
--- a/src/MNH/ini_ls.f90
+++ b/src/MNH/ini_ls.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE 
 !
-      SUBROUTINE INI_LS(TPINIFILE,HLUOUT,HGETRVM,OLSOURCE,       &
+      SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE,              &
            PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,                      &
            PDRYMASSS,                                            &
            PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, &
@@ -23,7 +23,6 @@ INTERFACE
 USE MODD_IO_ll, ONLY: TFILEDATA
 !
 TYPE(TFILEDATA),        INTENT(IN)    :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),      INTENT(IN)    :: HLUOUT    ! Name for output-listing of nested models
 CHARACTER (LEN=*),      INTENT(IN)    :: HGETRVM   ! GET indicator
 LOGICAL,                INTENT(IN)    :: OLSOURCE  ! Switch for the source term
 ! Larger Scale fields (source if OLSOURCE=T,  fields at time t-dt if OLSOURCE=F) :
@@ -46,7 +45,7 @@ END MODULE MODI_INI_LS
 !
 !
 !     ############################################################
-      SUBROUTINE INI_LS(TPINIFILE,HLUOUT,HGETRVM,OLSOURCE,       &
+      SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE,              &
            PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,                      &
            PDRYMASSS,                                            &
            PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, &
@@ -95,8 +94,8 @@ USE MODD_CONF
 USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODD_TIME ! for type DATE_TIME
 !
-USE MODE_FM
 USE MODE_FMREAD
+USE MODE_MSG
 !
 IMPLICIT NONE
 !
@@ -105,7 +104,6 @@ IMPLICIT NONE
 !
 !
 TYPE(TFILEDATA),        INTENT(IN)    :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),      INTENT(IN)    :: HLUOUT    ! Name for output-listing of nested models
 CHARACTER (LEN=*),      INTENT(IN)    :: HGETRVM   ! GET indicator
 LOGICAL,                INTENT(IN)    :: OLSOURCE  ! Switch for the source term
 ! Larger Scale fields (source if OLSOURCE=T,  fields at time t-dt if OLSOURCE=F) :
@@ -123,8 +121,7 @@ LOGICAL,                INTENT(IN),    OPTIONAL :: OSTEADY_DMASS         ! Md ev
 !
 !*       0.2   declarations of local variables
 !
-INTEGER             :: IRESP
-INTEGER             :: ILUOUT              !  Logical unit number associated with HLUOUT
+!NONE
 !
 !-------------------------------------------------------------------------------
 !
@@ -133,7 +130,7 @@ INTEGER             :: ILUOUT              !  Logical unit number associated wit
 !*       1.    SOME INITIALIZATIONS
 !              --------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+!NONE
 !
 !
 !-------------------------------------------------------------------------------
@@ -165,17 +162,15 @@ IF (OLSOURCE) THEN
     PLSVM(:,:,:) = (PLSVM(:,:,:) - PLSVMM(:,:,:))   / PLENG
     PLSWM(:,:,:) = (PLSWM(:,:,:) - PLSWMM(:,:,:))   / PLENG
     PLSTHM(:,:,:)= (PLSTHM(:,:,:) - PLSTHMM(:,:,:)) / PLENG
-  ELSE 
-    WRITE(ILUOUT,*) 'MISSING argument in INI_LS'
-    STOP
+  ELSE
+    CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LS','missing argument')
   ENDIF
 !  LS-vapor  
   IF (HGETRVM == 'READ') THEN        
     IF (PRESENT(PLSRVMM))   THEN                           
       PLSRVM(:,:,:)  = (PLSRVM(:,:,:) - PLSRVMM(:,:,:)) / PLENG
     ELSE
-      WRITE(ILUOUT,*) 'MISSING argument PLSRVMM in INI_LS'
-      STOP
+      CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LS','missing argument (PLSRVMM)')
     ENDIF
   ENDIF
 ! Dry mass
diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90
index c66a5673d69e143c1b8d3ddc456f38adfac03ad4..064c97c94c3a1d60c577ec00b31914f50e14de51 100644
--- a/src/MNH/ini_micron.f90
+++ b/src/MNH/ini_micron.f90
@@ -286,25 +286,23 @@ END IF
 !
 IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN
   IF (CGETCLOUD=='READ') THEN
-    CALL CLEAN_CONC_RAIN_C2R2 (CLUOUT,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END))
+    CALL CLEAN_CONC_RAIN_C2R2 (XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END))
   ELSE IF (CGETCLOUD=='INI1'.OR.CGETCLOUD=='INI2') THEN
-    CALL SET_CONC_RAIN_C2R2 (CLUOUT,CGETCLOUD,XRHODREF,&
+    CALL SET_CONC_RAIN_C2R2 (CGETCLOUD,XRHODREF,&
          &XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END))
   ENDIF
   IF (CCLOUD == 'C3R5' ) THEN
     IF (CGETCLOUD=='READ') THEN
-      CALL CLEAN_CONC_ICE_C1R3 (CLUOUT,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END))
+      CALL CLEAN_CONC_ICE_C1R3 (XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END))
     ELSE
-      CALL SET_CONC_ICE_C1R3 (CLUOUT,XRHODREF,&
-           &XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END))
+      CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END))
     ENDIF
   ENDIF
 ENDIF
 !
 IF (CCLOUD == 'LIMA') THEN
    IF (CGETCLOUD/='READ') THEN
-      CALL SET_CONC_LIMA(CLUOUT,CGETCLOUD,XRHODREF,&
-                         XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END))
+      CALL SET_CONC_LIMA(CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END))
    END IF
 END IF
 !
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 7b097121f86ba66d6a1052b004e0b68e6fe1041e..4d0fd1eb56e8dfb073599b788e216bc359af2381 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -76,7 +76,6 @@ END MODULE MODI_INI_MODEL_n
 !!
 !!    EXTERNAL
 !!    --------
-!!      FMLOOK      : to retrieve a logical unit number associated with a file
 !!      FMREAD      : to read a LFIFM file
 !!      FMFREE      : to release a logical unit number
 !!      SET_DIM     : to initialize dimensions
@@ -283,7 +282,7 @@ USE MODE_ll
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 USE MODE_IO_ll
 USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
-USE MODE_FM
+USE MODE_FM, ONLY: IO_FILE_OPEN_ll
 USE MODE_FMREAD
 USE MODE_GATHER_ll
 USE MODE_MSG
@@ -533,7 +532,7 @@ NULLIFY(TZINITHALO3D_ll)
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL IO_READ_FIELD(TPINIFILE,'MASDEV',IMASDEV)
 !-------------------------------------------------------------------------------
@@ -964,8 +963,8 @@ ELSEIF( L2D ) THEN                         ! 2D case
   ALLOCATE(XLBYRM(0,0,0,0))
   ALLOCATE(XLBYSVM(0,0,0,0))
 !
-  CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,  &
+       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
        IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
 !
   IF ( LHORELAX_UVWTH ) THEN
@@ -1028,12 +1027,12 @@ ELSEIF( L2D ) THEN                         ! 2D case
 ELSE                                   ! 3D case
 !
 !
-  CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,          &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-  CALL GET_SIZEY_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMY,   &
-       IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,          &
-       IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                    IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                    IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 !
 ! check if local domain not to small for NRIMX NRIMY
 !
@@ -1614,7 +1613,7 @@ IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES
 !              --------------------------------
 !
 CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-before read_field::XUT",PRECISION)
-CALL READ_FIELD(TPINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP,                 &
+CALL READ_FIELD(TPINIFILE,IMASDEV, IIU,IJU,IKU,XTSTEP,                        &
                 CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT,             &
                 CGETRST,CGETRGT,CGETRHT,CGETSVT,CGETSRCT,CGETSIGS,CGETCLDFR,  &
                 CGETBL_DEPTH,CGETSBL_DEPTH,CGETPHC,CGETPHR,CUVW_ADV_SCHEME,   &
@@ -1646,7 +1645,7 @@ CALL READ_FIELD(TPINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP,                 &
 !              ---------------------------
 !
 !
-CALL SET_REF(KMI,TPINIFILE,HLUOUT,                  &
+CALL SET_REF(KMI,TPINIFILE,                         &
              XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY,    &
              XREFMASS,XMASS_O_PHI0,XLINMASS,        &
              XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ )
@@ -1899,7 +1898,7 @@ IF (LLG .AND. LINIT_LG .AND. CPROGRAM=='MESONH') &
 !*       16.    INITIALIZE THE PARAMETERS FOR THE DYNAMICS
 !               ------------------------------------------
 !
-CALL INI_DYNAMICS(HLUOUT,XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT,     &
+CALL INI_DYNAMICS(XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT,            &
              XZHAT,CLBCX,CLBCY,XTSTEP,                                        &
              LVE_RELAX,LVE_RELAX_GRD,LHORELAX_UVWTH,LHORELAX_RV,              &
              LHORELAX_RC,LHORELAX_RR,LHORELAX_RI,LHORELAX_RS,LHORELAX_RG,     &
@@ -2191,27 +2190,27 @@ DEALLOCATE(XSPOWATM)
 !*      23.     BALLOON and AIRCRAFT initializations
 !              ------------------------------------
 !
-CALL INI_AIRCRAFT_BALLOON(TPINIFILE,CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV,  &
-                          IKU,CTURB=="TKEL" ,                                  &
-                          XLATORI, XLONORI                                     )
+CALL INI_AIRCRAFT_BALLOON(TPINIFILE,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, &
+                          IKU,CTURB=="TKEL" ,                          &
+                          XLATORI, XLONORI                             )
 !
 !-------------------------------------------------------------------------------
 !
 !*      24.     STATION initializations
 !              -----------------------
 !
-CALL INI_SURFSTATION_n(CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV,  &
-                       CTURB=="TKEL" ,                            &
-                       XLATORI, XLONORI                           )
+CALL INI_SURFSTATION_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, &
+                       CTURB=="TKEL" ,                    &
+                       XLATORI, XLONORI                   )
 !
 !-------------------------------------------------------------------------------
 !
 !*      25.     PROFILER initializations
 !              ------------------------
 !
-CALL INI_POSPROFILER_n(CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV,  &
-                       CTURB=="TKEL",                             &
-                       XLATORI, XLONORI                           )
+CALL INI_POSPROFILER_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV,  &
+                       CTURB=="TKEL",                      &
+                       XLATORI, XLONORI                    )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90
index 6ad02eb6c14af831b3765db6cf7ee8be4fd7edbb..922a905605aedef693a66c55a74824f19d11ce3c 100644
--- a/src/MNH/ini_one_wayn.f90
+++ b/src/MNH/ini_one_wayn.f90
@@ -349,7 +349,7 @@ IF ( HCLOUD=="C2R2" .OR. HCLOUD=="KHKO" ) THEN
   ELSE IF (CCLOUD == "KESS" ) THEN
     ZINIT_TYPE = "INI2"
   END IF
-  CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
+  CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
   DO JSV=1,3
     CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),&
          &ZTSVM(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
@@ -375,13 +375,13 @@ IF (HCLOUD=="C3R5"  ) THEN
   ELSE IF (CCLOUD == "KESS" ) THEN
     ZINIT_TYPE = "INI2"
   END IF
-  CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
+  CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
   DO JSV=1,3
     CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),&
          &ZTSVM(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
   ENDDO
   ZINIT_TYPE="INI3"
-  CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCM)
+  CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,ZCONCM)
   DO JSV=4,5
     CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV), &
          ZTSVM(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI)
@@ -410,7 +410,7 @@ IF (HCLOUD=="LIMA"  ) THEN
       ELSE
          ZINIT_TYPE = "NONE"
       END IF
-      CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
+      CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
       DO JSV=1,NSV_LIMA_A(KMI)
          CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),&
               &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
@@ -440,7 +440,7 @@ IF (OUSECHAQ) THEN
   IF (.NOT.(LUSECHAQ)) THEN
     ALLOCATE(ZCHEMM(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),&
                    NSV_CHEM_A(KMI)))
-    CALL SET_CHEMAQ_1WAY(HLUOUT,XRHODREF,&
+    CALL SET_CHEMAQ_1WAY(XRHODREF,&
          XSVT(:,:,:,NSV_CHEMBEG_A(KDAD):NSV_CHEMEND_A(KDAD)),ZCHEMM)
     DO JSV=1,NSV_CHEM_A(KMI)
       CALL SET_LSFIELD_1WAY_ll(ZCHEMM(:,:,:,JSV),&
diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90
index e79b9247232626d5dd0c850003db9f5372a4e1b3..b07057047688e718e3c17cb2f148e4775389c577 100644
--- a/src/MNH/ini_posprofilern.f90
+++ b/src/MNH/ini_posprofilern.f90
@@ -14,13 +14,12 @@ MODULE MODI_INI_POSPROFILER_n
 !
 INTERFACE
 !
-      SUBROUTINE INI_POSPROFILER_n(HLUOUT,                          &
-                                      PTSTEP, TPDTSEG, PSEGLEN,     &
-                                      KRR, KSV, OUSETKE,            &
-                                      PLATOR, PLONOR                )
+      SUBROUTINE INI_POSPROFILER_n(PTSTEP, TPDTSEG, PSEGLEN, &
+                                   KRR, KSV, OUSETKE,        &
+                                   PLATOR, PLONOR            )
 !
 USE MODD_TYPE_DATE
-CHARACTER(LEN=*),   INTENT(IN) :: HLUOUT  ! output listing
+!
 REAL,               INTENT(IN) :: PTSTEP  ! time step
 TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
@@ -38,12 +37,11 @@ END INTERFACE
 !
 END MODULE MODI_INI_POSPROFILER_n
 !
-!     ###############################################################
-      SUBROUTINE INI_POSPROFILER_n(HLUOUT,                       &
-                                   PTSTEP, TPDTSEG, PSEGLEN,     &
-                                   KRR, KSV, OUSETKE,            &
-                                   PLATOR, PLONOR                )
-!     ###############################################################
+!     ########################################################
+      SUBROUTINE INI_POSPROFILER_n(PTSTEP, TPDTSEG, PSEGLEN, &
+                                   KRR, KSV, OUSETKE,        &
+                                   PLATOR, PLONOR            )
+!     ########################################################
 !
 !
 !!****  *INI_POSPROFILER_n* - 
@@ -78,17 +76,17 @@ END MODULE MODI_INI_POSPROFILER_n
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_PARAMETERS
-USE MODD_TYPE_PROFILER
-USE MODD_TYPE_DATE
-USE MODD_PROFILER_n
-USE MODD_GRID_n
-USE MODD_DYN_n
 USE MODD_CONF
+USE MODD_DYN_n
 USE MODD_GRID
+USE MODD_GRID_n
+USE MODD_LUNIT_n,      ONLY: TLUOUT
+USE MODD_PARAMETERS
+USE MODD_PROFILER_n
 USE MODD_RADIATIONS_n, ONLY: NAER
+USE MODD_TYPE_PROFILER
+USE MODD_TYPE_DATE
 !
-USE MODE_FM, ONLY : FMLOOK_ll
 USE MODE_GRIDPROJ
 USE MODE_IO_ll
 USE MODE_ll
@@ -102,7 +100,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),   INTENT(IN) :: HLUOUT  ! output listing
 REAL,               INTENT(IN) :: PTSTEP  ! time step
 TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
@@ -118,11 +115,10 @@ REAL,               INTENT(IN) :: PLONOR  ! longitude of origine point
 !
 INTEGER :: ISTORE   ! number of storage instants
 INTEGER :: ILUOUT   ! logical unit
-INTEGER :: IRESP    ! return code
 INTEGER :: IKU      !
 !
 !----------------------------------------------------------------------------
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !----------------------------------------------------------------------------
 !
 !*      1.   Default values
diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90
index b8c91e3b505f22cde6e650b44752ef39c9a229af..1545a64d670890a702d963be1d00e5c72a57a402 100644
--- a/src/MNH/ini_prog_var.f90
+++ b/src/MNH/ini_prog_var.f90
@@ -103,41 +103,42 @@ END MODULE MODI_INI_PROG_VAR
 !              ------------
 !
 !
-USE MODD_CONF  ! declaration modules
+USE MODD_CH_AEROSOL
+USE MODD_CH_M9_n, ONLY : NEQ, CNAMES
+USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH 
+USE MODD_CONF
 USE MODD_CONF_n
 USE MODD_DIM_n
+USE MODD_DUST
 USE MODD_DYN_n
-USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODD_TURB_n
-USE MODD_PARAM_n
-USE MODD_LUNIT
 USE MODD_FIELD_n
+USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODD_LSFIELD_n
-USE MODD_PARAMETERS
+USE MODD_LUNIT
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_NSV
-USE MODD_CH_M9_n, ONLY : NEQ, CNAMES
-USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH 
-USE MODD_CH_AEROSOL
-USE MODD_DUST
+USE MODD_PARAM_n
+USE MODD_PARAMETERS
 USE MODD_SALT
+USE MODD_TURB_n
 !
-USE MODN_DUST
-USE MODN_SALT
-USE MODN_CH_ORILAM
-!
-USE MODI_PGDFILTER
-USE MODI_CH_INIT_SCHEME_n
-USE MODI_CH_AER_INIT_SOA
-!
+USE MODE_IO_ll
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
 USE MODE_FIELD,            ONLY : TFIELDDATA,TYPEREAL
 USE MODE_FM
-USE MODE_MODELN_HANDLER
 USE MODE_FMREAD
-USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_MODELN_HANDLER
 USE MODE_MSG
 USE MODE_POS
 !
+USE MODI_CH_AER_INIT_SOA
+USE MODI_CH_INIT_SCHEME_n
+USE MODI_PGDFILTER
+!
+USE MODN_CH_ORILAM
+USE MODN_DUST
+USE MODN_SALT
+!
 IMPLICIT NONE
 !
 !*       0.1   declaration of arguments
@@ -172,7 +173,7 @@ TYPE(TFILEDATA),POINTER :: TZCHEMFILE => NULL()
 ! get model index
 IMI = GET_CURRENT_MODEL_INDEX()
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(XWT,1)
diff --git a/src/MNH/ini_rain_c2r2.f90 b/src/MNH/ini_rain_c2r2.f90
index a35a5ac6426a30eb231109f451f2e9d1faa0f7f9..51fdf6cb764e8c42716e544be23fa1076a192ecd 100644
--- a/src/MNH/ini_rain_c2r2.f90
+++ b/src/MNH/ini_rain_c2r2.f90
@@ -102,17 +102,15 @@ END MODULE MODI_INI_RAIN_C2R2
 !              ------------
 !
 USE MODD_CST
-USE MODD_REF
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAM_C2R2
+USE MODD_PARAMETERS
 USE MODD_RAIN_C2R2_DESCR
 USE MODD_RAIN_C2R2_KHKO_PARAM
-USE MODD_PARAMETERS
-USE MODD_LUNIT
+USE MODD_REF
 !
-USE MODI_HYPGEO
 USE MODI_GAMMA
-!
-USE MODE_FM
+USE MODI_HYPGEO
 !
 IMPLICIT NONE
 !
@@ -153,7 +151,6 @@ REAL :: ZSMIN, ZSMAX          ! Minimal and maximal supersaturation used to
 !
 !
 INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
 LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
                     ! listing
 !  
@@ -173,7 +170,7 @@ LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
 !        1.     INTIALIZE OUTPUT LISTING AND COMPUTE KSPLITR FOR EACH MODEL
 !               -----------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !*       1.1    Set the raindrop maximum fall velocity
 !
@@ -579,7 +576,6 @@ XCRER = 1.0/ (ZGAMR(6) * XAR**(2.0/3.0))
 !
 GFLAG = .TRUE.
 IF (GFLAG) THEN
-  CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
   WRITE(UNIT=ILUOUT0,FMT='(" Summary of the cloud particule characteristics")')
   WRITE(UNIT=ILUOUT0,FMT='("             CLOUD")')
   WRITE(UNIT=ILUOUT0,FMT='("                   masse: A=",E13.6," B=",E13.6)') &
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 6dd30005fe55d8a7316ec818e286651fca2ad0ce..59375f20cbd8e416da9051a0d160952e82c43f3a 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -357,7 +357,7 @@ END IF
 !
 YDESFM=TRIM(ADJUSTL(YINIFILE))//'.des'
 !
-CALL READ_DESFM_n(KMI,YDESFM,HLUOUT,YCONF,GFLAT,GUSERV,GUSERC,              &
+CALL READ_DESFM_n(KMI,YDESFM,YCONF,GFLAT,GUSERV,GUSERC,                     &
                 GUSERR,GUSERI,GUSECI,GUSERS,GUSERG,GUSERH,GUSECHEM,GUSECHAQ,&
                 GUSECHIC,GCH_PH,GCH_CONV_LINOX,GSALT,GDEPOS_SLT,GDUST,      &
                 GDEPOS_DST, GCHTRANS, GORILAM,                              &
@@ -447,7 +447,7 @@ END IF
 ! routine which read related informations in the EXSEG descriptor in order to 
 ! check coherence between both informations.
 !
-CALL READ_EXSEG_n(KMI,YEXSEG,HLUOUT,YCONF,GFLAT,GUSERV,GUSERC,              &
+CALL READ_EXSEG_n(KMI,YEXSEG,YCONF,GFLAT,GUSERV,GUSERC,                     &
                 GUSERR,GUSERI,GUSECI,GUSERS,GUSERG,GUSERH,GUSECHEM,         &
                 GUSECHAQ,GUSECHIC,GCH_PH,                                   &
                 GCH_CONV_LINOX,GSALT,GDEPOS_SLT,GDUST,GDEPOS_DST,GCHTRANS,  &
diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90
index 7532ff651d27bb907e39762bd24fe729059072a1..08b4121da1e0ff8bde4e98e1933fac8618bc8817 100644
--- a/src/MNH/ini_sizen.f90
+++ b/src/MNH/ini_sizen.f90
@@ -105,31 +105,25 @@ END MODULE MODI_INI_SIZE_n
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE MODD_CONF,       ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, &
+                           L1D, L2D, LPACK
+USE MODD_CONFZ,      ONLY: NZ_PROC
+USE MODD_DIM_n,      ONLY: NIMAX_ll, NJMAX_ll, NKMAX
+USE MODD_DYN,        ONLY: LCORIO
+USE MODD_IO_ll,      ONLY: GSMONOPROC, TFILEDATA
+USE MODD_LBC_n,      ONLY: CLBCX, CLBCY
+USE MODD_LUNIT_n,    ONLY: CLUOUT, CINIFILE, CINIFILEPGD, TLUOUT
+USE MODD_NESTING,    ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, &
+                           NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL
 USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT 
-USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, &
-                    L1D, L2D, LPACK
-!JUAN Z_SPLITTING
-USE MODD_CONFZ,  ONLY:  NZ_PROC
-!JUAN Z_SPLITTING
-USE MODD_DYN, ONLY: LCORIO
-USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, &
-                        NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL
-USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX
-USE MODD_LBC_n, ONLY: CLBCX, CLBCY
-USE MODD_LUNIT_n, ONLY: CLUOUT, CINIFILE,CINIFILEPGD
-USE MODD_IO_ll,   ONLY : GSMONOPROC, TFILEDATA
 !
-USE MODE_ll
-USE MODE_IO_ll
+USE MODE_FM,         ONLY: SET_FMPACK_ll
 USE MODE_FMREAD
-USE MODE_FM
+USE MODE_IO_ll
+USE MODE_ll
 USE MODE_MSG
 USE MODE_POS
-!
-!JUAN
 USE MODE_SPLITTINGZ_ll
-!JUAN
-!
 !
 IMPLICIT NONE
 !
@@ -151,7 +145,7 @@ INTEGER             :: IJPHEXT
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER AND INITIALIZE MODD_LUNIT_n
 !              --------------------------------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 CLUOUT = HLUOUT
 CINIFILEPGD=HINIFILEPGD
 !
diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90
index 64af9982fd301435df0be3f67f5d556abb9eab28..788ec923f7cce4b4470a0b6ea9a3bd95f1a698dc 100644
--- a/src/MNH/ini_spectren.f90
+++ b/src/MNH/ini_spectren.f90
@@ -41,101 +41,93 @@ END MODULE MODI_INI_SPECTRE_n
 !
 !*       0.    DECLARATIONS
 !              ------------
-USE MODE_ll
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-USE MODE_IO_ll
-USE MODE_FM
-USE MODE_FMREAD
-USE MODE_GATHER_ll
-USE MODE_MSG
-USE MODE_TYPE_ZDIFFU
 !
-USE MODD_NSV
-USE MODD_PARAMETERS
+USE MODD_ADV_n
+USE MODD_BIKHARDT_n
+USE MODD_BUDGET
+USE MODD_CH_AERO_n,     ONLY: XSOLORG,XMI
+USE MODD_CH_AEROSOL,    ONLY: LORILAM
+USE MODD_CH_MNHC_n,     ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
+                              CCHEM_INPUT_FILE, LCH_CONV_LINOX,             &
+                              XCH_TUV_DOBNEW, LCH_PH
+USE MODD_CH_PH_n
+USE MODD_CLOUD_MF_n
 USE MODD_CST
 USE MODD_CONF
+USE MODD_CONF_n
+USE MODD_CTURB
+USE MODD_CURVCOR_n
+USE MODD_DEEP_CONVECTION_n
+USE MODD_DIAG_FLAG,     ONLY: LCHEMDIAG
+USE MODD_DIM_n
+USE MODD_DRAGTREE
 USE MODD_DUST
 USE MODD_DYN
+USE MODD_DYN_n
 USE MODD_DYNZD
+USE MODD_DYNZD_n
+USE MODD_ELEC_n,        ONLY: XCION_POS_FW, XCION_NEG_FW
+USE MODD_FIELD_n
 USE MODD_FRC
-USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILEDATA
-USE MODD_REF
-USE MODD_SERIES, ONLY: LSERIES
-USE MODD_TIME
-USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI
+USE MODD_FRC_n
+USE MODD_GET_n
+USE MODD_GRID,          ONLY: XLONORI,XLATORI
+USE MODD_GRID_n
+USE MODD_IO_ll,         ONLY: LIOCDF4,LLFIOUT,TFILEDATA
+USE MODD_LBC_n
+USE MODD_LSFIELD_n
+USE MODD_LUNIT_n,       ONLY: COUTFILE, TLUOUT
+USE MODD_MEAN_FIELD
+USE MODD_MEAN_FIELD_n
+USE MODD_METRICS_n
 USE MODD_NESTING
+USE MODD_NSV
+USE MODD_NUDGING_n,     ONLY: LNUDGING
+USE MODD_OUT_n
+USE MODD_PARAMETERS
+USE MODD_PARAM_KAFR_n
+USE MODD_PARAM_MFSHALL_n
+USE MODD_PARAM_n
+USE MODD_PARAM_RAD_n,   ONLY: CLW, CAER
 USE MODD_PASPOL
-USE MODD_DRAGTREE
-USE MODD_METRICS_n
-USE MODD_DYN_n
-USE MODD_DYNZD_n
-USE MODD_FIELD_n
+USE MODD_PASPOL_n
 USE MODD_PAST_FIELD_n
-USE MODD_MEAN_FIELD_n
-USE MODD_MEAN_FIELD
-USE MODD_ADV_n
-USE MODD_LSFIELD_n
-USE MODD_GRID_n
-USE MODD_GRID, ONLY: XLONORI,XLATORI
-USE MODD_TIME_n
-USE MODD_REF_n
-USE MODD_FRC_n
-USE MODD_CURVCOR_n
-USE MODD_DIM_n
-USE MODD_BUDGET
 USE MODD_RADIATIONS_n
+USE MODD_REF
+USE MODD_REF_n
+USE MODD_SERIES,        ONLY: LSERIES
 USE MODD_SHADOWS_n
-USE MODD_PARAM_RAD_n,   ONLY : CLW, CAER
-USE MODD_VAR_ll,        ONLY : IP
-!
-USE MODD_STAND_ATM,     ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM
-USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
-                           CCHEM_INPUT_FILE, LCH_CONV_LINOX,             &
-                           XCH_TUV_DOBNEW, LCH_PH
-USE MODD_CH_PH_n
-USE MODD_CH_AEROSOL, ONLY : LORILAM
-USE MODD_CH_AERO_n,  ONLY : XSOLORG,XMI
-USE MODD_PARAM_KAFR_n
-USE MODD_PARAM_MFSHALL_n
-USE MODD_DEEP_CONVECTION_n
-USE MODD_OUT_n
-USE MODD_BIKHARDT_n
-USE MODD_NUDGING_n, ONLY : LNUDGING
-USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG
-USE MODD_CLOUD_MF_n
-USE MODD_NSV
-!
-USE MODD_ELEC_n, ONLY : XCION_POS_FW, XCION_NEG_FW
-
-USE MODD_LUNIT_n
-USE MODD_CONF_n
-USE MODD_GET_n
+USE MODD_SPECTRE
+USE MODD_STAND_ATM,     ONLY: XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM
+USE MODD_TIME
+USE MODD_TIME_n
+USE MODD_TURB_CLOUD,    ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI
 USE MODD_TURB_n
-USE MODD_CTURB
-USE MODD_LBC_n
-USE MODD_PASPOL_n
+USE MODD_VAR_ll,        ONLY: IP
 !
+USE MODD_ARGSLIST_ll,   ONLY: LIST_ll
+USE MODE_FMREAD
+USE MODE_GATHER_ll
+USE MODE_IO_ll
+USE MODE_ll
+USE MODE_MODELN_HANDLER
+USE MODE_MSG
+USE MODE_SPLITTINGZ_ll, ONLY: GET_DIM_EXTZ_ll
+USE MODE_TYPE_ZDIFFU
 !
-USE MODI_SET_GRID
-USE MODI_METRICS
-USE MODI_UPDATE_METRICS
-USE MODI_SET_REF
-USE MODI_INI_DYNAMICS
-USE MODI_INI_CPL
 USE MODI_INI_BIKHARDT_n
+USE MODI_INI_CPL
+USE MODI_INI_DYNAMICS
 USE MODI_INI_ONE_WAY_n
+USE MODI_INI_SPAWN_LS_n
 USE MODI_GET_SIZEX_LB
 USE MODI_GET_SIZEY_LB
-USE MODI_INI_SPAWN_LS_n
-USE MODI_UPDATE_NSV
-!
-USE MODD_PARAM_n
-USE MODE_MODELN_HANDLER
-USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll
-
+USE MODI_SET_GRID
+USE MODI_METRICS
+USE MODI_SET_REF
 USE MODI_TEMPORAL_DIST
-
-USE MODD_SPECTRE
+USE MODI_UPDATE_METRICS
+USE MODI_UPDATE_NSV
 !
 IMPLICIT NONE
 !
@@ -149,7 +141,6 @@ TYPE(TFILEDATA),   INTENT(IN) :: TPINIFILE ! Initial file
 !*       0.2   declarations of local variables
 !
 INTEGER             :: JSV     ! Loop index
-INTEGER             :: IRESP   ! Return code of FM routines
 INTEGER             :: ILUOUT  ! Logical unit number of output-listing
 INTEGER             :: IIU     ! Upper dimension in x direction (local)
 INTEGER             :: IJU     ! Upper dimension in y direction (local)
@@ -219,7 +210,7 @@ NULLIFY(TZINITHALO3D_ll)
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !-------------------------------------------------------------------------------
 !
@@ -437,9 +428,9 @@ ELSEIF( L2D ) THEN                         ! 2D case
   ALLOCATE(XLBYRM(0,0,0,0))
   ALLOCATE(XLBYSVM(0,0,0,0))
 !
-  CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
 !
   IF ( LHORELAX_UVWTH ) THEN
     NSIZELBX_ll=2*NRIMX+2
@@ -501,12 +492,12 @@ ELSEIF( L2D ) THEN                         ! 2D case
 ELSE                                   ! 3D case
 !
 !
-  CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,          &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-  CALL GET_SIZEY_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMY,   &
-       IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,          &
-       IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                    IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                    IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 !
 ! check if local domain not to small for NRIMX NRIMY
 !
@@ -782,10 +773,10 @@ END IF
 !              ---------------------------
 !
 !
-CALL SET_REF(KMI,TPINIFILE,HLUOUT,                               &
-             XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY,                 &
-             XREFMASS,XMASS_O_PHI0,XLINMASS,                     &
-             XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ              )
+CALL SET_REF(KMI,TPINIFILE,                        &
+             XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY,   &
+             XREFMASS,XMASS_O_PHI0,XLINMASS,       &
+             XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ)
 !-------------------------------------------------------------------------------
 !
 !*       11.    INITIALIZE THE SOURCE OF TOTAL DRY MASS Md
@@ -804,7 +795,7 @@ END IF
 IF ((KMI==1).AND.(.NOT. LSTEADYLS)) THEN
   IF (LSPECTRE_LSU.OR.LSPECTRE_LSV.OR.LSPECTRE_LSW.OR. &
       LSPECTRE_LSRV.OR.LSPECTRE_LSTH) THEN 
-    CALL INI_CPL(HLUOUT,NSTOP,XTSTEP,LSTEADYLS,CCONF,                           &
+    CALL INI_CPL(HLUOUT,NSTOP,XTSTEP,LSTEADYLS,CCONF,                         &
                CGETTKET,                                                      &
                CGETRVT,CGETRCT,CGETRRT,CGETRIT,                               &
                CGETRST,CGETRGT,CGETRHT,CGETSVT,LCH_INIT_FIELD,                &
@@ -926,7 +917,7 @@ WRITE(COUTFILE,'(A,".",I1,".",A)') CEXP,KMI,TRIM(ADJUSTL(CSEG))
 !*       17.    INITIALIZE THE PARAMETERS FOR THE DYNAMICS
 !               ------------------------------------------
 !
-CALL INI_DYNAMICS(HLUOUT,XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT,     &
+CALL INI_DYNAMICS(XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT,            &
              XZHAT,CLBCX,CLBCY,XTSTEP,                                        &
              LVE_RELAX,LVE_RELAX_GRD,LHORELAX_UVWTH,LHORELAX_RV,              &
              LHORELAX_RC,LHORELAX_RR,LHORELAX_RI,LHORELAX_RS,LHORELAX_RG,     &
diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90
index 73c72cf2ec358230745e05712d1f1aeca6f1044f..3fef3cf0a3e5d91d6b4f054a9cf47442469dd73b 100644
--- a/src/MNH/ini_surfstationn.f90
+++ b/src/MNH/ini_surfstationn.f90
@@ -14,15 +14,13 @@ MODULE MODI_INI_SURFSTATION_n
 !
 INTERFACE
 !
-      SUBROUTINE INI_SURFSTATION_n(HLUOUT,                          &
-                                      PTSTEP, TPDTSEG, PSEGLEN,     &
-                                      KRR, KSV, OUSETKE,            &
-                                      PLATOR, PLONOR                )
+      SUBROUTINE INI_SURFSTATION_n(PTSTEP, TPDTSEG, PSEGLEN, &
+                                   KRR, KSV, OUSETKE,        &
+                                   PLATOR, PLONOR            )
 !
 USE MODD_TYPE_DATE
-CHARACTER(LEN=*),  INTENT(IN)  :: HLUOUT  ! output listing
 REAL,               INTENT(IN) :: PTSTEP  ! time step
-TYPE(DATE_TIME),     INTENT(IN):: TPDTSEG ! segment date and time
+TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
 INTEGER,            INTENT(IN) :: KRR     ! number of moist variables
 INTEGER,            INTENT(IN) :: KSV     ! number of scalar variables
@@ -38,12 +36,11 @@ END INTERFACE
 !
 END MODULE MODI_INI_SURFSTATION_n
 !
-!     ###############################################################
-      SUBROUTINE INI_SURFSTATION_n(HLUOUT,                       &
-                                   PTSTEP, TPDTSEG, PSEGLEN,     &
-                                   KRR, KSV, OUSETKE,            &
-                                   PLATOR, PLONOR                )
-!     ###############################################################
+!     ########################################################
+      SUBROUTINE INI_SURFSTATION_n(PTSTEP, TPDTSEG, PSEGLEN, &
+                                   KRR, KSV, OUSETKE,        &
+                                   PLATOR, PLONOR            )
+!     ########################################################
 !
 !
 !!****  *INI_SURFSTATION_n* - 
@@ -79,15 +76,15 @@ END MODULE MODI_INI_SURFSTATION_n
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_TYPE_DATE
-USE MODD_PARAMETERS
-USE MODD_STATION_n
-USE MODD_GRID_n
-USE MODD_DYN_n
 USE MODD_CONF
+USE MODD_DYN_n
 USE MODD_GRID
+USE MODD_GRID_n
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_PARAMETERS
+USE MODD_STATION_n
+USE MODD_TYPE_DATE
 !
-USE MODE_FM, ONLY : FMLOOK_ll
 USE MODE_GRIDPROJ
 USE MODE_IO_ll
 USE MODE_ll
@@ -101,7 +98,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),   INTENT(IN) :: HLUOUT  ! output listing
 REAL,               INTENT(IN) :: PTSTEP  ! time step
 TYPE(DATE_TIME),    INTENT(IN) :: TPDTSEG ! segment date and time
 REAL,               INTENT(IN) :: PSEGLEN ! segment length
@@ -117,10 +113,9 @@ REAL,               INTENT(IN) :: PLONOR  ! longitude of origine point
 !
 INTEGER :: ISTORE ! number of storage instants
 INTEGER :: ILUOUT ! logical unit
-INTEGER :: IRESP  ! return code
 !
 !----------------------------------------------------------------------------
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !----------------------------------------------------------------------------
 !
 !*      1.   Default values
diff --git a/src/MNH/init_for_convlfi.f90 b/src/MNH/init_for_convlfi.f90
index 211f587a73b6920afbab5621bf09fbbb69a5bc12..4521c64b3b86f1fd8821390d8c7051569a56d522 100644
--- a/src/MNH/init_for_convlfi.f90
+++ b/src/MNH/init_for_convlfi.f90
@@ -264,12 +264,12 @@ ALLOCATE(ZJ(IIU,IJU,IKU))
 CALL INI_CST
 !
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(HLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) 
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) 
 ELSE
   ALLOCATE(XLON(IIU,IJU))
   ALLOCATE(XLAT(IIU,IJU))
   ALLOCATE(XMAP(IIU,IJU))
-  CALL SM_GRIDPROJ(HLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
                    XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ)  
 END IF    
 !
diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90
index dec85eaab3d0b78163a2667a3b43dd2644c63948..cdb20930ca603071ce386fe4fdcfb6b8e3ab6bfa 100644
--- a/src/MNH/init_mnh.f90
+++ b/src/MNH/init_mnh.f90
@@ -86,29 +86,26 @@ USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TPTR2FILE
 USE MODD_LBC_n, ONLY: CLBCX,CLBCY   ! only for spawning purpose
 USE MODD_LUNIT
 USE MODD_LUNIT_n
+USE MODD_MNH_SURFEX_n
 USE MODD_PARAMETERS
 !
+USE MODE_FIELD
+USE MODE_FM,               ONLY: IO_FILE_OPEN_ll
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST
 USE MODE_ll
-USE MODE_FM
+USE MODE_MODELN_HANDLER
+USE MODE_SPLITTINGZ_ll
 !
 USE MODI_INI_CST
 USE MODI_INI_CTURB
-USE MODI_INI_SEG_n
 USE MODI_INI_MODEL_n
-USE MODI_INI_SPECTRE_n
+USE MODI_INI_SEG_n
 USE MODI_INI_SIZE_n
 USE MODI_INI_SIZE_SPAWN
-USE MODI_RESET_EXSEG
-USE MODE_MODELN_HANDLER
-USE MODI_READ_ALL_NAMELISTS
-USE MODD_MNH_SURFEX_n
 USE MODI_INI_SPECTRE_n
-USE MODE_FIELD
-!JUAN
-USE MODE_SPLITTINGZ_ll
-!JUAN
+USE MODI_READ_ALL_NAMELISTS
+USE MODI_RESET_EXSEG
 !
 IMPLICIT NONE
 !
@@ -144,7 +141,7 @@ IF (CPROGRAM/='REAL  ') THEN
   TFILE_OUTPUTLISTING => TLUOUT0
   ILUOUT0=TLUOUT0%NLU
 ELSE
-  CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+  ILUOUT0=TLUOUT0%NLU
 END IF
 !
 WRITE(UNIT=ILUOUT0,FMT="(50('*'),/,'*',48X,'*',/,                  &
diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90
index 9d0e422efa3cc55fa9ef35c9c41816f49492c682..dd82290f25e78e211888c95db4f2771cfa96fa13 100644
--- a/src/MNH/khko_notadjust.f90
+++ b/src/MNH/khko_notadjust.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HLUOUT, HRAD, OCLOSE_OUT,     &
+      SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HRAD, OCLOSE_OUT,             &
                                 PTSTEP, PRHODJ, PPABSM,  PPABST, PRHODREF, PZZ,     &
                                 PTHT,PRVT,PRCT,PRRT,                                &
                                 PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT,         &
@@ -25,8 +25,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KTCOUNT      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
                                                     ! the OUTPUT FM-file
@@ -67,7 +65,7 @@ END INTERFACE
 END MODULE MODI_KHKO_NOTADJUST
 !
 !     ################################################################################
-      SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HLUOUT, HRAD, OCLOSE_OUT,     &
+      SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HRAD, OCLOSE_OUT,             &
                                 PTSTEP, PRHODJ, PPABSM,  PPABST, PRHODREF, PZZ,     &
                                 PTHT,PRVT,PRCT,PRRT,                                &
                                 PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT,         &
@@ -102,17 +100,17 @@ END MODULE MODI_KHKO_NOTADJUST
 !
 !*       0.    DECLARATIONS
 !
-USE MODD_PARAMETERS
-USE MODD_CST
-USE MODD_CONF
 USE MODD_BUDGET
-USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODD_NSV, ONLY : NSV_C2R2BEG
-USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN
+USE MODD_CONF
+USE MODD_CST
+USE MODD_IO_ll,           ONLY: TFILEDATA
+USE MODD_LUNIT_n,         ONLY: TLUOUT
+USE MODD_NSV,             ONLY: NSV_C2R2BEG
+USE MODD_PARAMETERS
+USE MODD_RAIN_C2R2_DESCR, ONLY: XRTMIN
 
 !
-USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL
-USE MODE_FM
+USE MODE_FIELD,           ONLY: TFIELDDATA,TYPEREAL
 USE MODE_FMWRIT
 USE MODE_IO_ll
 USE MODE_MSG
@@ -128,8 +126,6 @@ IMPLICIT NONE
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KTCOUNT      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)    :: HLUOUT   ! Output-listing name for
-                                                    ! model n
 CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
                                                     ! the OUTPUT FM-file
@@ -200,7 +196,7 @@ TYPE(TFIELDDATA)  :: TZFIELD
 !*       1.     PRELIMINARIES
 !               -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
diff --git a/src/MNH/les_specn.f90 b/src/MNH/les_specn.f90
index 61f4aaa490a4b43f96dbc9e4b94ce58a2f2e3054..548c68dd1733bddb665d2360ddece2842d5c82b0 100644
--- a/src/MNH/les_specn.f90
+++ b/src/MNH/les_specn.f90
@@ -59,22 +59,18 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_LES
-USE MODD_LES_n
-!
+USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODD_LUNIT_n
 USE MODD_GRID_n
-USE MODD_LBC_n, ONLY : CLBCX, CLBCY
-USE MODD_NSV, ONLY : NSV
-!
-USE MODD_CONF
+USE MODD_IO_ll, ONLY: TFILEDATA
+USE MODD_LBC_n, ONLY: CLBCX, CLBCY
+USE MODD_LES
+USE MODD_LES_n
+USE MODD_NSV,   ONLY: NSV
 !
+USE MODE_LES_DIACHRO
 USE MODE_ll
-USE MODE_FM
 !
-USE MODE_LES_DIACHRO
 USE MODI_WRITE_LES_n
 !
 IMPLICIT NONE
@@ -86,8 +82,6 @@ TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write
 !
 !*      0.2  declaration of local variables
 !
-INTEGER :: IRESP, ILUOUT
-!
 INTEGER :: JSV       ! scalar loop counter
 !
 CHARACTER(len=5)                      :: YGROUP
@@ -111,8 +105,6 @@ ELSE
   ISPECTRA_NJ =  NSPECTRA_NJ - 1
 END IF
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 ALLOCATE( ZSPECTRAX(ISPECTRA_NI,2,NSPECTRA_K,NLES_TIMES) )
 ALLOCATE( ZSPECTRAY(ISPECTRA_NJ,2,NSPECTRA_K,NLES_TIMES) )
 !
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index 3d86e78dc65e7a2baddeb581b824a0a9dc7bec5d..34eba3ee1d20c66611a46ac75b5618c54b8e7751 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -4,7 +4,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD,                   &
+      SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HRAD,                           &
                              HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
                              PRHODREF, PRHODJ, PEXNREF, PPABSM, PSIGS, PPABST, &
                              PRT, PRS, PSVT, PSVS,                             &
@@ -15,8 +15,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA
 INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
 INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE     ! Output file
-CHARACTER(LEN=*),         INTENT(IN)   :: HLUOUT     ! Output-listing name for
-                                                     ! model n
 CHARACTER*4,              INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
                                                      ! turbulence scheme
 CHARACTER*4,              INTENT(IN)   :: HRAD       ! Radiation scheme name
@@ -56,7 +54,7 @@ END INTERFACE
 END MODULE MODI_LIMA_ADJUST
 !
 !     ##########################################################################
-      SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD,                   &
+      SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HRAD,                           &
                              HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
                              PRHODREF, PRHODJ, PEXNREF, PPABSM, PSIGS, PPABST, &
                              PRT, PRS, PSVT, PSVS,                             &
@@ -137,25 +135,26 @@ END MODULE MODI_LIMA_ADJUST
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS
-USE MODD_CST
+USE MODD_BUDGET
 USE MODD_CONF
-USE MODD_IO_ll, ONLY: TFILEDATA
+USE MODD_CST
+USE MODD_IO_ll,   ONLY: TFILEDATA
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_NSV
+USE MODD_PARAMETERS
 USE MODD_PARAM_LIMA
-USE MODD_PARAM_LIMA_WARM
 USE MODD_PARAM_LIMA_COLD
 USE MODD_PARAM_LIMA_MIXED
-USE MODD_NSV
-USE MODD_BUDGET
-!
-USE MODI_CONDENS
-USE MODI_BUDGET
-USE MODI_LIMA_FUNCTIONS
+USE MODD_PARAM_LIMA_WARM
 !
-USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL
+USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL
 USE MODE_FM
 USE MODE_FMWRIT
 !
+USE MODI_BUDGET
+USE MODI_CONDENS
+USE MODI_LIMA_FUNCTIONS
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -164,8 +163,6 @@ IMPLICIT NONE
 INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
 INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE     ! Output file
-CHARACTER(LEN=*),         INTENT(IN)   :: HLUOUT     ! Output-listing name for
-                                                     ! model n
 CHARACTER*4,              INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
                                                      ! turbulence scheme
 CHARACTER*4,              INTENT(IN)   :: HRAD       ! Radiation scheme name
@@ -282,7 +279,7 @@ TYPE(TFIELDDATA)  :: TZFIELD
 !*       1.     PRELIMINARIES
 !               -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 IIB = 1 + JPHEXT
 IIE = SIZE(PRHODJ,1) - JPHEXT
diff --git a/src/MNH/lochead.f90 b/src/MNH/lochead.f90
index 7fb31cf6c81b7c118361f6710f579ab1a113750c..b1fd1435c89a275e68e00a2a7048475f21a7435f 100644
--- a/src/MNH/lochead.f90
+++ b/src/MNH/lochead.f90
@@ -81,8 +81,9 @@ END MODULE MODI_LOCHEAD
 !*    0.     DECLARATION
 !            -----------
 !
-USE MODD_LUNIT
-USE MODE_FM
+USE MODD_IO_ll,            ONLY : TFILEDATA
+!
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME
 !
 IMPLICIT NONE
 !
@@ -124,9 +125,13 @@ INTEGER, DIMENSION(1)      :: INB1       ! number of lines   in local file
 INTEGER, DIMENSION(1)      :: INB2       ! number of columns in local file
 INTEGER                    :: JLAT       ! loop control
 INTEGER                    :: JLON       ! loop control
+TYPE(TFILEDATA),POINTER    :: TZFILE
 !-------------------------------------------------------------------------------
 !
-IF (ODATASAVE) CALL FMLOOK_ll(HSAVEDDATAFILE,CLUOUT0,ISAVE,IRESP)
+IF (ODATASAVE) THEN
+  CALL IO_FILE_FIND_BYNAME(HSAVEDDATAFILE,TZFILE,IRESP)
+  ISAVE = TZFILE%NLU
+END IF
 !
 ZDLAT=(PGLBLATMAX-PGLBLATMIN)/KGLBNBLAT
 ZDLON=(PGLBLONMAX-PGLBLONMIN)/KGLBNBLON
diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90
index 6a4f44a7e0580b6d459ed944105648da232ecef4..94bd8dfb0399bdeb3650450339bc81f7b43dfa46 100644
--- a/src/MNH/ls_coupling.f90
+++ b/src/MNH/ls_coupling.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE LS_COUPLING (HLUOUT,PTSTEP, OSTEADY_DMASS, HCONF,           &
+      SUBROUTINE LS_COUPLING (PTSTEP, OSTEADY_DMASS, HCONF,                  &
             HGETTKEM,                                                        &
             HGETRVM,HGETRCM,HGETRRM,HGETRIM,                                 &
             HGETRSM,HGETRGM,HGETRHM,HGETSVM,OCH_INIT_FIELD,KSV,              &
@@ -29,7 +29,6 @@ INTERFACE
             PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS,            &
             PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS             )
 !
-CHARACTER(LEN=*), INTENT(IN)       :: HLUOUT      ! Name of the output-listing
 REAL,             INTENT(IN)       :: PTSTEP      ! Time step
 LOGICAL,          INTENT(IN)       :: OSTEADY_DMASS ! Md evolution logical switch
 !
@@ -93,7 +92,7 @@ END MODULE MODI_LS_COUPLING
 !
 !
 !     ######################################################################
-      SUBROUTINE LS_COUPLING (HLUOUT,PTSTEP, OSTEADY_DMASS, HCONF,           &
+      SUBROUTINE LS_COUPLING (PTSTEP, OSTEADY_DMASS, HCONF,                  &
             HGETTKEM,                                                        &
             HGETRVM,HGETRCM,HGETRRM,HGETRIM,                                 &
             HGETRSM,HGETRGM,HGETRHM,HGETSVM,OCH_INIT_FIELD,                  &
@@ -206,7 +205,6 @@ IMPLICIT NONE
 !
 !
 !
-CHARACTER(LEN=*), INTENT(IN)       :: HLUOUT      ! Name of the output-listing
 REAL,             INTENT(IN)       :: PTSTEP      ! Time step
 LOGICAL,          INTENT(IN)       :: OSTEADY_DMASS ! Md evolution logical switch
 CHARACTER(LEN=*), INTENT(IN) :: HCONF  ! configuration var. linked to FMfile
@@ -263,7 +261,7 @@ REAL, DIMENSION(:,:,:,:),        INTENT(OUT) :: PLBYRS  ,PLBYSVS  ! in x and y-d
 !*       0.2   declarations of local variables
 !
 INTEGER                :: ILUOUT                     !  Logical unit number
-                                                     ! associated with HLUOUT 
+                                                     ! associated with TLUOUT 
 INTEGER                :: IRESP
 REAL                   :: ZLENG                      ! Interpolation length
 INTEGER                :: IIMAX,IJMAX,IKMAX       !  Dimensions  of the physical 
@@ -289,7 +287,7 @@ IKU=SIZE(PLSTHM,3)
 !
 IF ( (IIMAX/=KIMAX_ll) .OR. (IJMAX/=KJMAX_ll)                    &
                              .OR. (IKMAX/=(IKU-2*JPVEXT)) ) THEN
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT = TLUOUT%NLU
   WRITE(ILUOUT,FMT=9003)
   WRITE(ILUOUT,*) 'THE GRIDS ARE DIFFERENT IN THE INITIAL FILE :'
   WRITE(ILUOUT,*) KIMAX_ll,'*',KJMAX_ll,'*',IKU-2*JPVEXT
@@ -304,7 +302,7 @@ END IF
 GLSOURCE=.TRUE.
 ZLENG = (NCPL_TIMES(NCPL_CUR,1) - NCPL_TIMES(NCPL_CUR-1,1)) * PTSTEP 
 !
-CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, &
+CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, &
              PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS)
 
 !
@@ -337,7 +335,7 @@ GLSOURCE=.TRUE.
 #endif
 !END IF
 !
-CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV,            &
+CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV,                   &
      KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll,               &
      KSIZELBXTKE_ll,KSIZELBYTKE_ll,                                   &
      KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll,           &
diff --git a/src/MNH/mean_prof.f90 b/src/MNH/mean_prof.f90
index fc555cde62c01e3a439160766979cca81aa12bce..0953cddf48d3c707b9485dc50e65ed24a0f9006c 100644
--- a/src/MNH/mean_prof.f90
+++ b/src/MNH/mean_prof.f90
@@ -59,8 +59,6 @@ END MODULE MODI_MEAN_PROF
 !!
 !!    function ZSECT   : to compute the mean of a 3D field at a constant 
 !!                       altitude
-!!    function FMLOOK  : to retrieve a logical unit number associated
-!!                       with a file 
 !!    Module MODI_ZSECT: contains interface for function ZSECT
 !!
 !!    IMPLICIT ARGUMENTS
@@ -94,13 +92,13 @@ END MODULE MODI_MEAN_PROF
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-USE MODI_ZSECT ! interface module
-USE MODD_CONF  ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_GRID_n
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
 !
+USE MODI_ZSECT
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -120,7 +118,6 @@ REAL,   DIMENSION(:,:,:), INTENT(OUT) :: PZ_FREE   ! discretization in x,y,z
 !*       0.2   Declaration of local variables
 !              ------------------------------
 !
-INTEGER :: ILUOUT0, IRESP
 INTEGER :: ILEVEL,IKB,IKE,ILB,ILE,JK
 REAL    :: ZMIN
 REAL, DIMENSION(SIZE(PF_FREE,3)) :: ZF_FREE
@@ -198,7 +195,6 @@ PF_FREE(:,:,:)=SPREAD(SPREAD(ZF_FREE(:),1,SIZE(PF_FREE,1)),2,SIZE(PF_FREE,2))
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine MEAN_PROF completed'
+WRITE(TLUOUT0%NLU,*) 'Routine MEAN_PROF completed'
 !
 END SUBROUTINE MEAN_PROF
diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90
index e9c06a9b9e617b05887e95616c1794fb2c8cd081..bdf59ffded01d75e54f71a9a3b33a18003ad34d6 100644
--- a/src/MNH/menu_diachro.f90
+++ b/src/MNH/menu_diachro.f90
@@ -9,7 +9,7 @@
 ! MASDEV4_7 diachro 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##################################################
-      SUBROUTINE MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP)
+      SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP)
 !     ##################################################
 !
 !!****  *MENU_DIACHRO* - Creation, ecriture (eventuellement lecture) de
@@ -70,7 +70,6 @@ IMPLICIT NONE
 !              ---------------
 
 TYPE(TFILEDATA),  INTENT(IN) :: TPDIAFILE    ! file to write
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUTDIA
 CHARACTER(LEN=*), INTENT(IN) :: HGROUP
 !
 !*       0.1   Local variables
diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90
index d24d727b7b60daa940dd0436c5b3ea5bccb24d17..66da0cbdbb634707f7513db91c5845dbae31ceec 100644
--- a/src/MNH/mnhclose_namelist.f90
+++ b/src/MNH/mnhclose_namelist.f90
@@ -88,14 +88,6 @@ IF (.NOT.ASSOCIATED(TNAM)) CALL PRINT_MSG(NVERB_FATAL,'IO','CLOSE_FILE_MNH','TNA
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHCLOSE_NAMELIST','called for '//TRIM(TNAM%CNAME))
 !
-SELECT CASE(CPROGRAM)
-  CASE('REAL  ','IDEAL ','DIAG  ')
-    YLUOUT = CLUOUT0
-  CASE('MESONH','SPAWN ')
-    CALL GET_MODEL_NUMBER_ll  (IMI)
-    WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' '
-END SELECT
-!
 !-------------------------------------------------------------------------------
 !
 !* closes the namelist
@@ -105,6 +97,14 @@ IF (TNAM%NLU==KLUNAM) THEN
   CALL IO_FILE_CLOSE_ll(TNAM)
   TNAM => NULL()
 ELSE
+  SELECT CASE(CPROGRAM)
+    CASE('REAL  ','IDEAL ','DIAG  ')
+      YLUOUT = CLUOUT0
+    CASE('MESONH','SPAWN ')
+      CALL GET_MODEL_NUMBER_ll  (IMI)
+      WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' '
+  END SELECT
+  !
   CALL FMLOOK_ll(YLUOUT,YLUOUT,ILUOUT,IRESP)
   WRITE(ILUOUT,*) 'Error for closing a namelist file: '
   WRITE(ILUOUT,*) 'logical unit ',KLUNAM,' does not correspond to namelist file', TNAM%CNAME
diff --git a/src/MNH/mode_gridcart.f90 b/src/MNH/mode_gridcart.f90
index afd145ac16df65965b3545650fec8778198d8388..f4b0104f7078f36bc804f7a18ab99fa24f428dab 100644
--- a/src/MNH/mode_gridcart.f90
+++ b/src/MNH/mode_gridcart.f90
@@ -40,7 +40,6 @@
 !--------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
-USE MODE_FM
 !              ------------
 !
 !-------------------------------------------------------------------------------
@@ -53,7 +52,7 @@ CONTAINS
 !             -------------------
 !-------------------------------------------------------------------------------
 !     #########################################################################
-      SUBROUTINE SM_GRIDCART(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ)
+      SUBROUTINE SM_GRIDCART(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ)
 !     #########################################################################
 !
 !!****  *SM_GRIDCART * - routine to compute J 
@@ -109,6 +108,7 @@ CONTAINS
 !
 USE MODE_ll
 USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
+USE MODD_LUNIT_n,     ONLY : TLUOUT
 !
 USE MODD_PARAMETERS       
 USE MODD_CONF
@@ -119,7 +119,6 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments
 !
-CHARACTER(LEN=*),       INTENT(IN)  :: HLUOUT            ! Output-listing name 
 REAL, DIMENSION(:),     INTENT(IN)  :: PXHAT,PYHAT,PZHAT ! positions x,y,z in 
                                                          ! the cartesian plane
 REAL, DIMENSION(:,:),   INTENT(IN)  :: PZS               ! orography
@@ -160,7 +159,7 @@ INTEGER      :: JI,JJ,JK         ! loop index
 !*       1    RETRIEVE LOGICAL UNIT NUMBERFOR OUTPUT-LISTING AND  DIMENSIONS 
 !             --------------------------------------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 IIU = UBOUND(PXHAT,1)         
 IJU = UBOUND(PYHAT,1)        
diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90
index ac5c13f1c53b2e85dbe200699121747a732c1656..0a5ec42aa39ed7ec0d779d2047b8d764da560def 100644
--- a/src/MNH/mode_gridproj.f90
+++ b/src/MNH/mode_gridproj.f90
@@ -46,7 +46,6 @@
 !------------------------------------------------------------------------------
 !
 !*                0.  DECLARATIONS
-USE MODE_FM
 USE MODE_MPPDB
 USE MODD_CONF
 !------------
@@ -67,7 +66,7 @@ CONTAINS
 !                     --------------------
 !-------------------------------------------------------------------------------
 !      ####################################################################
-       SUBROUTINE SM_GRIDPROJ(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,           &
+       SUBROUTINE SM_GRIDPROJ(PXHAT,PYHAT,PZHAT,PZS,                  &
                               OSLEVE,PLEN1,PLEN2,PZSMT,PLATOR,PLONOR, &
                               PMAP,PLAT,PLON,PDXHAT,PDYHAT,PZZ,PJ     )
 !      ####################################################################
@@ -181,6 +180,7 @@ CONTAINS
 !
 USE MODE_ll
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll, LIST1D_ll
+USE MODD_LUNIT_n,     ONLY : TLUOUT
 !
 USE MODD_CONF          
 USE MODD_CST          
@@ -193,7 +193,6 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments
 !
-CHARACTER(LEN=*),        INTENT(IN) :: HLUOUT            ! Name of output-listing
 REAL, DIMENSION(:),      INTENT(IN) :: PXHAT,PYHAT,PZHAT ! Positions x,y,z in 
                                                          ! the cartesian plane
 REAL, DIMENSION(:,:),    INTENT(IN) :: PZS               ! Orography
@@ -250,7 +249,7 @@ INTEGER      :: JI,JJ,JK         ! loop index
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER FOR OUTPUT-LISTING AND DIMENSIONS 
 !              --------------------------------------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 IIU = UBOUND(PXHAT,1)     
 IJU = UBOUND(PYHAT,1)    
@@ -1540,7 +1539,7 @@ ENDIF
 !
 IF(ITER <= ITERMAX)  RETURN
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 WRITE(ILUOUT,*) ' Error in function LATREF2 (module MODE_GRIDPROJ)'
 WRITE(ILUOUT,*) ' Function fails to converge after ',ITER,' iterations.'
diff --git a/src/MNH/mode_les_diachro.f90 b/src/MNH/mode_les_diachro.f90
index ac9dcc16851b4418d5cae367228043000752e5bd..cf635b445e8dffcae7d7b7c97ccae163de731770 100644
--- a/src/MNH/mode_les_diachro.f90
+++ b/src/MNH/mode_les_diachro.f90
@@ -841,7 +841,7 @@ YTITLE(1) = YGROUP
 !            ----------------------
 !
 IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -967,7 +967,7 @@ YTITLE(1) = YGROUP
 !
 !
 IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -1098,7 +1098,7 @@ YTITLE  (:) = YGROUP//HTITLE(:)
 !            ----------------------
 !
 IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -1233,7 +1233,7 @@ YTITLE  (:) = YGROUP//HTITLE(:)
 !
 !
 IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -1348,7 +1348,7 @@ YTITLE(1) = HGROUP
 !            ----------------------
 !
 IF (IRESP==0) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -1463,7 +1463,7 @@ YTITLE(1) = HGROUP
 !            ----------------------
 !
 IF (IRESP==0) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH,                                    &
                    PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ                   )
@@ -1586,7 +1586,7 @@ END IF
 !            ----------------------
 !
 IF (IRESP==0) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )
 !
@@ -1628,7 +1628,7 @@ IF (GAVG) THEN
   YGROUP    = 'T_'//YGROUP
 END IF
 !
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )
 !
@@ -1730,7 +1730,7 @@ WRITE(YSTRING,FMT="(I6.6)") NINT( XLES_CURRENT_DOMEGAX )
 YCOMMENT(:) = " DOMEGAX="//YSTRING//' '//HCOMMENT
 !
 !
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )
 !
@@ -1742,7 +1742,7 @@ CALL LES_TIME_AVG(ZTRAJT,ZWORK6,IRESP,ZDATIME)
 YGROUP    = 'T_'//YGROUP
 !
 IF (IRESP==0) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )
 DEALLOCATE(ZWORK6)
@@ -1778,7 +1778,7 @@ YTITLE(:) = YGROUP
 WRITE(YSTRING,FMT="(I6.6)") NINT( XLES_CURRENT_DOMEGAY )
 YCOMMENT(:) = " DOMEGAY="//YSTRING//' '//HCOMMENT
 !
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )
 !
@@ -1789,7 +1789,7 @@ CALL LES_TIME_AVG(ZTRAJT,ZWORK6,IRESP,ZDATIME)
 YGROUP    = 'T_'//YGROUP
 !
 IF (IRESP==0) &
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6,     &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE.,   &
                    IIL,IIH,IJL,IJH,IKL,IKH                                     )                   
 !
diff --git a/src/MNH/mode_thermo.f90 b/src/MNH/mode_thermo.f90
index 013132ad528e9597eb36935d41238dbd2e9a14c4..eac5efd6998f33471bf0e7763455563b0d963c55 100644
--- a/src/MNH/mode_thermo.f90
+++ b/src/MNH/mode_thermo.f90
@@ -242,7 +242,7 @@ PFOES(:) = EXP( XALPW - XBETAW/PT(:) - XGAMW*LOG(PT(:))  )
 END FUNCTION SM_FOES_1D
 !-------------------------------------------------------------------------------
 !     ####################################################
-      FUNCTION SM_PMR_HU_3D(HLUOUT,PP,PTV,PHU,PR,KITERMAX) RESULT(PMR)
+      FUNCTION SM_PMR_HU_3D(PP,PTV,PHU,PR,KITERMAX) RESULT(PMR)
 !     ####################################################
 !
 !!****  *SM_PMR_HU_3D * - function to compute vapor mixing ratio
@@ -267,7 +267,6 @@ END FUNCTION SM_FOES_1D
 !!          
 !!    EXTERNAL
 !!    --------
-!!      FMLOOK    : to retrieve logical unit number
 !!      SM_FOES   : to compute saturation vapor pressure
 !!
 !!    IMPLICIT ARGUMENTS
@@ -297,16 +296,13 @@ END FUNCTION SM_FOES_1D
 !              ------------
 !
 USE MODD_CST   
-!
-USE MODE_FM
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments and results
 !
 !
-CHARACTER(LEN=*)                                 :: HLUOUT ! name for output-
-                                                           ! listing  
 REAL, DIMENSION(:,:,:), INTENT(IN)               :: PP     ! Pressure
                                                            ! (Pa) 
 REAL, DIMENSION(:,:,:), INTENT(IN)               :: PTV    ! Virtual Temperature
@@ -337,7 +333,7 @@ INTEGER                                           :: ITER    ! iteration number
 REAL                                              :: ZEPS    ! a small number
 INTEGER, DIMENSION(3)                             :: IMAXLOC ! localisation of
                                                              ! a maximum    
-INTEGER                                           :: ILUOUT,IRESP 
+INTEGER                                           :: ILUOUT 
                                                              ! logical unit for
                                                              ! output-listing
                                                              ! and error code  
@@ -372,7 +368,7 @@ END DO
 !              --------------
 !
 IF ( ANY(ZDT > ZEPS) ) THEN
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT = TLUOUT%NLU
   WRITE(ILUOUT,*) 'ERROR IN FUNCTION SM_PMR_HU (module MODE_THERMO)'
   WRITE(ILUOUT,*) 'FUNCTION FAILS TO CONVERGE AFTER ', ITER,' ITERATIONS'
   WRITE(ILUOUT,*) 'EPS = ' , ZEPS
@@ -389,7 +385,7 @@ END IF
 !-------------------------------------------------------------------------------
 END FUNCTION SM_PMR_HU_3D
 !     ################################################################
-      FUNCTION SM_PMR_HU_1D(HLUOUT,PP,PTV,PHU,PR,KITERMAX) RESULT(PMR)
+      FUNCTION SM_PMR_HU_1D(PP,PTV,PHU,PR,KITERMAX) RESULT(PMR)
 !     ################################################################
 !
 !!****  *SM_PMR_HU_1D * - function to compute vapor mixing ratio
@@ -414,7 +410,6 @@ END FUNCTION SM_PMR_HU_3D
 !!          
 !!    EXTERNAL
 !!    --------
-!!      FMLOOK    : to retrieve logical unit number
 !!      SM_FOES   : to compute saturation vapor pressure
 !!
 !!    IMPLICIT ARGUMENTS
@@ -444,16 +439,13 @@ END FUNCTION SM_PMR_HU_3D
 !              ------------
 !
 USE MODD_CST       
-!
-USE MODE_FM
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments and results
 !
 !
-CHARACTER(LEN=*)                             :: HLUOUT ! name for output-
-                                                       ! listing  
 REAL, DIMENSION(:), INTENT(IN)               :: PP     ! Pressure
                                                        ! (Pa) 
 REAL, DIMENSION(:), INTENT(IN)               :: PTV    ! Virtual Temperature
@@ -517,7 +509,7 @@ END DO
 !              --------------
 !
 IF (ANY(ZDT>ZEPS)) THEN
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT = TLUOUT%NLU
   WRITE(ILUOUT,*) 'ERROR IN FUNCTION SM_PMR_HU (module MODE_THERMO)'
   WRITE(ILUOUT,*) 'FUNCTION FAILS TO CONVERGE AFTER ', ITER,' ITERATIONS'
   WRITE(ILUOUT,*) 'EPS = ' , ZEPS
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index ef3807e70cacfd36847f7162e0412d984f7ca348..97ea0b1434b45f10ea2e9d63c0408a39276047b4 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -254,168 +254,159 @@ END MODULE MODI_MODEL_n
 !*       0.     DECLARATIONS
 !               ------------
 !
-USE MODE_ll
-USE MODE_IO_ll
-USE MODE_ELEC_ll
-USE MODE_NETCDF
-!
-USE MODE_FM
-USE MODE_IO_WRITE_FIELD
-!
-USE MODD_TIME
-USE MODD_DYN
-USE MODD_DYNZD
-USE MODD_CONF
-USE MODD_NESTING
+USE MODD_2D_FRC
+USE MODD_ADV_n
+USE MODD_AIRCRAFT_BALLOON
 USE MODD_BAKOUT
+USE MODD_BIKHARDT_n
+USE MODD_BLANK 
 USE MODD_BUDGET
-USE MODD_PARAMETERS
-USE MODD_PARAM_ICE,        ONLY : LWARM,LSEDIC,LCONVHG,LDEPOSC
-USE MODD_FRC
-USE MODD_AIRCRAFT_BALLOON
-USE MODD_STATION_n
-USE MODD_PROFILER_n
-USE MODD_PARAM_C2R2, ONLY : NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC
-USE MODD_PARAM_C1R3, ONLY : NSEDI => LSEDI, NHHONI => LHHONI
-USE MODD_LES
-USE MODD_LES_BUDGET
-USE MODD_LUNIT
-USE MODD_GRID, ONLY: XLONORI,XLATORI
-USE MODD_SERIES, ONLY: LSERIES
-USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD,CTURBLEN_CLOUD,XCEI
-USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX,TFILE_DUMMY
-!
-USE MODD_SUB_MODEL_n
-USE MODD_GET_n
+USE MODD_CH_AERO_n,      ONLY: XSOLORG, XMI
+USE MODD_CH_MNHC_n,      ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, &
+                               LCH_INIT_FIELD
+USE MODD_CLOUD_MF_n      
+USE MODD_CLOUDPAR_n
+USE MODD_CONF
 USE MODD_CONF_n
+USE MODD_CST, ONLY: XMD
 USE MODD_CURVCOR_n
+USE MODD_DEEP_CONVECTION_n
 USE MODD_DIM_n
+USE MODD_DUST,           ONLY: LDUST
+USE MODD_DYN
 USE MODD_DYN_n
+USE MODD_DYNZD
 USE MODD_DYNZD_n
-USE MODD_ADV_n
+USE MODD_ELEC_DESCR
 USE MODD_FIELD_n
-USE MODD_PAST_FIELD_n
-USE MODD_MEAN_FIELD_n
-USE MODD_MEAN_FIELD
-USE MODD_LSFIELD_n
+USE MODD_FRC
+USE MODD_FRC_n
+USE MODD_GET_n
+USE MODD_GRID,           ONLY: XLONORI,XLATORI
 USE MODD_GRID_n
-USE MODD_METRICS_n
+USE MODD_ICE_C1R3_DESCR, ONLY: XRTMIN_C1R3=>XRTMIN
+USE MODD_IO_ll,          ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX,TFILE_DUMMY
 USE MODD_LBC_n
+USE MODD_LES
+USE MODD_LES_BUDGET
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+USE MODD_LSFIELD_n
+USE MODD_LUNIT,          ONLY: COUTFMFILE,TLUOUT0
+USE MODD_LUNIT_n,        ONLY: TDIAFILE,TINIFILE,TINIFILEPGD,TLUOUT
+USE MODD_MEAN_FIELD
+USE MODD_MEAN_FIELD_n
+USE MODD_METRICS_n
+USE MODD_MNH_SURFEX_n
+USE MODD_NESTING
+USE MODD_NSV
+USE MODD_NUDGING_n
+USE MODD_OUT_n
+USE MODD_PARAM_C1R3,     ONLY: NSEDI => LSEDI, NHHONI => LHHONI
+USE MODD_PARAM_C2R2,     ONLY: NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC
+USE MODD_PARAMETERS
+USE MODD_PARAM_ICE,      ONLY: LWARM,LSEDIC,LCONVHG,LDEPOSC
+USE MODD_PARAM_LIMA,     ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI,  &
+                               MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD,               &
+                               MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL,      &
+                               XRTMIN_LIMA=>XRTMIN
+USE MODD_PARAM_MFSHALL_n
 USE MODD_PARAM_n
+USE MODD_PAST_FIELD_n
+USE MODD_PRECIP_n
+USE MODD_PROFILER_n
+USE MODD_RADIATIONS_n,   ONLY: XTSRAD,XSCAFLASWD,XDIRFLASWD,XDIRSRFSWD, XAER, XDTHRAD
+USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
 USE MODD_REF_n
-USE MODD_FRC_n
-USE MODD_LUNIT_n
-USE MODD_OUT_n
+USE MODD_SALT,           ONLY: LSALT
+USE MODD_SERIES,         ONLY: LSERIES
+USE MODD_SERIES_n,       ONLY: NFREQSERIES
+USE MODD_STATION_n
+USE MODD_SUB_MODEL_n
+USE MODD_TIME
 USE MODD_TIME_n 
+USE MODD_TIMEZ
+USE MODD_TURB_CLOUD,     ONLY: NMODEL_CLOUD,CTURBLEN_CLOUD,XCEI
 USE MODD_TURB_n
-USE MODD_CLOUDPAR_n
-USE MODD_PRECIP_n
-USE MODD_BIKHARDT_n
-USE MODD_DEEP_CONVECTION_n
-USE MODD_NSV
-USE MODD_RADIATIONS_n, ONLY : XTSRAD,XSCAFLASWD,XDIRFLASWD,XDIRSRFSWD, XAER, XDTHRAD
-USE MODD_SERIES_n, ONLY: NFREQSERIES
-USE MODD_CH_AERO_n,    ONLY: XSOLORG, XMI
-USE MODD_CH_MNHC_n,    ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, &
-                             LCH_INIT_FIELD
-USE MODD_DUST,    ONLY: LDUST
-USE MODD_SALT,    ONLY: LSALT
-USE MODD_CST, ONLY: XMD
-USE MODD_NUDGING_n
-USE MODD_PARAM_MFSHALL_n
-USE MODD_ELEC_DESCR
-USE MODD_RAIN_ICE_DESCR,  ONLY : XRTMIN
-USE MODD_ICE_C1R3_DESCR,  ONLY : XRTMIN_C1R3=>XRTMIN
-USE MODD_PARAM_LIMA,      ONLY : XRTMIN_LIMA=>XRTMIN
 !
-USE MODD_CLOUD_MF_n      
-USE MODI_INITIAL_GUESS
-USE MODI_MEAN_FIELD
-USE MODI_BOUNDARIES
+USE MODE_ELEC_ll
+USE MODE_FM
+USE MODE_GRIDCART         
+USE MODE_GRIDPROJ
+USE MODE_IO_ll
+USE MODE_IO_WRITE_FIELD
+USE MODE_ll
+USE MODE_MNH_TIMING
+USE MODE_MODELN_HANDLER
+USE MODE_MPPDB
+USE MODE_NETCDF
+!
+USE MODI_ADD_FORECAST_TO_DATE
 USE MODI_ADVECTION_METSV
 USE MODI_ADVECTION_UVW     
 USE MODI_ADVECTION_UVW_CEN 
-USE MODI_GRAVITY_IMPL         
+USE MODI_ADV_FORCING_n
+USE MODI_AER_MONITOR_n
+USE MODI_AIRCRAFT_BALLOON
+USE MODI_BOUNDARIES
+USE MODI_BUDGET_FLAGS
+USE MODI_CART_COMPRESS
+USE MODI_CH_MONITOR_n
+USE MODI_DIAG_SURF_ATM_N
 USE MODI_DYN_SOURCES
-USE MODI_RELAXATION
-USE MODI_NUM_DIFF
-USE MODI_PHYS_PARAM_n
-USE MODI_RAD_BOUND
-USE MODI_PRESSUREZ
+USE MODI_END_DIAG_IN_RUN
 USE MODI_ENDSTEP
+USE MODI_ENDSTEP_BUDGET
 USE MODI_EXCHANGE
-USE MODI_RESOLVED_CLOUD
-USE MODI_RESOLVED_ELEC_n
-USE MODI_RELAX2FW_ION 
+USE MODI_FORCING
+USE MODI_FORC_SQUALL_LINE
+USE MODI_FORC_WIND
+USE MODI_GET_HALO
+USE MODI_GRAVITY_IMPL         
+USE MODI_INI_DIAG_IN_RUN
+USE MODI_INI_LG
+USE MODI_INI_MEAN_FIELD
+USE MODI_INITIAL_GUESS
+USE MODI_LES_INI_TIMESTEP_n
+USE MODI_LES_N
+USE MODI_LIMA_PRECIP_SCAVENGING
 USE MODI_LS_COUPLING
-USE MODI_WRITE_DESFM_n
-USE MODI_WRITE_LFIFM_n
+USE MODI_MASK_COMPRESS
+USE MODI_MEAN_FIELD
+USE MODI_MENU_DIACHRO
+USE MODI_MNHGET_SURF_PARAM_n
 USE MODI_MNHWRITE_ZS_DUMMY_n
-USE MODI_ENDSTEP_BUDGET
-USE MODI_BUDGET_FLAGS
-USE MODI_ADD_FORECAST_TO_DATE
-USE MODI_FORCING
-USE MODI_ADV_FORCING_n
-USE MODI_REL_FORCING_n
 USE MODI_NUDGING
-USE MODI_TEMPORAL_DIST
-USE MODI_WRITE_LFIFMN_FORDIACHRO_n
-USE MODI_MENU_DIACHRO
-USE MODI_MASK_COMPRESS
-USE MODI_CART_COMPRESS
-USE MODI_SHUMAN
+USE MODI_NUM_DIFF
 USE MODI_ONE_WAY_n
-USE MODI_TWO_WAY
-USE MODI_SPAWN_LS_n
-USE MODI_LES_INI_TIMESTEP_n
-USE MODI_WRITE_LES_n
-USE MODI_AIRCRAFT_BALLOON
-USE MODI_WRITE_AIRCRAFT_BALLOON
-USE MODI_UPDATE_NSV
+USE MODI_PHYS_PARAM_n
+USE MODI_PRESSUREZ
 USE MODI_PROFILER_n
+USE MODI_RAD_BOUND
+USE MODI_RELAX2FW_ION 
+USE MODI_RELAXATION
+USE MODI_REL_FORCING_n
+USE MODI_RESOLVED_CLOUD
+USE MODI_RESOLVED_ELEC_n
+USE MODI_SERIES_N
+USE MODI_SETLB_LG
+USE MODI_SET_MASK
+USE MODI_SHUMAN
+USE MODI_SPAWN_LS_n
 USE MODI_STATION_n
-USE MODI_WRITE_SERIES_n
+USE MODI_TEMPORAL_DIST
+USE MODI_TURB_CLOUD_INDEX
+USE MODI_TWO_WAY
+USE MODI_UPDATE_NSV
+USE MODI_WRITE_AIRCRAFT_BALLOON
+USE MODI_WRITE_DESFM_n
+USE MODI_WRITE_DIAG_SURF_ATM_N
+USE MODI_WRITE_LES_n
+USE MODI_WRITE_LFIFM_n
+USE MODI_WRITE_LFIFMN_FORDIACHRO_n
 USE MODI_WRITE_PROFILER_n
+USE MODI_WRITE_SERIES_n
 USE MODI_WRITE_STATION_n
-USE MODI_MNHGET_SURF_PARAM_n
-USE MODI_INI_DIAG_IN_RUN
-USE MODI_END_DIAG_IN_RUN
-USE MODI_TURB_CLOUD_INDEX
-USE MODI_INI_LG
-USE MODI_INI_MEAN_FIELD
-USE MODI_CH_MONITOR_n
-USE MODI_AER_MONITOR_n
-!
-USE MODE_GRIDCART         
-USE MODE_GRIDPROJ
-USE MODE_MODELN_HANDLER
-!
-USE MODD_2D_FRC
-USE MODD_TIMEZ
-USE MODE_MNH_TIMING
-!
-USE MODD_PARAM_LIMA,       ONLY : MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI,     &
-                                  MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD,  &
-                                  MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL
-USE MODD_BLANK 
-!
-USE MODI_FORC_WIND
-USE MODI_FORC_SQUALL_LINE
-USE MODI_LIMA_PRECIP_SCAVENGING
-USE MODD_LIMA_PRECIP_SCAVENGING_n
-!
-USE MODI_SETLB_LG
 USE MODI_WRITE_SURF_ATM_N
-USE MODI_SET_MASK
-USE MODI_DIAG_SURF_ATM_N
-USE MODI_WRITE_DIAG_SURF_ATM_N
-USE MODI_SERIES_N
-USE MODI_LES_N
-!
-USE MODI_GET_HALO
-USE MODE_MPPDB
-!
-USE MODD_MNH_SURFEX_n
 !
 IMPLICIT NONE
 !
@@ -623,7 +614,7 @@ IF (KTCOUNT == 1) THEN
   CALL IO_FILE_OPEN_ll(TDIAFILE)
 !
   CALL IO_WRITE_HEADER(TDIAFILE)
-  CALL WRITE_DESFM_n(IMI,TRIM(TDIAFILE%CNAME)//'.des',CLUOUT)
+  CALL WRITE_DESFM_n(IMI,TRIM(TDIAFILE%CNAME)//'.des')
   CALL WRITE_LFIFMN_FORDIACHRO_n(TDIAFILE)
 !
 !*       1.4   Initialization of the list of fields for the halo updates
@@ -856,7 +847,7 @@ IF (IMI/=1 .AND. NDAD(IMI)/=IMI .AND. (ISYNCHRO==1 .OR. NDTRATIO(IMI) == 1) ) TH
   DPTR_XLBXSVS=>XLBXSVS
   DPTR_XLBYSVS=>XLBYSVS
   !
-  CALL ONE_WAY_n(NDAD(IMI),CLUOUT,XTSTEP,IMI,KTCOUNT,                   &
+  CALL ONE_WAY_n(NDAD(IMI),XTSTEP,IMI,KTCOUNT,                   &
        DPTR_XBMX1,DPTR_XBMX2,DPTR_XBMX3,DPTR_XBMX4,DPTR_XBMY1,DPTR_XBMY2,DPTR_XBMY3,DPTR_XBMY4,        &
        DPTR_XBFX1,DPTR_XBFX2,DPTR_XBFX3,DPTR_XBFX4,DPTR_XBFY1,DPTR_XBFY2,DPTR_XBFY3,DPTR_XBFY4,        &
        NDXRATIO_ALL(IMI),NDYRATIO_ALL(IMI),NDTRATIO(IMI),         &
@@ -931,7 +922,7 @@ IF (IBAK < NBAK_NUMB ) THEN
     !
     CALL IO_FILE_OPEN_ll(TZBAKFILE)
     !
-    CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des',CLUOUT)
+    CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des')
     CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE)
     CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME)
     COUTFMFILE = TZBAKFILE%CNAME
@@ -1094,7 +1085,7 @@ IF (NMODEL>1) THEN
   DPTR_XDIRSRFSWD=>XDIRSRFSWD
   DPTR_GMASKkids=>GMASKkids
   !
-  CALL TWO_WAY(     CLUOUT,NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP,        &        
+  CALL TWO_WAY(     NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP,                                    &
        DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM, DPTR_XTKEM, DPTR_XSVM,              &        
        DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRTKES,DPTR_XRSVS,              &
        DPTR_XINPRC,DPTR_XINPRR,DPTR_XINPRS,DPTR_XINPRG,DPTR_XINPRH,DPTR_XPRCONV,DPTR_XPRSCONV, &
@@ -1115,10 +1106,10 @@ ZTIME1 = ZTIME2
 XTIME_BU_PROCESS = 0.
 XTIME_LES_BU_PROCESS = 0.
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ)
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ)
   XMAP=1.
 ELSE
-  CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
                    XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ)
 END IF
 !
@@ -1384,7 +1375,7 @@ IF (.NOT. LSTEADYLS) THEN
                                   ! The next current time reachs a
       NCPL_CUR=NCPL_CUR+1         ! coupling one, LS sources are refreshed
       !
-      CALL LS_COUPLING(CLUOUT,XTSTEP,GSTEADY_DMASS,CCONF,                   &
+      CALL LS_COUPLING(XTSTEP,GSTEADY_DMASS,CCONF,                          &
              CGETTKET,                                                      &
              CGETRVT,CGETRCT,CGETRRT,CGETRIT,                               &
              CGETRST,CGETRGT,CGETRHT,CGETSVT,LCH_INIT_FIELD, NSV,           &
@@ -1472,7 +1463,7 @@ XTIME_LES_BU_PROCESS = 0.
 !
 CALL MPPDB_CHECK3DM("before ADVEC_METSV:XU/V/W/TH/TKE/T,XRHODJ",PRECISION,&
                    &  XUT, XVT, XWT, XTHT, XTKET,XRHODJ)
- CALL ADVECTION_METSV ( CLUOUT, TZBAKFILE, GCLOSE_OUT,CUVW_ADV_SCHEME, &
+ CALL ADVECTION_METSV ( TZBAKFILE, GCLOSE_OUT,CUVW_ADV_SCHEME,         &
                  CMET_ADV_SCHEME, CSV_ADV_SCHEME, CCLOUD, NSPLIT,      &
                  LSPLIT_CFL, XSPLIT_CFL, LCFL_WRIT,                    &
                  CLBCX, CLBCY, NRR, NSV, TDTCUR, XTSTEP,               &
@@ -1612,8 +1603,7 @@ CALL MPPDB_CHECK3DM("before pressurez:XRU/V/WS",PRECISION,XRUS,XRVS,XRWS)
   XRVS_PRES = XRVS
   XRWS_PRES = XRWS
 !
-  CALL PRESSUREZ( CLUOUT,                                                &
-                  CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,KTCOUNT, XRELAX,IMI, &
+  CALL PRESSUREZ( CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,KTCOUNT, XRELAX,IMI, &
                   XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,XDXHATM,XDYHATM,XRHOM, &
                   XAF,XBFY,XCF,XTRIGSX,XTRIGSY,NIFAXX,NIFAXY,            &
                   NRR,NRRL,NRRI,XDRYMASST,XREFMASS,XMASS_O_PHI0,         &
@@ -1735,7 +1725,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
     CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:),PTOWN=ZTOWN(:,:))
     CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR,    &
                           NSPLITG, IMI, KTCOUNT,                               &
-                          CLBCX,CLBCY,TZBAKFILE, CLUOUT, CRAD, CTURBDIM,       &
+                          CLBCX,CLBCY,TZBAKFILE, CRAD, CTURBDIM,               &
                           GCLOSE_OUT, LSUBG_COND,LSIGMAS,CSUBG_AUCV,XTSTEP,    &
                           XZZ, XRHODJ, XRHODREF, XEXNREF,                      &
                           XPABST, XTHT,XRT,XSIGS,VSIGQSAT,XMFCONV,XTHM,XRCM,   &
@@ -1744,15 +1734,15 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XSRCT, XCLDFR,XCIT,                                  &
                           LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,           &
-                          XINPRS, XINPRG, XINPRH, XSOLORG , XMI,                                       &
-                          XINDEP, XSUPSAT,  XNACT, XNPRO,XSSPRO,               &
-                          ZSEA, ZTOWN    )
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,                    &
+                          XINPRS, XINPRG, XINPRH, XSOLORG , XMI,               &
+                          XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO,                &
+                          ZSEA, ZTOWN                                          )
     DEALLOCATE(ZTOWN)
   ELSE
     CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR,    &
                           NSPLITG, IMI, KTCOUNT,                               &
-                          CLBCX,CLBCY,TZBAKFILE, CLUOUT, CRAD, CTURBDIM,       &
+                          CLBCX,CLBCY,TZBAKFILE, CRAD, CTURBDIM,               &
                           GCLOSE_OUT, LSUBG_COND,LSIGMAS,CSUBG_AUCV,           &
                           XTSTEP,XZZ, XRHODJ, XRHODREF, XEXNREF,               &
                           XPABST, XTHT,XRT,XSIGS,VSIGQSAT,XMFCONV,XTHM,XRCM,   &
@@ -1761,10 +1751,10 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XSRCT, XCLDFR,XCIT,                                  &
                           LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,             &
-                          XINPRS,XINPRG, XINPRH,   &
-                          XSOLORG, XMI,&
-                          XINDEP, XSUPSAT,  XNACT, XNPRO,XSSPRO           )
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,                    &
+                          XINPRS,XINPRG, XINPRH,                               &
+                          XSOLORG, XMI,                                        &
+                          XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO                 )
   END IF
   XRTHS_CLD  = XRTHS - XRTHS_CLD
   XRRS_CLD   = XRRS  - XRRS_CLD
@@ -1948,7 +1938,7 @@ XT_STEP_SWA = XT_STEP_SWA + ZTIME2 - ZTIME1 - XTIME_BU_PROCESS
 ZTIME1 = ZTIME2
 !
 IF (LFLYER)                                                                   &
-  CALL AIRCRAFT_BALLOON(CLUOUT, XTSTEP,                                       &
+  CALL AIRCRAFT_BALLOON(XTSTEP,                                               &
                       TDTEXP, TDTMOD, TDTSEG, TDTCUR,                         &
                       XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI,              &
                       XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT, XTKET, XTSRAD,  &
@@ -1961,7 +1951,7 @@ IF (LFLYER)                                                                   &
 !               --------------------------------
 !
 IF (LSTATION)                                                            &
-  CALL STATION_n(CLUOUT, XTSTEP,                                         &
+  CALL STATION_n(XTSTEP,                                                 &
                  TDTEXP, TDTMOD, TDTSEG, TDTCUR,                         &
                  XXHAT, XYHAT, XZZ,                                      &
                  XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST   )
@@ -1972,7 +1962,7 @@ IF (LSTATION)                                                            &
 !               ---------------------------------
 !
 IF (LPROFILER)                                                           &
-  CALL PROFILER_n(CLUOUT, XTSTEP,                                        &
+  CALL PROFILER_n(XTSTEP,                                                &
                   TDTEXP, TDTMOD, TDTSEG, TDTCUR,                        &
                   XXHAT, XYHAT, XZZ,XRHODREF,                            &
                   XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST, &
@@ -1999,7 +1989,7 @@ CALL END_DIAG_IN_RUN
 ZTIME1 = ZTIME2
 !
 IF (NBUMOD==IMI .AND. CBUTYPE/='NONE') THEN
-  CALL ENDSTEP_BUDGET(TDIAFILE,CLUOUT,KTCOUNT,TDTCUR,TDTMOD,XTSTEP,NSV)
+  CALL ENDSTEP_BUDGET(TDIAFILE,KTCOUNT,TDTCUR,TDTMOD,XTSTEP,NSV)
 END IF
 !
 CALL SECOND_MNH2(ZTIME2)
@@ -2042,7 +2032,7 @@ END IF
 !
 IF (OEXIT) THEN
 !
-  IF (LSERIES) CALL WRITE_SERIES_n(TDIAFILE,CLUOUT)
+  IF (LSERIES) CALL WRITE_SERIES_n(TDIAFILE)
   CALL WRITE_AIRCRAFT_BALLOON(TDIAFILE)
   CALL WRITE_STATION_n(TDIAFILE)
   CALL WRITE_PROFILER_n(TDIAFILE)
@@ -2050,7 +2040,7 @@ IF (OEXIT) THEN
   CALL WRITE_LES_n(TDIAFILE,'A')
   CALL WRITE_LES_n(TDIAFILE,'E')
   CALL WRITE_LES_n(TDIAFILE,'H')
-  CALL MENU_DIACHRO(TDIAFILE,CLUOUT,'END')
+  CALL MENU_DIACHRO(TDIAFILE,'END')
   CALL IO_FILE_CLOSE_ll(TDIAFILE)
   !
   CALL IO_FILE_CLOSE_ll(TINIFILE)
diff --git a/src/MNH/modules_diachro.f90 b/src/MNH/modules_diachro.f90
index aed84fc7c1e70c94cb22c697c10fd9bc407c629d..a6259e1a48be203a6c876b9590b14544be4bcb2c 100644
--- a/src/MNH/modules_diachro.f90
+++ b/src/MNH/modules_diachro.f90
@@ -14,12 +14,11 @@
 !
 INTERFACE
 !
-SUBROUTINE MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP)
+SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP)
 USE MODD_IO_ll, ONLY: TFILEDATA
 !
 TYPE(TFILEDATA),  INTENT(IN) :: TPDIAFILE    ! file to write
 CHARACTER(LEN=*), INTENT(IN) :: HGROUP
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUTDIA
 !
 END SUBROUTINE MENU_DIACHRO
 !
diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90
index 22c5a35a32b9c416783b4f3f1d5d31efcb6b4917..e1bf6f18715ab884e5038a703a4d87f4882cf8c2 100644
--- a/src/MNH/one_wayn.f90
+++ b/src/MNH/one_wayn.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE 
 !
-      SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,               &
+      SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT,                      &
                     PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4,     &
                     PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4,     &
                     KDXRATIO,KDYRATIO,KDTRATIO,                          &
@@ -36,7 +36,6 @@ INTERFACE
 !
 !
 INTEGER,          INTENT(IN)    :: KDAD     !  Number of the DAD model
-CHARACTER (LEN=*),INTENT(IN)    :: HLUOUT   ! name of the output-listing
 REAL,             INTENT(IN)    :: PTSTEP   !  Time step
 INTEGER,          INTENT(IN)    :: KMI      ! model number
 
@@ -93,7 +92,7 @@ END INTERFACE
 END MODULE MODI_ONE_WAY_n
 !
 !     ####################################################################
-SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,                     &
+SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT,                            &
                     PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4,     &
                     PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4,     &
                     KDXRATIO,KDYRATIO,KDTRATIO,                          &
@@ -222,7 +221,6 @@ IMPLICIT NONE
 !
 !
 INTEGER,          INTENT(IN)    :: KDAD     !  Number of the DAD model
-CHARACTER (LEN=*),INTENT(IN)    :: HLUOUT   ! name for output-listing
 REAL,             INTENT(IN)    :: PTSTEP   !  Time step
 INTEGER,          INTENT(IN)    :: KMI      ! model number
 INTEGER,          INTENT(IN)    :: KTCOUNT  !  Temporal loop COUNTer
@@ -434,7 +432,7 @@ IF (HCLOUD=="C2R2" .OR. HCLOUD=="KHKO") THEN
     ELSE IF (CCLOUD == "KESS" ) THEN
       ZINIT_TYPE = "INI2"
     END IF
-    CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+    CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
     DO JSV=1,3
       CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
            &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
@@ -460,13 +458,13 @@ IF (HCLOUD=="C3R5") THEN
     ELSE IF (CCLOUD == "KESS" ) THEN
       ZINIT_TYPE = "INI2"
     END IF
-    CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+    CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
     DO JSV=1,3
       CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
            &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
     ENDDO
     ZINIT_TYPE="INI3"
-    CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCT)
+    CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,ZCONCT)
     DO JSV=4,5
       CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
            &ZTSVT(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI) 
@@ -493,7 +491,7 @@ IF (HCLOUD=="LIMA"  ) THEN
       ELSE
          ZINIT_TYPE = "NONE"
       END IF
-      CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+      CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
       DO JSV=1,NSV_LIMA_A(KMI)
          CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
               &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
@@ -523,7 +521,7 @@ IF (OUSECHAQ) THEN
   IF (.NOT.(LUSECHAQ)) THEN
     ALLOCATE(ZCHEMT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),&
                    NSV_CHEM_A(KMI)))
-    CALL SET_CHEMAQ_1WAY(HLUOUT,XRHODREF,&
+    CALL SET_CHEMAQ_1WAY(XRHODREF,&
          XSVT(:,:,:,NSV_CHEMBEG_A(KDAD):NSV_CHEMEND_A(KDAD)),ZCHEMT)
     DO JSV=1,NSV_CHEM_A(KMI)
       CALL SET_LSFIELD_1WAY_ll(ZCHEMT(:,:,:,JSV),&
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index 8fc74d0b33041bb818e9322436ce2c3893c9b267..f76445939eb97d0def5031f52e098eb34d9d9c41 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -84,7 +84,7 @@ USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE
 !
 USE MODE_IO_ll
 USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
-USE MODE_FM
+USE MODE_FM,               ONLY : IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll
 USE MODE_POS
 USE MODE_MSG
 !
@@ -127,7 +127,6 @@ INTEGER           :: JPGD    ! loop counter
 LOGICAL           :: GADD    !
 INTEGER           :: NHALO_MNH
 !
-INTEGER           :: ILUOUT  ! Logical unit number for the EXSPA file
 TYPE(TFILEDATA),POINTER :: TZDADFILE
 TYPE(TFILEDATA),POINTER :: TZPRE_NEST_PGD
 !
@@ -176,7 +175,6 @@ CALL IO_FILE_ADD2LIST(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ')
 CALL IO_FILE_OPEN_ll(TZPRE_NEST_PGD)
 IPRE_NEST_PGD = TZPRE_NEST_PGD%NLU
 !reading of NAM_CONFZ
-CALL FMLOOK_ll(HPRE_NEST_PGD,HPRE_NEST_PGD,ILUOUT,IRESP)
 CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFZ',GFOUND)
 IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_CONFZ)
 !
diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90
index b43b5990b3653b45badb49aa0d6c5534e9aba095..400f590f761a693b65b55817740c209a8a96c72f 100644
--- a/src/MNH/phys_paramn.f90
+++ b/src/MNH/phys_paramn.f90
@@ -726,7 +726,7 @@ CALL SUNPOS_n   ( XZENITH, ZCOSZEN, ZSINZEN, ZAZIMSOL )
       XLWD(:,:,:)=0.0
       XDTHRADSW(:,:,:)=0.0
       XDTHRADLW(:,:,:)=0.0
-      CALL RADIATIONS   ( OCLOSE_OUT, TPFILE, CLUOUT,                               &
+      CALL RADIATIONS   ( OCLOSE_OUT, TPFILE,                                       &
                LCLEAR_SKY,OCLOUD_ONLY, NCLEARCOL_TM1,CEFRADL, CEFRADI,COPWSW,COPISW,&
                COPWLW,COPILW, XFUDG,                                                &
                NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD, NAER,NSWB, NSTATM, NRAD_COLNBR,&
diff --git a/src/MNH/polar_calc.f90 b/src/MNH/polar_calc.f90
index d38603d2d70bb4f3cdac482ca33d871a9fbd5596..93927876eff7bbb52f073f7170f24329911301d4 100644
--- a/src/MNH/polar_calc.f90
+++ b/src/MNH/polar_calc.f90
@@ -79,13 +79,12 @@ END MODULE MODI_POLAR_CALC
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONF, ONLY: NVERB
-USE MODD_CST, ONLY: XPI
-USE MODD_LUNIT, ONLY: CLUOUT0
+USE MODD_CONF,   ONLY: NVERB
+USE MODD_CST,    ONLY: XPI
 USE MODD_DIM_n,  ONLY: NIMAX,NJMAX
 USE MODD_GRID_n, ONLY: XXHAT,XYHAT
+USE MODD_LUNIT,  ONLY: TLUOUT0
 !
-USE MODE_FM
 USE MODE_ll
 !
 IMPLICIT NONE
@@ -107,9 +106,9 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE       :: ZVARCYL2
 REAL, DIMENSION(SIZE(PVARCYL,1))          :: ZRADIUS
 REAL                                      :: ZXI0,ZYJ0,ZX00,ZY00,ZXK,ZYK
 REAL                                      :: ZDELTAX,ZDELTAY,ZDELTAR,ZDPHI,ZPHI
+INTEGER                                   :: ILUOUT0
 INTEGER                                   :: IIX,IIY
 INTEGER                                   :: IR,IPHI,IP ! arrays dimensions
-INTEGER                                   :: IRET, ILUOUT0
 INTEGER                                   :: IIB,IJB,IIE,IJE
 INTEGER                                   :: JR,JPHI,JP
 INTEGER,DIMENSION(SIZE(PVARCYL,2))        :: IPBL
@@ -119,7 +118,7 @@ INTEGER,DIMENSION(SIZE(PVARCYL,2))        :: IPBL
 !*	 1.     INITIALIZATIONS
 !               ---------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRET)
+ILUOUT0 = TLUOUT0%NLU
 !
 IR=SIZE(PVARCYL,1)
 IPHI=SIZE(PVARCYL,2)
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 40df2ddbc9e9982bfb57c9e181f6b1cc35198a09..55fbf54b34866062d46f5aaa5321226427a7f1a7 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -459,7 +459,6 @@ INTEGER :: JLOOP,JILOOP,JJLOOP     ! Loop indexes
 INTEGER :: NIB,NJB,NKB             ! Begining useful area  in x,y,z directions
 INTEGER :: NIE,NJE                 ! Ending useful area  in x,y directions
 INTEGER :: NIU,NJU,NKU             ! Upper bounds in x,y,z directions
-CHARACTER (LEN=32) ::  CEXPRE            ! name of the EXPRE file
 CHARACTER (LEN=32) :: CDESFM             ! Name of DESFM file 
 CHARACTER(LEN=4)   :: CIDEAL ='CSTN'     ! kind of idealized fields
                                          ! 'CSTN' : Nv=cste case 
@@ -675,7 +674,6 @@ CALL DEFAULT_EXPRE
 ! 
 CLUOUT  = 'OUTPUT_LISTING1'
 CLUOUT0 = CLUOUT
-CEXPRE  = 'PRE_IDEA1.nam'
 CALL IO_FILE_ADD2LIST(TLUOUT0,CLUOUT0,'OUTPUTLISTING','WRITE')
 CALL IO_FILE_OPEN_ll(TLUOUT0)
 NLUOUT = TLUOUT0%NLU
@@ -683,13 +681,13 @@ NLUOUT = TLUOUT0%NLU
 TLUOUT              => TLUOUT0
 TFILE_OUTPUTLISTING => TLUOUT0
 !
-CALL IO_FILE_ADD2LIST(TZEXPREFILE,TRIM(CEXPRE),'NML','READ')
+CALL IO_FILE_ADD2LIST(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ')
 CALL IO_FILE_OPEN_ll(TZEXPREFILE)
 NLUPRE=TZEXPREFILE%NLU
 !
 !*       3.2   read in NLUPRE the namelist informations
 !
-WRITE(NLUOUT,FMT=*) 'attempt to read ',TRIM(CEXPRE),' file'
+WRITE(NLUOUT,FMT=*) 'attempt to read ',TRIM(TZEXPREFILE%CNAME),' file'
 CALL POSNAM(NLUPRE,'NAM_REAL_PGD',GFOUND,NLUOUT)
 IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_REAL_PGD)
 !
@@ -1032,9 +1030,9 @@ IF ( L1D) THEN                         ! 1D case
 !
 ELSEIF( L2D ) THEN             ! 2D case (not yet parallelized)
 !                                          
-  CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
   NSIZELBY_ll=0
   NSIZELBYV_ll=0
   NSIZELBYTKE_ll=0
@@ -1116,12 +1114,12 @@ ELSEIF( L2D ) THEN             ! 2D case (not yet parallelized)
 !
 ELSE                                   ! 3D case
 !
-  CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-  CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY,   &
-       IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,         &
-       IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                    IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                    IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 !
   IF ( LHORELAX_UVWTH ) THEN
     NSIZELBX_ll=2*NRIMX+2*JPHEXT
@@ -1419,10 +1417,10 @@ IF ( LEN_TRIM(CPGD_FILE) == 0  .OR. .NOT. LREAD_ZS) THEN
 END IF
 !
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,XJ)
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,XJ)
   XMAP=1.
 ELSE
-  CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
                    XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,XJ)
 END IF
 !*       5.4.1  metrics coefficients and update halos:
@@ -1495,10 +1493,10 @@ IF (CIDEAL == 'RSOU') THEN
   BACKSPACE(NLUPRE)    ! because YKIND read again in set_rsou
   WRITE(NLUOUT,FMT=*) 'CIDEAL="RSOU", ATTEMPT TO PROCESS THE SOUNDING DATA'
   IF (LGEOSBAL) THEN
-    CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_RSOU(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_RSOU(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT)
   END IF
 !
@@ -1514,10 +1512,10 @@ ELSE IF (CIDEAL == 'CSTN') THEN
   TDTMOD = TDTCUR
   WRITE(NLUOUT,FMT=*) 'CIDEAL="CSTN", ATTEMPT TO PROCESS THE SOUNDING DATA'
   IF (LGEOSBAL) THEN
-    CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_CSTN(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_CSTN(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT)
   END IF
 !
@@ -1528,7 +1526,7 @@ END IF
 IF (LFORCING) THEN
   WRITE(NLUOUT,FMT=*) 'FORCING IS ENABLED, ATTEMPT TO SET FORCING FIELDS'
   CALL POSKEY(NLUPRE,NLUOUT,'ZFRC ','PFRC')
-  CALL SET_FRC(CEXPRE)
+  CALL SET_FRC(TZEXPREFILE)
 END IF
 !
 !! ---------------------------------------------------------------------
@@ -1539,14 +1537,14 @@ IF (L2D_ADV_FRC) THEN
     WRITE(NLUOUT,FMT=*) 'ADVECTING FORCING USED IS USER MADE, NOT STANDARD ONE ' 
     WRITE(NLUOUT,FMT=*) 'IT IS FOR 2D IDEALIZED WAM STUDY ONLY ' 
    CALL POSKEY(NLUPRE,NLUOUT,'ZFRC_ADV')
-   CALL SET_ADVFRC(CEXPRE)
+   CALL SET_ADVFRC(TZEXPREFILE)
 ENDIF
 IF (L2D_REL_FRC) THEN
     WRITE(NLUOUT,FMT=*) 'L2D_REL_FRC IS SET TO  TRUE'
     WRITE(NLUOUT,FMT=*) 'RELAXATION FORCING USED IS USER MADE, NOT STANDARD ONE ' 
     WRITE(NLUOUT,FMT=*) 'IT IS FOR 2D IDEALIZED WAM STUDY ONLY ' 
    CALL POSKEY(NLUPRE,NLUOUT,'ZFRC_REL')
-   CALL SET_RELFRC(CEXPRE)
+   CALL SET_RELFRC(TZEXPREFILE)
 ENDIF
 !*       5.4    3D Reference state variables :
 !
@@ -1559,10 +1557,10 @@ CALL UPDATE_METRICS(CLBCX,CLBCY,XDXX,XDYY,XDZX,XDZY,XDZZ)
 !
 !*       5.4.2  3D reference state :
 !
-CALL SET_REF(0,TZFILEDUMMY,CLUOUT,                               &
-             XZZ,XZHAT,XJ,XDXX,XDYY,CLBCX,CLBCY,                 &
-             XREFMASS,XMASS_O_PHI0,XLINMASS,                     &
-             XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ              )
+CALL SET_REF(0,TZFILEDUMMY,                        &
+             XZZ,XZHAT,XJ,XDXX,XDYY,CLBCX,CLBCY,   &
+             XREFMASS,XMASS_O_PHI0,XLINMASS,       &
+             XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ)
 !
 !
 !*       5.5.1  Absolute pressure :
@@ -1570,7 +1568,7 @@ CALL SET_REF(0,TZFILEDUMMY,CLUOUT,                               &
 !
 !*       5.5.2  Total mass of dry air Md computation :
 !
-CALL TOTAL_DMASS(CLUOUT,XJ,XRHODREF,XDRYMASST)
+CALL TOTAL_DMASS(XJ,XRHODREF,XDRYMASST)
 !
 !
 !*       5.6    Complete prognostic variables (multipliy by  rhoJ) at time t :
@@ -1651,7 +1649,7 @@ END DO
 !
 !*       5.8   Add a perturbation to a basic state :
 !
-IF(LPERTURB) CALL SET_PERTURB(CEXPRE)
+IF(LPERTURB) CALL SET_PERTURB(TZEXPREFILE)
 !
 !
 !*       5.9   Anelastic correction and pressure:
@@ -1748,7 +1746,7 @@ CALL IO_FILE_OPEN_ll(TINIFILE)
 !
 CALL IO_WRITE_HEADER(TINIFILE)
 !
-CALL WRITE_DESFM_n(1,CDESFM,CLUOUT)
+CALL WRITE_DESFM_n(1,CDESFM)
 !
 CALL WRITE_LFIFM_n(TINIFILE,'')  ! There is no DAD model for PREP_IDEAL_CASE
 !
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 0b3eb434a93e0f87ea30a0d3bd975d472084eee4..eaef806eaffaad80bc22edaa108a3cba01ea4a34 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -826,10 +826,10 @@ ALLOCATE(XZZ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)))
 ALLOCATE(ZJ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)))
 !
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(CLUOUT0,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ)
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ)
   XMAP=1.
 ELSE
-  CALL SM_GRIDPROJ(CLUOUT0,XXHAT,XYHAT,XZHAT,XZS,            &
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,                    &
                    LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, &
                    XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ       )
 END IF
@@ -1062,7 +1062,7 @@ IF (YATMFILETYPE=='GRIBEX') THEN
 END IF
 !
 YDESFM=TRIM(TINIFILE%CNAME)//'.des'
-CALL WRITE_DESFM_n(1,YDESFM,CLUOUT0)
+CALL WRITE_DESFM_n(1,YDESFM)
 CALL IO_WRITE_HEADER(TINIFILE,HDAD_NAME=YDAD_NAME)
 CALL WRITE_LFIFM_n(TINIFILE,YDAD_NAME)
 ! 
diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90
index 47067da094a49f5529256f1eb48a77f8db3666ff..13521b5107363c2f6c82f4b482bf4df469336d00 100644
--- a/src/MNH/prep_surf_mnh.f90
+++ b/src/MNH/prep_surf_mnh.f90
@@ -49,19 +49,16 @@ END MODULE MODI_PREP_SURF_MNH
 !!    P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define
 !------------------------------------------------------------------
 !
-
-!
+USE MODD_IO_SURF_MNH, ONLY : COUTFILE
+USE MODD_LUNIT,       ONLY : COUTFMFILE, TLUOUT0
 USE MODD_LUNIT_n,     ONLY : CINIFILE
+USE MODD_MNH_SURFEX_n
 USE MODD_TIME_n,      ONLY : TDTCUR
-USE MODD_LUNIT,       ONLY : CLUOUT0, COUTFMFILE
-USE MODD_IO_SURF_MNH, ONLY : COUTFILE
-USE MODE_FM
 !
 USE MODI_INIT_PGD_SURF_ATM
 USE MODI_PREP_SURF_ATM
-USE MODI_WRITE_SURF_ATM_N
 USE MODI_WRITE_DIAG_SURF_ATM_N
-USE MODD_MNH_SURFEX_n
+USE MODI_WRITE_SURF_ATM_N
 !
 IMPLICIT NONE
 !
@@ -76,12 +73,11 @@ CHARACTER(LEN=6),  INTENT(IN)   :: HATMFILETYPE! type of the Atmospheric file
 !
 CHARACTER(LEN=28)  :: YPGDFILE  ='                            '  ! name of the pgd file
 CHARACTER(LEN=6)   :: YPGDFILETYPE ='      '                     ! type of the pgd file
-INTEGER  :: ILUOUT0  ! logical unit for listing file
-INTEGER  :: IRESP    ! return code in FM routines
-CHARACTER(LEN=6) :: YATMFILETYPE    ! type of the Atmospheric file
+INTEGER            :: ILUOUT0  ! logical unit for listing file
+CHARACTER(LEN=6)   :: YATMFILETYPE    ! type of the Atmospheric file
 !------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 WRITE(ILUOUT0,*) '***************************************************'
 WRITE(ILUOUT0,*) '***************** EXTERNALIZED SURFACE ************'
 WRITE(ILUOUT0,*) '***************************************************'
diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90
index 4357eb147b084e7c36fd44a7e2e0d72ea90172d6..e3feba7a8b38b602539ea1043fe7c7c91a74294b 100644
--- a/src/MNH/pressure.f90
+++ b/src/MNH/pressure.f90
@@ -13,7 +13,7 @@ MODULE MODI_PRESSURE
 !
 INTERFACE
 !
-      SUBROUTINE PRESSURE(HLUOUT,                                          &
+      SUBROUTINE PRESSURE(                                                 &
       HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI,                &
       PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOM,               &
       PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PPABSM,                    &
@@ -23,8 +23,6 @@ INTERFACE
 !
 IMPLICIT NONE
 !
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -104,7 +102,7 @@ END INTERFACE
 !
 END MODULE MODI_PRESSURE
 !     ######################################################################
-      SUBROUTINE PRESSURE(HLUOUT,                                          &
+      SUBROUTINE PRESSURE(                                                 &
       HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI,                &
       PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOM,               &
       PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PPABSM,                    &
@@ -214,6 +212,7 @@ USE MODD_PARAMETERS
 USE MODD_BUDGET
 USE MODD_CONF
 USE MODD_CST
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODI_MASS_LEAK
 USE MODI_GDIV
 USE MODI_FLAT_INV
@@ -227,14 +226,11 @@ USE MODI_BUDGET
 !
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 USE MODE_ll
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
 !
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
   CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX    ! x-direction LBC type
   CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -323,7 +319,6 @@ INTEGER :: IJE          ! indice J for the last inner mass point along y
 INTEGER :: IKB          ! indice K for the first inner mass point along z
 INTEGER :: IKE          ! indice K for the last inner mass point along z
 INTEGER :: ILUOUT       ! Logical unit of output listing
-INTEGER :: IRESP        ! Return code of FM routines
 !
 REAL, DIMENSION(SIZE(PPABSM,1),SIZE(PPABSM,2),SIZE(PPABSM,3)) :: ZTHETAV, &
                         ! virtual potential temperature
@@ -356,7 +351,7 @@ NULLIFY(TZFIELDS_2_ll)
 !*       1.      PRELIMINARIES
 !                -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE)
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index e714f89d10398fa5f19a03e617c5643b22ddac94..73290bade26a81f039eda9ca6a0590498f47d7ca 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -13,7 +13,7 @@ MODULE MODI_PRESSUREZ
 !
 INTERFACE
 !
-      SUBROUTINE PRESSUREZ(HLUOUT,                                         &
+      SUBROUTINE PRESSUREZ(                                                &
       HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI,                &
       PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOT,               &
       PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,                           &
@@ -26,8 +26,6 @@ INTERFACE
 !
 IMPLICIT NONE
 !
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -110,7 +108,7 @@ END INTERFACE
 !
 END MODULE MODI_PRESSUREZ
 !     ######################################################################
-      SUBROUTINE PRESSUREZ(HLUOUT,                                         &
+      SUBROUTINE PRESSUREZ(                                                &
       HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI,                &
       PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOT,               &
       PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,                           &
@@ -226,43 +224,40 @@ END MODULE MODI_PRESSUREZ
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS
+USE MODD_ARGSLIST_ll, ONLY: LIST_ll
 USE MODD_BUDGET
-USE MODD_CONF
 USE MODD_CST
-USE MODD_REF, ONLY : LBOUSS
-USE MODI_MASS_LEAK
-USE MODI_GDIV
-USE MODI_FLAT_INV
-USE MODI_FLAT_INVZ
-USE MODI_RICHARDSON
+USE MODD_CONF
+USE MODD_DYN_n,       ONLY: LRES, XRES
+USE MODD_LUNIT_n,     ONLY: TLUOUT
+USE MODD_MPIF
+USE MODD_PARAMETERS
+USE MODD_REF,         ONLY: LBOUSS
+USE MODD_VAR_ll,      ONLY: MPI_PRECISION, NMNH_COMM_WORLD , NPROC
+!
+USE MODE_IO_ll,       ONLY: CLOSE_ll
+USE MODE_ll
+USE MODE_MPPDB
+USE MODE_MSG
+!
+USE MODI_BUDGET
 USE MODI_CONJGRAD
 USE MODI_CONRESOL
 USE MODI_CONRESOLZ
+USE MODI_FLAT_INV
+USE MODI_FLAT_INVZ
+USE MODI_GDIV
 USE MODI_GRADIENT_M
-USE MODI_SHUMAN
+USE MODI_MASS_LEAK
 USE MODI_P_ABS
-USE MODI_BUDGET
-!
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-USE MODE_ll
-USE MODE_FM
-USE MODE_MSG
-!JUANZ
+USE MODI_RICHARDSON
+USE MODI_SHUMAN
 USE MODI_SUM_ll , ONLY : GMAXLOC_ll
-USE MODD_DYN_n  , ONLY : LRES, XRES
-USE MODD_MPIF
-USE MODD_VAR_ll, ONLY : MPI_PRECISION, NMNH_COMM_WORLD , NPROC
-!JUANZ
-USE MODE_MPPDB
-USE MODE_IO_ll, ONLY: CLOSE_ll
 !
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
 !
-CHARACTER(LEN=*),       INTENT(IN)   ::  HLUOUT       ! Output-listing name for
-                                                      ! model n
   CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX    ! x-direction LBC type
   CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -386,7 +381,7 @@ INTEGER :: IIMAX_ll,IJMAX_ll
 !*       1.      PRELIMINARIES
 !                -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL GET_GLOBALDIMS_ll (IIMAX_ll,IJMAX_ll)
 IF ( ( MIN(IIMAX_ll,IJMAX_ll) < NPROC  ) .AND. ( HPRESOPT /= 'ZRESI' ) ) THEN
diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90
index 84d627190cf4c1260a089b1ece3ba6f702095c1c..041e1f2a189bfad1bb4f72a62e52f0c960890d1d 100644
--- a/src/MNH/profilern.f90
+++ b/src/MNH/profilern.f90
@@ -14,7 +14,7 @@ MODULE MODI_PROFILER_n
 !
 INTERFACE
 !
-      SUBROUTINE PROFILER_n(HLUOUT, PTSTEP,                       &
+      SUBROUTINE PROFILER_n(PTSTEP,                               &
                             TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                             PXHAT, PYHAT, PZ,PRHODREF,            &
                             PU, PV, PW, PTH, PR, PSV, PTKE,       &
@@ -22,7 +22,6 @@ INTERFACE
 !
 USE MODD_TYPE_DATE
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -54,7 +53,7 @@ END INTERFACE
 END MODULE MODI_PROFILER_n
 !
 !  ########################################################
-      SUBROUTINE PROFILER_n(HLUOUT, PTSTEP,                       &
+      SUBROUTINE PROFILER_n(PTSTEP,                               &
                             TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                             PXHAT, PYHAT, PZ,PRHODREF,            &
                             PU, PV, PW, PTH, PR, PSV, PTKE,       &
@@ -112,7 +111,6 @@ USE MODD_DIAG_IN_RUN
 USE MODD_CONF
 USE MODD_NSV
 !
-USE MODE_FM, ONLY : FMLOOK_ll
 USE MODE_ll
 !
 USE MODI_WATER_SUM
@@ -130,7 +128,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -226,8 +223,6 @@ REAL  :: ZRDSRV                 ! XRD/XRV
 !*      2.   PRELIMINARIES
 !            -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
 !*      2.0   Refractivity coeficients
 !             ------------------------
 ! Bevis et al. (1994)
diff --git a/src/MNH/radar_c2r2.f90 b/src/MNH/radar_c2r2.f90
index 1cab50619db0e2d2585d9bcc9ff3f60be950d0b3..2e2703ed3972a05a50e4082d8a9d3676e4d660df 100644
--- a/src/MNH/radar_c2r2.f90
+++ b/src/MNH/radar_c2r2.f90
@@ -90,15 +90,13 @@ END MODULE MODI_RADAR_C2R2
 !
 USE MODD_CONF
 USE MODD_CST
-USE MODD_REF
 USE MODD_PARAMETERS
-USE MODD_LUNIT
 USE MODD_PARAM_C2R2
 USE MODD_RAIN_C2R2_KHKO_PARAM
 USE MODD_RAIN_C2R2_DESCR
+USE MODD_REF
 !
 USE MODI_GAMMA
-USE MODE_FM
 !
 IMPLICIT NONE
 !
@@ -147,11 +145,6 @@ REAL                                                          :: ZFRAC_WATER
 REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZWLBDR
 REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZWLBDC
 !
-INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
-LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
-                    ! listing
-!  
 !-------------------------------------------------------------------------------
 !
 !
@@ -171,8 +164,6 @@ LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
 !               -----------------------------------------
 !
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
 PRARE(:,:,:) = 0.0    ! radar reflectivity
 PVDOP(:,:,:) = 0.0    ! radar Doppler fall speed
 PHHRE(:,:,:) = 0.0    ! Horizontally polarized radar reflectivity
diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90
index a48ed3c87fea4066b0db85b76df3bcfbefef1283..74759be77a16bb1992568cc5ff9387201fdbe11b 100644
--- a/src/MNH/radar_rain_ice.f90
+++ b/src/MNH/radar_rain_ice.f90
@@ -95,7 +95,6 @@ END MODULE MODI_RADAR_RAIN_ICE
 !
 USE MODD_CST
 USE MODD_REF
-!USE MODD_RAIN_ICE_PARAM
 USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,&
                                XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,&
                                XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,&
@@ -129,7 +128,6 @@ USE MODD_PARAM_n, ONLY : CCLOUD
 USE MODD_LUNIT
 !
 USE MODE_IO_ll
-USE MODE_FM
 !
 IMPLICIT NONE
 !
@@ -177,8 +175,6 @@ REAL,    DIMENSION(SIZE(PTEMP,1),SIZE(PTEMP,2),SIZE(PTEMP,3)) :: ZREFL_MELT_CONV
 INTEGER                                                       :: JLBDA
 REAL                                                          :: ZFRAC_WATER
 !
-INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
 LOGICAL  :: GFLAG   ! Logical flag for printing the constatnts on the output
                     ! listing
 !
@@ -213,8 +209,6 @@ REAL :: ZLB,ZLBEX ,  ZCC,ZCX,ZC,ZD
 !               -----------------------------------------
 !
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
 PRARE(:,:,:) = 0.0    ! radar reflectivity
 PVDOP(:,:,:) = 0.0    ! radar Doppler fall speed
 PRZDR(:,:,:) = 0.0    ! radar differential reflectivity
diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90
index 309da7da1f84fc8cb8771cb0f715fdf0edb39cf5..626e8a58f52cf831bfbed3957db39edd268b682d 100644
--- a/src/MNH/radiations.f90
+++ b/src/MNH/radiations.f90
@@ -9,7 +9,7 @@
 !
 INTERFACE 
 !
-    SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY,    &
+    SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY,           &
                KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,      &
                PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
                KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                              &
@@ -24,8 +24,6 @@ LOGICAL, INTENT(IN)                  :: OCLOSE_OUT! flag indicating that a FM
                                                   ! file is opened during this 
                                                   ! time-step
 TYPE(TFILEDATA),  INTENT(IN)         :: TPFILE    ! Output file
-CHARACTER(LEN=*), INTENT(IN)         :: HLUOUT    ! Output-listing name for
-                                                  ! model n
 LOGICAL, INTENT(IN)                  :: OCLOUD_ONLY! flag for the cloud column
                                                    !    computations only
 LOGICAL, INTENT(IN)                  :: OCLEAR_SKY ! 
@@ -108,7 +106,7 @@ END INTERFACE
 END MODULE MODI_RADIATIONS  
 !
 !   ############################################################################
-    SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY,    &
+    SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY,           &
                KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,      &
                PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
                KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                              &
@@ -217,46 +215,42 @@ END MODULE MODI_RADIATIONS
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1 , ONLY : JPRB
+USE PARKIND1,         ONLY: JPRB
+USE YOESW,            ONLY: RTAUA, RPIZA, RCGA
 !
-USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL
-USE MODE_FMWRIT
-USE MODE_FM
-USE MODE_ll
-USE MODI_ECMWF_RADIATION_VERS2
-USE YOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
-
-!
-USE MODD_TIME
+USE MODD_CH_AEROSOL,  ONLY: LORILAM
 USE MODD_CST
-USE MODD_IO_ll, ONLY: TFILEDATA
+USE MODD_DUST,        ONLY: LDUST
+USE MODD_IO_ll,       ONLY: TFILEDATA
+USE MODD_LUNIT_n,     ONLY: TLUOUT
+USE MODD_NSV,         ONLY: NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END,     &
+                            NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END,     &
+                            NSV_DSTBEG, NSV_DSTEND,               &
+                            NSV_AERBEG, NSV_AEREND,               &
+                            NSV_SLTBEG, NSV_SLTEND,               &
+                            NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END,   &
+                            NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI
 USE MODD_PARAMETERS
+USE MODD_PARAM_LIMA
+USE MODD_PARAM_n,     ONLY: CCLOUD
+USE MODD_PARAM_RAD_n, ONLY: CAOP
 USE MODD_RAIN_ICE_DESCR
-USE MODD_NSV, ONLY : NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, &
-                     NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, &
-                     NSV_DSTBEG, NSV_DSTEND, &
-                     NSV_AERBEG, NSV_AEREND, &
-                     NSV_SLTBEG, NSV_SLTEND, &
-                     NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END, &
-                     NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI
-USE MODD_PARAM_n, ONLY : CCLOUD
+USE MODD_SALT,        ONLY: LSALT
+USE MODD_TIME
 !
-USE MODE_THERMO
-
-USE MODD_DUST, ONLY: LDUST
-USE MODD_SALT, ONLY: LSALT
-USE MODD_CH_AEROSOL, ONLY: LORILAM
-USE MODD_PARAM_RAD_n, ONLY: CAOP
 USE MODE_DUSTOPT
-USE MODE_SALTOPT
-USE MODI_AEROOPT_GET
-USE MODD_PARAM_LIMA
-!
+USE MODE_FIELD,       ONLY: TFIELDDATA,TYPEREAL
+USE MODE_FMWRIT
+USE MODE_ll
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
 #endif
+USE MODE_SALTOPT
+USE MODE_THERMO
 !
-USE MODI_SUM_ll , ONLY : GMINLOC_ll , MIN_ll
+USE MODI_AEROOPT_GET
+USE MODI_ECMWF_RADIATION_VERS2
+USE MODI_SUM_ll,      ONLY: GMINLOC_ll, MIN_ll
 !  
 IMPLICIT NONE
 !
@@ -266,8 +260,6 @@ LOGICAL, INTENT(IN)                  :: OCLOSE_OUT! flag indicating that a FM
                                                   ! file is opened during this 
                                                   ! time-step
 TYPE(TFILEDATA),  INTENT(IN)         :: TPFILE    ! Output file
-CHARACTER(LEN=*), INTENT(IN)         :: HLUOUT    ! Output-listing name for
-                                                  ! model n
 LOGICAL, INTENT(IN)                  :: OCLOUD_ONLY! flag for the cloud column
                                                    !    computations only
 LOGICAL, INTENT(IN)                  :: OCLEAR_SKY ! 
@@ -658,7 +650,7 @@ ZDZPABST(:,:,IKU) = ZDZPABST(:,:,IKU-1)
 ZMINVAL=MIN_ll(ZDZPABST,IINFO_ll)
 !
 IF ( ZMINVAL <= 0.0 ) THEN
-   CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+   ILUOUT = TLUOUT%NLU
    IMINLOC=GMINLOC_ll( ZDZPABST )
    WRITE(ILUOUT,*) ' radiation.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ZDZPABST <= 0.0 '  
    WRITE(ILUOUT,*) ' radiation :: ZDZPABST ', ZMINVAL,' located at ',   IMINLOC
@@ -2612,7 +2604,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN
   !
   IF( KRAD_DIAG >= 1) THEN
     !
-    CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+    ILUOUT = TLUOUT%NLU
     WRITE(UNIT=ILUOUT,FMT='(/," STORE ADDITIONNAL RADIATIVE FIELDS:", &
          & " KRAD_DIAG=",I1,/)') KRAD_DIAG
     DO JK=IKB,IKE
diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90
index 8ff5fda928da471bcc2a5a722335de8656a34886..0d1fbae8d17379ea72b41a0e119b72718ddc9bef 100644
--- a/src/MNH/read_all_data_grib_case.f90
+++ b/src/MNH/read_all_data_grib_case.f90
@@ -889,7 +889,7 @@ ALLOCATE (ZR_DUM(IIU,IJU,INLEVEL,1))
 ALLOCATE (ZRV_LS(IIU,IJU,INLEVEL))
 ALLOCATE (ZTEV_LS(IIU,IJU,INLEVEL))
 ZTEV_LS(:,:,:) = ZTHV_LS(:,:,:) * ZEXNM_LS(:,:,:)
-ZRV_LS(:,:,:) = SM_PMR_HU(CLUOUT0, ZPM_LS(:,:,:),      &
+ZRV_LS(:,:,:) = SM_PMR_HU(ZPM_LS(:,:,:),                &
 ZTEV_LS(:,:,:),ZH_LS(:,:,:),ZR_DUM(:,:,:,:),KITERMAX=100)
 IF (HFILE(1:3)=='ATM') THEN
   XQ_LS(:,:,:,1) = ZRV_LS(:,:,:) / (1. + ZRV_LS(:,:,:))
diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90
index b62c8eea55263a1b65c2ee2bf4213300c7854ad5..25b08203f710f9941f27f030d22244f195679e7d 100644
--- a/src/MNH/read_chem_data_netcdf_case.f90
+++ b/src/MNH/read_chem_data_netcdf_case.f90
@@ -56,8 +56,6 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE
 !!    subroutine HORIBL            : horizontal bilinear interpolation
 !!    subroutine XYTOLATLON        : projection from conformal to lat,lon
 !!
-!!    function   FMLOOK_ll         : to retrieve the logical unit associated with a file
-!!
 !!    Module     MODI_READ_VER_GRID     : interface for subroutine READ_VER_GRID
 !!    Module     MODI_HORIBL            : interface for subroutine HORIBL
 !!    Module     MODI_XYTOLATLON        : interface for subroutine XYTOLATLON
@@ -84,45 +82,43 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE
 !
 !*      0. DECLARATIONS
 !------------
-USE MODE_FM
-USE MODE_IO_ll
-USE MODE_TIME
-!
-USE MODI_READ_HGRID_n
-USE MODI_READ_VER_GRID
-USE MODI_XYTOLATLON
-USE MODI_HORIBL
-USE MODI_INI_NSV
-USE MODI_CH_INIT_SCHEME_n
-USE MODI_CH_AER_INIT_SOA
 !
+USE MODD_BLANK
+USE MODD_CH_AEROSOL, ONLY: CORGANIC, NCARB, NSOA, NSP, LORILAM,&
+                           JPMODE, LVARSIGI, LVARSIGJ,CAERONAMES
+USE MODD_CH_M9_n,    ONLY: NEQ ,  CNAMES
+USE MODD_CH_MNHC_n,  ONLY: LUSECHEM,LUSECHAQ,LUSECHIC,LCH_PH
 USE MODD_CONF
 USE MODD_CONF_n
 USE MODD_CST
-USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODD_LUNIT
-USE MODD_PARAMETERS
+USE MODD_DIM_n
 USE MODD_GRID
 USE MODD_GRID_n
-USE MODD_DIM_n
-USE MODD_PARAM_n, ONLY : CTURB
-USE MODD_TIME
-USE MODD_TIME_n
-USE MODD_CH_MNHC_n, ONLY : LUSECHEM,LUSECHAQ,LUSECHIC,LCH_PH
-USE MODD_CH_M9_n,   ONLY : NEQ ,  CNAMES
-USE MODD_CH_AEROSOL, ONLY: CORGANIC, NCARB, NSOA, NSP, LORILAM,&
-                           JPMODE, LVARSIGI, LVARSIGJ,CAERONAMES
+USE MODD_IO_ll,      ONLY: TFILEDATA
+USE MODD_LUNIT,      ONLY: TLUOUT0
+USE MODE_MODELN_HANDLER
+USE MODD_NETCDF,     ONLY:IDCDF_KIND
 USE MODD_NSV  
+USE MODD_PARAMETERS
+USE MODD_PARAM_n,    ONLY : CTURB
 USE MODD_PREP_REAL
-USE MODE_MODELN_HANDLER
-!JUAN REALZ
+USE MODD_TIME
+USE MODD_TIME_n
+!
+USE MODE_FM
+USE MODE_IO_ll
 USE MODE_MPPDB
-!JUAN REALZ
-USE MODI_CH_OPEN_INPUT  
 USE MODE_THERMO
+USE MODE_TIME
 !
-USE MODD_BLANK
-USE MODD_NETCDF, ONLY:IDCDF_KIND
+USE MODI_CH_AER_INIT_SOA
+USE MODI_CH_INIT_SCHEME_n
+USE MODI_CH_OPEN_INPUT  
+USE MODI_HORIBL
+USE MODI_INI_NSV
+USE MODI_READ_HGRID_n
+USE MODI_READ_VER_GRID
+USE MODI_XYTOLATLON
 !
 USE NETCDF
 !
@@ -142,7 +138,6 @@ LOGICAL,            INTENT(IN)    :: ODUMMY_REAL! flag to interpolate dummy fiel
 !      ------------------------------
 ! General purpose variables
 INTEGER                            :: ILUOUT0       ! Unit used for output msg.
-INTEGER                            :: IRESP   ! Return code of FM-routines
 INTEGER                            :: IRET          ! Return code from subroutines
 INTEGER                            :: JI,JJ,JK      ! Dummy counters
 INTEGER                            :: JLOOP1        !  |
@@ -218,7 +213,7 @@ IMI = GET_CURRENT_MODEL_INDEX()
 !* 1. READ PGD FILE
 !     -------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRET)
+ILUOUT0 = TLUOUT0%NLU
 CALL READ_HGRID_n(TPPGDFILE,YPGD_NAME,YPGD_DAD_NAME,YPGD_TYPE)
 !
 ! 1.1 Domain restriction
diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90
index 662a7ae196733e26291954904ba3d2929e4d83d3..b8040166047f76a154c11ef3b4e465589946e80f 100644
--- a/src/MNH/read_desfmn.f90
+++ b/src/MNH/read_desfmn.f90
@@ -13,7 +13,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE READ_DESFM_n(KMI,HDESFM,HLUOUT,HCONF,OFLAT,OUSERV,              &
+      SUBROUTINE READ_DESFM_n(KMI,HDESFM,HCONF,OFLAT,OUSERV,                     &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,             &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,       &
                    ODEPOS_SLT,ODUST,ODEPOS_DST, OCHTRANS,                        &
@@ -28,7 +28,6 @@ INTERFACE
 USE MODD_PARAMETERS
 INTEGER,            INTENT(IN)  :: KMI    ! Model index
 CHARACTER (LEN=32), INTENT(IN)  :: HDESFM ! name of the DESFM file
-CHARACTER (LEN=16), INTENT(IN)  :: HLUOUT ! Name  for outputlisting   
 CHARACTER (LEN=5),  INTENT(OUT) :: HCONF  ! configuration var. linked to FMfile
 LOGICAL,            INTENT(OUT) :: OFLAT  ! Logical for zero orography 
 LOGICAL,            INTENT(OUT) :: OUSERV ! use Rv mixing ratio               
@@ -78,7 +77,7 @@ END INTERFACE
 !
 END MODULE MODI_READ_DESFM_n
 !     #########################################################################
-      SUBROUTINE READ_DESFM_n(KMI,HDESFM,HLUOUT,HCONF,OFLAT,OUSERV,              &
+      SUBROUTINE READ_DESFM_n(KMI,HDESFM,HCONF,OFLAT,OUSERV,                     &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,             &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,       &
                    ODEPOS_SLT,ODUST,ODEPOS_DST, OCHTRANS,                        &
@@ -196,7 +195,8 @@ END MODULE MODI_READ_DESFM_n
 !
 !*       0.    DECLARATIONS
 !              ------------
-USE MODD_IO_ll, ONLY : NVERB_FATAL
+USE MODD_IO_ll,   ONLY: NVERB_FATAL
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 !
 USE MODN_BACKUP
@@ -269,7 +269,6 @@ IMPLICIT NONE
 !
 INTEGER,            INTENT(IN)  :: KMI    ! Model index
 CHARACTER (LEN=32), INTENT(IN)  :: HDESFM ! name of the DESFM file
-CHARACTER (LEN=16), INTENT(IN)  :: HLUOUT ! Name  for outputlisting   
 CHARACTER (LEN=5),  INTENT(OUT) :: HCONF  ! configuration var. linked to FMfile
 LOGICAL,            INTENT(OUT) :: OFLAT  ! Logical for zero orography 
 LOGICAL,            INTENT(OUT) :: OUSERV ! use Rv mixing ratio               
@@ -329,8 +328,8 @@ LOGICAL,DIMENSION(JPMODELMAX),SAVE :: LTEMPDEPOS_AER ! Orilam Moist flag
 !*       1.    READ DESFM FILE
 !              ---------------
 !
-CALL FMLOOK_ll(HDESFM,HLUOUT,ILUDES,IRESP)
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+CALL FMLOOK_ll(HDESFM,TLUOUT%CNAME,ILUDES,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !
 CALL POSNAM(ILUDES,'NAM_LUNITN',GFOUND)
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 2a991dc100b4c4c184fbd29f20bf2009304a5705..fe5d95a7e4cc887f1e7a09c1914403fd6f3ee2fc 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -14,7 +14,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV,                &
+      SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HCONF,OFLAT,OUSERV,                       &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,               &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,         &
                    ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS,                         &
@@ -29,7 +29,6 @@ INTERFACE
                    HEQNSYS,PTSTEP_ALL,HSTORAGE_TYPE,HINIFILEPGD                    )
 INTEGER,            INTENT(IN) :: KMI    ! Model index
 CHARACTER (LEN=*),  INTENT(IN) :: HEXSEG ! name of the EXSEG file
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT ! Name  for outputlisting  
 !     The following variables are read by READ_DESFM in DESFM descriptor : 
 CHARACTER (LEN=*),  INTENT(IN) :: HCONF  ! configuration var. linked to FMfile
 LOGICAL,            INTENT(IN) :: OFLAT  ! Logical for zero orography
@@ -84,7 +83,7 @@ END MODULE MODI_READ_EXSEG_n
 !
 !
 !     #########################################################################
-      SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV,                &
+      SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HCONF,OFLAT,OUSERV,                       &
                    OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH,               &
                    OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT,         &
                    ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS,                         &
@@ -297,9 +296,10 @@ END MODULE MODI_READ_EXSEG_n
 USE MODD_PARAMETERS
 USE MODD_CONF
 USE MODD_CONFZ
-USE MODD_CONF_n, ONLY : CSTORAGE_TYPE
-USE MODD_IO_ll,  ONLY : NVERB_FATAL
-USE MODD_VAR_ll,    ONLY:  NPROC
+USE MODD_CONF_n,  ONLY: CSTORAGE_TYPE
+USE MODD_IO_ll,   ONLY: NVERB_FATAL
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_VAR_ll,  ONLY: NPROC
 !
 USE MODN_BACKUP
 USE MODN_BUDGET
@@ -380,7 +380,6 @@ IMPLICIT NONE
 !
 INTEGER,            INTENT(IN) :: KMI    ! Model index
 CHARACTER (LEN=*),  INTENT(IN) :: HEXSEG ! name of the EXSEG file
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT ! Name  for outputlisting  
 !     The following variables are read by READ_DESFM in DESFM descriptor : 
 CHARACTER (LEN=*),  INTENT(IN) :: HCONF  ! configuration var. linked to FMfile
 LOGICAL,            INTENT(IN) :: OFLAT  ! Logical for zero orography
@@ -444,8 +443,8 @@ INTEGER :: IMOMENTS, JMODE, IMODEIDX, JMOM, JSV_NAME, JMOD, I
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_EXSEG_n','called for '//TRIM(HEXSEG))
 !
-CALL FMLOOK_ll(HEXSEG,HLUOUT,ILUSEG,IRESP)
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+CALL FMLOOK_ll(HEXSEG,TLUOUT%CNAME,ILUSEG,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 CALL INIT_NAM_LUNITN
 CCPLFILE(:)="                            "
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index 184fea2c23d6925eaee3b5069f7c829fa20b6ab6..b2d858a072ee39c185ca8ce703d990faf1d5d5b4 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -8,7 +8,7 @@
 !
 INTERFACE 
 !
-      SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP,     &
+      SUBROUTINE READ_FIELD(TPINIFILE,KMASDEV,KIU,KJU,KKU,PTSTEP,            &
             HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT,                &
             HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR,     &
             HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME,      &
@@ -35,8 +35,6 @@ USE MODD_TIME ! for type DATE_TIME
 !
 !
 TYPE(TFILEDATA),           INTENT(IN)  :: TPINIFILE    !Initial file
-CHARACTER (LEN=*),         INTENT(IN)  :: HLUOUT        
-                             ! name for output-listing of nested models
 INTEGER,                   INTENT(IN)  :: KMASDEV
                              ! version of the input file
 INTEGER,                   INTENT(IN)  :: KIU, KJU, KKU   
@@ -128,7 +126,7 @@ END INTERFACE
 END MODULE MODI_READ_FIELD
 !
 !     ########################################################################
-      SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP,     &
+      SUBROUTINE READ_FIELD(TPINIFILE,KMASDEV,KIU,KJU,KKU,PTSTEP,            &
             HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT,                &
             HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR,     &
             HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME,      &
@@ -258,9 +256,10 @@ USE MODD_FOREFIRE
 #endif
 USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
 USE MODD_IO_ll,           ONLY: TFILEDATA
-USE MODD_NSV
 USE MODD_LATZ_EDFLX
 USE MODD_LG,              ONLY: CLGNAMES
+USE MODD_LUNIT_N,         ONLY: TLUOUT
+USE MODD_NSV
 USE MODD_PARAM_C2R2,      ONLY: LSUPSAT
 !
 USE MODD_PARAM_LIMA     , ONLY: NMOD_CCN, LSCAV, LAERO_MASS,                &
@@ -273,7 +272,6 @@ USE MODD_SALT
 USE MODD_TIME ! for type DATE_TIME
 !
 USE MODE_FIELD,           ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEDATE,TYPEREAL
-USE MODE_FM
 USE MODE_FMREAD
 USE MODE_IO_ll,           ONLY: UPCASE
 USE MODE_MSG
@@ -288,8 +286,6 @@ IMPLICIT NONE
 !
 !
 TYPE(TFILEDATA),           INTENT(IN)  :: TPINIFILE    !Initial file
-CHARACTER (LEN=*),         INTENT(IN)  :: HLUOUT        
-                             ! name for output-listing of nested models
 INTEGER,                   INTENT(IN)  :: KMASDEV
                              ! version of the input file
 INTEGER,                   INTENT(IN)  :: KIU, KJU, KKU   
@@ -1129,13 +1125,13 @@ END IF
 !*       2.2a  3D LS fields  
 !
 !
-CALL INI_LS(TPINIFILE,HLUOUT,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM)
+CALL INI_LS(TPINIFILE,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM)
 !
 !
 !*       2.2b  2D "surfacic" LB fields   
 !
 !
-CALL INI_LB(TPINIFILE,HLUOUT,GLSOURCE,ISV,                            &
+CALL INI_LB(TPINIFILE,GLSOURCE,ISV,                                   &
      KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll,               &
      KSIZELBXTKE_ll,KSIZELBYTKE_ll,                                   &
      KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll,           &
@@ -1486,7 +1482,7 @@ ENDIF
 IF (NVERB >= 10 .AND. .NOT. L1D) THEN
   IIUP = SIZE(PUT,1)
   IJUP = SIZE(PVT,2) 
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT= TLUOUT%NLU
 ! 
   WRITE(ILUOUT,FMT=*) 'READ_FIELD: Some PUT values:'
   WRITE(ILUOUT,FMT=*) '(1,1,JK)   (IIU/2,IJU/2,JK)   (IIU,IJU,JK)    JK  '
diff --git a/src/MNH/read_grid_time_mesonh_case.f90 b/src/MNH/read_grid_time_mesonh_case.f90
index b9b3317949ceef0cbaa0b43f2670f850b7f9c148..0f09efecc73547466bc2cf76a91a9d854b0ddb7e 100644
--- a/src/MNH/read_grid_time_mesonh_case.f90
+++ b/src/MNH/read_grid_time_mesonh_case.f90
@@ -40,8 +40,6 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
-!!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 !!
@@ -49,7 +47,7 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE
 !!         NVERB : verbosity level for output-listing
 !!         LTHINSHELL
 !!      Module MODD_LUNIT     :  contains logical unit names for all models
-!!         CLUOUT0 : name of output-listing
+!!         TLUOUT0 : output-listing file
 !!      Module MODD_GRID
 !!         XBETA   : rotation of the domain
 !!         XRPK    : parameter of projection
@@ -93,19 +91,18 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONF        ! declaration modules
+USE MODD_CONF
 USE MODD_GRID
 USE MODD_GRID_n
-USE MODD_IO_ll,  ONLY: TFILEDATA
-USE MODD_LUNIT
+USE MODD_IO_ll,            ONLY: TFILEDATA
+USE MODD_LUNIT,            ONLY: TLUOUT0
 USE MODD_PARAMETERS
 USE MODD_PREP_REAL
 USE MODD_TIME
 USE MODD_TIME_n
 !
-USE MODE_FM
 USE MODE_FMREAD
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 !
 USE MODI_DEFAULT_SLEVE
 USE MODI_READ_HGRID
@@ -123,7 +120,7 @@ CHARACTER(LEN=*),  INTENT(OUT):: HDAD_NAME! dad name of the FM file
 !*       0.2   Declaration of local variables
 !              ------------------------------
 REAL               :: ZEPS       ! a little number
-INTEGER            :: IRESP      ! return-code if problem eraised in FMLOOK
+INTEGER            :: IRESP      ! return-code
 INTEGER            :: ILUOUT0    ! logical number for listing file
 INTEGER            :: IMASDEV    ! Masdev version
 INTEGER            :: JL         ! loop controls
@@ -155,7 +152,7 @@ TYPE(TFILEDATA),POINTER :: TZFMFILE => NULL()
 !*       1.    INITIALIZATIONS
 !              ---------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 ZEPS=1.E-10
 !
 !PW: TODO: temporary: look for file from its name
diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90
index a57ceaa148f819ebdeab695c41e45d4a17b023f3..d2b9555e9b9408627ee89d8de2870534d1e0350b 100644
--- a/src/MNH/read_hgrid.f90
+++ b/src/MNH/read_hgrid.f90
@@ -92,6 +92,7 @@ USE MODD_PGDDIM
 USE MODD_PGDGRID
 !
 USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME
+USE MODE_FM,    ONLY : SET_FMPACK_ll
 USE MODE_FMREAD
 USE MODE_GRIDPROJ
 USE MODE_IO_ll
diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90
index a6cae41cc8996cf4166e8f89412b446c65246fc1..b63eb705e869818605496cbf874da61e45b6b350 100644
--- a/src/MNH/rel_forcingn.f90
+++ b/src/MNH/rel_forcingn.f90
@@ -96,23 +96,20 @@ END MODULE MODI_REL_FORCING_n
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-USE MODE_IO_ll
-!
+USE MODD_2D_FRC
+USE MODD_BUDGET
 USE MODD_DYN
-USE MODD_LUNIT
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
+USE MODD_RELFRC_n     ! Modules for time evolving advfrc
 USE MODD_TIME
-USE MODD_BUDGET
 !
-USE MODI_TEMPORAL_LT
-USE MODI_TEMPORAL_DIST 
-USE MODI_BUDGET
+USE MODE_IO_ll
 !
-USE MODD_RELFRC_n     ! Modules for time evolving advfrc
-USE MODD_2D_FRC
+USE MODI_BUDGET
 USE MODI_SHUMAN
-!USE MODD_FRC
+USE MODI_TEMPORAL_DIST 
+USE MODI_TEMPORAL_LT
 !
 IMPLICIT NONE
 !
@@ -139,7 +136,6 @@ REAL :: ZDT, ZALPHA ! height and time rate
 REAL, SAVE :: ZSDTJX
 !          
 INTEGER  :: ILUOUT0 ! Logical unit number for output-listing
-INTEGER  :: IRESP   ! Return code of FM-routines
 !
 REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZXADVTHFRC,ZXADVRVFRC
 REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZTHREL,ZRVREL
@@ -158,7 +154,7 @@ IF (GSFIRSTCALL) THEN
 !
   GSFIRSTCALL = .FALSE.
 !
-  CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+  ILUOUT0 = TLUOUT0%NLU
 !!*        1.1  printout number of forcing profiles
 !
   WRITE(UNIT=ILUOUT0,FMT='(" THERE ARE ",I2," REL FORCING FIELDs  AT:")') NRELFRC
@@ -205,7 +201,7 @@ ELSE
   IF( .NOT. TEMPORAL_LT ( TPDTCUR, TDTRELFRC(JXP) ) ) THEN
     JSX_REL = JSX_REL +1
     JXP= JSX_REL +1
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+    ILUOUT0 = TLUOUT0%NLU
     WRITE(UNIT=ILUOUT0,FMT='(" THE REL FORCING FIELDS ARE INTERPOLATED NOW" ,&
     & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_REL,JXP
     CALL TEMPORAL_DIST ( TDTRELFRC(JXP)%TDATE%YEAR,TDTRELFRC(JXP)%TDATE%MONTH,   &
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 6715b10e1a83a46d928a9b29089ecd97ae47468e..fe972ed79552aba10028bec885b67945a7de7ba2 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -10,7 +10,7 @@
 INTERFACE
       SUBROUTINE RESOLVED_CLOUD ( HCLOUD, HACTCCN, HSCONV, HMF_CLOUD,                  &
                                   KRR, KSPLITR, KSPLITG, KMI, KTCOUNT,                 &
-                                  HLBCX, HLBCY, TPFILE, HLUOUT, HRAD, HTURBDIM,        &
+                                  HLBCX, HLBCY, TPFILE, HRAD, HTURBDIM,                &
                                   OCLOSE_OUT, OSUBG_COND, OSIGMAS, HSUBG_AUCV,         &
                                   PTSTEP, PZZ, PRHODJ, PRHODREF, PEXNREF,              &
                                   PPABST, PTHT, PRT, PSIGS, PSIGQSAT, PMFCONV,         &
@@ -41,8 +41,6 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)   :: HLUOUT   ! Output-listing name for
-                                                   ! model n
 CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
 CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
@@ -136,7 +134,7 @@ END MODULE MODI_RESOLVED_CLOUD
 !     ##########################################################################
       SUBROUTINE RESOLVED_CLOUD ( HCLOUD, HACTCCN, HSCONV, HMF_CLOUD,                  &
                                   KRR, KSPLITR, KSPLITG, KMI, KTCOUNT,                 &
-                                  HLBCX, HLBCY, TPFILE, HLUOUT, HRAD, HTURBDIM,        &
+                                  HLBCX, HLBCY, TPFILE, HRAD, HTURBDIM,                &
                                   OCLOSE_OUT, OSUBG_COND, OSIGMAS, HSUBG_AUCV,         &
                                   PTSTEP, PZZ, PRHODJ, PRHODREF, PEXNREF,              &
                                   PPABST, PTHT, PRT, PSIGS, PSIGQSAT, PMFCONV,         &
@@ -315,8 +313,6 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE   ! Output file
-CHARACTER(LEN=*),         INTENT(IN)   :: HLUOUT   ! Output-listing name for
-                                                   ! model n
 CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
 CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
@@ -798,7 +794,7 @@ SELECT CASE ( HCLOUD )
 !*       4.     REVERSIBLE MICROPHYSICAL SCHEME
 !               -------------------------------
 !
-    CALL FAST_TERMS ( KRR, KMI, HLUOUT, HRAD, HTURBDIM,                        &
+    CALL FAST_TERMS ( KRR, KMI, HRAD, HTURBDIM,                                &
                       HSCONV, HMF_CLOUD, OSUBG_COND, PTSTEP,                   &
                       PRHODJ, PSIGS, PPABST,                                   &
                       PCF_MF,PRC_MF,                                           &
@@ -822,7 +818,7 @@ SELECT CASE ( HCLOUD )
 !
 !*       5.2    Perform the saturation adjustment
 !
-    CALL FAST_TERMS ( KRR, KMI, HLUOUT, HRAD, HTURBDIM,                        &
+    CALL FAST_TERMS ( KRR, KMI, HRAD, HTURBDIM,                                &
                       HSCONV, HMF_CLOUD, OSUBG_COND, PTSTEP,                   &
                       PRHODJ, PSIGS, PPABST,                                   &
                       PCF_MF,PRC_MF,                                           &
@@ -855,7 +851,7 @@ SELECT CASE ( HCLOUD )
 !*       7.2    Perform the saturation adjustment
 !
    IF (LSUPSAT) THEN
-    CALL KHKO_NOTADJUST (KRR, KTCOUNT,TPFILE, HLUOUT, HRAD, OCLOSE_OUT,          &
+    CALL KHKO_NOTADJUST (KRR, KTCOUNT,TPFILE, HRAD, OCLOSE_OUT,                  &
                          PTSTEP, PRHODJ, PPABSM, PPABST, PRHODREF, PZZ,          &
                          PTHT,PRT(:,:,:,1),PRT(:,:,:,2),PRT(:,:,:,3),            &
                          PTHS,PRS(:,:,:,1),PRS(:,:,:,2),PRS(:,:,:,3),            &
@@ -863,7 +859,7 @@ SELECT CASE ( HCLOUD )
                          ZSVS(:,:,:,4), PCLDFR, PSRCS , PNPRO,PSSPRO             )
 !
    ELSE
-    CALL C2R2_ADJUST ( KRR,TPFILE, HLUOUT, HRAD,                               &
+    CALL C2R2_ADJUST ( KRR,TPFILE, HRAD,                                       &
                        HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,               &
                        PRHODJ, PSIGS, PPABST,                                  &
                        PTHS=PTHS, PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2),        &
@@ -987,7 +983,7 @@ IF (OWARM .AND. LCOLD) CALL LIMA_MIXED(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI, &
 !
 !*       12.2   Perform the saturation adjustment
 !
-CALL LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD,                   &
+CALL LIMA_ADJUST(KRR, KMI, TPFILE, HRAD,                           &
                  HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
                  PRHODREF, PRHODJ, PEXNREF, PPABST, PSIGS, PPABST, &
                  PRT, PRS, ZSVT, ZSVS,                             &
diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90
index a0caadd91f70a23e9f3483992e6eca756edcb00e..4f3a0a3f7231fb96ef3aa7e586746476a91a5fa9 100644
--- a/src/MNH/retrieve2_nest_infon.f90
+++ b/src/MNH/retrieve2_nest_infon.f90
@@ -99,31 +99,25 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n
 !*       0.    DECLARATIONS
 !
 USE MODD_CONF
-USE MODD_PARAMETERS
+USE MODD_DIM_ll,       ONLY: NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_ll, NJMAX_ll
+USE MODD_DIM_n,        ONLY: NIMAX, NJMAX
 USE MODD_GRID
 USE MODD_GRID_n
-USE MODD_DIM_n, ONLY : NIMAX, NJMAX
-USE MODD_PGDGRID
+USE MODD_IO_ll,        ONLY: ISNPROC, ISP
+USE MODD_LUNIT,        ONLY: TLUOUT0
+USE MODD_MPIF
+USE MODD_PARAMETERS
 USE MODD_PGDDIM
-USE MODD_LUNIT
+USE MODD_PGDGRID
+USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
+USE MODD_VAR_ll,       ONLY: YSPLITTING, NMNH_COMM_WORLD, MPI_PRECISION
 !
-USE MODE_FM
 USE MODE_GRIDPROJ
 USE MODE_MODELN_HANDLER 
-!
-!20131024
 USE MODE_MPPDB
-USE MODE_TOOLS_ll, ONLY : LEAST_ll, LWEST_ll, LNORTH_ll, LSOUTH_ll
-USE MODD_MPIF
-USE MODD_DIM_ll, ONLY : NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_ll, NJMAX_ll
-USE MODE_SPLITTING_ll, ONLY : SPLIT2
-!USE MODD_VAR_ll, ONLY : NPROC, IP, YSPLITTING, NMNH_COMM_WORLD
-USE MODD_VAR_ll, ONLY : YSPLITTING, NMNH_COMM_WORLD, MPI_PRECISION
-USE MODD_IO_ll, ONLY : ISNPROC, ISP
-USE MODD_STRUCTURE_ll, ONLY : ZONE_ll
-USE MODE_NEST_ll, ONLY : GO_TOMODEL_ll
-!USE MODE_EXCHANGE_ll
-!USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
+USE MODE_NEST_ll,      ONLY: GO_TOMODEL_ll
+USE MODE_SPLITTING_ll, ONLY: SPLIT2
+USE MODE_TOOLS_ll,     ONLY: LEAST_ll, LWEST_ll, LNORTH_ll, LSOUTH_ll
 !
 IMPLICIT NONE
 !
@@ -141,7 +135,7 @@ INTEGER,INTENT(OUT) :: KDYRATIO ! and its son (next refered as 2) grid
 !
 !*       0.2   declarations of local variables
 !
-INTEGER              :: ILUOUT, IRESP
+INTEGER              :: ILUOUT
 INTEGER              :: IIU           ! relatively to model 1
 INTEGER              :: IJU           ! relatively to model 1
 INTEGER              :: IIUGLB           ! relatively to model 1
@@ -221,7 +215,7 @@ CALL GO_TOMODEL_ll(KMI, IINFO_ll)
 !IJMAX_C_ll = NYEND_ALL(KMI) - NYOR_ALL(KMI) - JPHEXT  !c'est bizarre mais on l'a init comme ca car sinon get_globaldims_ll donne un resultat faux...
 DEALLOCATE(TZSPLITTING)
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
+ILUOUT = TLUOUT0%NLU
 !20131008 adapt calculation NPGDIMAX AND NPGDSJMAX and IIU,IJU from retrieve1 !
 !IIU=NPGDIMAX+2*JPHEXT
 !IJU=NPGDJMAX+2*JPHEXT
diff --git a/src/MNH/rms_at_z.f90 b/src/MNH/rms_at_z.f90
index 45ff80d9006b6a8ac098657b0177f1b0dbf571a6..8e4ac658f5ce6c95ce53272876589f44d46c432e 100644
--- a/src/MNH/rms_at_z.f90
+++ b/src/MNH/rms_at_z.f90
@@ -71,18 +71,16 @@ END MODULE MODI_RMS_AT_Z
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODI_COEF_VER_INTERP_LIN
-USE MODI_VER_INTERP_LIN
-!
-USE MODD_CONF           ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_CST
-USE MODD_REF_n
 USE MODD_FIELD_n
+USE MODD_LUNIT, ONLY: TLUOUT0
+USE MODD_REF_n
 USE MODD_VER_INTERP_LIN
 !
+USE MODI_COEF_VER_INTERP_LIN
+USE MODI_VER_INTERP_LIN
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -172,7 +170,7 @@ END DO
 !*     4.     Prints
 !             ------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 WRITE(ILUOUT0,*) ''
 WRITE(ILUOUT0,*) HTITLE
diff --git a/src/MNH/select_std_pgd.f90 b/src/MNH/select_std_pgd.f90
index be1313c5409c0af7ae25b0c6ad3e4ccdc0402c21..3dd7d97b6851cd236e876db509b8a11e27da2346 100644
--- a/src/MNH/select_std_pgd.f90
+++ b/src/MNH/select_std_pgd.f90
@@ -66,7 +66,6 @@ USE MODD_GROUND_PAR
 !
 !
 USE MODI_PGD_INDEX
-USE MODE_FM
 !
 IMPLICIT NONE
 !
@@ -83,11 +82,8 @@ REAL, DIMENSION(:,:), INTENT(IN) :: PFIELD      ! pgd field
 !
 CHARACTER(LEN=20) :: YFIELD
 !
-INTEGER :: IRESP, ILUOUT0
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
 YFIELD='                    '
 YFIELD=HFIELD_NAME//YFIELD
 !
@@ -307,11 +303,6 @@ SELECT CASE (YFIELD)
   PRINT*, 'IT WILL NOT BE SAVED ON THE PGD FILE.'
   PRINT*, ' '
 
-!  WRITE(ILUOUT0,FMT=*) ' '
-!  WRITE(ILUOUT0,FMT=*) 'The field ',HFIELD_NAME, ' is not yet a standard PGD field.'
-!  WRITE(ILUOUT0,FMT=*) 'IT WILL NOT BE SAVED ON THE PGD FILE.'
-!  WRITE(ILUOUT0,FMT=*) ' '
-!
 END SELECT
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90
index f62dd0c8ac2a17fa6ab02fa7c9da04dc806388bb..3330d4648104af1a6e493df4d60cb5647b8b231e 100644
--- a/src/MNH/set_advfrc.f90
+++ b/src/MNH/set_advfrc.f90
@@ -12,17 +12,21 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_ADVFRC(HEXPRE)
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+SUBROUTINE SET_ADVFRC(TPEXPREFILE)
+!
+USE MODD_IO_ll, ONLY: TFILEDATA
+!
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
+!
 END SUBROUTINE SET_ADVFRC
 !
 END INTERFACE
 !
 END MODULE MODI_SETADVFRC
 !
-!     ##########################
-      SUBROUTINE SET_ADVFRC(HEXPRE)
-!     ##########################
+!     ##################################
+      SUBROUTINE SET_ADVFRC(TPEXPREFILE)
+!     ##################################
 !
 !!*** *SET_ADVFRC * -  to initialize Advective forcing fields for different months
 !!    
@@ -76,39 +80,35 @@ END MODULE MODI_SETADVFRC
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST 
-USE MODD_LUNIT_n
-USE MODD_GRID_n
+USE MODD_ADVFRC_n
 USE MODD_CONF
+USE MODD_CST 
+USE MODD_DIM_n 
 USE MODD_FRC
 USE MODD_GRID
+USE MODD_GRID_n
+USE MODD_IO_ll,      ONLY: TFILEDATA
+USE MODD_LUNIT_n,    ONLY: TLUOUT
+USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT
 USE MODD_REF
-USE MODD_PARAMETERS  ! JPHEXT
 ! 
-USE MODE_FM
 USE MODE_IO_ll
 USE MODE_MSG
 USE MODE_THERMO
 !
-USE MODI_HEIGHT_PRESS  ! interface modules
+USE MODI_HEIGHT_PRESS
 USE MODI_PRESS_HEIGHT
-USE MODI_THETAVPU_THETAVPM 
-USE MODI_TEMPORAL_LT
-USE MODD_DIM_n 
-!
-USE MODI_READ_ASCP
 USE MODI_READ_ASC_LATPRESS
+USE MODI_READ_ASCP
+USE MODI_TEMPORAL_LT
+USE MODI_THETAVPU_THETAVPM 
 !
-USE MODD_ADVFRC_n
-
 IMPLICIT NONE
 !  
 !  
 !*       0.1   Declarations of arguments :
 !
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
-
-
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
 !
 !*       0.2   Declarations of local variables :
 !
@@ -141,7 +141,7 @@ CHARACTER(LEN=6)                :: YADV         ! choice of zfrc or pfrc
 print*,"!*	 1.     PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS "
 !	        ----------------------------------------
 !                           
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
+ILUPRE = TPEXPREFILE%NLU
 ILUOUT = TLUOUT%NLU
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_chemaq_1way.f90 b/src/MNH/set_chemaq_1way.f90
index 9b0effa9d321434dc5761b9d313033839ee8c357..bbb1c28edf9785a71ba0505d1d9f25e89eb7426e 100644
--- a/src/MNH/set_chemaq_1way.f90
+++ b/src/MNH/set_chemaq_1way.f90
@@ -10,9 +10,8 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_CHEMAQ_1WAY (HLUOUT,PRHODREF,PSVTOLD,PSVTNEW)
+      SUBROUTINE SET_CHEMAQ_1WAY (PRHODREF,PSVTOLD,PSVTNEW)
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(IN) :: PSVTOLD    ! chemical concentrations dad model
@@ -27,7 +26,7 @@ END INTERFACE
 END MODULE MODI_SET_CHEMAQ_1WAY
 !
 !     ###########################################################
-      SUBROUTINE SET_CHEMAQ_1WAY (HLUOUT,PRHODREF,PSVTOLD,PSVTNEW)
+      SUBROUTINE SET_CHEMAQ_1WAY (PRHODREF,PSVTOLD,PSVTNEW)
 !     ###########################################################
 !
 !!****  *SET_CHEMAQ_1WAY * - transfer chemical concentrations in gas phase from
@@ -78,13 +77,12 @@ END MODULE MODI_SET_CHEMAQ_1WAY
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(IN) :: PSVTOLD    ! chemical concentrations dad model
@@ -102,7 +100,7 @@ INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    TRANSFER DATA FROM OLD TO NEW ARRAY
 !              -----------------------------------
diff --git a/src/MNH/set_conc_ice_c1r3.f90 b/src/MNH/set_conc_ice_c1r3.f90
index 4db5b5cafa89c2a2e6d4c85bab9b4b8451d0a0df..78954abd6e2c4dd6055e71928b086c140571eaa5 100644
--- a/src/MNH/set_conc_ice_c1r3.f90
+++ b/src/MNH/set_conc_ice_c1r3.f90
@@ -14,9 +14,8 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_CONC_ICE_C1R3 (HLUOUT,PRHODREF,PRT,PSVT)
+      SUBROUTINE SET_CONC_ICE_C1R3 (PRHODREF,PRT,PSVT)
 !
-CHARACTER (LEN=*),         INTENT(IN)    :: HLUOUT ! name of the output-listing
 REAL, DIMENSION(:,:,:),    INTENT(IN)    :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PRT    ! microphysical mixing ratios
@@ -31,7 +30,7 @@ END INTERFACE
 END MODULE MODI_SET_CONC_ICE_C1R3
 !
 !     ##########################################################
-      SUBROUTINE SET_CONC_ICE_C1R3 (HLUOUT,PRHODREF,PRT,PSVT)
+      SUBROUTINE SET_CONC_ICE_C1R3 (PRHODREF,PRT,PSVT)
 !     ##########################################################
 !
 !!****  *SET_CONC_ICE_C1R3 * - initialize the ice crystal
@@ -80,19 +79,17 @@ END MODULE MODI_SET_CONC_ICE_C1R3
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE MODD_CST,            ONLY : XRHOLI
+USE MODD_CONF,           ONLY : NVERB
 USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN
 USE MODD_ICE_C1R3_PARAM, ONLY : XCONCI_MAX, XNUC_CON, XEXTT_CON, XEX_CON
-USE MODD_CONF,           ONLY : NVERB
+USE MODD_LUNIT_n,        ONLY : TLUOUT
 USE MODD_RAIN_ICE_DESCR, ONLY : XAI, XBI
-USE MODD_CST,            ONLY : XRHOLI
-!
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN)    :: HLUOUT ! name of the output-listing
 REAL, DIMENSION(:,:,:),    INTENT(IN)    :: PRHODREF   ! Reference density
 !
 REAL, DIMENSION(:,:,:,:),  INTENT(INOUT) :: PRT    ! microphysical mixing ratios
@@ -109,7 +106,7 @@ INTEGER    :: ILUOUT  ! Logical unit number of output-listing
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    INITIALIZATION
 !              --------------
diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90
index 54f17c858e74d5ccd7480ffa65d33d837b59c75e..dcc096885a801bd30fcb5db0a5f47a5502da19ad 100644
--- a/src/MNH/set_conc_lima.f90
+++ b/src/MNH/set_conc_lima.f90
@@ -4,9 +4,8 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_CONC_LIMA (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT)
+      SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT)
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 CHARACTER (LEN=4),         INTENT(IN) :: HGETCLOUD  ! Get indicator
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
@@ -22,7 +21,7 @@ END INTERFACE
 END MODULE MODI_SET_CONC_LIMA
 !
 !     ###########################################################################
-      SUBROUTINE SET_CONC_LIMA (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT)
+      SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT)
 !     ###########################################################################
 !
 !!****  *SET_CONC_LIMA * - initialize droplet, raindrop and ice
@@ -79,11 +78,12 @@ END MODULE MODI_SET_CONC_LIMA
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN
-USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI
-USE MODD_NSV,             ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL
 USE MODD_CST,             ONLY : XPI, XRHOLW, XRHOLI
 USE MODD_CONF,            ONLY : NVERB
+USE MODD_LUNIT_n,         ONLY : TLUOUT
+USE MODD_NSV,             ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL
+USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN
+USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI
 !
 USE MODE_FM
 !
@@ -91,7 +91,6 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 CHARACTER (LEN=4),         INTENT(IN) :: HGETCLOUD  ! Get indicator
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
@@ -110,7 +109,7 @@ REAL       :: ZCONCC, ZCONCR, ZCONCI
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    INITIALIZATION
 !              --------------
diff --git a/src/MNH/set_conc_rain_c2r2.f90 b/src/MNH/set_conc_rain_c2r2.f90
index fed953ccce4bc354eddbc7bc6430dfc15c609bac..5c0c0a4650c93b9243f7af4441b8dc7b6ad0493d 100644
--- a/src/MNH/set_conc_rain_c2r2.f90
+++ b/src/MNH/set_conc_rain_c2r2.f90
@@ -14,9 +14,8 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_CONC_RAIN_C2R2 (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT)
+      SUBROUTINE SET_CONC_RAIN_C2R2 (HGETCLOUD,PRHODREF,PRT,PSVT)
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 CHARACTER (LEN=4),         INTENT(IN) :: HGETCLOUD  ! Get indicator
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
@@ -31,9 +30,9 @@ END INTERFACE
 !
 END MODULE MODI_SET_CONC_RAIN_C2R2
 !
-!     ###########################################################################
-      SUBROUTINE SET_CONC_RAIN_C2R2 (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT)
-!     ###########################################################################
+!     ###########################################################
+      SUBROUTINE SET_CONC_RAIN_C2R2 (HGETCLOUD,PRHODREF,PRT,PSVT)
+!     ###########################################################
 !
 !!****  *SET_CONC_RAIN_C2R2 * - initialize droplet and raindrop
 !!                   concentration for a RESTArt simulation of the C2R2 scheme
@@ -90,17 +89,15 @@ END MODULE MODI_SET_CONC_RAIN_C2R2
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN
+USE MODD_CONF,                 ONLY : NVERB
+USE MODD_LUNIT_n,              ONLY : TLUOUT
+USE MODD_RAIN_C2R2_DESCR,      ONLY : XRTMIN, XCTMIN
 USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : XCONCC_INI, XCONCR_PARAM_INI
-USE MODD_CONF,            ONLY : NVERB
-!
-USE MODE_FM
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-CHARACTER (LEN=*),         INTENT(IN) :: HLUOUT     ! name of the output-listing
 CHARACTER (LEN=4),         INTENT(IN) :: HGETCLOUD  ! Get indicator
 REAL, DIMENSION(:,:,:),    INTENT(IN) :: PRHODREF   ! Reference density
 !
@@ -123,7 +120,7 @@ REAL       :: ZCONCC, ZCONCR
 !*       1.    RETRIEVE LOGICAL UNIT NUMBER
 !              ----------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    INITIALIZATION
 !              --------------
diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90
index bb079589a93dcb8d955b5dd4cf217f2173e9cbf4..f03f38356b3b3be599fa42167759757df6b8d2e6 100644
--- a/src/MNH/set_cstn.f90
+++ b/src/MNH/set_cstn.f90
@@ -13,12 +13,12 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
 !
 USE MODD_IO_ll, ONLY : TFILEDATA
 !
 TYPE(TFILEDATA),        INTENT(IN)  :: TPFILE ! outpput data file
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA),        INTENT(IN)  :: TPEXPREFILE ! input data file
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
@@ -43,7 +43,7 @@ END MODULE MODI_SET_CSTN
 !
 !
 !     ##################################################################################
-      SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+      SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
 !     ##################################################################################
 !
 !!****  *SET_CSTN * - routine to initialize mass and wind fields from a Nv=cste 
@@ -172,32 +172,29 @@ END MODULE MODI_SET_CSTN
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST             ! declarative modules
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT_n
 USE MODD_CONF
+USE MODD_CST
 USE MODD_GRID_n
+USE MODD_IO_ll,      ONLY : TFILEDATA
+USE MODD_LUNIT_n,    ONLY: CLUOUT, TLUOUT
+USE MODD_PARAMETERS, ONLY: JPHEXT
 !
 USE MODE_FM
-USE MODE_THERMO          ! executive modules
+USE MODE_THERMO
+USE MODE_ll
+USE MODE_MPPDB
 !
-USE MODI_PRESS_HEIGHT    ! interface modules
+USE MODI_PRESS_HEIGHT
 USE MODI_SET_MASS
-USE MODI_VERT_COORD
 USE MODI_SHUMAN
-!
-USE MODE_ll
-USE MODD_PARAMETERS, ONLY : JPHEXT
-!
-USE MODE_MPPDB
+USE MODI_VERT_COORD
 !
 IMPLICIT NONE
 !  
-!  
 !*       0.1   Declarations of arguments :
 !
 TYPE(TFILEDATA),        INTENT(IN)  :: TPFILE ! outpput data file
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA),        INTENT(IN)  :: TPEXPREFILE ! input data file
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
@@ -272,8 +269,8 @@ LOGICAL         :: GPROFILE_IN_PROC   ! T : initialization profile is in current
 !                          CONSTANTS
 !	        ------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
+ILUPRE = TPEXPREFILE%NLU
+ILUOUT = TLUOUT%NLU
 !
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 CALL GET_OR_ll('B',IXOR_ll,IYOR_ll)
@@ -414,7 +411,7 @@ ZEXNGRDM= ( ZPGROUND / XP00) ** ZRDSCPD  &
 ZPGRDM = XP00 * ZEXNGRDM ** (1./ZRDSCPD)
 ZPM(:)  = PRESS_HEIGHT(ZZMASS_PROFILE(:),ZTHVM,ZPGRDM,ZTHVM(1),ZZMASS_PROFILE(1)) ! compute P
 ZTVM(:) = ZTHVM(:) * (ZPM(:) / XP00) ** ZRDSCPD                ! compute Tv
-ZMRM(:) = SM_PMR_HU(CLUOUT,ZPM(:),ZTVM(:),ZHUM(:), &
+ZMRM(:) = SM_PMR_HU(ZPM(:),ZTVM(:),ZHUM(:),      &
                               SPREAD(ZMRM(:),2,1))             ! compute vapor
                                                                ! mixing ratio  
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90
index bd40fe80eb43d9d7045afee44fc0d2a8ac9e8754..f32526aaa2b7257c966a1ac8e40d0d162f927dd9 100644
--- a/src/MNH/set_frc.f90
+++ b/src/MNH/set_frc.f90
@@ -14,8 +14,12 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_FRC(HEXPRE)
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+SUBROUTINE SET_FRC(TPEXPREFILE)
+!
+USE MODD_IO_ll, ONLY: TFILEDATA
+!
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
+!
 END SUBROUTINE SET_FRC
 !
 END INTERFACE
@@ -23,7 +27,7 @@ END INTERFACE
 END MODULE MODI_SET_FRC
 !
 !     ##########################
-      SUBROUTINE SET_FRC(HEXPRE)
+      SUBROUTINE SET_FRC(TPEXPREFILE)
 !     ##########################
 !
 !!*** *SET_FRC * -  to initialize forcing fields from successive soundings
@@ -107,6 +111,7 @@ USE MODD_GRID_n
 USE MODD_CONF
 USE MODD_FRC
 USE MODD_GRID
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_REF
 USE MODD_PARAMETERS
 !
@@ -125,7 +130,7 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments :
 !
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
 !
 !*       0.2   Declarations of local variables :
 !
@@ -171,7 +176,7 @@ REAL                            :: ZEPS,     & ! XRV/XRD-1.0
 !*       1.     PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS
 !               ----------------------------------------
 !
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
+ILUPRE = TPEXPREFILE%NLU
 ILUOUT = TLUOUT%NLU
 !
 ZRVSRD  = XRV/XRD
diff --git a/src/MNH/set_geosbal.f90 b/src/MNH/set_geosbal.f90
index 3a940d163ffa23ac6319e17f3da3facce1ca1837..02dd4a7e12f926c963eadfeb9e37f6c8c8bf0122 100644
--- a/src/MNH/set_geosbal.f90
+++ b/src/MNH/set_geosbal.f90
@@ -257,21 +257,18 @@ END MODULE MODI_SET_GEOSBAL
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-USE MODE_GATHER_ll
-USE MODE_ll
-!
-USE MODD_PARAMETERS  ! declarative modules
 USE MODD_CONF
 USE MODD_CST 
-USE MODD_LUNIT_n
-USE MODD_CONF
-USE MODD_GRID
-USE MODD_GRID_n
 USE MODD_DIM_n
 USE MODD_FIELD_n
+USE MODD_GRID
+USE MODD_GRID_n
+USE MODD_PARAMETERS
 USE MODD_REF
 !
+USE MODE_GATHER_ll
+USE MODE_ll
+!
 USE MODI_SHUMAN
 !
 IMPLICIT NONE
@@ -304,9 +301,6 @@ REAL, DIMENSION(SIZE(XZHAT))    :: ZZHATM  ! Height of mass model grid levels
 
 INTEGER             :: IITRREF  !  iteration number for the determination of
                                  !  the thetav field
-INTEGER             :: IRESP     !  FM return code
-INTEGER             :: ILUOUT    ! Logical unit number for
-                                             ! output-listing
 REAL,DIMENSION(:,:),ALLOCATABLE :: ZGAMMA,ZGAMMA_ll ! K(lambda-lambda0) -beta
 REAL                            :: ZGAMMALOC
 REAL, DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)) :: ZTHV3D ! Potential
@@ -344,8 +338,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE        ::ZTHVREF2D
 !                          CONSTANTS
 !               ------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 ZRVSRD  = XRV / XRD
 ZRADSDG = XPI/180.
 !
diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90
index 7a6ff658a151838ddc5686ad04caf467026d18ec..ae740c0445d11600e3f4e950e7e29b261f3d28c7 100644
--- a/src/MNH/set_grid.f90
+++ b/src/MNH/set_grid.f90
@@ -168,7 +168,6 @@ END MODULE MODI_SET_GRID
 !!    EXTERNAL
 !!    --------
 !!      FMREAD      : to read data in LFIFM file
-!!      FMLOOK      : to retrieve a logical unit number
 !!
 !!      Module MODE_GRIDPROJ : contains conformal projection routines
 !!        SM_GRIDPROJ : to compute some grid variables in case of conformal
@@ -238,26 +237,26 @@ END MODULE MODI_SET_GRID
 !
 !*       0.    DECLARATIONS
 !              ------------
-USE MODE_FM
-USE MODD_PARAMETERS
+USE MODD_BUDGET
 USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_GRID
-USE MODD_IO_ll, ONLY:TFILEDATA,TOUTBAK
-USE MODD_BUDGET
 USE MODD_DYN
+USE MODD_GRID
+USE MODD_IO_ll,   ONLY: TFILEDATA,TOUTBAK
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_OUT_n,   ONLY: OUT_MODEL
+USE MODD_PARAMETERS
 USE MODD_NESTING
 !
+USE MODE_FIELD,   ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME
+USE MODE_FM
+USE MODE_FMREAD
 USE MODE_GATHER_ll
 USE MODE_GRIDCART
 USE MODE_GRIDPROJ
-USE MODE_TIME
-USE MODE_ll
-!
-USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME
-USE MODE_FMREAD
-USE MODD_OUT_n,       ONLY : OUT_MODEL
 USE MODE_IO_MANAGE_STRUCT
+USE MODE_ll
+USE MODE_TIME
 !
 IMPLICIT NONE
 !
@@ -442,9 +441,9 @@ CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG)
 !*       2.1    Spatial grid
 !
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ)
+  CALL SM_GRIDCART(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ)
 ELSE
-  CALL SM_GRIDPROJ(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PLATORI,PLONORI, &
+  CALL SM_GRIDPROJ(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PLATORI,PLONORI, &
                    PMAP,PLAT,PLON,PDXHAT,PDYHAT,PZZ,PJ)
 END IF
 !
@@ -474,7 +473,7 @@ TPOUTPUTN => OUT_MODEL(KMI)%TOUTPUTN
 !*       3.    PRINT ON OUTPUT-LISTING
 !              -----------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 IF  (NVERB >= 10) THEN
   IIUP = SIZE(PXHAT)
   IJUP = SIZE(PYHAT)
diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90
index 5e08a8b86c1b6a5256f04ac5cd515a518ec3b8fc..1d28b26530ae9554eccfde929eb33e03ad7dac87 100644
--- a/src/MNH/set_perturb.f90
+++ b/src/MNH/set_perturb.f90
@@ -13,8 +13,12 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_PERTURB(HEXPRE)
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+SUBROUTINE SET_PERTURB(TPEXPREFILE)
+!
+USE MODD_IO_ll, ONLY: TFILEDATA
+!
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
+!
 END SUBROUTINE SET_PERTURB
 !
 END INTERFACE
@@ -22,7 +26,7 @@ END INTERFACE
 END MODULE MODI_SET_PERTURB
 !
 !     ##############################
-      SUBROUTINE SET_PERTURB(HEXPRE)
+      SUBROUTINE SET_PERTURB(TPEXPREFILE)
 !     ##############################
 !
 !!****  *SET_PERTURB* - add a perturbation to a larger scale state field
@@ -100,30 +104,32 @@ END MODULE MODI_SET_PERTURB
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAMETERS ! declarative modules
 USE MODD_CST
 USE MODD_CONF
-USE MODD_GRID_n
-USE MODD_FIELD_n
 USE MODD_DIM_n
+USE MODD_FIELD_n
+USE MODD_GRID_n
+USE MODD_IO_ll,   ONLY: TFILEDATA
 USE MODD_LBC_n
+USE MODD_LUNIT_n, ONLY: CLUOUT, TLUOUT
+USE MODD_PARAMETERS
 USE MODD_REF_n
-USE MODD_LUNIT_n
 !
-USE MODE_POS
 USE MODE_FM
-USE MODE_ll
 USE MODE_GATHER_ll
-USE MODI_SCATTER
+USE MODE_ll
+USE MODE_MPPDB
+USE MODE_POS
 USE MODE_REPRO_SUM
+!
 USE MODI_GET_HALO
-USE MODE_MPPDB
+USE MODI_SCATTER
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments
 !
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
 !
 !*       0.2   Declarations of local variables
 !
@@ -199,8 +205,8 @@ NAMELIST/NAM_PERT_PRE/CPERT_KIND,XAMPLITH,       &! Perturbation parameters
 !
 !*       1.1   Retrieve unit numbers and read namelist
 !
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
+ILUPRE = TPEXPREFILE%NLU
+ILUOUT = TLUOUT%NLU
 !
 CALL POSNAM(ILUPRE,'NAM_PERT_PRE',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUPRE,NML=NAM_PERT_PRE)
diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90
index 45f23b24eb5a39c3b859a6d6a6ae6390acc8fe1e..fb95111650bea9ffcd4daae8362d95860e4f52c7 100644
--- a/src/MNH/set_ref.f90
+++ b/src/MNH/set_ref.f90
@@ -13,7 +13,7 @@ MODULE MODI_SET_REF
 !
 INTERFACE
 !
-      SUBROUTINE SET_REF(KMI,TPINIFILE,HLUOUT,                             &
+      SUBROUTINE SET_REF(KMI,TPINIFILE,                                    &
                          PZZ,PZHAT,PJ,PDXX,PDYY,HLBCX,HLBCY,               &
                          PREFMASS,PMASS_O_PHI0,PLINMASS,                   &
                          PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ            )
@@ -22,8 +22,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA
 !
 INTEGER,                INTENT(IN)  :: KMI       ! Model index 
 TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listings
-                                                 !  of nested models
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PZZ       ! Height  of the w levels
                                                  ! with orography                                          
 REAL, DIMENSION(:),     INTENT(IN)  :: PZHAT     ! Height of the w levels
@@ -59,7 +57,7 @@ END MODULE MODI_SET_REF
 !
 !
 !     #########################################################################
-      SUBROUTINE SET_REF(KMI,TPINIFILE,HLUOUT,                         &
+      SUBROUTINE SET_REF(KMI,TPINIFILE,                                &
                          PZZ,PZHAT,PJ,PDXX,PDYY,HLBCX,HLBCY,           &
                          PREFMASS,PMASS_O_PHI0,PLINMASS,               &
                          PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ        )
@@ -157,24 +155,18 @@ END MODULE MODI_SET_REF
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
-USE MODE_FM
 !              ------------ 
-USE MODD_IO_ll, ONLY : TFILEDATA
+USE MODD_CONF
+USE MODD_CST
+USE MODD_IO_ll,   ONLY : TFILEDATA
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 USE MODD_REF
-USE MODD_CST
-USE MODD_CONF
-USE MODD_REF, ONLY : LBOUSS
 !
+USE MODE_FMREAD
 USE MODE_ll
-!JUAN REALZ
 USE MODE_MPPDB
-!JUAN REALZ
-!
-USE MODE_FMREAD
-!JUAN
 USE MODE_REPRO_SUM
-!JUAN
 !
 IMPLICIT NONE
 !
@@ -182,8 +174,6 @@ IMPLICIT NONE
 !  
 INTEGER,                INTENT(IN)  :: KMI       ! Model index 
 TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE ! Initial file
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PZZ       ! Height  of the w levels
                                                  ! with orography                                          
 REAL, DIMENSION(:),     INTENT(IN)  :: PZHAT     ! Height of the w levels
@@ -214,7 +204,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHODJ    ! rhod J
 !
 !*       0.2   declarations of local variables
 !
-INTEGER             :: IRESP
 INTEGER             :: ILUOUT                    ! Unit number for prints
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)) :: ZZM 
                                                  ! height of the mass levels
@@ -263,7 +252,7 @@ IKU = SIZE(PEXNREF,3)
 IKB = 1 + JPVEXT
 IKE = IKU - JPVEXT
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       2.    READ REFERENCE STATE WITHOUT OROGRAPHY IN LFIFM FILE
 !              ----------------------------------------------------
diff --git a/src/MNH/set_refz.f90 b/src/MNH/set_refz.f90
index f07744d38f9faf8e3d91188ac3221b2523ee7214..a3457ab97605c1f9612eef860db88363059acdcc 100644
--- a/src/MNH/set_refz.f90
+++ b/src/MNH/set_refz.f90
@@ -75,7 +75,6 @@ END MODULE MODI_SET_REFZ
 !!
 !!    subroutine COMPUTE_EXNER_FROM_TOP : to compute hydrostatic Exner function
 !!    subroutine ZSECT :to compute the mean of a 3D field at a constant altitude
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    MZF              : Shuman operator
 !!
 !!    Module MODI_SHUMAN    : interface for Shuman operators
@@ -128,21 +127,19 @@ END MODULE MODI_SET_REFZ
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODI_ZSECT ! interface module
-USE MODI_SHUMAN
-USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODD_CONF  ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_CST
 USE MODD_GRID_n
-USE MODD_REF
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
+USE MODD_REF
 !
-!20131024 mppdb
 USE MODE_MPPDB
 !
+USE MODI_COMPUTE_EXNER_FROM_TOP
+USE MODI_SHUMAN
+USE MODI_ZSECT
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -267,7 +264,7 @@ XRHODREFZ(:)=(XP00*(ZEXNMASSREFZ(:))**(XCPD/XRD-1.))                           &
 XRHODREFZ(1)=XRHODREFZ(2)
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 WRITE(ILUOUT0,*)
 WRITE(ILUOUT0,*) 'REFERENCE STATE VARIABLES WITHOUT OROGRAPHY'
 WRITE(ILUOUT0,*) 'level   altitude     theta          rhod      pressure'
diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90
index 1fb2f63b04763981bcb8c1408e7ecfa57ce511b5..436f71e4fca86e938ba8ee687be09427cf785fc5 100644
--- a/src/MNH/set_relfrc.f90
+++ b/src/MNH/set_relfrc.f90
@@ -12,8 +12,12 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_RELFRC(HEXPRE)
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+SUBROUTINE SET_RELFRC(TPEXPREFILE)
+!
+USE MODD_IO_ll, ONLY: TFILEDATA
+!
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
+!
 END SUBROUTINE SET_RELFRC
 !
 END INTERFACE
@@ -21,7 +25,7 @@ END INTERFACE
 END MODULE MODI_SET_RELFRC
 !
 !     ##########################
-      SUBROUTINE SET_RELFRC(HEXPRE)
+      SUBROUTINE SET_RELFRC(TPEXPREFILE)
 !     ##########################
 !
 !!*** *SET_RELFRC * -  to initialize Advective or relaxation forcing fields for different months
@@ -76,40 +80,36 @@ END MODULE MODI_SET_RELFRC
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST 
-USE MODD_LUNIT_n
-USE MODD_GRID_n
 USE MODD_CONF
+USE MODD_CST 
 USE MODD_FRC
-
 USE MODD_GRID
+USE MODD_GRID_n
+USE MODD_IO_ll, ONLY : TFILEDATA
+USE MODD_LUNIT_n
+USE MODD_PARAMETERS, ONLY: JPHEXT
 USE MODD_REF
-USE MODD_PARAMETERS  ! JPHEXT
+USE MODD_RELFRC_n
 ! 
-USE MODE_THERMO 
 USE MODE_FM
+USE MODE_IO_ll
 USE MODE_MSG
+USE MODE_THERMO 
 !
-USE MODE_IO_ll
-USE MODI_HEIGHT_PRESS  ! interface modules
-USE MODI_PRESS_HEIGHT
-USE MODI_THETAVPU_THETAVPM 
-USE MODI_TEMPORAL_LT
 USE MODD_DIM_n 
-!
-USE MODI_READ_ASCP
+USE MODI_HEIGHT_PRESS
+USE MODI_PRESS_HEIGHT
 USE MODI_READ_ASC_LATPRESS
+USE MODI_READ_ASCP
+USE MODI_TEMPORAL_LT
+USE MODI_THETAVPU_THETAVPM 
 !
-USE MODD_RELFRC_n
-
 IMPLICIT NONE
 !  
 !  
 !*       0.1   Declarations of arguments :
 !
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
-
-
+TYPE(TFILEDATA), INTENT(IN)  :: TPEXPREFILE ! input data file
 !
 !*       0.2   Declarations of local variables :
 !
@@ -143,7 +143,7 @@ CHARACTER(LEN=6)                :: YREL         ! choice of zfrc or pfrc
 print*,"!*	 1.     PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS" 
 !	        ----------------------------------------
 !                           
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
+ILUPRE = TPEXPREFILE%NLU
 ILUOUT = TLUOUT%NLU
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90
index dd51d3519bb7247e52d3b3ea0b31bc0d26045318..3a895cb007aeac3c4515f4ec94fcff9a8c12e056 100644
--- a/src/MNH/set_rsou.f90
+++ b/src/MNH/set_rsou.f90
@@ -13,13 +13,13 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
+      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
                           ORMV_BL,PJ,OSHIFT,PCORIOZ) 
 !
 USE MODD_IO_ll, ONLY : TFILEDATA
 !
 TYPE(TFILEDATA),        INTENT(IN)  :: TPFILE ! outpput data file
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA),        INTENT(IN)  :: TPEXPREFILE ! input data file
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
@@ -42,7 +42,7 @@ END INTERFACE
 END MODULE MODI_SET_RSOU
 !
 !     ###########################################################################
-      SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
+      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
                           ORMV_BL,PJ,OSHIFT,PCORIOZ) 
 !     ###########################################################################
 !
@@ -252,33 +252,31 @@ END MODULE MODI_SET_RSOU
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST          ! declarative modules
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT_n
 USE MODD_CONF
 USE MODD_CONF_n
+USE MODD_CST
+USE MODD_FIELD_n
 USE MODD_GRID
 USE MODD_GRID_n
-USE MODD_FIELD_n
-USE MODD_PARAM_n, ONLY : CCLOUD
-USE MODD_PARAMETERS
+USE MODD_IO_ll,      ONLY: TFILEDATA
+USE MODD_LUNIT_n
+USE MODD_PARAMETERS, ONLY: JPHEXT
+USE MODD_PARAM_n,    ONLY: CCLOUD
 ! 
-USE MODE_THERMO
 USE MODE_FM
 USE MODE_IO_ll
 USE MODE_ll
 USE MODE_MSG
+USE MODE_THERMO
 !
-USE MODI_HEIGHT_PRESS  ! interface modules
+USE MODI_COMPUTE_EXNER_FROM_GROUND
+USE MODI_HEIGHT_PRESS
 USE MODI_PRESS_HEIGHT
-USE MODI_THETAVPU_THETAVPM
 USE MODI_SET_MASS
 USE MODI_SHUMAN
-USE MODI_VERT_COORD
+USE MODI_THETAVPU_THETAVPM
 USE MODI_TH_R_FROM_THL_RT_1D
-USE MODI_COMPUTE_EXNER_FROM_GROUND
-!
-USE MODD_PARAMETERS, ONLY : JPHEXT
+USE MODI_VERT_COORD
 !
 IMPLICIT NONE
 !  
@@ -286,7 +284,7 @@ IMPLICIT NONE
 !*       0.1   Declarations of arguments :
 !
 TYPE(TFILEDATA),        INTENT(IN)  :: TPFILE ! outpput data file
-CHARACTER(LEN=*),       INTENT(IN)  :: HEXPRE ! name of input data file
+TYPE(TFILEDATA),        INTENT(IN)  :: TPEXPREFILE ! input data file
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
@@ -401,7 +399,7 @@ ZRDSRV = XRD/XRV
 !*       1.2  Retrieve logical unit numbers 
 !
 !                           
-CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP)
+ILUPRE = TPEXPREFILE%NLU
 ILUOUT = TLUOUT%NLU
 !
 !*       1.3  Read data kind in EXPRE file 
@@ -619,7 +617,7 @@ SELECT CASE(YKIND)
     ZTV(:)=ZTHV(:) * (ZPRESSM(:) / XP00) ** ZRDSCPD  
 !
 !     Compte mixing ratio      
-    ZMR(:)=SM_PMR_HU(CLUOUT,ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1))     
+    ZMR(:)=SM_PMR_HU(ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1))     
 !                                                          
 !     Compute height of the mass levels of the RS
     ZHEIGHTM(:) = HEIGHT_PRESS(ZPRESSM,ZTHV,ZPGROUND,ZTHV(1),ZZGROUND)
@@ -685,7 +683,7 @@ SELECT CASE(YKIND)
 !                                                       
 !     Compute Tv and the mixing ratio at the mass levels of the RS
     ZTV(:)=ZTHV(:) * (ZPRESSM(:) / XP00) ** ZRDSCPD   
-    ZMR(:)=SM_PMR_HU(CLUOUT,ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) 
+    ZMR(:)=SM_PMR_HU(ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) 
 !
 ! on interpole thetal(=theta quand il n'y a pas d'eau liquide) et r total
     ZRT(:)=ZMR(:)
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 6ebec55f9287fb0ef7240440006fc87cf6901771..14779a7f527dcdfb1455706d8252eb88319957a4 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -766,12 +766,12 @@ ENDIF
                 !          LB fields for lbc coupling
 !
 !get the size of the local portion of the LB zone in X and Y direction
-CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-     IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-     IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY,   &
-     IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,         &
-     IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                  IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                  IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                  IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                  IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 !on fait des choses inutiles avec GET_SIZEX_LB, on pourrait utiliser seulement GET_LOCAL_LB_SIZE_X_ll
 !ILOCLBSIZEX = GET_LOCAL_LB_SIZE_X_ll( NRIMX )
 !ILOCLBSIZEY = GET_LOCAL_LB_SIZE_Y_ll( NRIMY )
@@ -1065,12 +1065,12 @@ ZGRID2 = ZTIME2 - ZTIME1
 ZTIME1 = ZTIME2
 !
 IF (LCARTESIAN) THEN
-  CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,XDXHAT,XDYHAT,ZZZ_LS,ZJ)
-  CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS   ,LSLEVE,XLEN1,XLEN2,XZSMT   ,XDXHAT,XDYHAT,XZZ   ,ZJ)
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,XDXHAT,XDYHAT,ZZZ_LS,ZJ)
+  CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS   ,LSLEVE,XLEN1,XLEN2,XZSMT   ,XDXHAT,XDYHAT,XZZ   ,ZJ)
 ELSE
-  CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,&
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,&
                    XLATORI,XLONORI,XMAP,XLAT,XLON,XDXHAT,XDYHAT,ZZZ_LS,ZJ)
-  CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS   ,LSLEVE,XLEN1,XLEN2,XZSMT   ,&
+  CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS   ,LSLEVE,XLEN1,XLEN2,XZSMT   ,&
                    XLATORI,XLONORI,XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ   ,ZJ)
 END IF
 !
@@ -1097,9 +1097,9 @@ CALL MPPDB_CHECK3D(XDZY,"spawnmod2-aftrupdate_metrics:XDZY",PRECISION)
 !
 !*       5.5    3D Reference state variables :
 !
-CALL SET_REF(0,TZFILEDUMMY,CLUOUT,                  &
-             XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY,    &  
-             XREFMASS,XMASS_O_PHI0,XLINMASS,        &
+CALL SET_REF(0,TZFILEDUMMY,                        &
+             XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY,   &
+             XREFMASS,XMASS_O_PHI0,XLINMASS,       &
              XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ)
 !
 CALL SECOND_MNH(ZTIME2)
@@ -1213,7 +1213,7 @@ IF (NRR==0) THEN
   XTHT(:,:,:) = ZTHVT(:,:,:)
 ELSE
   IF (NDXRATIO/=1 .OR. NDYRATIO/=1) THEN
-    XRT(:,:,:,1) = SM_PMR_HU(CLUOUT,XPABST(:,:,:),                          &
+    XRT(:,:,:,1) = SM_PMR_HU(XPABST(:,:,:),                                 &
                              ZTHVT(:,:,:)*(XPABST(:,:,:)/XP00)**(XRD/XCPD), &
                              ZHUT(:,:,:),XRT(:,:,:,:),KITERMAX=100          )
   END IF
@@ -1377,7 +1377,7 @@ ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) &
   CALL MPPDB_CHECK3D(ZSUMRT,"SPAWN_MOD2:ZSUMRT",PRECISION)
 !$20140710 until here all ok after UPHALO(XZZ)
 !
-CALL TOTAL_DMASS(CLUOUT,ZJ,ZRHOD,XDRYMASST)
+CALL TOTAL_DMASS(ZJ,ZRHOD,XDRYMASST)
 !
 DEALLOCATE (ZRHOD)
 DEALLOCATE (ZSUMRT,ZTHVT)
@@ -1443,7 +1443,7 @@ CALL IO_FILE_OPEN_ll(TZFILE)
 !
 YDESFM=ADJUSTL(ADJUSTR(CMY_NAME(2))//'.des')
 !
-CALL WRITE_DESFM_n(2,YDESFM,CLUOUT)
+CALL WRITE_DESFM_n(2,YDESFM)
 !
 IF (LBAL_ONLY) THEN  ! same relation with its DAD for model2 and for model1
   NDXRATIO_ALL(2) = NDXRATIO_ALL(1)
diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90
index 9f09b236d54daa39ef020437ad716d2cc544e309..f80801dd3c492bb1bbe609bb82f73b6e99ba7981 100644
--- a/src/MNH/spawn_surf.f90
+++ b/src/MNH/spawn_surf.f90
@@ -73,7 +73,6 @@ END MODULE MODI_SPAWN_SURF
 !               ------------
 !
 USE MODD_LUNIT,        ONLY : CPGDFILE, COUTFMFILE
-USE MODD_LUNIT_n,      ONLY : CLUOUT
 USE MODD_PARAM_n,      ONLY : CSURF
 USE MODD_NESTING,      ONLY : CMY_NAME, CDAD_NAME
 USE MODD_CONF,         ONLY : NVERB
@@ -86,7 +85,6 @@ USE MODI_MNHPUT_ZS_n
 !
 USE MODE_ll
 USE MODE_FMWRIT
-USE MODE_FM
 USE MODE_IO_ll
  !JUAN REALZ
 USE MODE_MODELN_HANDLER
@@ -112,16 +110,10 @@ LOGICAL,               INTENT(IN) :: OSPAWN_SURF  ! flag to spawn surface fields
 !
 !*       0.1.3  Declarations of local variables :
 !
-INTEGER :: IRESP    ! Return codes in FM routines
-INTEGER :: ILUOUT   ! Logical unit number for the output listing 
 INTEGER :: IINFO_ll
 !  
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
-!-------------------------------------------------------------------------------
-!
 !*       7.      Surface variables :
 !
 IF (CSURF=='EXTE') THEN
diff --git a/src/MNH/stationn.f90 b/src/MNH/stationn.f90
index 9c2ee8fcaa96ab65337177dfffb09684ed255149..27b5a964577a9e90a7604e8cbe83cf40a512d504 100644
--- a/src/MNH/stationn.f90
+++ b/src/MNH/stationn.f90
@@ -14,7 +14,7 @@ MODULE MODI_STATION_n
 !
 INTERFACE
 !
-      SUBROUTINE STATION_n(HLUOUT, PTSTEP,                       &
+      SUBROUTINE STATION_n(PTSTEP,                               &
                            TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                            PXHAT, PYHAT, PZ,                     &
                            PU, PV, PW, PTH, PR, PSV, PTKE,       &
@@ -22,7 +22,6 @@ INTERFACE
 !
 USE MODD_TYPE_DATE
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT  ! output listing       
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -50,7 +49,7 @@ END INTERFACE
 END MODULE MODI_STATION_n
 !
 !     ########################################################
-      SUBROUTINE STATION_n(HLUOUT, PTSTEP,       &
+      SUBROUTINE STATION_n(PTSTEP,                           &
                        TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                        PXHAT, PYHAT, PZ,                     &
                        PU, PV, PW, PTH, PR, PSV, PTKE,   &
@@ -106,7 +105,6 @@ USE MODD_GRID
 USE MODD_TIME
 USE MODD_CONF
 !
-USE MODE_FM
 USE MODE_ll
 !
 USE MODI_WATER_SUM
@@ -120,7 +118,6 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
 REAL,                     INTENT(IN)     :: PTSTEP ! time step
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTEXP! experiment date and time
 TYPE(DATE_TIME),          INTENT(IN)     :: TPDTMOD! model start date and time
@@ -168,7 +165,6 @@ REAL    :: ZV_STAT     ! horizontal wind speed at station location (along y)
 REAL    :: ZGAM        ! rotation between meso-nh base and spherical lat-lon base.
 !
 INTEGER :: IINFO_ll   ! return code
-INTEGER :: ILUOUT     ! logical unit
 INTEGER :: IRESP      ! return code
 INTEGER :: I          ! loop for stations
 INTEGER :: J          ! loop for levels
@@ -179,8 +175,6 @@ INTEGER :: J          ! loop for levels
 !*      2.   PRELIMINARIES
 !            -------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
 !*      2.1  Indices
 !            -------
 !
diff --git a/src/MNH/total_dmass.f90 b/src/MNH/total_dmass.f90
index 0dff9a5545b2d2ce655dbeca2dc782dc565a457c..f54de98b07d17d0421aee447b6f3cc01bae71e77 100644
--- a/src/MNH/total_dmass.f90
+++ b/src/MNH/total_dmass.f90
@@ -14,12 +14,10 @@
 !
 INTERFACE
 !
-      SUBROUTINE TOTAL_DMASS(HLUOUT,PJ,PRHOD,PDRYMASS)
+      SUBROUTINE TOTAL_DMASS(PJ,PRHOD,PDRYMASS)
 !
 IMPLICIT NONE
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models                                       
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PJ        ! Jacobian             
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PRHOD     ! dry density
 !
@@ -36,7 +34,7 @@ END MODULE MODI_TOTAL_DMASS
 !
 !
 !     #########################################################################
-      SUBROUTINE TOTAL_DMASS(HLUOUT,PJ,PRHOD,PDRYMASS)
+      SUBROUTINE TOTAL_DMASS(PJ,PRHOD,PDRYMASS)
 !     #########################################################################
 !
 !!****  *TOTAL_DMASS* - routine to set reference state for anelastic approximation
@@ -86,17 +84,15 @@ END MODULE MODI_TOTAL_DMASS
 !
 !*       0.    DECLARATIONS
 !              ------------ 
-USE MODE_FM
+USE MODD_CONF,    ONLY: NVERB
+USE MODD_LUNIT_n, ONLY: TLUOUT
+!
 USE MODE_ll
 !  
-USE MODD_CONF,     ONLY : NVERB
-!
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
 !
-CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
-                                                 !  of nested models                                       
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PJ        ! Jacobian             
 REAL, DIMENSION(:,:,:), INTENT(IN)  :: PRHOD     ! dry density
 !
@@ -105,9 +101,6 @@ REAL,                   INTENT(OUT) :: PDRYMASS ! Mass of dry air Md
 !
 !*       0.2   declarations of local variables
 !
-INTEGER             :: IRESP      ! File management variable
-INTEGER             :: ILUOUT     ! Unit number for prints
-!
 INTEGER             :: IINFO_ll   ! Return code of parallel routine
 !
 !-------------------------------------------------------------------------------
@@ -123,10 +116,7 @@ PDRYMASS=SUM3D_ll(PJ(:,:,:)*PRHOD(:,:,:),IINFO_ll)
 !              -----------------------
 !
 IF(NVERB >= 5) THEN  
-!
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-!
-  WRITE(ILUOUT,*) 'TOTAL_DMASS:    M= ',PDRYMASS
+  WRITE(TLUOUT%NLU,*) 'TOTAL_DMASS:    M= ',PDRYMASS
 END IF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/trid.f90 b/src/MNH/trid.f90
index 19578b710efa40b196edf4d27a7190d0deffabad..f6a77a1d2f8fb0e8bccca718391f3904690ec4c2 100644
--- a/src/MNH/trid.f90
+++ b/src/MNH/trid.f90
@@ -14,14 +14,13 @@
 !
 INTERFACE
 !
-      SUBROUTINE TRID(HLUOUT,HLBCX,HLBCY,                               &
+      SUBROUTINE TRID(HLBCX,HLBCY,                                      &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY        )
 !
 IMPLICIT NONE
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -67,7 +66,7 @@ END INTERFACE
 END MODULE MODI_TRID
 !
 !     ###################################################################
-      SUBROUTINE TRID(HLUOUT,HLBCX,HLBCY,                               &
+      SUBROUTINE TRID(HLBCX,HLBCY,                                      &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY        )
@@ -172,11 +171,11 @@ END MODULE MODI_TRID
 !              ------------
 USE MODD_CST
 USE MODD_CONF
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 !
 USE MODE_ll
 USE MODE_IO_ll
-USE MODE_FM
 USE MODE_MSG
 !
 !JUAN
@@ -190,7 +189,6 @@ IMPLICIT NONE
 !
 !
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -284,7 +282,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:)              :: ZRHOM_2D   , ZDZM_2D
 !*       1.1  retrieve a logical unit number
 !             ------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       1.2  compute loop bounds
 !             -------------------
diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90
index 9815bef4bd76cc84de02b84e248e33a05fa94848..7428f6db25aa745c358e2a2d07f0af6b43579e86 100644
--- a/src/MNH/tridz.f90
+++ b/src/MNH/tridz.f90
@@ -13,7 +13,7 @@
 !
 INTERFACE
 !
-      SUBROUTINE TRIDZ(HLUOUT,HLBCX,HLBCY,                              &
+      SUBROUTINE TRIDZ(HLBCX,HLBCY,                                     &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PBFB,&
@@ -21,7 +21,6 @@ INTERFACE
 !
 IMPLICIT NONE
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -73,7 +72,7 @@ END INTERFACE
 END MODULE MODI_TRIDZ
 !
 !     ###################################################################
-      SUBROUTINE TRIDZ(HLUOUT,HLBCX,HLBCY,                              &
+      SUBROUTINE TRIDZ(HLBCX,HLBCY,                                     &
                       PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,         &
                       PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,            &
                       PRHODJ,PTHVREF,PZZ,PBFY,PBFB,&
@@ -180,11 +179,11 @@ END MODULE MODI_TRIDZ
 !              ------------
 USE MODD_CST
 USE MODD_CONF
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 !
 USE MODE_ll
 USE MODE_IO_ll
-USE MODE_FM
 USE MODE_MSG
 !JUAN P1/P2 SPLITTING
 USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll
@@ -202,7 +201,6 @@ IMPLICIT NONE
 !
 !
 !
-CHARACTER (LEN=*),               INTENT(IN) :: HLUOUT   ! output listing name
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX    ! x-direction LBC type
 CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY    ! y-direction LBC type
 !
@@ -311,7 +309,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:)              :: ZRHOM_2D   , ZDZM_2D
 !*       1.1  retrieve a logical unit number
 !             ------------------------------
 !
-CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 !*       1.2  compute loop bounds
 !             -------------------
diff --git a/src/MNH/two_way.f90 b/src/MNH/two_way.f90
index 9053ab92aef76428193ee8ab58810a7198cca207..7d47d81319b1b3685ce3111b1a920e42d7fa6d25 100644
--- a/src/MNH/two_way.f90
+++ b/src/MNH/two_way.f90
@@ -14,14 +14,12 @@
 !
 INTERFACE 
 !
-      SUBROUTINE TWO_WAY   (     HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,         &
+      SUBROUTINE TWO_WAY   (     KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                &
                             PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
                             PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 ! 
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing
-!
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of Scalar Variables
 INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
@@ -54,7 +52,7 @@ END INTERFACE
 END MODULE MODI_TWO_WAY 
 !
 !     ########################################################################
-      SUBROUTINE TWO_WAY   (     HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,         &
+      SUBROUTINE TWO_WAY   (     KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                &
                             PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
                             PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
@@ -121,8 +119,6 @@ IMPLICIT NONE
 !*       0.1   declarations of arguments 
 ! 
 !
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing
-!
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of Scalar Variables
 INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
@@ -161,7 +157,7 @@ DO JKID = KMI+1,NMODEL  ! min value of the possible kids
   IF (KMI == NDAD(JKID) .AND. (XWAY(JKID) == 2. ) &
    .AND. (CCONF == 'RESTA' .OR. (CCONF == 'START' .AND. KTCOUNT /= 1))) THEN
     CALL GOTO_MODEL(JKID)
-    CALL TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,              &
+    CALL TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
                     PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
                     PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
                     PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90
index 3ebfd396b164e9179fd56937fc6dc847564d863b..0736f514694d944e519495e8622f6e3af6285bcb 100644
--- a/src/MNH/two_wayn.f90
+++ b/src/MNH/two_wayn.f90
@@ -14,14 +14,12 @@
 !
 INTERFACE 
 !
-      SUBROUTINE TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,              &
+      SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
                             PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
                             PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 ! 
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing
-!
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of Scalar Variables
 INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
@@ -51,7 +49,7 @@ END INTERFACE
 !
 END MODULE MODI_TWO_WAY_n
 !     #######################################################################
-      SUBROUTINE TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,              &
+      SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
                             PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
                             PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
@@ -148,8 +146,6 @@ IMPLICIT NONE
 !
 !*       0.1   declarations of arguments 
 ! 
-CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing
-!
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of SV (father model)
 INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
diff --git a/src/MNH/uv_to_zonal_and_merid.f90 b/src/MNH/uv_to_zonal_and_merid.f90
index fd8d80fb094f4125071466df9620514f67ecce1d..a3dabbef2a4defbe0535587b8da644e4f61a63a5 100644
--- a/src/MNH/uv_to_zonal_and_merid.f90
+++ b/src/MNH/uv_to_zonal_and_merid.f90
@@ -102,15 +102,14 @@ END MODULE MODI_UV_TO_ZONAL_AND_MERID3D
 !
 USE MODD_CONF
 USE MODD_CST
-USE MODD_GRID
-USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING
-USE MODD_PARAMETERS
 USE MODD_DIM_n
+USE MODD_GRID
 USE MODD_GRID_n
-USE MODD_LUNIT_n
+USE MODD_IO_ll,   ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING
+USE MODD_LUNIT_n, ONLY: TLUOUT
+USE MODD_PARAMETERS
 !
-USE MODE_FIELD, ONLY: TFIELDDATA
-USE MODE_FM
+USE MODE_FIELD,   ONLY: TFIELDDATA
 USE MODE_FMWRIT
 USE MODE_MSG
 !
@@ -137,12 +136,10 @@ REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZWORK3
 REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZZC,ZMC
 !
 INTEGER           :: IGRID          ! grid indicator
-INTEGER           :: IRESP          ! return-code for the file routines
 INTEGER           :: ILUOUT         ! logical unit for output listing
 !-----------------------------------------------------------------
 !
-
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 IKU=SIZE(PU,3)
 ALLOCATE(ZWORK2(SIZE(XLON,1),SIZE(XLON,2)))
@@ -278,11 +275,10 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D
 !*       0.     DECLARATIONS
 !               ------------
 !
-USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_WARNING
-USE MODD_LUNIT_n
+USE MODD_IO_ll,   ONLY: TFILEDATA,NVERB_WARNING
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
-USE MODE_FIELD, ONLY: TFIELDDATA
-USE MODE_FM
+USE MODE_FIELD,   ONLY: TFIELDDATA
 USE MODE_FMWRIT
 USE MODE_MSG
 !
@@ -304,12 +300,11 @@ TYPE(TFIELDDATA),DIMENSION(2), OPTIONAL, INTENT(IN)  :: TZFIELDS ! Fields charac
 !
 REAL, DIMENSION(SIZE(PU,1),SIZE(PU,2),1) :: ZU3D,ZV3D
 REAL, DIMENSION(SIZE(PU,1),SIZE(PU,2),1) :: ZZC3D,ZMC3D
-INTEGER           :: IRESP          ! return-code for the file routines
 INTEGER           :: ILUOUT         ! logical unit for output listing
 !
 !-----------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
+ILUOUT = TLUOUT%NLU
 !
 ZU3D(:,:,1)=PU(:,:)
 ZV3D(:,:,1)=PV(:,:)
diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90
index 4dd02ca40c37cfc3d99cb3071b5d9744763d1415..a97b724b1bea1bcead7760a2c9f3c25c6cceeddc 100644
--- a/src/MNH/ver_dyn.f90
+++ b/src/MNH/ver_dyn.f90
@@ -85,8 +85,6 @@ END MODULE MODI_VER_DYN
 !!    subroutine WGUESS         : to initialize vertical momentum
 !!    subroutine ANEL_BALANCE1  : to apply the anelastic correction
 !!    functions MXM ,MYM ,MZM   : Shuman operators
-!!    subroutine FMLOOK         : to retrieve a logical unit number associated
-!!                                with a file
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -138,32 +136,31 @@ END MODULE MODI_VER_DYN
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODI_COEF_VER_INTERP_LIN ! interface modules
-USE MODI_VER_INTERP_LIN
-USE MODI_WGUESS
-USE MODI_VER_SHIFT
-USE MODI_VER_INT_DYN
-USE MODI_ANEL_BALANCE_n
-USE MODI_SHUMAN
-!
-USE MODD_CONF           ! declaration modules
+USE MODD_ARGSLIST_ll, ONLY: LIST_ll
+USE MODD_CONF
 USE MODD_CST
-USE MODD_LUNIT
-USE MODD_FIELD_n, ONLY: XUT,XVT,XWT,XPABST,XTHT,XRT
-USE MODD_LSFIELD_n
-USE MODD_LBC_n
-USE MODD_REF_n
+USE MODD_DIM_n
 USE MODD_DYN_n
+USE MODD_FIELD_n,     ONLY: XUT,XVT,XWT,XPABST,XTHT,XRT
 USE MODD_GRID_n
+USE MODD_LBC_n
+USE MODD_LSFIELD_n
+USE MODD_LUNIT,       ONLY: TLUOUT0
 USE MODD_PARAMETERS
+USE MODD_REF_n
 USE MODD_VER_INTERP_LIN
-USE MODD_DIM_n
-USE MODE_MPPDB
-USE MODE_ll
+!
 USE MODE_EXTRAPOL
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+USE MODE_ll
+USE MODE_MPPDB
+!
+USE MODI_ANEL_BALANCE_n
+USE MODI_COEF_VER_INTERP_LIN
+USE MODI_SHUMAN
+USE MODI_VER_INT_DYN
+USE MODI_VER_INTERP_LIN
+USE MODI_VER_SHIFT
+USE MODI_WGUESS
 !
 IMPLICIT NONE
 !
@@ -211,8 +208,6 @@ INTEGER :: IIB,IIE,IIU
 INTEGER :: IJB,IJE,IJU
 INTEGER :: IKB,IKE,IKU
 INTEGER :: ILBX,ILBY
-INTEGER :: IRESP   ! return code if problem eraised in FM routines
-INTEGER :: ILUOUT0 ! logical unit for output listing for all models
 !
 INTEGER :: IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU     ! dimensions of the
 INTEGER :: IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2       ! West-east LB arrays
@@ -231,7 +226,6 @@ IJU=SIZE(PJ,2)
 IKB=JPVEXT+1
 IKE=SIZE(PJ,3)-JPVEXT
 IKU=SIZE(PJ,3)
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
 !-------------------------------------------------------------------------------
 !
@@ -445,12 +439,12 @@ CALL MPPDB_CHECK3D(XLSVM,"VER_DYN5-afterextrapol::XLSVM",PRECISION)
 !
 ! 3D case
 !
-  CALL GET_SIZEX_LB(CLUOUT0,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-  CALL GET_SIZEY_LB(CLUOUT0,NIMAX_ll,NJMAX_ll,NRIMY,   &
-       IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,         &
-       IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                    IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                    IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 
   IF ( LHORELAX_UVWTH ) THEN
     NSIZELBX_ll=2*NRIMX+2*JPHEXT
@@ -520,6 +514,6 @@ CALL  MPPDB_CHECKLB(XLBYWM,"ver_dyn::XLBYWM::",PRECISION,'LBYV',NRIMY)
 !
 !-------------------------------------------------------------------------------
 !
-WRITE(ILUOUT0,*) 'Routine VER_DYN completed.'
+WRITE(TLUOUT0%NLU,*) 'Routine VER_DYN completed.'
 !
 END SUBROUTINE VER_DYN
diff --git a/src/MNH/ver_int_dyn.f90 b/src/MNH/ver_int_dyn.f90
index c32dcfc5e036a9f42c231cc714870c463f69df88..81c2cd1e22206d809bd4088cd1046c72878c4a04 100644
--- a/src/MNH/ver_int_dyn.f90
+++ b/src/MNH/ver_int_dyn.f90
@@ -63,8 +63,6 @@ END MODULE MODI_VER_INT_DYN
 !!
 !!    function VER_SHIFT    : to shift a array of altitudes
 !!    function VER_INTERP   : to interpolate one field from one grid to another
-!!    subroutine FMLOOK     : to retrieve a logical unit number associated
-!!                            with a file
 !!    MZF                   : Shuman operator
 !!
 !!    Module MODI_SHUMAN    : interface for Shuman operators
@@ -104,18 +102,17 @@ END MODULE MODI_VER_INT_DYN
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
-USE MODI_VER_SHIFT   ! interface module
-USE MODI_COEF_VER_INTERP_LIN
-USE MODI_VER_INTERP_LIN
-USE MODI_SHUMAN
-USE MODD_CONF      ! declaration modules
-USE MODD_LUNIT
+USE MODD_CONF
 USE MODD_GRID_n
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
 USE MODD_VER_INTERP_LIN
 !
+USE MODI_COEF_VER_INTERP_LIN
+USE MODI_SHUMAN
+USE MODI_VER_INTERP_LIN
+USE MODI_VER_SHIFT
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -135,7 +132,6 @@ REAL,   DIMENSION(:,:,:), INTENT(OUT) :: PRHODVA   ! rhodV on MESO-NH A-grid
 !*       0.2   Declaration of local variables
 !              ------------------------------
 !
-INTEGER                    ::ILUOUT0, IRESP
 INTEGER                    ::IKU
 !
 REAL,DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2),SIZE(PZMASS_MX,3))  &
@@ -206,7 +202,6 @@ PRHODVA(:,:,:)=VER_INTERP_LIN(ZRHODV_SH(:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:))
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine VER_INT_DYN completed'
+WRITE(TLUOUT0%NLU,*) 'Routine VER_INT_DYN completed'
 !
 END SUBROUTINE VER_INT_DYN
diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90
index 9c39d1024cabada354aca8f99044fa631b451b3d..1a5fcb6d4fbe9d9c03301675ca64878b42d063c1 100644
--- a/src/MNH/ver_int_thermo.f90
+++ b/src/MNH/ver_int_thermo.f90
@@ -84,8 +84,6 @@ END MODULE MODI_VER_INT_THERMO
 !!    subroutine MEAN_PROF  : to compute the shift profiles
 !!    function VER_SHIFT    : to shift a array of altitudes
 !!    function VER_INTERP   : to interpolate one field from one grid to another
-!!    function FMLOOK       : to retrieve a logical unit number associated
-!!                            with a file
 !!    MZF                   : Shuman operator
 !!    function SM_FOES      : to compute saturation vapor pressure
 !!    function SM_PMR_HU    : function to compute vapor mixing ratio from HU
@@ -144,33 +142,30 @@ END MODULE MODI_VER_INT_THERMO
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_THERMO           ! executive module
-USE MODE_FM
-USE MODI_FREE_ATM_PROFILE ! interface module
-USE MODI_VER_SHIFT
-USE MODI_COEF_VER_INTERP_LIN
-USE MODI_VER_INTERP_LIN
-USE MODI_SHUMAN
-USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODI_RMS_AT_Z
-USE MODI_WATER_SUM
-!
-USE MODD_CONF      ! declaration modules
+USE MODD_ARGSLIST_ll, ONLY: LIST_ll
+USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT
+USE MODD_CST
 USE MODD_GRID_n
+USE MODD_IO_ll,       ONLY: TFILEDATA
+USE MODD_LUNIT,       ONLY: CLUOUT0, TLUOUT0
 USE MODD_PARAMETERS
-USE MODD_CST
 USE MODD_VER_INTERP_LIN
-!JUAN REALZ
-USE MODE_MPPDB
-USE MODE_EXTRAPOL
-!JUAN REALZ
-USE MODI_SECOND_MNH
 !
+USE MODE_EXTRAPOL
 USE MODE_ll
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+USE MODE_MPPDB
+USE MODE_THERMO
+!
+USE MODI_COEF_VER_INTERP_LIN
+USE MODI_COMPUTE_EXNER_FROM_TOP
+USE MODI_FREE_ATM_PROFILE
+USE MODI_RMS_AT_Z
+USE MODI_SECOND_MNH
+USE MODI_SHUMAN
+USE MODI_VER_INTERP_LIN
+USE MODI_VER_SHIFT
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -271,7 +266,7 @@ TYPE(LIST_ll), POINTER :: TZFIELDS_ll=>NULL()   ! list of fields to exchange
 !
 !------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=JPVEXT+1
@@ -499,7 +494,7 @@ IF (NVERB>4) THEN
   !20131113 check3d
   CALL MPPDB_CHECK3D(ZTV_SH,"ver_int_thermo5b::ZTV_SH",PRECISION)
 !
-  ZR_SH(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZPMASS_SH(:,:,:),ZTV_SH(:,:,:),ZHU_SH(:,:,:),&
+  ZR_SH(:,:,:,1)=SM_PMR_HU(ZPMASS_SH(:,:,:),ZTV_SH(:,:,:),ZHU_SH(:,:,:),&
                            ZR_SH(:,:,:,:),KITERMAX=100)
   CALL RMS_AT_Z(PTHV_MX/(1.+XRV/XRD*PR_MX(:,:,:,1))*(1.+WATER_SUM(PR_MX(:,:,:,:))),          &
                     PZS_LS,PZMASS_MX,                                                        &
@@ -564,7 +559,7 @@ CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6b::ZP",PRECISION)
 !
-PR(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZP(:,:,:),                        &
+PR(:,:,:,1)=SM_PMR_HU(ZP(:,:,:),                                &
                       PTHV(:,:,:)*(ZP(:,:,:)/XP00)**(XRD/XCPD), &
                       ZHU(:,:,:),PR(:,:,:,:),KITERMAX=100)
 CALL ADD3DFIELD_ll(TZFIELDS_ll,PR(:,:,:,1))
diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90
index 5ddad2079695f8f27904fb4fb21f2dfd4c2f3237..8878143cea0575d895355e564f6c20509eeb7641 100644
--- a/src/MNH/ver_interp_to_mixed_grid.f90
+++ b/src/MNH/ver_interp_to_mixed_grid.f90
@@ -404,7 +404,7 @@ IF (HFILE=='ATM ') THEN
 !
   ZPMASS_MX(:,:,:)=XP00*(ZHEXNMASS_MX(:,:,:))**(XCPD/XRD) + XPMHP_MX(:,:,:)
   !
-  XR_MX(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZPMASS_MX(:,:,:),                           &
+  XR_MX(:,:,:,1)=SM_PMR_HU(ZPMASS_MX(:,:,:),                                   &
                            XTHV_MX(:,:,:)*(ZPMASS_MX(:,:,:)/XP00)**(XRD/XCPD), &
                            ZHU_MX(:,:,:),XR_MX(:,:,:,:),KITERMAX=100)
 !
diff --git a/src/MNH/ver_prep_gribex_case.f90 b/src/MNH/ver_prep_gribex_case.f90
index 4c9d48e96ac01a5accf59e0d6a832ec854d929a5..32268f5586f8ba2152d7df5e837ff279f7491dd5 100644
--- a/src/MNH/ver_prep_gribex_case.f90
+++ b/src/MNH/ver_prep_gribex_case.f90
@@ -39,7 +39,6 @@ END MODULE MODI_VER_PREP_GRIBEX_CASE
 !!    --------
 !!
 !!    function MZF
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    routine VER_INTERP_TO_MIXED_GRID
 !!    routine CHANGE_GRIBEX_VAR
 !!
@@ -94,24 +93,22 @@ END MODULE MODI_VER_PREP_GRIBEX_CASE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_THERMO
-USE MODE_FM
-!
-USE MODI_SHUMAN         ! interface modules
-USE MODI_CHANGE_GRIBEX_VAR
-USE MODI_VER_INTERP_TO_MIXED_GRID
-USE MODI_RMS_AT_Z
-USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODI_WATER_SUM
-!
-USE MODD_CONF           ! declaration modules
+USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_LUNIT
 USE MODD_CST
-USE MODD_PREP_REAL
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF
+USE MODD_PREP_REAL
+!
+USE MODE_THERMO
 !
+USE MODI_CHANGE_GRIBEX_VAR
+USE MODI_COMPUTE_EXNER_FROM_TOP
+USE MODI_RMS_AT_Z
 USE MODI_SECOND_MNH
+USE MODI_SHUMAN
+USE MODI_VER_INTERP_TO_MIXED_GRID
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -123,7 +120,7 @@ REAL, INTENT(OUT)                 :: PDIAG    ! diagnostics computing time
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER                            :: IRESP, ILUOUT0
+INTEGER                            :: ILUOUT0
 INTEGER                            :: IIU,IJU,ILU
 REAL                               :: ZTIME1, ZTIME2
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZTH_LS    ! potential temperature
@@ -148,7 +145,7 @@ INTEGER                            :: JSV     ! loop counter
 INTEGER                            :: JK      ! loop counter
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !*       1.    CHANGING OF VARIABLES
 !              ---------------------
diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90
index f214972241a06695b306510da73a6b4e96a3d20d..561f2e03f488502e1586b14b59e88a2b03d690ac 100644
--- a/src/MNH/ver_prep_mesonh_case.f90
+++ b/src/MNH/ver_prep_mesonh_case.f90
@@ -37,7 +37,6 @@ END MODULE MODI_VER_PREP_MESONH_CASE
 !!    --------
 !!
 !!    function MZF
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    routine VER_INTERP_TO_MIXED_GRID
 !!
 !!    module MODI_SHUMAN
@@ -49,7 +48,7 @@ END MODULE MODI_VER_PREP_MESONH_CASE
 !!      Module MODD_CONF      : contains configuration variables for all models.
 !!         NVERB      : verbosity level for output-listing
 !!      Module MODD_LUNIT     :  contains logical unit names for all models
-!!         CLUOUT0 : name of output-listing
+!!         TLUOUT0 : output-listing file
 !!      Module MODD_CST       : contains physical constants
 !!         XRD : gas constant for dry air
 !!         XRV : gas constant for vapor
@@ -89,43 +88,36 @@ END MODULE MODI_VER_PREP_MESONH_CASE
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_THERMO
-USE MODE_FM
-!
-USE MODI_SHUMAN         ! interface modules
-USE MODI_VER_INTERP_TO_MIXED_GRID
-USE MODI_COMPUTE_EXNER_FROM_GROUND
-USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODI_RMS_AT_Z
-USE MODI_WATER_SUM
-USE MODI_VERT_COORD
-!
-USE MODD_CONF           ! declaration modules
-USE MODD_LUNIT
+USE MODD_ARGSLIST_ll, ONLY: LIST_ll
+USE MODD_CONF
 USE MODD_CST
+USE MODD_LUNIT, ONLY: TLUOUT0
 USE MODD_PARAMETERS
 USE MODD_PREP_REAL
 !
-USE MODI_SECOND_MNH
 USE MODE_ll
-!
-!20131104 check on 3D VARS
 USE MODE_MPPDB
-!20131112 add update_halo_ll
-USE MODE_ll
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+USE MODE_THERMO
+!
+USE MODI_COMPUTE_EXNER_FROM_GROUND
+USE MODI_COMPUTE_EXNER_FROM_TOP
+USE MODI_RMS_AT_Z
+USE MODI_SECOND_MNH
+USE MODI_SHUMAN
+USE MODI_VER_INTERP_TO_MIXED_GRID
+USE MODI_VERT_COORD
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
 !              ------------------------
 !
-!
 REAL, INTENT(OUT)                 :: PDIAG    ! diagnostics computing time
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER                            :: IRESP, ILUOUT0
+!
 INTEGER                            :: IIU,IJU,ILU
 REAL                               :: ZTIME1, ZTIME2
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZHPMASS_LS  ! hyd. pressure
@@ -384,7 +376,6 @@ DEALLOCATE(XHU_LS)
 DEALLOCATE(XTHV_LS)
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine VER_PREP_MESONH_CASE completed'
+WRITE(TLUOUT0%NLU,*) 'Routine VER_PREP_MESONH_CASE completed'
 !
 END SUBROUTINE VER_PREP_MESONH_CASE
diff --git a/src/MNH/ver_prep_netcdf_case.f90 b/src/MNH/ver_prep_netcdf_case.f90
index 1ebc70d519ae3a2b3631161495001ef60fc1bab9..f0aab51cdfdb801116bb0306ff47874b66d33584 100644
--- a/src/MNH/ver_prep_netcdf_case.f90
+++ b/src/MNH/ver_prep_netcdf_case.f90
@@ -28,7 +28,6 @@ END MODULE MODI_VER_PREP_NETCDF_CASE
 !!    --------
 !!
 !!    function MZF
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
 !!    routine VER_INTERP_TO_MIXED_GRID
 !!    routine CHANGE_GRIBEX_VAR
 !!
@@ -42,7 +41,7 @@ END MODULE MODI_VER_PREP_NETCDF_CASE
 !!      Module MODD_CONF1     : contains configuration variables for all models.
 !!         NVERB      : verbosity level for output-listing
 !!      Module MODD_LUNIT     :  contains logical unit names for all models
-!!         CLUOUT0 : name of output-listing
+!!         TLUOUT0 : output-listing file
 !!      Module MODD_CST       : contains physical constants
 !!         XRD : gas constant for dry air
 !!         XRV : gas constant for vapor
@@ -84,23 +83,22 @@ END MODULE MODI_VER_PREP_NETCDF_CASE
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE MODD_CONF
+USE MODD_CONF_n
+USE MODD_CST
+USE MODD_LUNIT, ONLY: TLUOUT0
+USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF
+USE MODD_PREP_REAL
+!
 USE MODE_THERMO
-USE MODE_FM
 !
-USE MODI_SHUMAN         ! interface modules
 USE MODI_CHANGE_GRIBEX_VAR
-USE MODI_VER_INTERP_TO_MIXED_GRID
-USE MODI_RMS_AT_Z
 USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODI_WATER_SUM
+USE MODI_RMS_AT_Z
 USE MODI_SECOND_MNH
-!
-USE MODD_CONF           ! declaration modules
-USE MODD_CONF_n
-USE MODD_LUNIT
-USE MODD_CST
-USE MODD_PREP_REAL
-USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF
+USE MODI_SHUMAN
+USE MODI_VER_INTERP_TO_MIXED_GRID
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -111,7 +109,7 @@ REAL, INTENT(OUT)                 :: PDIAG    ! diagnostics computing time
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER                            :: IRESP, ILUOUT0
+INTEGER                            :: ILUOUT0
 INTEGER                            :: IIU,IJU,ILU
 REAL                               :: ZTIME1, ZTIME2
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZTH_LS    ! potential temperature
@@ -136,7 +134,7 @@ INTEGER                            :: JSV     ! loop counter
 INTEGER                            :: JK      ! loop counter
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
+ILUOUT0 = TLUOUT0%NLU
 !
 !*       1.    CHANGING OF VARIABLES
 !              ---------------------
diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90
index 39ddfc57368aaa313c5d06f85ec7bd8994abbcef..65af6e80fda3864e39dd707d351c1e4a72482e06 100644
--- a/src/MNH/ver_thermo.f90
+++ b/src/MNH/ver_thermo.f90
@@ -84,8 +84,6 @@ END MODULE MODI_VER_THERMO
 !!    subroutine SET_REFZ       : to initialize the reference state 1D variables
 !!    subroutine TOTAL_DMASS    : to compute the total dry mass
 !!    subroutine SET_REF        : to compute  rhoJ
-!!    subroutine FMLOOK         : to retrieve a logical unit number associated
-!!                                with a file
 !!
 !!    Module MODI_VER_INT_THERMO: interface for subroutine VER_INT_THERMO
 !!    Module MODI_SET_REFZ      : interface for subroutine SET_REFZ
@@ -158,38 +156,34 @@ END MODULE MODI_VER_THERMO
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODI_VER_INT_THERMO ! interface modules
-USE MODI_SET_REFZ
-USE MODI_TOTAL_DMASS
-USE MODI_SET_REF
-USE MODI_COMPUTE_EXNER_FROM_TOP
-USE MODI_WATER_SUM
-!
-USE MODD_CONF           ! declaration modules
+USE MODD_ARGSLIST_ll, ONLY: LIST_ll
+USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODD_LUNIT
 USE MODD_CST
-USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST
-USE MODD_LSFIELD_n
 USE MODD_DYN_n
-USE MODD_REF_n
+USE MODD_FIELD_n,     ONLY: XTHT,XRT,XPABST,XDRYMASST
 USE MODD_GRID_n
+USE MODD_IO_ll,       ONLY: TFILEDATA
 USE MODD_LBC_n
-USE MODD_LUNIT_n
+USE MODD_LSFIELD_n
+USE MODD_LUNIT,       ONLY: CLUOUT0,TLUOUT0
+USE MODD_LUNIT_n,     ONLY: CLUOUT
 USE MODD_PARAMETERS
+USE MODD_REF_n
 !
-!
-USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL
-USE MODE_FMWRIT
-USE MODE_FM
 USE MODD_DIM_n
-USE MODE_MPPDB
-USE MODE_ll
 USE MODE_EXTRAPOL
+USE MODE_FIELD,       ONLY: TFIELDDATA,TYPEREAL
+USE MODE_FMWRIT
+USE MODE_ll
+USE MODE_MPPDB
 !
-!20131113
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+USE MODI_COMPUTE_EXNER_FROM_TOP
+USE MODI_SET_REF
+USE MODI_SET_REFZ
+USE MODI_TOTAL_DMASS
+USE MODI_VER_INT_THERMO
+USE MODI_WATER_SUM
 !
 IMPLICIT NONE
 !
@@ -218,7 +212,6 @@ REAL,DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSRV_MX ! large scale vapor mixi
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER                                          :: ILUOUT0, IRESP
 INTEGER                                          :: ILBX,ILBY
 INTEGER                                          :: IIB,IIE,IIU
 INTEGER                                          :: IJB,IJE,IJU
@@ -341,8 +334,8 @@ ALLOCATE(XRVREF(IIU,IJU,IKU))
 ALLOCATE(XEXNREF(IIU,IJU,IKU))
 ALLOCATE(XRHODJ(IIU,IJU,IKU))
 XRVREF(:,:,:) = 0.
-CALL SET_REF(0,TZFILEDUMMY,CLUOUT0,XZZ,XZHAT,PJ,PDXX,PDYY,CLBCX,CLBCY, &
-             XREFMASS,XMASS_O_PHI0,XLINMASS,XRHODREF,XTHVREF,XRVREF,   &
+CALL SET_REF(0,TZFILEDUMMY,XZZ,XZHAT,PJ,PDXX,PDYY,CLBCX,CLBCY,       &
+             XREFMASS,XMASS_O_PHI0,XLINMASS,XRHODREF,XTHVREF,XRVREF, &
              XEXNREF,XRHODJ)
 
 CALL MPPDB_CHECK3D(XRHODREF,"VERTHERMO::XRHODREF",PRECISION)
@@ -380,7 +373,7 @@ END DO
 ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) &
             /(XRD*ZTHV(:,:,:)*(1.+ZSUMRT(:,:,:)))
 !
-CALL TOTAL_DMASS(CLUOUT0,PJ,ZRHOD,XDRYMASST)
+CALL TOTAL_DMASS(PJ,ZRHOD,XDRYMASST)
 !
 !-------------------------------------------------------------------------------
 !
@@ -389,12 +382,12 @@ CALL TOTAL_DMASS(CLUOUT0,PJ,ZRHOD,XDRYMASST)
 !
                                  ! 3D case
 !
-  CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX,   &
-       IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU,         &
-       IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
-  CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY,   &
-       IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV,         &
-       IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
+  CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX,               &
+                    IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, &
+                    IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
+  CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY,               &
+                    IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, &
+                    IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 
 IF ( .NOT. PRESENT(PLSTH_MX) ) THEN
   ALLOCATE(XLSTHM(IIU,IJU,IKU))
@@ -494,7 +487,6 @@ ENDIF
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine VER_THERMO completed'
+WRITE(TLUOUT0%NLU,*) 'Routine VER_THERMO completed'
 !
 END SUBROUTINE VER_THERMO
diff --git a/src/MNH/wguess.f90 b/src/MNH/wguess.f90
index f71ce8d1c155d895c5f3acbc1cb7759d05be1dc7..213bb02b1fba40e628ec8614946ebe338a3b9f41 100644
--- a/src/MNH/wguess.f90
+++ b/src/MNH/wguess.f90
@@ -62,8 +62,6 @@ END MODULE MODI_WGUESS
 !!    EXTERNAL
 !!    --------
 !!
-!!    function FMLOOK  :to retrieve a logical unit number associated with a file
-!!    
 !!    DXF,DYF,MXF,MYF,MZM             : Shuman operators
 !!    Module MODI_SHUMAN              : interface for Shuman operators
 !!
@@ -72,8 +70,6 @@ END MODULE MODI_WGUESS
 !!
 !!      Module MODD_CONF      : contains configuration variables for all models.
 !!         NVERB   : verbosity level for output-listing
-!!      Module MODD_LUNIT     : contains logical unit names for all models
-!!         CLUOUT0 : name of output-listing
 !!      Module MODD_PARAMETERS
 !!         JPVEXT
 !!
@@ -96,11 +92,8 @@ END MODULE MODI_WGUESS
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM
-!
 USE MODI_SHUMAN ! interface module
 USE MODD_CONF   ! declaration modules
-USE MODD_LUNIT
 USE MODD_PARAMETERS
 !
 IMPLICIT NONE
@@ -119,7 +112,6 @@ REAL,   DIMENSION(:,:,:), INTENT(OUT) :: PRHODJW ! rhodJw on the MESO-NH grid
 !
 !*       0.2   Declaration of local variables
 !              ------------------------------
-INTEGER :: ILUOUT0, IRESP
 INTEGER :: IIU,IJU
 INTEGER :: IKB,IKU
 INTEGER :: JK
@@ -177,7 +169,5 @@ END DO
 !
 !-------------------------------------------------------------------------------
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-WRITE(ILUOUT0,*) 'Routine WGUESS completed'
 !
 END SUBROUTINE WGUESS
diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90
index 37089e8be17c20e57f1fbe5d98eee8ee4a229e31..fc48eb4b99894497b13ceec1b253120afcaea244 100644
--- a/src/MNH/write_aircraft_balloon.f90
+++ b/src/MNH/write_aircraft_balloon.f90
@@ -844,11 +844,11 @@ ALLOCATE (ZWZ6(1,1,IKU,SIZE(TPFLYER%TIME),1,JPROCZ))
 ZWZ6 = ZWORKZ6(:,:,:,:,:,:JPROCZ)
 DEALLOCATE(ZWORKZ6)
 !
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"RSPL",IGRID, TPFLYER%DATIME, ZW6, &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"RSPL",IGRID, TPFLYER%DATIME, ZW6, &
                    ZTRAJT,YTITLE,YUNIT,YCOMMENT,                               &
                    PTRAJX=ZTRAJX, PTRAJY=ZTRAJY, PTRAJZ=ZTRAJZ                 )
 !
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUPZ,"CART",IGRIDZ, TPFLYER%DATIME,  &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUPZ,"CART",IGRIDZ, TPFLYER%DATIME,  &
                    ZWZ6,ZTRAJT,YTITLEZ,YUNITZ,YCOMMENTZ,                     &
                    .TRUE.,.TRUE.,.FALSE.,                                    &
                    KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=IKU                     )
diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90
index 05513dfbc7856908f3bb6cd563bcfc7ecc4b4db9..9b2773a74323d35c3e04e50b7c737d0564600f47 100644
--- a/src/MNH/write_budget.f90
+++ b/src/MNH/write_budget.f90
@@ -15,14 +15,13 @@
 !
 INTERFACE
 !
-      SUBROUTINE WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,                 &
-                              TPDTMOD,PTSTEP, KSV                      )
+      SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, &
+                              TPDTMOD,PTSTEP, KSV)
 !
 USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODD_TYPE_DATE
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPDIAFILE    ! file to write
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTCUR      ! Current date and time
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTMOD      ! Creation date and time
 REAL,               INTENT(IN) :: PTSTEP       ! time step
@@ -36,10 +35,10 @@ END MODULE MODI_WRITE_BUDGET
 !
 !
 !
-!     ##################################################################
-      SUBROUTINE WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,                 &
-                              TPDTMOD,PTSTEP, KSV                      )
-!     ##################################################################
+!     ############################################
+      SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, &
+                              TPDTMOD,PTSTEP, KSV)
+!     ############################################
 !
 !!****  *WRITE_BUDGET* - routine to write a LFIFM file for the budget. 
 !!                           
@@ -136,18 +135,19 @@ END MODULE MODI_WRITE_BUDGET
 !
 !*       0.    
 !              ------------
-USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODD_BUDGET
+USE MODD_IO_ll,   ONLY: TFILEDATA
+USE MODD_LUNIT_n, ONLY: TLUOUT
 !
-USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL
+USE MODE_FIELD,   ONLY: TFIELDDATA,TYPEREAL
 USE MODE_FMWRIT
 USE MODE_TIME
 !
-USE MODI_TEMPORAL_DIST
-USE MODI_WRITE_DIACHRO
-USE MODI_MENU_DIACHRO
 USE MODI_END_CART_COMPRESS
 USE MODI_END_MASK_COMPRESS
+USE MODI_MENU_DIACHRO
+USE MODI_TEMPORAL_DIST
+USE MODI_WRITE_DIACHRO
 !
 !
 IMPLICIT NONE
@@ -156,7 +156,6 @@ IMPLICIT NONE
 !*       0.1   Declarations of arguments :
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPDIAFILE    ! file to write
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTCUR      ! Current date and time
 TYPE (DATE_TIME),   INTENT(IN) :: TPDTMOD      ! Creation date and time
 REAL,               INTENT(IN) :: PTSTEP       ! time step
@@ -308,7 +307,7 @@ SELECT CASE (CBUTYPE)
 
       WRITE(YGROUP_NAME,FMT="('UU___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID,  &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID,  &
                          ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(1, :),  &
                          YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -331,7 +330,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(1)       = 2
       WRITE(YGROUP_NAME,FMT="('RJX__',I4.4)") NBUTSHIFT
 ! 
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID,   &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID,   &
                          ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT,         &
                          YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -380,7 +379,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 3
       WRITE(YGROUP_NAME,FMT="('VV___',I4.4)") NBUTSHIFT
                                 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -402,7 +401,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(1)       = 3
       WRITE(YGROUP_NAME,FMT="('RJY__',I4.4)") NBUTSHIFT
 ! 
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID, &
            ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT,         &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -451,7 +450,7 @@ SELECT CASE (CBUTYPE)
       YWORKCOMMENT(:)    = 'Budget of momentum along Z axis'
       IWORKGRID(:)       = 4
       WRITE(YGROUP_NAME,FMT="('WW___',I4.4)") NBUTSHIFT
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -473,7 +472,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(1)       = 4
       WRITE(YGROUP_NAME,FMT="('RJZ__',I4.4)") NBUTSHIFT
 ! 
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID, &
            ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT,         &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -506,7 +505,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(1)       = 1
       WRITE(YGROUP_NAME,FMT="('RJS__',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT,         &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -556,7 +555,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('TH___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -602,7 +601,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('TK___',I4.4)") NBUTSHIFT 
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -648,7 +647,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RV___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -694,7 +693,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RC___',I4.4)") NBUTSHIFT 
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -739,7 +738,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RR___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -784,7 +783,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RI___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -829,7 +828,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RS___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -874,7 +873,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RG___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -919,7 +918,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RH___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
            ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
            YWORKUNIT, YWORKCOMMENT,                           &
            LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -968,7 +967,7 @@ SELECT CASE (CBUTYPE)
         IWORKGRID(:)       = 1
         WRITE(YGROUP_NAME,FMT="('SV',I3.3,I4.4)") JSV,NBUTSHIFT
 !
-        CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
+        CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, &
              ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :),   &
              YWORKUNIT, YWORKCOMMENT,                           &
              LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1042,7 +1041,7 @@ SELECT CASE (CBUTYPE)
         TZFIELD%NDIMS      = 6
         CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:))
         WRITE(YRECFM,FMT="('MASK_',I4.4)") NBUTSHIFT
-        CALL MENU_DIACHRO(TPDIAFILE,HLUOUT,YRECFM)
+        CALL MENU_DIACHRO(TPDIAFILE,YRECFM)
         DEALLOCATE(ZWORKMASK)
 !
 !*	 3.2    storage of the budgets array
@@ -1066,7 +1065,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 2
       WRITE(YGROUP_NAME,FMT="('RJX__',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                          ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :),   &
                          YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1097,7 +1096,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 2
       WRITE(YGROUP_NAME,FMT="('UU___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                          ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(1, :),   &
                          YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1124,7 +1123,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 3
       WRITE(YGROUP_NAME,FMT="('RJY__',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :),   &
 	       		 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1153,7 +1152,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 3
       WRITE(YGROUP_NAME,FMT="('VV___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                          ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(2, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1180,7 +1179,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 4
       WRITE(YGROUP_NAME,FMT="('RJZ__',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1209,7 +1208,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 4
       WRITE(YGROUP_NAME,FMT="('WW___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(3, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1236,7 +1235,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RJS__',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1267,7 +1266,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('TH___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(4, :),   &
 	         	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1298,7 +1297,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('TK___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(5, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1329,7 +1328,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RV___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(6, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1360,7 +1359,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RC___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(7, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1391,7 +1390,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RR___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(8, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1422,7 +1421,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RI___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(9, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1453,7 +1452,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RS___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(10, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1484,7 +1483,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RG___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(11, :),   &
 	         	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1515,7 +1514,7 @@ SELECT CASE (CBUTYPE)
       IWORKGRID(:)       = 1
       WRITE(YGROUP_NAME,FMT="('RH___',I4.4)") NBUTSHIFT
 !
-      CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
+      CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, &
                 	 ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(12, :),   &
 	        	 YWORKUNIT, YWORKCOMMENT,                           &
                          LBU_ICP, LBU_JCP, LBU_KCP,                         & 
@@ -1549,7 +1548,7 @@ SELECT CASE (CBUTYPE)
         IWORKGRID(:)       = 1
         WRITE(YGROUP_NAME,FMT="('SV',I3.3,I4.4)") JSV,NBUTSHIFT
 !
-        CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID,  &
+        CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID,  &
                   	   ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(12+JSV,:),&
 		           YWORKUNIT, YWORKCOMMENT,                            &
                            LBU_ICP, LBU_JCP, LBU_KCP,                          &
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index 1fc803357affc2e225c95ee6b8f1220307d83e3b..17bcb859b1b548e5d0e84a89c19eb5247813e046 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -13,10 +13,9 @@
 !
 INTERFACE
 !
-SUBROUTINE WRITE_DESFM_n(KMI,HDESFM,HLUOUT)   
+SUBROUTINE WRITE_DESFM_n(KMI,HDESFM)   
 INTEGER,            INTENT(IN)  :: KMI    ! Model index
 CHARACTER (LEN=*),  INTENT(IN)  :: HDESFM ! name of the DESFM file
-CHARACTER (LEN=*),  INTENT(IN)  :: HLUOUT ! Name  for outputlisting   
 END SUBROUTINE WRITE_DESFM_n
 !
 END INTERFACE
@@ -25,7 +24,7 @@ END MODULE MODI_WRITE_DESFM_n
 !
 !
 !     ###################################################
-      SUBROUTINE WRITE_DESFM_n(KMI,HDESFM,HLUOUT)
+      SUBROUTINE WRITE_DESFM_n(KMI,HDESFM)
 !     ###################################################
 !
 !!****  *WRITE_DESFM_n * - routine to write a descriptor file ( DESFM )
@@ -152,6 +151,7 @@ USE MODE_FM
 USE MODD_PARAMETERS
 USE MODD_CONF
 USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA
+USE MODD_LUNIT_n, ONLY : TLUOUT
 !
 USE MODN_BACKUP
 USE MODN_CONF
@@ -202,13 +202,12 @@ IMPLICIT NONE
 !
 INTEGER,            INTENT(IN)  :: KMI    ! Model index
 CHARACTER (LEN=*),  INTENT(IN)  :: HDESFM ! name of the DESFM part
-CHARACTER (LEN=*),  INTENT(IN)  :: HLUOUT ! Name  for outputlisting   
 !
 !*       0.2   declarations of local variables
 !
 INTEGER :: IRESP,ILUSEG  ! return code of FMLOOK and logical unit number of
                          ! EXSEG file 
-INTEGER :: ILUOUT        ! Logical unit number for output-listing HLUOUT file
+INTEGER :: ILUOUT        ! Logical unit number for output-listing TLUOUT file
 !
 LOGICAL                     ::  GHORELAX_UVWTH,                               &
                                 GHORELAX_RV,  GHORELAX_RC, GHORELAX_RR,       &
@@ -228,7 +227,7 @@ LOGICAL, DIMENSION(JPSVMAX) ::  GHORELAX_SV
 !*       1.    UPDATE DESFM FILE
 !              -----------------
 !
-CALL FMLOOK_ll(HDESFM,HLUOUT,ILUSEG,IRESP)
+CALL FMLOOK_ll(HDESFM,TLUOUT%CNAME,ILUSEG,IRESP)
 !
 !
 CALL INIT_NAM_LUNITn
@@ -411,7 +410,7 @@ IF(CTURB /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_TURB)
 !
 IF (NVERB >= 5) THEN
 !
-  CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
+  ILUOUT = TLUOUT%NLU
 !
   WRITE(UNIT=ILUOUT,FMT="(/,'DESCRIPTOR OF SEGMENT FOR MODEL ',I2)") KMI
   WRITE(UNIT=ILUOUT,FMT="(  '------------------------------- '   )")
diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90
index d0356b05f209a6991cb36eaf0961acd6a57bb6fb..6b3290ea900db5ce616fd089e5ad5a1a0ecbbc29 100644
--- a/src/MNH/write_diachro.f90
+++ b/src/MNH/write_diachro.f90
@@ -9,7 +9,7 @@
 ! MASDEV4_7 diachro 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     #################################################################
-      SUBROUTINE WRITE_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP,HTYPE,      &
+      SUBROUTINE WRITE_DIACHRO(TPDIAFILE,TPLUOUTDIA,HGROUP,HTYPE,     &
       KGRID,PDATIME,PVAR,PTRAJT,                                     &
       HTITRE,HUNITE,HCOMMENT,OICP,OJCP,OKCP,KIL,KIH,KJL,KJH,KKL,KKH, &
       PTRAJX,PTRAJY,PTRAJZ,PMASK)
@@ -84,7 +84,6 @@ USE MODD_IO_ll,      ONLY : TFILEDATA
 USE MODD_PARAMETERS, ONLY : JPHEXT
 !
 USE MODE_ll
-USE MODE_FM
 USE MODE_FMWRIT
 USE MODE_IO_ll
 !
@@ -95,7 +94,7 @@ IMPLICIT NONE
 !*       0.1   Dummy arguments
 !              ---------------
 TYPE(TFILEDATA),              INTENT(IN)          :: TPDIAFILE    ! file to write
-CHARACTER(LEN=*),             INTENT(IN)          :: HLUOUTDIA
+TYPE(TFILEDATA),              INTENT(IN)          :: TPLUOUTDIA
 CHARACTER(LEN=*),             INTENT(IN)          :: HGROUP, HTYPE
 INTEGER,DIMENSION(:),         INTENT(IN)          :: KGRID
 REAL,DIMENSION(:,:),          INTENT(IN)          :: PDATIME
@@ -133,6 +132,8 @@ GPACK=LPACK
 LPACK=.FALSE.
 YCOMMENT='NOTHING'
 !
+ILUOUTDIA = TPLUOUTDIA%NLU
+!
 ! BUG ...ca passe que si PRESENT(OICP) sinon OICP non defini 
 ! Question: doit-on mettre condition comme:
 !  IF(HTYPE == 'CART' .AND. .NOT. PRESENT(OICP) .AND. .NOT. PRESENT(OJCP)) THEN
@@ -216,11 +217,6 @@ IF(OKCP)THEN
 ENDIF
 ENDIF
 !
-CALL FMLOOK_ll(HLUOUTDIA,HLUOUTDIA,ILUOUTDIA,IRESP)
-IF (NVERB>=5) THEN
-  WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(HLUOUTDIA),' IRESP=',IRESP
-ENDIF
-!
 IF (NVERB>=5) THEN
   WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(TPDIAFILE%CNAME)//'.lfi',' IRESP=',IRESP
 ENDIF
@@ -512,7 +508,7 @@ TZFIELD%NTYPE      = TYPEREAL
 TZFIELD%NDIMS      = 2
 CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PDATIME)
 !
-CALL MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP)
+CALL MENU_DIACHRO(TPDIAFILE,HGROUP)
 LPACK=GPACK
 !-----------------------------------------------------------------------------
 !
diff --git a/src/MNH/write_les_budgetn.f90 b/src/MNH/write_les_budgetn.f90
index 3f2883415a971aa8e5f02a2b416f7a643a04f17c..2c7932ee6f0278a27320baaa94889a6428bd573a 100644
--- a/src/MNH/write_les_budgetn.f90
+++ b/src/MNH/write_les_budgetn.f90
@@ -68,10 +68,7 @@ USE MODD_LES_n
 USE MODD_CONF_n
 USE MODD_LES_BUDGET
 !
-USE MODD_LUNIT_n
-!
 USE MODE_ll
-USE MODE_FM
 !
 USE MODE_LES_DIACHRO
 !
@@ -87,8 +84,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages
 !
 !*      0.2  declaration of local variables
 !
-INTEGER :: IRESP, ILUOUT
-!
 INTEGER :: ILES
 INTEGER :: ILES_STA
 INTEGER :: JLES
@@ -107,8 +102,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLES_BUDGET
 !*          Initializations
 !            ---------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,40))
 ALLOCATE(YSUBTITLE(40))
 !
diff --git a/src/MNH/write_les_rt_budgetn.f90 b/src/MNH/write_les_rt_budgetn.f90
index 886a85f29ebee20772e6b00f2d60a2ef85cf5493..88a029d3f17860c7ffa604d9c83229249a0c1a6c 100644
--- a/src/MNH/write_les_rt_budgetn.f90
+++ b/src/MNH/write_les_rt_budgetn.f90
@@ -66,10 +66,7 @@ USE MODD_LES
 USE MODD_LES_n
 USE MODD_LES_BUDGET
 !
-USE MODD_LUNIT_n
-!
 USE MODE_ll
-USE MODE_FM
 !
 USE MODE_LES_DIACHRO
 !
@@ -85,8 +82,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG  ! flag to perform the averages
 !
 !*      0.2  declaration of local variables
 !
-INTEGER :: IRESP, ILUOUT
-!
 INTEGER :: ILES
 INTEGER :: ILES_STA
 INTEGER :: JLES
@@ -105,8 +100,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLES_BUDGET
 !*          Initializations
 !            ---------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,40))
 ALLOCATE(YSUBTITLE(40))
 !
diff --git a/src/MNH/write_les_sv_budgetn.f90 b/src/MNH/write_les_sv_budgetn.f90
index a3270c831db1e544843c7162ffa7bf944fa4cdb0..a028fee300acda8e76fe3eb96f2ad6226cd8be98 100644
--- a/src/MNH/write_les_sv_budgetn.f90
+++ b/src/MNH/write_les_sv_budgetn.f90
@@ -68,10 +68,7 @@ USE MODD_CONF_n
 USE MODD_LES_BUDGET
 USE MODD_NSV
 !
-USE MODD_LUNIT_n
-!
 USE MODE_ll
-USE MODE_FM
 !
 USE MODE_LES_DIACHRO
 !
@@ -86,8 +83,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG  ! flag to perform the averages
 !
 !*      0.2  declaration of local variables
 !
-INTEGER :: IRESP, ILUOUT
-!
 INTEGER :: ILES
 INTEGER :: ILES_STA
 INTEGER :: JLES
@@ -110,8 +105,6 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSV_BUDGET
 !*          Initializations
 !            ---------------
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,50,NSV))
 ALLOCATE(YSUBTITLE(50))
 !
diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90
index 1a01c9d123fa4b6f957188c83921df1bb6f72951..081fe9b234ee206a446b6dc702a98377d4e38e56 100644
--- a/src/MNH/write_lesn.f90
+++ b/src/MNH/write_lesn.f90
@@ -75,10 +75,7 @@ USE MODD_NSV, ONLY : NSV
 USE MODD_PARAM_ICE, ONLY : LDEPOSC
 USE MODD_PARAM_C2R2, ONLY : LDEPOC
 !
-USE MODD_LUNIT_n
-!
 USE MODE_ll
-USE MODE_FM
 !
 USE MODE_LES_DIACHRO
 USE MODE_LES_SPEC_N
@@ -100,7 +97,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages
 !
 !*      0.2  declaration of local variables
 !
-INTEGER :: IRESP, ILUOUT
 INTEGER :: IMASK
 !
 INTEGER :: JSV       ! scalar loop counter
@@ -131,8 +127,6 @@ IF (HLES_AVG=='H' .AND. (CLES_NORM_TYPE=='NONE'                          &
 !
 IMI = GET_CURRENT_MODEL_INDEX()
 !
-CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
-!
 !
 !*      1.1  Normalization variables
 !            -----------------------
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 74e07c9871c34d685d7fcd58f69cd07379f7871f..24bdb779f5a2b313076d478b61b405b5c89916a2 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -228,6 +228,7 @@ USE MODI_CALCSOUND
 USE MODI_FREE_ATM_PROFILE
 USE MODI_GPS_ZENITH
 !
+USE MODE_FM,              ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll
 USE MODE_GRIDPROJ
 USE MODE_FIELD
 USE MODE_FMWRIT
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index aec6fa674f9b973869b8387ee8e3569a0a15a32a..04e74197343343c39de925bdf7370be4eb3f5119 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -236,6 +236,7 @@ USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS
 USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
 USE MODD_LIMA_PRECIP_SCAVENGING_n
 !
+USE MODE_FM,    ONLY: IO_FILE_CLOSE_ll
 USE MODE_FMWRIT
 USE MODE_ll
 USE MODD_IO_ll, ONLY: TFILEDATA
diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90
index ae4c1f669931dc7dffd7c12e521cafc45158df1f..3e5cd902fc4ba553c4448cd404feaab437d3cb59 100644
--- a/src/MNH/write_profilern.f90
+++ b/src/MNH/write_profilern.f90
@@ -610,7 +610,7 @@ ALLOCATE (ZW6(1,1,IKU,SIZE(TPROFILER%TIME),1,JPROC))
 ZW6 = ZWORK6(:,:,:,:,:,:JPROC)
 DEALLOCATE(ZWORK6)
 
-CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"CART",IGRID(:JPROC), TPROFILER%DATIME,&
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"CART",IGRID(:JPROC), TPROFILER%DATIME,&
                    ZW6,ZTRAJT,YTITLE(:JPROC),YUNIT(:JPROC),YCOMMENT(:JPROC),     &
                    .TRUE.,.TRUE.,.FALSE.,                                        &
                    KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=IKU                         )
diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90
index a8bafff888f1ca16496a645a82451c06f16b837d..1ea568bd35941039507495f383824149826be856 100644
--- a/src/MNH/write_seriesn.f90
+++ b/src/MNH/write_seriesn.f90
@@ -15,12 +15,11 @@ IMPLICIT NONE
 !
 INTERFACE
 !
-      SUBROUTINE WRITE_SERIES_n(TPDIAFILE,HLUOUT)
+      SUBROUTINE WRITE_SERIES_n(TPDIAFILE)
 !
 USE MODD_IO_ll, ONLY: TFILEDATA
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPDIAFILE    ! file to write
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 !
 END SUBROUTINE WRITE_SERIES_n
 !
@@ -28,7 +27,7 @@ END INTERFACE
 !
 END MODULE MODI_WRITE_SERIES_n
 !     ###################
-      SUBROUTINE WRITE_SERIES_n (TPDIAFILE,HLUOUT)
+      SUBROUTINE WRITE_SERIES_n (TPDIAFILE)
 
 !     #######################################################################################       
 !
@@ -71,7 +70,8 @@ END MODULE MODI_WRITE_SERIES_n
 !*    0. Declaration
 !     --------------
 ! 
-USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA
+USE MODD_IO_ll,   ONLY: NGEN_VERB,TFILEDATA
+USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_PARAMETERS
 USE MODD_SERIES
 USE MODD_SERIES_n
@@ -88,7 +88,6 @@ IMPLICIT NONE
 !*       0.1   declarations of arguments
 !
 TYPE(TFILEDATA),    INTENT(IN) :: TPDIAFILE    ! file to write
-CHARACTER (LEN=*),  INTENT(IN) :: HLUOUT       ! name of output listing
 !
 !*       0.2     Local variables 
 !
@@ -241,7 +240,7 @@ ENDIF
 !*      2.3  Write in diachro file
 !
 GICP=.TRUE. ; GJCP=.TRUE. ; GKCP=.TRUE.
-CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,'TSERIES','CART',NSGRIDD1,XSDATIME(:,1:NSNBSTEPT),   &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,'TSERIES','CART',NSGRIDD1,XSDATIME(:,1:NSNBSTEPT),   &
                    XSSERIES1(1:1,1:1,1:1,1:NSNBSTEPT,:,:),               &
                    XSTRAJT(1:NSNBSTEPT,:),CSTITLE1,CSUNIT1,CSCOMMENT1,   &
                    GICP,GJCP,GKCP,                               &
@@ -295,7 +294,7 @@ DEALLOCATE(ZVAR3D)
 !*      3.2  Write in diachro file
 !
 GICP=.TRUE. ; GJCP=.TRUE. ; GKCP=.FALSE.
-CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,'ZTSERIES','CART',NSGRIDD2,XSDATIME(:,1:NSNBSTEPT),   &
+CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,'ZTSERIES','CART',NSGRIDD2,XSDATIME(:,1:NSNBSTEPT),   &
                    XSSERIES2(1:1,1:1,1:IKMAX,1:NSNBSTEPT,:,:),            &
                    XSTRAJT(1:NSNBSTEPT,:),CSTITLE2,CSUNIT2,CSCOMMENT2,    &
                    GICP,GJCP,GKCP,                 &
@@ -353,7 +352,7 @@ DO JS=1,NBJSLICE
     YSTITLE3S(JT)=ADJUSTL(ADJUSTR(CSTITLE3(JT))//'Y'//YSL//'-'//YSH)
   END DO
   GICP=.FALSE. ; GJCP=.TRUE. ; GKCP=.TRUE.
-  CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,YGROUP,'CART',NSGRIDD3,XSDATIME(:,1:NSNBSTEPT),    &
+  CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,YGROUP,'CART',NSGRIDD3,XSDATIME(:,1:NSNBSTEPT),    &
                       ZSERIES3_ll(1:IIU_ll,1:1,1:1,1:NSNBSTEPT,1:1,ISB1:ISB2),&
                       XSTRAJT(1:NSNBSTEPT,:),YSTITLE3S,CSUNIT3,CSCOMMENT3,     &
                       GICP,GJCP,GKCP,                               &
diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90
index 271135a13c185f89e8cbf5245b6505f86194e1f3..4c2fc1905f675917d21061b9ba0bc6cd4f6f0358 100644
--- a/src/MNH/write_stationn.f90
+++ b/src/MNH/write_stationn.f90
@@ -670,7 +670,7 @@ ALLOCATE (ZW6(1,1,1,SIZE(TSTATION%TIME),1,JPROC))
 ZW6 = ZWORK6(:,:,:,:,:,:JPROC)
 DEALLOCATE(ZWORK6)
 !
-  CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"CART",IGRID, TSTATION%DATIME,&
+  CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"CART",IGRID, TSTATION%DATIME,&
                      ZW6,ZTRAJT,YTITLE,YUNIT,YCOMMENT,&
                      .TRUE.,.TRUE.,.FALSE.,                             &
                      KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=1   )
diff --git a/src/MNH/xytolatlon.f90 b/src/MNH/xytolatlon.f90
index e220f282b86389998abe8e8c18ebdaea66543475..8e1b0cfc78bcbd3576d3eb7dc93be4884d92e2d8 100644
--- a/src/MNH/xytolatlon.f90
+++ b/src/MNH/xytolatlon.f90
@@ -117,11 +117,8 @@ END MODULE  MODI_XYTOLATLON
 !*     0.     DECLARATIONS
 !             ------------
 !
-USE MODE_FM
-!
 USE MODD_CST
 USE MODD_GRID
-USE MODD_LUNIT
 !
 IMPLICIT NONE
 !
@@ -154,11 +151,9 @@ REAL :: ZBETA
 !
 REAL, DIMENSION(SIZE(PXA,1),SIZE(PXA,2)) :: ZATA,ZRO2,ZT2,ZXMI0,ZYMI0
 !
-INTEGER :: ILUOUT0
 INTEGER :: IRESP
 !
 !
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !--------------------------------------------------------------------------------
 !
 !*     1.     Preliminary calculations for all projections