diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index 4fbb2bc8101373929854b841ccd8dfd4dd7cbd80..36950d9af06e7ce8e70a486fca446da8151997dc 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -1445,54 +1445,52 @@ ENDIF
 !
 ! Blaze fire model namelist
 !
-IF (KMI == 1) THEN
-  LBLAZE = .FALSE.	            ! Flag for Fire model use, default FALSE
-  !
-  CPROPAG_MODEL = 'SANTONI2011' ! Fire propagation model (default SANTONI2011)
-  !
-  CHEAT_FLUX_MODEL   = 'EXS'	  ! Sensible heat flux injection model (default EXS)
-  CLATENT_FLUX_MODEL = 'EXP'	  ! latent heat flux injection model (default EXP)
-  XFERR = 0.8                   ! Energy released in flamming stage (only for EXP)
-  !
-  CFIRE_CPL_MODE = '2WAYCPL'    ! Coupling mode (default 2way coupled)
-  CBMAPFILE = CINIFILE          ! File name of BMAP for FIR2ATM mode
-  LINTERPWIND = .TRUE.          ! Horizontal interpolation of wind
-  LSGBAWEIGHT = .FALSE.         ! Flag for use of weighted average method for SubGrid Burning Area computation
-  !
-  NFIRE_WENO_ORDER = 3	        ! Weno order (1,3,5)
-  NFIRE_RK_ORDER = 3	          ! Runge Kutta order (1,2,3,4)
-  !
-  NREFINX = 1	                  ! Refinement ratio X
-  NREFINY	= 1                   ! Refinement ratio Y
-  !
-  XCFLMAXFIRE = 0.8             ! Max CFL on fire mesh
-  XLSDIFFUSION = 0.1            ! Numerical diffusion of LevelSet
-  XROSDIFFUSION = 0.05          ! Numerical diffusion of ROS
-  !
-  XFLUXZEXT = 3.                ! Flux distribution on vertical caracteristic length
-  XFLUXZMAX = 4. * XFLUXZEXT    ! Flux distribution on vertical max injetion height
-  !
-  XFLXCOEFTMP = 1.              ! Flux multiplicator. For testing
-  !
-  LWINDFILTER = .FALSE.         ! Fire wind filtering flag
-  CWINDFILTER = 'EWAM'	        ! Wind filter method (EWAM or WLIM)
-  XEWAMTAU    = 20.             ! Time averaging constant for EWAM method (s)
-  XWLIMUTH    = 8.              ! Thresehold wind value for WLIM method (m/s)
-  XWLIMUTMAX  = 9.              ! Maximum wind value for WLIM method (m/s) (needs to be >= XWLIMUTH )
-  !
-  NNBSMOKETRACER = 1            ! Nb of smoke tracers
-  !
-  NWINDSLOPECPLMODE = 0         ! Flag for use of wind/slope in ROS (0 = wind + slope, 1 = wind only, 2 = slope only (U0=0))
-  !
-  !
-  !
-  !! DO NOT CHANGE BELOW PARAMETERS
-  XFIREMESHSIZE(:) = 0.         ! Fire mesh size (dxf,dyf)
-  LRESTA_ASE = .FALSE.          ! Flag for using ASE in RESTA file
-  LRESTA_AWC = .FALSE.          ! Flag for using AWC in RESTA file
-  LRESTA_EWAM = .FALSE.         ! Flag for using EWAM in RESTA file
-  LRESTA_WLIM = .FALSE.         ! Flag for using WLIM in RESTA file
-ENDIF
+LBLAZE = .FALSE.              ! Flag for Fire model use, default FALSE
+!
+CPROPAG_MODEL = 'SANTONI2011' ! Fire propagation model (default SANTONI2011)
+!
+CHEAT_FLUX_MODEL   = 'EXS'    ! Sensible heat flux injection model (default EXS)
+CLATENT_FLUX_MODEL = 'EXP'    ! latent heat flux injection model (default EXP)
+XFERR = 0.8                   ! Energy released in flamming stage (only for EXP)
+!
+CFIRE_CPL_MODE = '2WAYCPL'    ! Coupling mode (default 2way coupled)
+CBMAPFILE = CINIFILE          ! File name of BMAP for FIR2ATM mode
+LINTERPWIND = .TRUE.          ! Horizontal interpolation of wind
+LSGBAWEIGHT = .FALSE.         ! Flag for use of weighted average method for SubGrid Burning Area computation
+!
+NFIRE_WENO_ORDER = 3          ! Weno order (1,3,5)
+NFIRE_RK_ORDER = 3            ! Runge Kutta order (1,2,3,4)
+!
+NREFINX = 1                   ! Refinement ratio X
+NREFINY = 1                   ! Refinement ratio Y
+!
+XCFLMAXFIRE = 0.8             ! Max CFL on fire mesh
+XLSDIFFUSION = 0.1            ! Numerical diffusion of LevelSet
+XROSDIFFUSION = 0.05          ! Numerical diffusion of ROS
+!
+XFLUXZEXT = 3.                ! Flux distribution on vertical caracteristic length
+XFLUXZMAX = 4. * XFLUXZEXT    ! Flux distribution on vertical max injetion height
+!
+XFLXCOEFTMP = 1.              ! Flux multiplicator. For testing
+!
+LWINDFILTER = .FALSE.         ! Fire wind filtering flag
+CWINDFILTER = 'EWAM'          ! Wind filter method (EWAM or WLIM)
+XEWAMTAU    = 20.             ! Time averaging constant for EWAM method (s)
+XWLIMUTH    = 8.              ! Thresehold wind value for WLIM method (m/s)
+XWLIMUTMAX  = 9.              ! Maximum wind value for WLIM method (m/s) (needs to be >= XWLIMUTH )
+!
+NNBSMOKETRACER = 1            ! Nb of smoke tracers
+!
+NWINDSLOPECPLMODE = 0         ! Flag for use of wind/slope in ROS (0 = wind + slope, 1 = wind only, 2 = slope only (U0=0))
+!
+!
+!
+!! DO NOT CHANGE BELOW PARAMETERS
+XFIREMESHSIZE(:) = 0.         ! Fire mesh size (dxf,dyf)
+LRESTA_ASE = .FALSE.          ! Flag for using ASE in RESTA file
+LRESTA_AWC = .FALSE.          ! Flag for using AWC in RESTA file
+LRESTA_EWAM = .FALSE.         ! Flag for using EWAM in RESTA file
+LRESTA_WLIM = .FALSE.         ! Flag for using WLIM in RESTA file
 
 !-------------------------------------------------------------------------------
 END SUBROUTINE DEFAULT_DESFM_n
diff --git a/src/MNH/modd_firen.f90 b/src/MNH/modd_firen.f90
index c1716c6160f5bd05fe77bb44e0582d8ad34cdc9c..8ca8ff9b1ee11f860ef5910f93c0af29acf3d5e1 100644
--- a/src/MNH/modd_firen.f90
+++ b/src/MNH/modd_firen.f90
@@ -27,6 +27,7 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original      24/10/2019
+!  P. Wautelet 15/02/2023: restructure for grid-nesting
 !---------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -42,149 +43,297 @@ SAVE
 INTEGER, PARAMETER :: NFIREENTRIES = 22
 
 TYPE TFIRE_t
-  REAL, DIMENSION(:,:,:), POINTER :: XGRADLSPHIX    =>NULL()   ! Grad of phi on x direction
-  REAL, DIMENSION(:,:,:), POINTER :: XGRADLSPHIY    =>NULL()   ! Grad of phi on y direction
-  REAL, DIMENSION(:,:,:), POINTER :: XFIREWIND      =>NULL()   ! Surface wind speed in spread direction
-  REAL, DIMENSION(:,:)  , POINTER :: XLSPHI2D       =>NULL()   ! Phi on 2d grid for computation
-  REAL, DIMENSION(:,:)  , POINTER :: XGRADLSPHIX2D  =>NULL()   ! Grad of phi on x direction on 2d grid
-  REAL, DIMENSION(:,:)  , POINTER :: XGRADLSPHIY2D  =>NULL()   ! Grad of phi on y direction on 2d grid
-  REAL, DIMENSION(:,:)  , POINTER :: XGRADMASKX     =>NULL()   ! Grad mask x
-  REAL, DIMENSION(:,:)  , POINTER :: XGRADMASKY     =>NULL()   ! Grad mask y
-  REAL, DIMENSION(:,:)  , POINTER :: XSURFRATIO2D   =>NULL()   ! Burnt surface ratio
-  REAL, DIMENSION(:,:)  , POINTER :: XLSDIFFUX2D    =>NULL()   ! LS diffusion x
-  REAL, DIMENSION(:,:)  , POINTER :: XLSDIFFUY2D    =>NULL()   ! LS diffusion y
-  REAL, DIMENSION(:,:)  , POINTER :: XFIRERW2D      =>NULL()   ! ROS woth wind and slope 2d
-  !
-END TYPE TFIRE_t
+  ! Blaze fire model declarations
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XLSPHI         => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XBMAP          => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMRFA         => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMR0          => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMR00         => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMWF0         => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMIGNITION    => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMFUELTYPE    => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFIRETAU       => NULL()
+  REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMH    => NULL()
+  REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMW    => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFIRERW        => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMASE         => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMAWC         => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XFMWALKIG      => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDH     => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDW     => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMHWS         => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDU       => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDV       => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDW       => NULL()
+  REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIX    => NULL()   ! Grad of phi on x direction
+  REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIY    => NULL()   ! Grad of phi on y direction
+  REAL, DIMENSION(:,:,:),   POINTER :: XFIREWIND      => NULL()   ! Surface wind speed in spread direction
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROX    => NULL()
+!Managed by FIELDLIST_GOTO_MODEL   REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROY    => NULL()
+  !! fire grid Blaze declarations
+  REAL, DIMENSION(:,:)  , POINTER :: XLSPHI2D       => NULL()   ! Phi on 2d grid for computation
+  REAL, DIMENSION(:,:)  , POINTER :: XGRADLSPHIX2D  => NULL()   ! Grad of phi on x direction on 2d grid
+  REAL, DIMENSION(:,:)  , POINTER :: XGRADLSPHIY2D  => NULL()   ! Grad of phi on y direction on 2d grid
+  REAL, DIMENSION(:,:)  , POINTER :: XGRADMASKX     => NULL()   ! Grad mask x
+  REAL, DIMENSION(:,:)  , POINTER :: XGRADMASKY     => NULL()   ! Grad mask y
+  REAL, DIMENSION(:,:)  , POINTER :: XSURFRATIO2D   => NULL()   ! Burnt surface ratio
+  REAL, DIMENSION(:,:)  , POINTER :: XLSDIFFUX2D    => NULL()   ! LS diffusion x
+  REAL, DIMENSION(:,:)  , POINTER :: XLSDIFFUY2D    => NULL()   ! LS diffusion y
+  REAL, DIMENSION(:,:)  , POINTER :: XFIRERW2D      => NULL()   ! ROS woth wind and slope 2d
 
-TYPE(TFIRE_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: TFIRE_MODEL
+  LOGICAL           :: LBLAZE               ! Flag for Fire model use, default FALSE
 
-! Blaze fire model declarations
-REAL, DIMENSION(:,:,:),   POINTER :: XLSPHI         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XBMAP          =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMRFA         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMR0          =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMR00         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMWF0         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMIGNITION    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMFUELTYPE    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFIRETAU       =>NULL()
-REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMH    =>NULL()
-REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMW    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFIRERW        =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMASE         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMAWC         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMWALKIG      =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDH     =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDW     =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMHWS         =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDU       =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDV       =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDW       =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIX    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIY    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFIREWIND      =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROX    =>NULL()
-REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROY    =>NULL()
-!! fire grid Blaze declarations
-REAL, DIMENSION(:,:),     POINTER :: XLSPHI2D       =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XGRADLSPHIX2D  =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XGRADLSPHIY2D  =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XGRADMASKX     =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XGRADMASKY     =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XSURFRATIO2D   =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XLSDIFFUX2D    =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XLSDIFFUY2D    =>NULL()
-REAL, DIMENSION(:,:),     POINTER :: XFIRERW2D      =>NULL()
+  CHARACTER(LEN=11) :: CPROPAG_MODEL        ! Fire propagation model (default SANTONI2011)
+  CHARACTER(LEN=3)  :: CHEAT_FLUX_MODEL     ! Sensible heat flux injection model (default CST)
+  CHARACTER(LEN=3)  :: CLATENT_FLUX_MODEL   ! latent heat flux injection model (default CST)
 
+  CHARACTER(LEN=7)  :: CFIRE_CPL_MODE       ! Coupling mode (default 2WAYCPL)
 
-LOGICAL           :: LBLAZE               ! Flag for Fire model use, default FALSE
+  CHARACTER(LEN=28) :: CBMAPFILE            ! BMap file for FIR2ATM mode (default INIFILE)
+  LOGICAL           :: LINTERPWIND          ! Flag for wind interpolation
+  LOGICAL           :: LSGBAWEIGHT          ! Flag for use of weighted average method for SubGrid Burning Area computation
 
-CHARACTER(LEN=11) :: CPROPAG_MODEL        ! Fire propagation model (default SANTONI2011)
-CHARACTER(LEN=3)  :: CHEAT_FLUX_MODEL     ! Sensible heat flux injection model (default CST)
-CHARACTER(LEN=3)  :: CLATENT_FLUX_MODEL   ! latent heat flux injection model (default CST)
+  INTEGER           :: NFIRE_WENO_ORDER     ! Weno order (1,3,5)
+  INTEGER           :: NFIRE_RK_ORDER       ! Runge Kutta order (1,2,3,4)
 
-CHARACTER(LEN=7)  :: CFIRE_CPL_MODE       ! Coupling mode (default 2WAYCPL)
+  INTEGER           :: NREFINX              ! Refinement ratio X
+  INTEGER           :: NREFINY              ! Refinement ratio Y
 
-CHARACTER(LEN=28) :: CBMAPFILE            ! BMap file for FIR2ATM mode (default INIFILE)
-LOGICAL           :: LINTERPWIND          ! Flag for wind interpolation
-LOGICAL           :: LSGBAWEIGHT          ! Flag for use of weighted average method for SubGrid Burning Area computation
+  REAL              :: XCFLMAXFIRE          ! Maximum CFL on fire mesh
+  REAL              :: XLSDIFFUSION         ! Numerical diffusion of LevelSet
+  REAL              :: XROSDIFFUSION        ! Numerical diffusion of ROS
 
-INTEGER           :: NFIRE_WENO_ORDER     ! Weno order (1,3,5)
-INTEGER           :: NFIRE_RK_ORDER       ! Runge Kutta order (1,2,3,4)
+  REAL              :: XFERR                ! Flamming Energy Release ratio (between 0.5 <= FERR < 1)
 
-INTEGER           :: NREFINX              ! Refinement ratio X
-INTEGER           :: NREFINY              ! Refinement ratio Y
+  REAL              :: XFLUXZEXT            ! Flux distribution on vertical caracteristic length
+  REAL              :: XFLUXZMAX            ! Flux distribution on vertical max injetion height
 
-REAL              :: XCFLMAXFIRE          ! Maximum CFL on fire mesh
-REAL              :: XLSDIFFUSION         ! Numerical diffusion of LevelSet
-REAL              :: XROSDIFFUSION        ! Numerical diffusion of ROS
+  REAL              :: XFLXCOEFTMP          ! Flux multiplicator. For testing
 
-REAL              :: XFERR                ! Flamming Energy Release ratio (between 0.5 <= FERR < 1)
+  LOGICAL           :: LWINDFILTER          ! Fire wind filtering flag
+  CHARACTER(LEN=4)  :: CWINDFILTER          ! Wind filter method (EWAM or WLIM)
+  REAL              :: XEWAMTAU             ! Time averaging constant for EWAM method (s)
+  REAL              :: XWLIMUTH             ! Thresehold wind value for WLIM method (m/s)
+  REAL              :: XWLIMUTMAX           ! Maximum wind value for WLIM method (m/s) (needs to be >= XWLIMUTH )
 
-REAL              :: XFLUXZEXT            ! Flux distribution on vertical caracteristic length
-REAL              :: XFLUXZMAX            ! Flux distribution on vertical max injetion height
+  INTEGER           :: NWINDSLOPECPLMODE    ! Flag for use of wind/slope in ROS (0=wind + slope, 1=wind only, 2=slope only (U0=0))
 
-REAL              :: XFLXCOEFTMP          ! Flux multiplicator. For testing
+  INTEGER           :: NNBSMOKETRACER
+  !
+  ! Parameters not in the namelist
+  !
+  REAL,               DIMENSION(2) :: XFIREMESHSIZE     ! Fire Mesh size [dxf,dyf]
+  REAL(KIND=MNHTIME), DIMENSION(2) :: XFIREPERF         ! Blaze fire model performance
+  REAL(KIND=MNHTIME), DIMENSION(2) :: XGRADPERF         ! Grad computation performance
+  REAL(KIND=MNHTIME), DIMENSION(2) :: XROSWINDPERF      ! ROS and wind interpolation computation performance
+  REAL(KIND=MNHTIME), DIMENSION(2) :: XPROPAGPERF       ! Propagation computation performance
+  REAL(KIND=MNHTIME), DIMENSION(2) :: XFLUXPERF         ! Heat fluxes computation performance
+  LOGICAL                          :: LRESTA_ASE        ! Flag for using ASE in RESTA file
+  LOGICAL                          :: LRESTA_AWC        ! Flag for using AWC in RESTA file
+  LOGICAL                          :: LRESTA_EWAM       ! Flag for using EWAM in RESTA file
+  LOGICAL                          :: LRESTA_WLIM       ! Flag for using WLIM in RESTA file
+END TYPE TFIRE_t
 
-LOGICAL           :: LWINDFILTER          ! Fire wind filtering flag
-CHARACTER(LEN=4)  :: CWINDFILTER          ! Wind filter method (EWAM or WLIM)
-REAL              :: XEWAMTAU             ! Time averaging constant for EWAM method (s)
-REAL              :: XWLIMUTH             ! Thresehold wind value for WLIM method (m/s)
-REAL              :: XWLIMUTMAX           ! Maximum wind value for WLIM method (m/s) (needs to be >= XWLIMUTH )
+TYPE(TFIRE_t), DIMENSION(JPMODELMAX), TARGET :: TFIRE_MODEL
 
-INTEGER           :: NWINDSLOPECPLMODE    ! Flag for use of wind/slope in ROS (0=wind + slope, 1=wind only, 2=slope only (U0=0))
+! Blaze fire model declarations
+REAL, DIMENSION(:,:,:),   POINTER :: XLSPHI         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XBMAP          => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMRFA         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMR0          => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMR00         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMWF0         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMIGNITION    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMFUELTYPE    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFIRETAU       => NULL()
+REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMH    => NULL()
+REAL, DIMENSION(:,:,:,:), POINTER :: XFLUXPARAMW    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFIRERW        => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMASE         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMAWC         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMWALKIG      => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDH     => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMFLUXHDW     => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMHWS         => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDU       => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDV       => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMWINDW       => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIX    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XGRADLSPHIY    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFIREWIND      => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROX    => NULL()
+REAL, DIMENSION(:,:,:),   POINTER :: XFMGRADOROY    => NULL()
+!! fire grid Blaze declarations
+REAL, DIMENSION(:,:),     POINTER :: XLSPHI2D       => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XGRADLSPHIX2D  => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XGRADLSPHIY2D  => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XGRADMASKX     => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XGRADMASKY     => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XSURFRATIO2D   => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XLSDIFFUX2D    => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XLSDIFFUY2D    => NULL()
+REAL, DIMENSION(:,:),     POINTER :: XFIRERW2D      => NULL()
 
-INTEGER           :: NNBSMOKETRACER
-!
-! Parameters not in the namelist
-!
-REAL,               DIMENSION(2) :: XFIREMESHSIZE     ! Fire Mesh size [dxf,dyf]
-REAL(KIND=MNHTIME), DIMENSION(2) :: XFIREPERF         ! Blaze fire model performance
-REAL(KIND=MNHTIME), DIMENSION(2) :: XGRADPERF         ! Grad computation performance
-REAL(KIND=MNHTIME), DIMENSION(2) :: XROSWINDPERF      ! ROS and wind interpolation computation performance
-REAL(KIND=MNHTIME), DIMENSION(2) :: XPROPAGPERF       ! Propagation computation performance
-REAL(KIND=MNHTIME), DIMENSION(2) :: XFLUXPERF         ! Heat fluxes computation performance
-LOGICAL                          :: LRESTA_ASE        ! Flag for using ASE in RESTA file
-LOGICAL                          :: LRESTA_AWC        ! Flag for using AWC in RESTA file
-LOGICAL                          :: LRESTA_EWAM       ! Flag for using EWAM in RESTA file
-LOGICAL                          :: LRESTA_WLIM       ! Flag for using WLIM in RESTA file
+LOGICAL,                          POINTER :: LBLAZE             => NULL()
+CHARACTER(LEN=11),                POINTER :: CPROPAG_MODEL      => NULL()
+CHARACTER(LEN=3),                 POINTER :: CHEAT_FLUX_MODEL   => NULL()
+CHARACTER(LEN=3),                 POINTER :: CLATENT_FLUX_MODEL => NULL()
+CHARACTER(LEN=7),                 POINTER :: CFIRE_CPL_MODE     => NULL()
+CHARACTER(LEN=28),                POINTER :: CBMAPFILE          => NULL()
+LOGICAL,                          POINTER :: LINTERPWIND        => NULL()
+LOGICAL,                          POINTER :: LSGBAWEIGHT        => NULL()
+INTEGER,                          POINTER :: NFIRE_WENO_ORDER   => NULL()
+INTEGER,                          POINTER :: NFIRE_RK_ORDER     => NULL()
+INTEGER,                          POINTER :: NREFINX            => NULL()
+INTEGER,                          POINTER :: NREFINY            => NULL()
+REAL,                             POINTER :: XCFLMAXFIRE        => NULL()
+REAL,                             POINTER :: XLSDIFFUSION       => NULL()
+REAL,                             POINTER :: XROSDIFFUSION      => NULL()
+REAL,                             POINTER :: XFERR              => NULL()
+REAL,                             POINTER :: XFLUXZEXT          => NULL()
+REAL,                             POINTER :: XFLUXZMAX          => NULL()
+REAL,                             POINTER :: XFLXCOEFTMP        => NULL()
+LOGICAL,                          POINTER :: LWINDFILTER        => NULL()
+CHARACTER(LEN=4),                 POINTER :: CWINDFILTER        => NULL()
+REAL,                             POINTER :: XEWAMTAU           => NULL()
+REAL,                             POINTER :: XWLIMUTH           => NULL()
+REAL,                             POINTER :: XWLIMUTMAX         => NULL()
+INTEGER,                          POINTER :: NWINDSLOPECPLMODE  => NULL()
+INTEGER,                          POINTER :: NNBSMOKETRACER     => NULL()
+REAL,               DIMENSION(:), POINTER :: XFIREMESHSIZE      => NULL()
+REAL(KIND=MNHTIME), DIMENSION(:), POINTER :: XFIREPERF          => NULL()
+REAL(KIND=MNHTIME), DIMENSION(:), POINTER :: XGRADPERF          => NULL()
+REAL(KIND=MNHTIME), DIMENSION(:), POINTER :: XROSWINDPERF       => NULL()
+REAL(KIND=MNHTIME), DIMENSION(:), POINTER :: XPROPAGPERF        => NULL()
+REAL(KIND=MNHTIME), DIMENSION(:), POINTER :: XFLUXPERF          => NULL()
+LOGICAL,                          POINTER :: LRESTA_ASE         => NULL()
+LOGICAL,                          POINTER :: LRESTA_AWC         => NULL()
+LOGICAL,                          POINTER :: LRESTA_EWAM        => NULL()
+LOGICAL,                          POINTER :: LRESTA_WLIM        => NULL()
 
 
 CONTAINS
 
-SUBROUTINE FIRE_GOTO_MODEL(KFROM, KTO)
+SUBROUTINE FIRE_GOTO_MODEL( KFROM, KTO )
   INTEGER, INTENT(IN) :: KFROM, KTO
 
   ! Save current state for allocated arrays
-  TFIRE_MODEL(KFROM)%XGRADLSPHIY    => XGRADLSPHIX
-  TFIRE_MODEL(KFROM)%XGRADLSPHIY    => XGRADLSPHIY
-  TFIRE_MODEL(KFROM)%XFIREWIND      => XFIREWIND
-  !! 2d Blaze
-  TFIRE_MODEL(KFROM)%XLSPHI2D       => XLSPHI2D
-  TFIRE_MODEL(KFROM)%XGRADLSPHIX2D  => XGRADLSPHIX2D
-  TFIRE_MODEL(KFROM)%XGRADLSPHIY2D  => XGRADLSPHIY2D
-  TFIRE_MODEL(KFROM)%XGRADMASKX     => XGRADMASKX
-  TFIRE_MODEL(KFROM)%XGRADMASKY     => XGRADMASKY
-  TFIRE_MODEL(KFROM)%XSURFRATIO2D   => XSURFRATIO2D
-  TFIRE_MODEL(KFROM)%XLSDIFFUX2D    => XLSDIFFUX2D
-  TFIRE_MODEL(KFROM)%XLSDIFFUY2D    => XLSDIFFUY2D
-  TFIRE_MODEL(KFROM)%XFIRERW2D      => XFIRERW2D
-  !
+
+  ! Blaze fire model declarations
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XLSPHI             => XLSPHI
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XBMAP              => XBMAP
+  TFIRE_MODEL(KFROM)%XFMRFA             => XFMRFA
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMR0              => XFMR0
+  TFIRE_MODEL(KFROM)%XFMR00             => XFMR00
+  TFIRE_MODEL(KFROM)%XFMWF0             => XFMWF0
+  TFIRE_MODEL(KFROM)%XFMIGNITION        => XFMIGNITION
+  TFIRE_MODEL(KFROM)%XFMFUELTYPE        => XFMFUELTYPE
+  TFIRE_MODEL(KFROM)%XFIRETAU           => XFIRETAU
+  TFIRE_MODEL(KFROM)%XFLUXPARAMH        => XFLUXPARAMH
+  TFIRE_MODEL(KFROM)%XFLUXPARAMW        => XFLUXPARAMW
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFIRERW            => XFIRERW
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMASE             => XFMASE
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMAWC             => XFMAWC
+  TFIRE_MODEL(KFROM)%XFMWALKIG          => XFMWALKIG
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMFLUXHDH         => XFMFLUXHDH
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMFLUXHDW         => XFMFLUXHDW
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMHWS             => XFMHWS
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMWINDU           => XFMWINDU
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMWINDV           => XFMWINDV
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMWINDW           => XFMWINDW
+  TFIRE_MODEL(KFROM)%XGRADLSPHIX        => XGRADLSPHIX
+  TFIRE_MODEL(KFROM)%XGRADLSPHIY        => XGRADLSPHIY
+  TFIRE_MODEL(KFROM)%XFIREWIND          => XFIREWIND
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMGRADOROX        => XFMGRADOROX
+!Managed by FIELDLIST_GOTO_MODEL   TFIRE_MODEL(KFROM)%XFMGRADOROY        => XFMGRADOROY
+  !! fire grid Blaze declarations
+  TFIRE_MODEL(KFROM)%XLSPHI2D           => XLSPHI2D
+  TFIRE_MODEL(KFROM)%XGRADLSPHIX2D      => XGRADLSPHIX2D
+  TFIRE_MODEL(KFROM)%XGRADLSPHIY2D      => XGRADLSPHIY2D
+  TFIRE_MODEL(KFROM)%XGRADMASKX         => XGRADMASKX
+  TFIRE_MODEL(KFROM)%XGRADMASKY         => XGRADMASKY
+  TFIRE_MODEL(KFROM)%XSURFRATIO2D       => XSURFRATIO2D
+  TFIRE_MODEL(KFROM)%XLSDIFFUX2D        => XLSDIFFUX2D
+  TFIRE_MODEL(KFROM)%XLSDIFFUY2D        => XLSDIFFUY2D
+  TFIRE_MODEL(KFROM)%XFIRERW2D          => XFIRERW2D
+
   ! Current model is set to model KTO
-  XGRADLSPHIX   => TFIRE_MODEL(KTO)%XGRADLSPHIX
-  XGRADLSPHIY   => TFIRE_MODEL(KTO)%XGRADLSPHIY
-  XFIREWIND     => TFIRE_MODEL(KTO)%XFIREWIND
-  !! 2d Blaze
-  XLSPHI2D      => TFIRE_MODEL(KTO)%XLSPHI2D
-  XGRADLSPHIX2D => TFIRE_MODEL(KTO)%XGRADLSPHIX2D
-  XGRADLSPHIY2D => TFIRE_MODEL(KTO)%XGRADLSPHIY2D
-  XGRADMASKX    => TFIRE_MODEL(KTO)%XGRADMASKX
-  XGRADMASKY    => TFIRE_MODEL(KTO)%XGRADMASKY
-  XSURFRATIO2D  => TFIRE_MODEL(KTO)%XSURFRATIO2D
-  XLSDIFFUX2D   => TFIRE_MODEL(KTO)%XLSDIFFUX2D
-  XLSDIFFUY2D   => TFIRE_MODEL(KTO)%XLSDIFFUY2D
-  XFIRERW2D     => TFIRE_MODEL(KTO)%XFIRERW2D
+
+  ! Blaze fire model declarations
+!Managed by FIELDLIST_GOTO_MODEL   XLSPHI             => TFIRE_MODEL(KTO)%XLSPHI
+!Managed by FIELDLIST_GOTO_MODEL   XBMAP              => TFIRE_MODEL(KTO)%XBMAP
+  XFMRFA             => TFIRE_MODEL(KTO)%XFMRFA
+!Managed by FIELDLIST_GOTO_MODEL   XFMR0              => TFIRE_MODEL(KTO)%XFMR0
+  XFMR00             => TFIRE_MODEL(KTO)%XFMR00
+  XFMWF0             => TFIRE_MODEL(KTO)%XFMWF0
+  XFMIGNITION        => TFIRE_MODEL(KTO)%XFMIGNITION
+  XFMFUELTYPE        => TFIRE_MODEL(KTO)%XFMFUELTYPE
+  XFIRETAU           => TFIRE_MODEL(KTO)%XFIRETAU
+  XFLUXPARAMH        => TFIRE_MODEL(KTO)%XFLUXPARAMH
+  XFLUXPARAMW        => TFIRE_MODEL(KTO)%XFLUXPARAMW
+!Managed by FIELDLIST_GOTO_MODEL   XFIRERW            => TFIRE_MODEL(KTO)%XFIRERW
+!Managed by FIELDLIST_GOTO_MODEL   XFMASE             => TFIRE_MODEL(KTO)%XFMASE
+!Managed by FIELDLIST_GOTO_MODEL   XFMAWC             => TFIRE_MODEL(KTO)%XFMAWC
+  XFMWALKIG          => TFIRE_MODEL(KTO)%XFMWALKIG
+!Managed by FIELDLIST_GOTO_MODEL   XFMFLUXHDH         => TFIRE_MODEL(KTO)%XFMFLUXHDH
+!Managed by FIELDLIST_GOTO_MODEL   XFMFLUXHDW         => TFIRE_MODEL(KTO)%XFMFLUXHDW
+!Managed by FIELDLIST_GOTO_MODEL   XFMHWS             => TFIRE_MODEL(KTO)%XFMHWS
+!Managed by FIELDLIST_GOTO_MODEL   XFMWINDU           => TFIRE_MODEL(KTO)%XFMWINDU
+!Managed by FIELDLIST_GOTO_MODEL   XFMWINDV           => TFIRE_MODEL(KTO)%XFMWINDV
+!Managed by FIELDLIST_GOTO_MODEL   XFMWINDW           => TFIRE_MODEL(KTO)%XFMWINDW
+  XGRADLSPHIX        => TFIRE_MODEL(KTO)%XGRADLSPHIX
+  XGRADLSPHIY        => TFIRE_MODEL(KTO)%XGRADLSPHIY
+  XFIREWIND          => TFIRE_MODEL(KTO)%XFIREWIND
+!Managed by FIELDLIST_GOTO_MODEL   XFMGRADOROX        => TFIRE_MODEL(KTO)%XFMGRADOROX
+!Managed by FIELDLIST_GOTO_MODEL   XFMGRADOROY        => TFIRE_MODEL(KTO)%XFMGRADOROY
+  !! fire grid Blaze declarations
+  XLSPHI2D           => TFIRE_MODEL(KTO)%XLSPHI2D
+  XGRADLSPHIX2D      => TFIRE_MODEL(KTO)%XGRADLSPHIX2D
+  XGRADLSPHIY2D      => TFIRE_MODEL(KTO)%XGRADLSPHIY2D
+  XGRADMASKX         => TFIRE_MODEL(KTO)%XGRADMASKX
+  XGRADMASKY         => TFIRE_MODEL(KTO)%XGRADMASKY
+  XSURFRATIO2D       => TFIRE_MODEL(KTO)%XSURFRATIO2D
+  XLSDIFFUX2D        => TFIRE_MODEL(KTO)%XLSDIFFUX2D
+  XLSDIFFUY2D        => TFIRE_MODEL(KTO)%XLSDIFFUY2D
+  XFIRERW2D          => TFIRE_MODEL(KTO)%XFIRERW2D
+
+  LBLAZE             => TFIRE_MODEL(KTO)%LBLAZE
+  CPROPAG_MODEL      => TFIRE_MODEL(KTO)%CPROPAG_MODEL
+  CHEAT_FLUX_MODEL   => TFIRE_MODEL(KTO)%CHEAT_FLUX_MODEL
+  CLATENT_FLUX_MODEL => TFIRE_MODEL(KTO)%CLATENT_FLUX_MODEL
+  CFIRE_CPL_MODE     => TFIRE_MODEL(KTO)%CFIRE_CPL_MODE
+  CBMAPFILE          => TFIRE_MODEL(KTO)%CBMAPFILE
+  LINTERPWIND        => TFIRE_MODEL(KTO)%LINTERPWIND
+  LSGBAWEIGHT        => TFIRE_MODEL(KTO)%LSGBAWEIGHT
+  NFIRE_WENO_ORDER   => TFIRE_MODEL(KTO)%NFIRE_WENO_ORDER
+  NFIRE_RK_ORDER     => TFIRE_MODEL(KTO)%NFIRE_RK_ORDER
+  NREFINX            => TFIRE_MODEL(KTO)%NREFINX
+  NREFINY            => TFIRE_MODEL(KTO)%NREFINY
+  XCFLMAXFIRE        => TFIRE_MODEL(KTO)%XCFLMAXFIRE
+  XLSDIFFUSION       => TFIRE_MODEL(KTO)%XLSDIFFUSION
+  XROSDIFFUSION      => TFIRE_MODEL(KTO)%XROSDIFFUSION
+  XFERR              => TFIRE_MODEL(KTO)%XFERR
+  XFLUXZEXT          => TFIRE_MODEL(KTO)%XFLUXZEXT
+  XFLUXZMAX          => TFIRE_MODEL(KTO)%XFLUXZMAX
+  XFLXCOEFTMP        => TFIRE_MODEL(KTO)%XFLXCOEFTMP
+  LWINDFILTER        => TFIRE_MODEL(KTO)%LWINDFILTER
+  CWINDFILTER        => TFIRE_MODEL(KTO)%CWINDFILTER
+  XEWAMTAU           => TFIRE_MODEL(KTO)%XEWAMTAU
+  XWLIMUTH           => TFIRE_MODEL(KTO)%XWLIMUTH
+  XWLIMUTMAX         => TFIRE_MODEL(KTO)%XWLIMUTMAX
+  NWINDSLOPECPLMODE  => TFIRE_MODEL(KTO)%NWINDSLOPECPLMODE
+  NNBSMOKETRACER     => TFIRE_MODEL(KTO)%NNBSMOKETRACER
+  XFIREMESHSIZE      => TFIRE_MODEL(KTO)%XFIREMESHSIZE
+  XFIREPERF          => TFIRE_MODEL(KTO)%XFIREPERF
+  XGRADPERF          => TFIRE_MODEL(KTO)%XGRADPERF
+  XROSWINDPERF       => TFIRE_MODEL(KTO)%XROSWINDPERF
+  XPROPAGPERF        => TFIRE_MODEL(KTO)%XPROPAGPERF
+  XFLUXPERF          => TFIRE_MODEL(KTO)%XFLUXPERF
+  LRESTA_ASE         => TFIRE_MODEL(KTO)%LRESTA_ASE
+  LRESTA_AWC         => TFIRE_MODEL(KTO)%LRESTA_AWC
+  LRESTA_EWAM        => TFIRE_MODEL(KTO)%LRESTA_EWAM
+  LRESTA_WLIM        => TFIRE_MODEL(KTO)%LRESTA_WLIM
+
 END SUBROUTINE FIRE_GOTO_MODEL
 
 END MODULE MODD_FIRE_n
diff --git a/src/MNH/modn_firen.f90 b/src/MNH/modn_firen.f90
index 8af1b59932611159d07f61e069cea660fb03be48..6b7ffe0a073782bd56192f175fbb78b05730603b 100644
--- a/src/MNH/modn_firen.f90
+++ b/src/MNH/modn_firen.f90
@@ -31,24 +31,134 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    23/07/2018
+!  P. Wautelet 15/02/2023: restructure for grid-nesting
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
 !             ------------
 !
-USE MODD_FIRE_n
-!
+USE MODD_FIRE_n, ONLY:                        &
+  LBLAZE_n             => LBLAZE,             &
+  CPROPAG_MODEL_n      => CPROPAG_MODEL,      &
+  CHEAT_FLUX_MODEL_n   => CHEAT_FLUX_MODEL,   &
+  CLATENT_FLUX_MODEL_n => CLATENT_FLUX_MODEL, &
+  CFIRE_CPL_MODE_n     => CFIRE_CPL_MODE,     &
+  CBMAPFILE_n          => CBMAPFILE,          &
+  LINTERPWIND_n        => LINTERPWIND,        &
+  LSGBAWEIGHT_n        => LSGBAWEIGHT,        &
+  NFIRE_WENO_ORDER_n   => NFIRE_WENO_ORDER,   &
+  NFIRE_RK_ORDER_n     => NFIRE_RK_ORDER,     &
+  NREFINX_n            => NREFINX,            &
+  NREFINY_n            => NREFINY,            &
+  XCFLMAXFIRE_n        => XCFLMAXFIRE,        &
+  XLSDIFFUSION_n       => XLSDIFFUSION,       &
+  XROSDIFFUSION_n      => XROSDIFFUSION,      &
+  XFERR_n              => XFERR,              &
+  XFLUXZEXT_n          => XFLUXZEXT,          &
+  XFLUXZMAX_n          => XFLUXZMAX,          &
+  XFLXCOEFTMP_n        => XFLXCOEFTMP,        &
+  LWINDFILTER_n        => LWINDFILTER,        &
+  CWINDFILTER_n        => CWINDFILTER,        &
+  XEWAMTAU_n           => XEWAMTAU,           &
+  XWLIMUTH_n           => XWLIMUTH,           &
+  XWLIMUTMAX_n         => XWLIMUTMAX,         &
+  NWINDSLOPECPLMODE_n  => NWINDSLOPECPLMODE,  &
+  NNBSMOKETRACER_n     => NNBSMOKETRACER
+
 IMPLICIT NONE
-!
 
-!PW: gerer le grid nesting (cft modn_stationn?)
+LOGICAL           :: LBLAZE               ! Flag for Fire model use, default FALSE
+CHARACTER(LEN=11) :: CPROPAG_MODEL        ! Fire propagation model (default SANTONI2011)
+CHARACTER(LEN=3)  :: CHEAT_FLUX_MODEL     ! Sensible heat flux injection model (default CST)
+CHARACTER(LEN=3)  :: CLATENT_FLUX_MODEL   ! latent heat flux injection model (default CST)
+CHARACTER(LEN=7)  :: CFIRE_CPL_MODE       ! Coupling mode (default 2WAYCPL)
+CHARACTER(LEN=28) :: CBMAPFILE            ! BMap file for FIR2ATM mode (default INIFILE)
+LOGICAL           :: LINTERPWIND          ! Flag for wind interpolation
+LOGICAL           :: LSGBAWEIGHT          ! Flag for use of weighted average method for SubGrid Burning Area computation
+INTEGER           :: NFIRE_WENO_ORDER     ! Weno order (1,3,5)
+INTEGER           :: NFIRE_RK_ORDER       ! Runge Kutta order (1,2,3,4)
+INTEGER           :: NREFINX              ! Refinement ratio X
+INTEGER           :: NREFINY              ! Refinement ratio Y
+REAL              :: XCFLMAXFIRE          ! Maximum CFL on fire mesh
+REAL              :: XLSDIFFUSION         ! Numerical diffusion of LevelSet
+REAL              :: XROSDIFFUSION        ! Numerical diffusion of ROS
+REAL              :: XFERR                ! Flamming Energy Release ratio (between 0.5 <= FERR < 1)
+REAL              :: XFLUXZEXT            ! Flux distribution on vertical caracteristic length
+REAL              :: XFLUXZMAX            ! Flux distribution on vertical max injetion height
+REAL              :: XFLXCOEFTMP          ! Flux multiplicator. For testing
+LOGICAL           :: LWINDFILTER          ! Fire wind filtering flag
+CHARACTER(LEN=4)  :: CWINDFILTER          ! Wind filter method (EWAM or WLIM)
+REAL              :: XEWAMTAU             ! Time averaging constant for EWAM method (s)
+REAL              :: XWLIMUTH             ! Thresehold wind value for WLIM method (m/s)
+REAL              :: XWLIMUTMAX           ! Maximum wind value for WLIM method (m/s) (needs to be >= XWLIMUTH )
+INTEGER           :: NWINDSLOPECPLMODE    ! Flag for use of wind/slope in ROS (0=wind + slope, 1=wind only, 2=slope only (U0=0))
+INTEGER           :: NNBSMOKETRACER
+
+NAMELIST /NAM_FIREn/ &
+  LBLAZE, &
+  CPROPAG_MODEL, CHEAT_FLUX_MODEL, CLATENT_FLUX_MODEL, CFIRE_CPL_MODE, CBMAPFILE,            &
+  LINTERPWIND, LSGBAWEIGHT, NFIRE_WENO_ORDER, NFIRE_RK_ORDER, NREFINX, NREFINY, XCFLMAXFIRE, &
+  XLSDIFFUSION, XROSDIFFUSION, XFERR, XFLUXZEXT, XFLUXZMAX, XFLXCOEFTMP, LWINDFILTER,        &
+  CWINDFILTER, XEWAMTAU, XWLIMUTH, XWLIMUTMAX, NWINDSLOPECPLMODE, NNBSMOKETRACER
+
+CONTAINS
+
+SUBROUTINE INIT_NAM_FIREn
+  LBLAZE             = LBLAZE_n
+  CPROPAG_MODEL      = CPROPAG_MODEL_n
+  CHEAT_FLUX_MODEL   = CHEAT_FLUX_MODEL_n
+  CLATENT_FLUX_MODEL = CLATENT_FLUX_MODEL_n
+  CFIRE_CPL_MODE     = CFIRE_CPL_MODE_n
+  CBMAPFILE          = CBMAPFILE_n
+  LINTERPWIND        = LINTERPWIND_n
+  LSGBAWEIGHT        = LSGBAWEIGHT_n
+  NFIRE_WENO_ORDER   = NFIRE_WENO_ORDER_n
+  NFIRE_RK_ORDER     = NFIRE_RK_ORDER_n
+  NREFINX            = NREFINX_n
+  NREFINY            = NREFINY_n
+  XCFLMAXFIRE        = XCFLMAXFIRE_n
+  XLSDIFFUSION       = XLSDIFFUSION_n
+  XROSDIFFUSION      = XROSDIFFUSION_n
+  XFERR              = XFERR_n
+  XFLUXZEXT          = XFLUXZEXT_n
+  XFLUXZMAX          = XFLUXZMAX_n
+  XFLXCOEFTMP        = XFLXCOEFTMP_n
+  LWINDFILTER        = LWINDFILTER_n
+  CWINDFILTER        = CWINDFILTER_n
+  XEWAMTAU           = XEWAMTAU_n
+  XWLIMUTH           = XWLIMUTH_n
+  XWLIMUTMAX         = XWLIMUTMAX_n
+  NWINDSLOPECPLMODE  = NWINDSLOPECPLMODE_n
+  NNBSMOKETRACER     = NNBSMOKETRACER_n
+END SUBROUTINE INIT_NAM_FIREn
+
+SUBROUTINE UPDATE_NAM_FIREn
+  LBLAZE_n             = LBLAZE
+  CPROPAG_MODEL_n      = CPROPAG_MODEL
+  CHEAT_FLUX_MODEL_n   = CHEAT_FLUX_MODEL
+  CLATENT_FLUX_MODEL_n = CLATENT_FLUX_MODEL
+  CFIRE_CPL_MODE_n     = CFIRE_CPL_MODE
+  CBMAPFILE_n          = CBMAPFILE
+  LINTERPWIND_n        = LINTERPWIND
+  LSGBAWEIGHT_n        = LSGBAWEIGHT
+  NFIRE_WENO_ORDER_n   = NFIRE_WENO_ORDER
+  NFIRE_RK_ORDER_n     = NFIRE_RK_ORDER
+  NREFINX_n            = NREFINX
+  NREFINY_n            = NREFINY
+  XCFLMAXFIRE_n        = XCFLMAXFIRE
+  XLSDIFFUSION_n       = XLSDIFFUSION
+  XROSDIFFUSION_n      = XROSDIFFUSION
+  XFERR_n              = XFERR
+  XFLUXZEXT_n          = XFLUXZEXT
+  XFLUXZMAX_n          = XFLUXZMAX
+  XFLXCOEFTMP_n        = XFLXCOEFTMP
+  LWINDFILTER_n        = LWINDFILTER
+  CWINDFILTER_n        = CWINDFILTER
+  XEWAMTAU_n           = XEWAMTAU
+  XWLIMUTH_n           = XWLIMUTH
+  XWLIMUTMAX_n         = XWLIMUTMAX
+  NWINDSLOPECPLMODE_n  = NWINDSLOPECPLMODE
+  NNBSMOKETRACER_n     = NNBSMOKETRACER
+END SUBROUTINE UPDATE_NAM_FIREn
 
-NAMELIST/NAM_FIREn/LBLAZE,&
-CPROPAG_MODEL,CHEAT_FLUX_MODEL,CLATENT_FLUX_MODEL,XFERR,&
-NFIRE_RK_ORDER,NFIRE_WENO_ORDER,LSGBAWEIGHT,&
-NREFINX,NREFINY,XCFLMAXFIRE,CFIRE_CPL_MODE,CBMAPFILE,&
-LINTERPWIND,XLSDIFFUSION,XROSDIFFUSION,NNBSMOKETRACER,&
-XFLUXZEXT,XFLUXZMAX,XFLXCOEFTMP,&
-LWINDFILTER,CWINDFILTER,XEWAMTAU,XWLIMUTH,XWLIMUTMAX,NWINDSLOPECPLMODE
-!
 END MODULE MODN_FIRE_n
diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90
index 2c71729d884b8ec91a113ffa59d15de72481bb08..213063f3545c5c332f751b34e18e16ad2c717fc8 100644
--- a/src/MNH/read_desfmn.f90
+++ b/src/MNH/read_desfmn.f90
@@ -278,7 +278,6 @@ USE MODN_RECYCL_PARAM_n
 USE MODN_IBM_PARAM_n
 USE MODD_IBM_LSF, ONLY: LIBM_LSF
 !
-USE MODD_FIRE_n
 USE MODN_FIRE_n
 !
 IMPLICIT NONE
@@ -492,6 +491,12 @@ IF (GFOUND) THEN
   READ(UNIT=ILUDES,NML=NAM_STATIONn)
   CALL UPDATE_NAM_STATIONn
 END IF
+CALL POSNAM(ILUDES,'NAM_FIREN',GFOUND,ILUOUT)
+CALL INIT_NAM_FIREn
+IF (GFOUND) THEN
+  READ(UNIT=ILUDES,NML=NAM_FIREn)
+  CALL UPDATE_NAM_FIREn
+END IF
 !
 !
 IF (KMI == 1) THEN
@@ -616,8 +621,6 @@ IF (KMI == 1) THEN
   CALL POSNAM(ILUDES,'NAM_FOREFIRE',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_FOREFIRE)
 #endif
-  CALL POSNAM(ILUDES,'NAM_FIREN',GFOUND,ILUOUT)
-  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_FIREn)
   CALL POSNAM(ILUDES,'NAM_CONDSAMP',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_CONDSAMP)
   CALL POSNAM(ILUDES,'NAM_BLOWSNOW',GFOUND,ILUOUT)
@@ -764,6 +767,9 @@ IF (NVERB >= 10) THEN
 !
   WRITE(UNIT=ILUOUT,FMT="('********** STATIONn ******************')")
   WRITE(UNIT=ILUOUT,NML=NAM_STATIONn)
+!
+  WRITE(UNIT=ILUOUT,FMT="('********** BLAZE *******************')")
+  WRITE(UNIT=ILUOUT,NML=NAM_FIREn)
 !
   IF (KMI==1) THEN
     WRITE(UNIT=ILUOUT,FMT="(/,'PART OF INITIAL FILE COMMON TO ALL THE MODELS')")
@@ -850,11 +856,6 @@ IF (NVERB >= 10) THEN
     WRITE(UNIT=ILUOUT,NML=NAM_FOREFIRE)
 !
 #endif
-!
-    IF ( LBLAZE ) THEN
-      WRITE(UNIT=ILUOUT,FMT="('******************** BLAZE ********************')")
-      WRITE(UNIT=ILUOUT,NML=NAM_FIREn)
-    END IF
 !
     WRITE(UNIT=ILUOUT,FMT="('************ CONDITIONAL SAMPLING *************')")
     WRITE(UNIT=ILUOUT,NML=NAM_CONDSAMP)
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index c83aa71855f2be9da4b9ea5369f7a0dc6c20f8fe..8af3757de6ec88300e7e765a753cded43b02947c 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -370,6 +370,7 @@ USE MODN_ELEC
 USE MODN_EOL
 USE MODN_EOL_ADNR
 USE MODN_EOL_ALM
+USE MODN_FIRE_n
 USE MODN_FLYERS
 #ifdef MNH_FOREFIRE
 USE MODN_FOREFIRE
@@ -410,8 +411,6 @@ USE MODN_TURB
 USE MODN_TURB_CLOUD
 USE MODN_TURB_n
 USE MODN_VISCOSITY
-USE MODD_FIRE_n
-USE MODN_FIRE_n
 !
 IMPLICIT NONE
 !
@@ -512,6 +511,7 @@ CALL INIT_NAM_SERIESN
 CALL INIT_NAM_BLOWSNOWN
 CALL INIT_NAM_PROFILERn
 CALL INIT_NAM_STATIONn
+CALL INIT_NAM_FIREn
 !
 WRITE(UNIT=ILUOUT,FMT="(/,'READING THE EXSEG.NAM FILE')")
 CALL POSNAM(ILUSEG,'NAM_LUNITN',GFOUND,ILUOUT)
@@ -570,6 +570,8 @@ CALL POSNAM(ILUSEG,'NAM_PROFILERN',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PROFILERn)
 CALL POSNAM(ILUSEG,'NAM_STATIONN',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_STATIONn)
+CALL POSNAM(ILUSEG,'NAM_FIREN',GFOUND,ILUOUT)
+IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_FIREn)
 !
 IF (KMI == 1) THEN                                               
   WRITE(UNIT=ILUOUT,FMT="(' namelists common to all the models ')")
@@ -852,8 +854,6 @@ IF (KMI == 1) THEN
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_2D_FRC)
   CALL POSNAM(ILUSEG,'NAM_LATZ_EDFLX',GFOUND)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_LATZ_EDFLX)
-  CALL POSNAM(ILUSEG,'NAM_FIREN',GFOUND,ILUOUT)
-  IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_FIREn)
   CALL POSNAM(ILUSEG,'NAM_BLOWSNOW',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BLOWSNOW)
   CALL POSNAM(ILUSEG,'NAM_VISC',GFOUND,ILUOUT)
@@ -962,6 +962,7 @@ IF( CCLOUD == 'LIMA' ) THEN
                                                 'GRAU','HAIL')
 END IF
 ! Blaze
+CALL UPDATE_NAM_FIREn
 IF (LBLAZE) THEN
   CALL TEST_NAM_VAR(ILUOUT,'CPROPAG_MODEL',CPROPAG_MODEL,'SANTONI2011')
   CALL TEST_NAM_VAR(ILUOUT,'CHEAT_FLUX_MODEL',CHEAT_FLUX_MODEL,'CST','EXP','EXS')
@@ -969,6 +970,7 @@ IF (LBLAZE) THEN
   CALL TEST_NAM_VAR(ILUOUT,'CFIRE_CPL_MODE',CFIRE_CPL_MODE,'2WAYCPL','FIR2ATM','ATM2FIR')
   CALL TEST_NAM_VAR(ILUOUT,'CWINDFILTER',CWINDFILTER,'EWAM','WLIM')
 END IF
+!
 IF(LBLOWSNOW) THEN
        CALL TEST_NAM_VAR(ILUOUT,'CSNOWSEDIM',CSNOWSEDIM,'NONE','MITC','CARR','TABC')
        IF (XALPHA_SNOW .NE. 3 .AND. CSNOWSEDIM=='TABC') THEN
@@ -3063,6 +3065,7 @@ CALL UPDATE_NAM_SERIESN
 CALL UPDATE_NAM_BLOWSNOWN
 CALL UPDATE_NAM_PROFILERn
 CALL UPDATE_NAM_STATIONn
+CALL UPDATE_NAM_FIREn
 !-------------------------------------------------------------------------------
 WRITE(UNIT=ILUOUT,FMT='(/)')
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index 18d807785ab4c67b98932ca4ca0002c3c96260bf..4f27769f9d9560bee7196a32ce2ed37b49b6bff2 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -156,7 +156,6 @@ END MODULE MODI_WRITE_DESFM_n
 !              ------------
 USE MODD_CONF
 USE MODD_DYN_n,      ONLY: LHORELAX_SVLIMA, LHORELAX_SVFIRE
-USE MODD_FIRE_n,     ONLY: LBLAZE
 #ifdef MNH_FOREFIRE
 USE MODD_FOREFIRE,   ONLY: LFOREFIRE
 #endif
@@ -417,7 +416,10 @@ IF(LPASPOL) WRITE(UNIT=ILUSEG,NML=NAM_PASPOL)
 #ifdef MNH_FOREFIRE
 IF(LFOREFIRE) WRITE(UNIT=ILUSEG,NML=NAM_FOREFIRE)
 #endif
+!
+CALL INIT_NAM_FIREn
 WRITE(UNIT=ILUSEG,NML=NAM_FIREn)
+!
 IF(LCONDSAMP) WRITE(UNIT=ILUSEG,NML=NAM_CONDSAMP)
 IF(LORILAM.AND.LUSECHEM) WRITE(UNIT=ILUSEG,NML=NAM_CH_ORILAM)
 !
@@ -541,6 +543,9 @@ IF (NVERB >= 5) THEN
 !  
   WRITE(UNIT=ILUOUT,FMT="('********** BLOWING SNOW SCHEME ****************')")
   WRITE(UNIT=ILUOUT,NML=NAM_BLOWSNOWn)
+!
+  WRITE(UNIT=ILUOUT,FMT="('********** BLAZE *******************')")
+  WRITE(UNIT=ILUOUT,NML=NAM_FIREn)
 !
   WRITE(UNIT=ILUOUT,FMT="('********** BLANKn *****************************')")
   WRITE(UNIT=ILUOUT,NML=NAM_BLANKn)
@@ -639,11 +644,6 @@ IF (NVERB >= 5) THEN
     WRITE(UNIT=ILUOUT,NML=NAM_FOREFIRE)
 !
 #endif
-!
-    IF ( LBLAZE ) THEN
-      WRITE(UNIT=ILUOUT,FMT="('******************** BLAZE ********************')")
-      WRITE(UNIT=ILUOUT,NML=NAM_FIREn)
-    END IF
 !
     WRITE(UNIT=ILUOUT,FMT="('********** CONDSAMP****************************')")
     WRITE(UNIT=ILUOUT,NML=NAM_CONDSAMP)