diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index 7ee918dbe0130e2a4fa12c2114e85f0c14237e01..c4389ab79f3cd42fe649787514983e09d4cedfe2 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -516,7 +516,7 @@ ENDIF
 !
 !*       4.0    Stores the fields in MESONH files if necessary
 !
-CALL WRITE_LFIFM1_FOR_DIAG(YFMFILE,CDAD_NAME(1))
+CALL WRITE_LFIFM1_FOR_DIAG(TZFILE,CDAD_NAME(1))
 !
 WRITE(ILUOUT0,*) ' '
 WRITE(ILUOUT0,*) 'DIAG AFTER WRITE_LFIFM1_FOR_DIAG'
diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90
index e0bd002a10eb3146b4c079d48baa8d9b24e8df25..c6a133dab692bbca98153a00e548fe26e77faf4f 100644
--- a/src/MNH/free_atm_profile.f90
+++ b/src/MNH/free_atm_profile.f90
@@ -11,9 +11,12 @@
       MODULE MODI_FREE_ATM_PROFILE
 !     ############################
 INTERFACE
-      SUBROUTINE FREE_ATM_PROFILE(PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,&
+      SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,&
                            PF_FREE,PZ_FREE)
 !
+USE MODD_IO_ll, ONLY : TFILEDATA
+!
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE    ! File characteristics
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PVAR_MX   ! thermodynamical field
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PZMASS_MX ! mass points altitude
 REAL,   DIMENSION(:,:),   INTENT(IN)  :: PZS_LS    ! large scale orography
@@ -30,7 +33,7 @@ END SUBROUTINE FREE_ATM_PROFILE
 END INTERFACE
 END MODULE MODI_FREE_ATM_PROFILE
 !     ##############################################################
-      SUBROUTINE FREE_ATM_PROFILE(PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,&
+      SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,&
                             PF_FREE,PZ_FREE)
 !     ##############################################################
 !
@@ -98,10 +101,12 @@ USE MODI_COEF_VER_INTERP_LIN
 USE MODI_VER_INTERP_LIN
 USE MODI_VERT_COORD
 !
+USE MODE_FIELD, ONLY: TFIELDDATA, 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
@@ -115,6 +120,7 @@ IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
 !              ------------------------
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE    ! File characteristics
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PVAR_MX   ! thermodynamical field
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PZMASS_MX ! mass points altitude
 REAL,   DIMENSION(:,:),   INTENT(IN)  :: PZS_LS    ! large scale orography
@@ -171,6 +177,7 @@ REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) &
                                       :: Z3D ! field to be recorded
 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)
 !
@@ -479,7 +486,7 @@ IF (CPROGRAM == 'DIAG  ' ) THEN
   YCOMMENT='Height of Boundary Layer TOP (M)'
   ILENCH=LEN(YCOMMENT)
   IGRID=4
-  CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(TPFILE%CNAME,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*      11.2  Writing of level of boundary layer top
 !             --------------------------------------
@@ -489,7 +496,7 @@ IF (CPROGRAM == 'DIAG  ' ) THEN
   YCOMMENT='Index of Boundary Layer TOP ( )'
   ILENCH=LEN(YCOMMENT)
   IGRID=4
-  CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(TPFILE%CNAME,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 IF (CPROGRAM /= 'DIAG  ' .AND. CPROGRAM /= 'IDEAL ' ) THEN
@@ -498,11 +505,17 @@ IF (CPROGRAM /= 'DIAG  ' .AND. CPROGRAM /= 'IDEAL ' ) THEN
 !             -----------------------------------
 !
   Z2D(:,:)=ZFREE_GR(:,:)
-  YRECFM='FREE_ATM_GR'
-  YCOMMENT='K/M'
-  ILENCH=LEN(YCOMMENT)
-  IGRID=4
-  CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z2D,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+  TZFIELD%CMNHNAME   = 'FREE_ATM_GR'
+  TZFIELD%CSTDNAME   = ''
+  TZFIELD%CLONGNAME  = 'MesoNH: FREE_ATM_GR'
+  TZFIELD%CUNITS     = 'K m-1'
+  TZFIELD%CDIR       = 'XY'
+  TZFIELD%CCOMMENT   = 'Free atmosphere gradient'
+  TZFIELD%NGRID      = 4
+  TZFIELD%NTYPE      = TYPEREAL
+  TZFIELD%NDIMS      = 2
+  CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT0,IRESP,Z2D)
 !
 !*      11.4  Writing of free atmosphere 3D profiles
 !             --------------------------------------
@@ -512,11 +525,17 @@ IF (CPROGRAM /= 'DIAG  ' .AND. CPROGRAM /= 'IDEAL ' ) THEN
 !
   CALL COEF_VER_INTERP_LIN(PZ_FREE(:,:,:),ZZMASS(:,:,:),OLEUG=.TRUE.)
   Z3D(:,:,:)=VER_INTERP_LIN(PF_FREE(:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:))
-  YRECFM='THV_FREE'
-  YCOMMENT='X_Y_Z_THV_FREE (K)'
-  ILENCH=LEN(YCOMMENT)
-  IGRID=4
-  CALL FMWRIT(CINIFILE,YRECFM,CLUOUT0,'XY',Z3D,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+  TZFIELD%CMNHNAME   = 'THV_FREE'
+  TZFIELD%CSTDNAME   = ''
+  TZFIELD%CLONGNAME  = 'MesoNH: THV_FREE'
+  TZFIELD%CUNITS     = 'K'
+  TZFIELD%CDIR       = 'XY'
+  TZFIELD%CCOMMENT   = 'X_Y_Z_THV_FREE'
+  TZFIELD%NGRID      = 4
+  TZFIELD%NTYPE      = TYPEREAL
+  TZFIELD%NDIMS      = 3
+  CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT0,IRESP,Z3D)
 !
 END IF
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 808cb2ba86ff664c153ab3ee469405b952e9dfeb..95498935a91e5a1d33917016b4507dbd40b927e2 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -1512,10 +1512,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(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_RSOU(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT)
   END IF
 !
@@ -1531,10 +1531,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(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_CSTN(CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
+    CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
                   LRMV_BL,XJ,LSHIFT)
   END IF
 !
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 0280429b7a8e624b6a1e0455407970f433b6d45b..6a9256cdfcaadd3775180ea66ed7fea8aa6468ea 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -914,10 +914,10 @@ ALLOCATE(XPSURF(SIZE(XXHAT),SIZE(XYHAT)))
 !
 CALL EXTRAPOL('E',XEXNTOP2D)
 IF (YATMFILETYPE=='GRIBEX') THEN
-  CALL VER_THERMO(LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, &
+  CALL VER_THERMO(TZFILE,LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, &
                   XDXX,XDYY,XEXNTOP2D,XPSURF,ZDG                               )
 ELSE IF (YATMFILETYPE=='MESONH') THEN
-  CALL VER_THERMO(LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, &
+  CALL VER_THERMO(TZFILE,LSHIFT,XTHV_MX,XR_MX,XZS_LS,XZSMT_LS,XZMASS_MX,XZFLUX_MX,XPMHP_MX,ZJ, &
                   XDXX,XDYY,XEXNTOP2D,XPSURF,ZDG,                              &
                   XLSTH_MX,XLSRV_MX                                            )
 END IF
diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90
index 577fbc583bf983925fe3b68779734c51893b9c0a..bb079589a93dcb8d955b5dd4cf217f2173e9cbf4 100644
--- a/src/MNH/set_cstn.f90
+++ b/src/MNH/set_cstn.f90
@@ -13,8 +13,11 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_CSTN(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+SUBROUTINE SET_CSTN(TPFILE,HEXPRE,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
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
@@ -40,7 +43,7 @@ END MODULE MODI_SET_CSTN
 !
 !
 !     ##################################################################################
-      SUBROUTINE SET_CSTN(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+      SUBROUTINE SET_CSTN(TPFILE,HEXPRE,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 
@@ -170,6 +173,7 @@ END MODULE MODI_SET_CSTN
 !              ------------
 !
 USE MODD_CST             ! declarative modules
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_LUNIT_n
 USE MODD_CONF
 USE MODD_GRID_n
@@ -192,6 +196,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
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
@@ -418,13 +423,13 @@ ZMRM(:) = SM_PMR_HU(CLUOUT,ZPM(:),ZTVM(:),ZHUM(:), &
 !	        -------------------------------------------------
 !
 IF (PRESENT(PCORIOZ)) THEN
-    CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-              KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-              ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PCORIOZ=PCORIOZ)
+    CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                       &
+                  KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND, &
+                  ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PCORIOZ=PCORIOZ)
 ELSE
-    CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-              KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-              ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV)
+    CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                       &
+                  KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND, &
+                  ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV)
 ENDIF
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90
index 55aa53f701d34891ebb3cdef7960c1519b835a94..9d48730015c364ddafc6cf154e3d22df5865a793 100644
--- a/src/MNH/set_mass.f90
+++ b/src/MNH/set_mass.f90
@@ -8,9 +8,13 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_MASS(OPROFILE_IN_PROC, PZFLUX_PROFILE,            &
-                 KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,&
-                 PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ)
+SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE,                           &
+                    KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,                   &
+                    PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ)
+!
+USE MODD_IO_ll, ONLY : TFILEDATA
+!
+TYPE(TFILEDATA),        INTENT(IN) :: TPFILE    ! File characteristics
 LOGICAL,                INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor
 REAL, DIMENSION(:),     INTENT(IN) :: PZFLUX_PROFILE   ! Z at flux points on the initialization point column
 INTEGER,                INTENT(IN) :: KILOC     ! I Localisation of vertical profile
@@ -44,9 +48,9 @@ END MODULE MODI_SET_MASS
 !
 !
 !     ##########################################################################
-      SUBROUTINE SET_MASS(OPROFILE_IN_PROC, PZFLUX_PROFILE,            &
-                 KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,&
-                 PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ)
+SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE,                           &
+                    KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND,                   &
+                    PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ)
 !     ##########################################################################
 !
 !!****  *SET_MASS * - routine to initialize mass and wind fields on MESONH grid
@@ -119,6 +123,7 @@ END MODULE MODI_SET_MASS
 ! use des modules
 USE MODD_GRID_n ! declarative modules
 USE MODD_GRID
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_CONF
 USE MODD_CONF_n
 USE MODD_FIELD_n
@@ -147,8 +152,9 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments :
 !
-LOGICAL,                INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor
-REAL, DIMENSION(:),     INTENT(IN) :: PZFLUX_PROFILE   ! Z at flux points on the initialization point column
+TYPE(TFILEDATA),        INTENT(IN)             :: TPFILE    ! File characteristics
+LOGICAL,                INTENT(IN)             :: OPROFILE_IN_PROC ! initialization profile in current processor
+REAL, DIMENSION(:),     INTENT(IN)             :: PZFLUX_PROFILE   ! Z at flux points on the initialization point column
 INTEGER,                INTENT(IN)             :: KILOC     ! I Localisation of vertical profile
 INTEGER,                INTENT(IN)             :: KJLOC     ! J Localisation of vertical profile
 REAL, DIMENSION(:,:),   INTENT(IN)             :: PZS_MX    ! zs on the mixed grid
@@ -445,7 +451,7 @@ ELSE
 ! Interpolation of theta and r
 !
  IF (SIZE(ZTHV3D_MX,3) > 3) THEN
-  CALL VER_INT_THERMO(OSHIFT,ZTHV3D_MX,ZMR3D_MX,PZS_MX,PZS_MX,PZMASS_MX,&
+  CALL VER_INT_THERMO(TPFILE,OSHIFT,ZTHV3D_MX,ZMR3D_MX,PZS_MX,PZS_MX,PZMASS_MX,&
                       PZFLUX_MX,ZPMHP_MX,ZEXNTOP2D, &
                       ZTHV3D,XRT,ZPMHP,ZDIAG)
  ELSE
diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90
index 35cce87c8873ba1f47c3526d71d70bccee2d2db6..5bcc56b3ac511f74ac7e4e1806650c101f0ecdfe 100644
--- a/src/MNH/set_rsou.f90
+++ b/src/MNH/set_rsou.f90
@@ -13,8 +13,12 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_RSOU(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ)
+      SUBROUTINE SET_RSOU(TPFILE,HEXPRE,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
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
@@ -37,12 +41,10 @@ END INTERFACE
 !
 END MODULE MODI_SET_RSOU
 !
-!
-!
-!     ######spl
-      SUBROUTINE SET_RSOU(HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
+!     ###########################################################################
+      SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
                           ORMV_BL,PJ,OSHIFT,PCORIOZ) 
-!     ##########################################################################################
+!     ###########################################################################
 !
 !!****  *SET_RSOU * -  to initialize mass fiels from a radiosounding 
 !!
@@ -251,6 +253,7 @@ END MODULE MODI_SET_RSOU
 !              ------------
 !
 USE MODD_CST          ! declarative modules
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_LUNIT_n
 USE MODD_CONF
 USE MODD_CONF_n
@@ -281,6 +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
 CHARACTER(LEN=*),       INTENT(IN)  :: HFUNU  ! type of variation of U
                                               ! in y direction
@@ -1266,15 +1270,15 @@ DEALLOCATE(ZMRT)
 !*	 4.     COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY)
 !	        -------------------------------------------------
 IF (PRESENT(PCORIOZ)) THEN
-  CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-               KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-               ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,&
-               PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ)
+  CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                      &
+                KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,              &
+                PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ)
 ELSE  
-  CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-               KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-               ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,&
-               PMRCM=ZMRCM,PMRIM=ZMRIM)
+  CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                      &
+                KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,              &
+                PMRCM=ZMRCM,PMRIM=ZMRIM)
 ENDIF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90
index 29f1bf8aa7394ef432e75c481f58a54711627867..9c39d1024cabada354aca8f99044fa631b451b3d 100644
--- a/src/MNH/ver_int_thermo.f90
+++ b/src/MNH/ver_int_thermo.f90
@@ -11,11 +11,14 @@
       MODULE MODI_VER_INT_THERMO
 !     ##########################
 INTERFACE
-      SUBROUTINE VER_INT_THERMO(OSHIFT,                                   &
+      SUBROUTINE VER_INT_THERMO(TPFILE,OSHIFT,                                     &
                                 PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX, &
-                                PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG,   &
-                                PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM        )
+                                PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG,            &
+                                PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM                 )
 !
+USE MODD_IO_ll, ONLY : TFILEDATA
+!
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE     ! File characteristics
 LOGICAL,                  INTENT(IN)  :: OSHIFT     ! T: vertical shift of BL (used for GRIB file data)
 !                                                   ! F: no vertical shift (used for MESONH data)
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PTHV_MX    ! thetav on mixed grid
@@ -42,10 +45,10 @@ END SUBROUTINE VER_INT_THERMO
 END INTERFACE
 END MODULE MODI_VER_INT_THERMO
 !     #######################################################################
-      SUBROUTINE VER_INT_THERMO(OSHIFT,                                   &
+      SUBROUTINE VER_INT_THERMO(TPFILE,OSHIFT,                                     &
                                 PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX, &
-                                PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG,   &
-                                PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM        )
+                                PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG,            &
+                                PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM                 )
 !     #######################################################################
 !
 !!****  *VER_INT_THERMO* - Vertical shift and interpolation of thetav and rv.
@@ -154,6 +157,7 @@ USE MODI_WATER_SUM
 !
 USE MODD_CONF      ! declaration modules
 USE MODD_CONF_n
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_LUNIT
 USE MODD_GRID_n
 USE MODD_PARAMETERS
@@ -172,6 +176,7 @@ IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
 !              ------------------------
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE     ! File characteristics
 LOGICAL,                  INTENT(IN)  :: OSHIFT     ! T: vertical shift of BL (used for GRIB file data)
 !                                                   ! F: no vertical shift (used for MESONH data)
 REAL,   DIMENSION(:,:,:), INTENT(IN)  :: PTHV_MX    ! thetav on mixed grid
@@ -346,7 +351,7 @@ CALL MPPDB_CHECK3D(ZPMHPOHP_SH,"ver_int_thermo2a::ZPMHPOHP_SH",PRECISION)
 !              --------------------------------
 !
 ZTHVCLIMGR=3.5E-3 ! K/m
-CALL FREE_ATM_PROFILE(PTHV_MX,PZMASS_MX,PZS_LS,PZSMT_LS,ZTHVCLIMGR,ZTHV_FREE,ZZ_FREE)
+CALL FREE_ATM_PROFILE(TPFILE,PTHV_MX,PZMASS_MX,PZS_LS,PZSMT_LS,ZTHVCLIMGR,ZTHV_FREE,ZZ_FREE)
 CALL MPPDB_CHECK3D(ZTHV_FREE,"VER_INT_THERMO:ZTHV_FREE",PRECISION)
 !
 !*       3.2   Computation of the value of thetav on the shifted grid
diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90
index 29fbd754d42f20aba2675b1348881ae5f94aa1f7..80b01052c524afe3270284fc9200502cad93a298 100644
--- a/src/MNH/ver_thermo.f90
+++ b/src/MNH/ver_thermo.f90
@@ -11,11 +11,14 @@
       MODULE MODI_VER_THERMO
 !     ######################
 INTERFACE
-      SUBROUTINE VER_THERMO(OSHIFT,                                               &
+      SUBROUTINE VER_THERMO(TPFILE,OSHIFT,                                                 &
                             PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PJ, &
-                            PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG,                     &
-                            PLSTH_MX,PLSRV_MX                                     )
+                            PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG,                              &
+                            PLSTH_MX,PLSRV_MX                                              )
 !
+USE MODD_IO_ll, ONLY : TFILEDATA
+!
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE     ! File characteristics
 LOGICAL,                  INTENT(IN)  :: OSHIFT     ! T: vertical shift of BL (used for GRIB file data)
 !                                                   ! F: no vertical shift (used for MESONH data)
 REAL,   DIMENSION(:,:,:), INTENT(IN)     :: PTHV_MX   ! thetav on mixed grid
@@ -39,11 +42,11 @@ REAL,DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSRV_MX ! large scale vapor mixi
 END SUBROUTINE VER_THERMO
 END INTERFACE
 END MODULE MODI_VER_THERMO
-!     ######spl
-      SUBROUTINE VER_THERMO(OSHIFT,                                               &
+!     ######################################################################
+      SUBROUTINE VER_THERMO(TPFILE,OSHIFT,                                                 &
                             PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PJ, &
-                            PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG,                     &
-                            PLSTH_MX,PLSRV_MX                                     )
+                            PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG,                              &
+                            PLSTH_MX,PLSRV_MX                                              )
 !     ######################################################################
 !
 !!****  *VER_THERMO* - initializes the thermodynamic and reference state
@@ -164,6 +167,7 @@ USE MODI_WATER_SUM
 !
 USE MODD_CONF           ! declaration modules
 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
@@ -190,6 +194,7 @@ IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
 !              ------------------------
+TYPE(TFILEDATA),          INTENT(IN)  :: TPFILE     ! File characteristics
 LOGICAL,                  INTENT(IN)  :: OSHIFT     ! T: vertical shift of BL (used for GRIB file data)
 !                                                   ! F: no vertical shift (used for MESONH data)
 REAL,   DIMENSION(:,:,:), INTENT(IN)     :: PTHV_MX   ! thetav on mixed grid
@@ -268,10 +273,10 @@ IF ( PRESENT(PLSTH_MX)) THEN
   CALL MPPDB_CHECK3D(PLSTH_MX,"PLSTH_MX",PRECISION)
   CALL MPPDB_CHECK3D(PLSRV_MX,"PLSRV_MX",PRECISION)
   !
-  CALL VER_INT_THERMO(OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, &
+  CALL VER_INT_THERMO(TPFILE,OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, &
                       ZTHV,XRT,ZPMHP,PDIAG,PLSTH_MX,PLSRV_MX,XLSTHM,XLSRVM)
 ELSE
-  CALL VER_INT_THERMO(OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, &
+  CALL VER_INT_THERMO(TPFILE,OSHIFT,PTHV_MX,PR_MX,PZS_LS,PZSMT_LS,PZMASS_MX,PZFLUX_MX,PPMHP_MX,PEXNTOP2D, &
                       ZTHV,XRT,ZPMHP,PDIAG)
 END IF
 !
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 2dee895ca966a2591f45edaca1cf545c14fd1a21..911aa344fd4764c44d3c2c7b6e4a0b80c1f89357 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -12,10 +12,11 @@
 MODULE MODI_WRITE_LFIFM1_FOR_DIAG
 !################################
 INTERFACE
-      SUBROUTINE WRITE_LFIFM1_FOR_DIAG(HFMFILE,HDADFILE)
-!*       0.1   Declarations of arguments
+      SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE)
+!
+USE MODD_IO_ll, ONLY : TFILEDATA
 !
-CHARACTER(LEN=28), INTENT(IN) :: HFMFILE      ! Name of FM-file to write
+TYPE(TFILEDATA),   INTENT(IN) :: TPFILE       ! outpput data file
 CHARACTER(LEN=28), INTENT(IN) :: HDADFILE     ! corresponding FM-file name of 
                                               ! its DAD model
 !
@@ -24,7 +25,7 @@ END INTERFACE
 END MODULE MODI_WRITE_LFIFM1_FOR_DIAG
 !
 !     ##################################################
-      SUBROUTINE WRITE_LFIFM1_FOR_DIAG(HFMFILE,HDADFILE)
+      SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE)
 !     ##################################################
 !
 !!****  *WRITE_LFIFM1* - routine to write a LFIFM file for model 1
@@ -32,7 +33,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG
 !!    PURPOSE
 !!    -------
 !        The purpose of this routine is to write an initial LFIFM File 
-!     of name HFMFILE//'.lfi' with the FM routines.  
+!     of name YFMFILE2//'.lfi' with the FM routines.  
 !
 !!**  METHOD
 !!    ------
@@ -105,7 +106,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG
 !!       J.Stein P.Jabouille  30/04/96 add the storage type
 !!       J.Stein P.Jabouille  20/05/96 switch for XSIGS and XSRC
 !!       J.Stein              10/10/96 change Xsrc into XSRCM and XRCT
-!!       J.P. Lafore          30/07/96 add HFMFILE and HDADFILE writing
+!!       J.P. Lafore          30/07/96 add YFMFILE2 and HDADFILE writing
 !!                                     corresponding to MY_NAME and DAD_NAME (for nesting)
 !!       V.Masson             08/10/96 add LTHINSHELL
 !!       J.-P. Pinty   15/12/96 add the microphysics (ice)
@@ -151,6 +152,7 @@ USE MODD_CONF
 USE MODD_CONF_n
 USE MODD_GRID
 USE MODD_GRID_n
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODD_METRICS_n
 USE MODD_TIME
 USE MODD_TIME_n
@@ -241,7 +243,7 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of arguments
 !
-CHARACTER(LEN=28), INTENT(IN) :: HFMFILE      ! Name of FM-file to write
+TYPE(TFILEDATA),   INTENT(IN) :: TPFILE       ! outpput data file
 CHARACTER(LEN=28), INTENT(IN) :: HDADFILE     ! corresponding FM-file name of 
                                               ! its DAD model
 !
@@ -252,6 +254,7 @@ INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
 CHARACTER(LEN=28) :: YFMFILE        ! Temporary variable to store FM-file name
+CHARACTER(LEN=28) :: YFMFILE2       ! Temporary variable to store FM-file name
 CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 !
@@ -344,74 +347,74 @@ CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !*       1.     WRITES IN THE LFI FILE
 !               ---------------------- 
 !
-!*       1.0    HFMFILE and HDADFILE :
+!*       1.0    YFMFILE2 and HDADFILE :
 !
 YRECFM='MASDEV'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NMASDEV,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='BUGFIX'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NBUGFIX,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='BIBUSER'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CBIBUSER,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='PROGRAM'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CPROGRAM,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='L1D'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',L1D,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',L1D,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='L2D'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',L2D,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',L2D,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='PACK'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LPACK,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LPACK,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='MY_NAME'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',HFMFILE,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',YFMFILE2,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='DAD_NAME'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',HDADFILE,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 IF (LEN_TRIM(HDADFILE)>0) THEN
-  CALL FMWRIT(HFMFILE,'DXRATIO',CLUOUT,'--',NDXRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP)
-  CALL FMWRIT(HFMFILE,'DYRATIO',CLUOUT,'--',NDYRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP)
-  CALL FMWRIT(HFMFILE,'XOR',CLUOUT,'--',NXOR_ALL(1),0,ILENCH,YCOMMENT,IRESP)
-  CALL FMWRIT(HFMFILE,'YOR',CLUOUT,'--',NYOR_ALL(1),0,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,'DXRATIO',CLUOUT,'--',NDXRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,'DYRATIO',CLUOUT,'--',NDYRATIO_ALL(1),0,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,'XOR',CLUOUT,'--',NXOR_ALL(1),0,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,'YOR',CLUOUT,'--',NYOR_ALL(1),0,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 YRECFM='SURF'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',CSURF,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',CSURF,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*       1.1    Type and Dimensions :
 !
@@ -420,31 +423,31 @@ YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
 YSTORAGE_TYPE='DI'
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',YSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',YSTORAGE_TYPE,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='IMAX'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NIMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='JMAX'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='KMAX'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='JPHEXT'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*       1.2    Grid variables :
 !
@@ -453,19 +456,19 @@ IF (.NOT.LCARTESIAN) THEN
   YCOMMENT='projection parameter'
   IGRID=0
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRPK,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRPK,IGRID,ILENCH,YCOMMENT,IRESP)
 ! 
   YRECFM='LONORI'
   YCOMMENT='longitude of the origin point (DEGREES)'
   IGRID=0
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLONORI,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLONORI,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM='LATORI'
   YCOMMENT='latitude of the origin point (DEGREES)'
   IGRID=0
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLATORI,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLATORI,IGRID,ILENCH,YCOMMENT,IRESP)
 ! 
 !* diagnostic of 1st mass point
 !
@@ -481,13 +484,13 @@ IF (.NOT.LCARTESIAN) THEN
   YCOMMENT='longitude of the mass point 1-1 (DEGREES)'
   IGRID=0
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',ZLONOR,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM='LATOR'
   YCOMMENT='latitude of the mass point 1-1 (DEGREES)'
   IGRID=0
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',ZLATOR,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 END IF 
 !
@@ -495,98 +498,98 @@ YRECFM='THINSHELL'
 YCOMMENT=' '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LTHINSHELL,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='LAT0'
 YCOMMENT='reference latitude for conformal projection (DEGREES)'
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLAT0,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLAT0,IGRID,ILENCH,YCOMMENT,IRESP)
 ! 
 YRECFM='LON0'
 YCOMMENT='reference longitude for conformal projection (DEGREES)'
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLON0,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLON0,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='BETA'
 YCOMMENT='rotation angle (DEGREES)'
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XBETA,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XBETA,IGRID,ILENCH,YCOMMENT,IRESP)
 ! 
 YRECFM='XHAT'
 YCOMMENT='Position x in the conformal or cartesian plane (METERS)'
 IGRID=2
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XX',XXHAT,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XX',XXHAT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='YHAT'
 YCOMMENT='Position y in the conformal or cartesian plane (METERS)'
 IGRID=3
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'YY',XYHAT,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'YY',XYHAT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='ZHAT'
 YCOMMENT='height level without orography (METERS)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XZHAT,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XZHAT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='ZS'
 YCOMMENT='orography (METERS)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZS,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZS,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='ZSMT'
 YCOMMENT='smooth orography (METERS)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZSMT,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZSMT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='SLEVE'
 YCOMMENT=' '
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LSLEVE,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 IF (LSLEVE) THEN
   YRECFM='LEN1'
   YCOMMENT=' '
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLEN1,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLEN1,IGRID,ILENCH,YCOMMENT,IRESP)
   YRECFM='LEN2'
   YCOMMENT=' '
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XLEN2,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XLEN2,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 YRECFM='DTCUR'
 YCOMMENT=' '
 ILENCH=LEN(YCOMMENT)
 IGRID=0
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTCUR,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='DTEXP'   ! array of rank 3 for date is written in file
 YCOMMENT=' '
 ILENCH=LEN(YCOMMENT)
 IGRID=0
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTEXP,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='DTMOD'    ! array of rank 3 for date is written in file
 YCOMMENT=' '
 ILENCH=LEN(YCOMMENT)
 IGRID=0
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTMOD,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='DTSEG'    ! array of rank 3 for date is written in file
 IGRID=0
 YCOMMENT=' '
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',TDTSEG,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !*       1.3    Configuration  variables :
 !
@@ -594,13 +597,13 @@ YRECFM='CARTESIAN'
 YCOMMENT='Logical for cartesian geometry '
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LCARTESIAN,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='LBOUSS'      
 YCOMMENT='Logical for Boussinesq'           
 IGRID=0
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',LBOUSS,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 IF (LCARTESIAN .AND. LWIND_ZM) THEN
   LWIND_ZM=.FALSE.
@@ -612,31 +615,31 @@ YRECFM='RHOREFZ'
 YCOMMENT='rhodz for reference state without orography (kg/m3)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRHODREFZ,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRHODREFZ,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='THVREFZ'
 YCOMMENT='thetavz for reference state without orography (K)'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTHVREFZ,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='EXNTOP'
 YCOMMENT='Exner function at model top'
 IGRID=4
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XEXNTOP,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='RHODREF'
 YCOMMENT='Dry density for reference state with orography (kg/m3)'
 IGRID=1
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRHODREF,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XRHODREF,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 YRECFM='THVREF'
 YCOMMENT='Thetav for reference state with orography (K)'
 IGRID=1
 ILENCH=LEN(YCOMMENT)
-CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHVREF,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTHVREF,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !
 !*       1.5    Variables necessary for plots
@@ -649,7 +652,7 @@ IF (INDEX(CISO,'PR') /= 0) THEN
   YCOMMENT='X_Y_Z_ABSolute Pressure (Pa)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XPABST,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XPABST,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 IF (INDEX(CISO,'TK') /= 0) THEN
@@ -657,7 +660,7 @@ IF (INDEX(CISO,'TK') /= 0) THEN
   YCOMMENT='X_Y_Z_potential temperature (K)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTHT,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTHT,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU )
@@ -682,7 +685,7 @@ IF (INDEX(CISO,'EV') /= 0) THEN
   YCOMMENT='X_Y_Z_POtential VOrticity (PVU)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZPOVO,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZPOVO,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 !
@@ -691,25 +694,25 @@ IF (LVAR_RS) THEN
   YCOMMENT='X_Y_Z_U component of wind (m/s)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XUT,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XUT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   YRECFM='VT'
   YCOMMENT='X_Y_Z_V component of wind (m/s)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XVT,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XVT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (LWIND_ZM) THEN
     YCOMMENT='X_Y_Z_Zonal and Meridian components of horizontal wind (M/S)'
     CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23, &
-            HFMFILE=HFMFILE,HRECU='UM_ZM',HRECV='VM_ZM',HCOMMENT=YCOMMENT)
+            HFMFILE=YFMFILE2,HRECU='UM_ZM',HRECV='VM_ZM',HCOMMENT=YCOMMENT)
   END IF
   !
   YRECFM='WT'
   YCOMMENT='X_Y_Z_vertical wind (m/s)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   !   write mixing ratio for water vapor required to plot radio-soundings
   !
@@ -718,7 +721,7 @@ IF (LVAR_RS) THEN
     YCOMMENT='X_Y_Z_Vapor mixing Ratio (KG/KG)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XRT(:,:,:,1),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XRT(:,:,:,1),IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
   END IF
 END IF
@@ -730,13 +733,13 @@ IF (.NOT.LCARTESIAN) THEN
    YCOMMENT='X_Y_latitude (degrees)'
    IGRID=1
    ILENCH=LEN(YCOMMENT)
-   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP)
+   CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLAT,IGRID,ILENCH,YCOMMENT,IRESP)
    !
    YRECFM='LON'
    YCOMMENT='X_Y_longitude (degrees)'
    IGRID=1
    ILENCH=LEN(YCOMMENT)
-   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP)
+   CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLON,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 !
@@ -752,20 +755,20 @@ IF (LVAR_TURB) THEN
     YCOMMENT='X_Y_Z_Turbulent Kinetic Energy (M**2/S**2)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XTKET,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XTKET,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF( NRR > 1 ) THEN
       YRECFM='SRCT'
       YCOMMENT='X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2 (KG/KG**2)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSRCT,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSRCT,IGRID,ILENCH,YCOMMENT,IRESP)
       !
       YRECFM='SIGS'
       YCOMMENT='X_Y_Z_Sigma_s from turbulence scheme (KG/KG**2)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSIGS,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSIGS,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF
     ! 
     IF(CTOM=='TM06') THEN
@@ -773,7 +776,7 @@ IF (LVAR_TURB) THEN
       YCOMMENT='X_Y_BL_DEPTH (M)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XBL_DEPTH,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF
   END IF
 END IF
@@ -789,14 +792,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
   YCOMMENT    ='X_Y_INstantaneous PRecipitation Rate (MM/H)'
   IGRID       =1
   ILENCH      =LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   ZWORK31(:,:,:)  = XINPRR3D(:,:,:)
   YRECFM      = 'INPRR3D'
   YCOMMENT    = 'X_Y_INstantaneous 3D Rain Precipitation flux (M/S)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, &
                                              YCOMMENT,IRESP) ! unit conversion
 !
   ZWORK31(:,:,:)  = XEVAP3D(:,:,:)
@@ -804,7 +807,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
   YCOMMENT    = 'X_Y_INstantaneous 3D Rain Evaporation flux (KG/KG/S)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH, &
                                              YCOMMENT,IRESP) ! unit conversion
 !
   ZWORK21(:,:) = XACPRR(:,:)*1.E3
@@ -812,7 +815,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
   YCOMMENT    ='X_Y_ACcumulated PRecipitation Rate (MM)'
   IGRID       =1
   ILENCH      =LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.&
       CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN 
@@ -822,14 +825,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
       YCOMMENT    ='X_Y_INstantaneous Cloud PRecipitation Rate (MM/H)'
       IGRID       =1
       ILENCH      =LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
       ZWORK21(:,:) = XACPRC(:,:)*1.E3
       YRECFM      ='ACPRC'
       YCOMMENT    ='X_Y_ACcumulated Cloud PRecipitation Rate (MM)'
       IGRID       =1
       ILENCH      =LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF 
     IF (SIZE(XINDEP) /= 0 ) THEN
       ZWORK21(:,:) = XINDEP(:,:)*3.6E6
@@ -837,14 +840,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
       YCOMMENT    ='X_Y_INstantaneous Cloud Deposition Rate (MM/H)'
       IGRID       =1
       ILENCH      =LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
       ZWORK21(:,:) = XACDEP(:,:)*1.E3
       YRECFM      ='ACDEP'
       YCOMMENT    ='X_Y_ACcumulated Cloud Deposition Rate (MM)'
       IGRID       =1
       ILENCH      =LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF 
   END IF 
   IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN
@@ -853,28 +856,28 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
     YCOMMENT    = 'X_Y_INstantaneaous PRecipitation rate for Snow (MM/H)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:)  = XACPRS(:,:)*1.0E3
     YRECFM      = 'ACPRS'
     YCOMMENT    = 'X_Y_ACccumuated PRecipitation rate for Snow (MM)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:)  = XINPRG(:,:)*3.6E6
     YRECFM      = 'INPRG'
     YCOMMENT    = 'X_Y_INstantaneaous PRecipitation rate for Graupel (MM/H)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:)  = XACPRG(:,:)*1.0E3
     YRECFM      = 'ACPRG'
     YCOMMENT    = 'X_Y_ACccumuated PRecipitation rate for Graupel (MM)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     IF (SIZE(XINPRH) /= 0 ) THEN
       ZWORK21(:,:)  = XINPRH(:,:)*3.6E6
@@ -882,14 +885,14 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
       YCOMMENT    = 'X_Y_INstantaneaous PRecipitation rate for Hail (MM/H)'
       IGRID       = 1
       ILENCH      = LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     !
       ZWORK21(:,:)  = XACPRH(:,:)*1.0E3
       YRECFM      = 'ACPRH'
       YCOMMENT    = 'X_Y_ACccumuated PRecipitation rate for Hail (MM)'
       IGRID       = 1
       ILENCH      = LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     ENDIF
   !
     ZWORK21(:,:) = (XINPRR(:,:) + XINPRS(:,:) + XINPRG(:,:))*3.6E6
@@ -902,7 +905,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
     YCOMMENT    = 'X_Y_INPRT (MM/H)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:) = (XACPRR(:,:) + XACPRS(:,:) + XACPRG(:,:))*1.0E3
     IF (SIZE(XINPRC) /= 0 ) &      
@@ -915,7 +918,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
     YCOMMENT    = 'X_Y_ACPRT (MM)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   END IF
   !
@@ -927,21 +930,21 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
     YCOMMENT    ='X_Y_CONVective instantaneous Precipitation Rate (MM/H)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:) = XPACCONV(:,:)*1.E3 
     YRECFM      ='PACCONV'
     YCOMMENT    ='X_Y_CONVective ACcumulated Precipitation rate (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
     ZWORK21(:,:) = XPRSCONV(:,:)*3.6E6 
     YRECFM      ='PRSCONV'
     YCOMMENT    ='X_Y_CONVective instantaneous Precipitation Rate for Snow (MM/H)'
     IGRID       = 1
     ILENCH      = LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 IF (LVAR_PR ) THEN
@@ -973,7 +976,7 @@ IF (LVAR_PR ) THEN
   YCOMMENT='(kg/m²)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)  
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
 ENDIF
 !
 !
@@ -1046,25 +1049,25 @@ IF (LHU_FLX) THEN
   YCOMMENT='(kg / s / m²)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
   !  
   YRECFM='VM90'
   YCOMMENT='(kg / s / m²)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
   !  composantes U et V du flux d'humidité intégré sur 3000 metres
   YRECFM='UM91'
   YCOMMENT='(kg / s / m)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   YRECFM='VM91'
   YCOMMENT='(kg / s / m)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   !   Convergence d'humidité
   YRECFM='HMCONV'
@@ -1072,7 +1075,7 @@ IF (LHU_FLX) THEN
   YCOMMENT='(kg / s / m^3)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK35*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK35*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
   !
   !   Convergence d'humidité intégré sur 3000 mètres
   YRECFM='HMCONV3000'
@@ -1080,7 +1083,7 @@ IF (LHU_FLX) THEN
   YCOMMENT='(kg / s / m^3)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK25*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK25*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
     !  composantes U et V du flux surfacique d'hydrométéores  
@@ -1088,38 +1091,38 @@ IF (LHU_FLX) THEN
     YCOMMENT='(kg / s / m²)'
     IGRID=2
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
     ! 
     YRECFM='VM92'
     YCOMMENT='(kg / s / m²)'
     IGRID=3
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
     !  composantes U et V du flux d'hydrométéores intégré sur 3000 metres
     YRECFM='UM93'
     YCOMMENT='(kg / s / m)'
     IGRID=2
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP)
     YRECFM='VM93'
     YCOMMENT='(kg / s / m)'
     IGRID=3
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP)
     !   Convergence d'hydrométéores
     YRECFM='HMCONV_TT'
     YCOMMENT='X_Y_Horizontal CONVergence of hydrometeor flux (kg / s / m)'
     YCOMMENT='(kg / s / m^3)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK36*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK36*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
     !   Convergence d'hydrométéores intégré sur 3000 mètres
     YRECFM='HMCONV3000_TT'
     YCOMMENT='X_Y_Horizontal CONVergence of hydrometeor flux (kg / s / m)'
     YCOMMENT='(kg / s / m^3)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK26*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK26*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
   ENDIF
 ENDIF
 !
@@ -1135,7 +1138,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRV (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
                  
     END IF
@@ -1145,13 +1148,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRC (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       YRECFM= 'VRC'
       YCOMMENT='X_Y_Z_VRC (vol/vol)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
     IF (LUSERR) THEN
@@ -1160,13 +1163,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRR (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       YRECFM= 'VRR'
       YCOMMENT='X_Y_Z_VRR (vol/vol)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*XRHODREF(:,:,:)/1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
     IF (LUSERI) THEN
@@ -1175,13 +1178,13 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRI (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
       IF (LUSECI) THEN
         YRECFM= 'CIT'
         YCOMMENT='X_Y_Z_CIT (/M3)'
         ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCIT(:,:,:),IGRID,ILENCH,  &
+        CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCIT(:,:,:),IGRID,ILENCH,  &
                     YCOMMENT,IRESP)
       END IF
     END IF
@@ -1191,7 +1194,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRS (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
     IF (LUSERG) THEN
@@ -1200,7 +1203,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_RG (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
     END IF
     IF (LUSERH) THEN
@@ -1209,7 +1212,7 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_RH (G/KG)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,IRR)*1.E3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                 YCOMMENT,IRESP)
     END IF
   END IF
@@ -1226,7 +1229,7 @@ IF (LVAR_MRSV) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','MRSV',JSV,' (G/KG)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E3
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 END IF
@@ -1242,7 +1245,7 @@ IF(LVAR_MRW) THEN
       ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3
     ENDIF
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
   ! microphysical C3R5 scheme additional scalar variables
@@ -1251,7 +1254,7 @@ IF(LVAR_MRW) THEN
     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/L)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)   
   END DO
 END IF
@@ -1321,7 +1324,7 @@ IF (LLIMA_DIAG) THEN
 !
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6*XRHODREF(:,:,:)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
    END DO
 !
@@ -1330,7 +1333,7 @@ IF (LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_LWC (g/m^3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
    END IF
 !
@@ -1339,7 +1342,7 @@ IF (LLIMA_DIAG) THEN
       YCOMMENT='X_Y_Z_MRI (g/m^3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
                   YCOMMENT,IRESP)
    END IF
 !
@@ -1352,7 +1355,7 @@ IF (LCHEMDIAG) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','CHIM',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 END IF
@@ -1365,7 +1368,7 @@ IF (LCHAQDIAG) THEN    !aqueous concentration in M
     WHERE(((XRT(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
       ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,2))
     ENDWHERE
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
   ZWORK31(:,:,:)=0.
@@ -1376,7 +1379,7 @@ IF (LCHAQDIAG) THEN    !aqueous concentration in M
     WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
       ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3))
     ENDWHERE
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 !  ZWORK31(:,:,:)=0.
@@ -1387,7 +1390,7 @@ IF (LCHAQDIAG) THEN    !aqueous concentration in M
 !    WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ)
 !      ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3))
 !    ENDWHERE
-!    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+!    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
 !         YCOMMENT,IRESP)
 !  END DO
 END IF
@@ -1410,7 +1413,7 @@ IF (LPASPOL) THEN
     WRITE(YRECFM,'(A3,I3.3)')'PPT',JSV
     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','PPT',JSV,' (G/M3) '
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTMP,IGRID,ILENCH,       &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTMP,IGRID,ILENCH,       &
      YCOMMENT,IRESP)
     !
   END DO
@@ -1423,7 +1426,7 @@ IF (LCONDSAMP) THEN
     WRITE(YRECFM,'(A3,I3.3)')'CST',JSV
     WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','CST',JSV,' () '
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,       &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,       &
      YCOMMENT,IRESP)
     !
   END DO
@@ -1436,7 +1439,7 @@ IF (LTRAJ) THEN
     YRECFM=TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T'
     WRITE(YCOMMENT,'(A6,A20,I3.3,A7)')'X_Y_Z_','Lagrangian variable ',JSV,' (M)'
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,   &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XSVT(:,:,:,JSV),IGRID,ILENCH,   &
                 YCOMMENT,IRESP)
   END DO
   ! X coordinate
@@ -1451,7 +1454,7 @@ IF (LTRAJ) THEN
   WRITE(YRECFM,'(A1)')'X'
   WRITE(YCOMMENT,'(A6,A13,A7)')'X_Y_Z_','X coordinate ',' (M)'
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
               YCOMMENT,IRESP)
   ! Y coordinate
   DO JK=1,IKU
@@ -1465,7 +1468,7 @@ IF (LTRAJ) THEN
   WRITE(YRECFM,'(A1)')'Y'
   WRITE(YCOMMENT,'(A6,A13,A7)')'X_Y_Z_','Y coordinate ',' (M)'
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
               YCOMMENT,IRESP)
 END IF
 ! linox scalar variables
@@ -1475,7 +1478,7 @@ IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','LNOX',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 END IF
@@ -1489,7 +1492,7 @@ IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN
     END IF
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV) * XRHODREF(:,:,:)  ! C/kg --> C/m3
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
 END IF
@@ -1507,7 +1510,7 @@ IF (LSALT) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALT',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   END DO
   !
@@ -1518,28 +1521,28 @@ IF (LSALT) THEN
     WRITE(YCOMMENT,'(A18,I1,A5)')'RG (nb) SALT MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A7,I1)')'SLTRGAM',JJ
     WRITE(YCOMMENT,'(A17,I1,A5)')'RG (m) SALT MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_SLT(:,:,:,JJ)))**2))
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A6,I1)')'SLTN0A',JJ
     WRITE(YCOMMENT,'(A13,I1,A7)')'N0 SALT MODE ',JJ,' (1/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZN0_SLT(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A7,I1)')'SLTSIGA',JJ
     WRITE(YCOMMENT,'(A16,I1)')'SIGMA SALT MODE ',JJ
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZSIG_SLT(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !SALT MASS CONCENTRATION
     WRITE(YRECFM,'(A4,I1)')'SLTMSS',JJ
@@ -1548,7 +1551,7 @@ IF (LSALT) THEN
     ZWORK31(:,:,:)= ZN0_SLT(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug
        * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 &  !um-->m
        * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ)))
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !SALT BURDEN (g/m2)
     ZWORK21(:,:)=0.0
@@ -1566,7 +1569,7 @@ IF (LSALT) THEN
     WRITE(YRECFM,'(A7,I1)')'SLTBRDN',JJ
     WRITE(YCOMMENT,'(A13,I1)')'BURDEN (g/m2)',JJ
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   ENDDO
 END IF
@@ -1578,7 +1581,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
        WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','SALTDEP',JSV,' (ppbv)'
        ILENCH=LEN(YCOMMENT)
        ZWORK31(:,:,:)=ZSSLTDEP(:,:,:,JSV)*1.E9
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
      END DO
      DO JJ=1,NMODE_SLT           
@@ -1609,7 +1612,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
                     / XMD                           & !==>#/kg_{air}
                     * XRHODREF(:,:,:)                 !==>#/m3  
      ILENCH=LEN(YCOMMENT)               
-     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+     CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
 ! CLOUD:   DUST MASS CONCENTRATION
        WRITE(YRECFM,'(A9,I1)')'SLTDEPMSS',JJ
@@ -1619,7 +1622,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
        ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug
           * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 &  !um-->m
           * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ)))
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)                
 !   FOR RAIN DROPS                
         WRITE(YRECFM,'(A9,I1)')'SLTDEPN0A',JJ+NMODE_SLT
@@ -1648,7 +1651,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
               * XAVOGADRO                           & !==>#/mole
               / XMD                                 & !==>#/kg_{air}
               * XRHODREF(:,:,:)                       !==>#/m3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
 ! RAIN:   DUST MASS CONCENTRATION
        WRITE(YRECFM,'(A9,I1)')'SLTDEPMSS',JJ+NMODE_SLT
@@ -1658,7 +1661,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN
        ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug
           * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 &  !um-->m
           * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ)))
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
      END DO       
 !
@@ -1677,7 +1680,7 @@ IF (LDUST) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUST',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   END DO
   !
@@ -1688,28 +1691,28 @@ IF (LDUST) THEN
     WRITE(YCOMMENT,'(A18,I1,A5)')'RG (nb) DUST MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A7,I1)')'DSTRGAM',JJ
     WRITE(YCOMMENT,'(A17,I1,A5)')'RG (m) DUST MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_DST(:,:,:,JJ)))**2))
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A6,I1)')'DSTN0A',JJ
     WRITE(YCOMMENT,'(A13,I1,A7)')'N0 DUST MODE ',JJ,' (1/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZN0_DST(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A7,I1)')'DSTSIGA',JJ
     WRITE(YCOMMENT,'(A16,I1)')'SIGMA DUST MODE ',JJ
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZSIG_DST(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !DUST MASS CONCENTRATION
     WRITE(YRECFM,'(A4,I1)')'DSTMSS',JJ
@@ -1718,7 +1721,7 @@ IF (LDUST) THEN
     ZWORK31(:,:,:)= ZN0_DST(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug
        * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 &  !um-->m
        * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ)))
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !DUST BURDEN (g/m2)
     ZWORK21(:,:)=0.0
@@ -1736,7 +1739,7 @@ IF (LDUST) THEN
     WRITE(YRECFM,'(A7,I1)')'DSTBRDN',JJ
     WRITE(YCOMMENT,'(A13,I1)')'BURDEN (g/m2)',JJ
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   ENDDO
 END IF
@@ -1748,7 +1751,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
        WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','DUSTDEP',JSV,' (ppbv)'
        ILENCH=LEN(YCOMMENT)
        ZWORK31(:,:,:)=ZSDSTDEP(:,:,:,JSV)*1.E9
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
      END DO
      DO JJ=1,NMODE_DST           
@@ -1779,7 +1782,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
                     / XMD                           & !==>#/kg_{air}
                     * XRHODREF(:,:,:)                 !==>#/m3  
      ILENCH=LEN(YCOMMENT)               
-     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+     CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
 ! CLOUD:   DUST MASS CONCENTRATION
        WRITE(YRECFM,'(A9,I1)')'DSTDEPMSS',JJ
@@ -1789,7 +1792,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
        ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug
           * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 &  !um-->m
           * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ)))
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)                
 !   FOR RAIN DROPS                
         WRITE(YRECFM,'(A9,I1)')'DSTDEPN0A',JJ+NMODE_DST
@@ -1818,7 +1821,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
               * XAVOGADRO                           & !==>#/mole
               / XMD                                 & !==>#/kg_{air}
               * XRHODREF(:,:,:)                       !==>#/m3
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
 ! RAIN:   DUST MASS CONCENTRATION
        WRITE(YRECFM,'(A9,I1)')'DSTDEPMSS',JJ+NMODE_DST
@@ -1828,7 +1831,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN
        ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug
           * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 &  !um-->m
           * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ)))
-       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+       CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
      END DO       
 !
@@ -1840,7 +1843,7 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN
     WRITE(YCOMMENT,'(A6,A4,I3.3,A7)')'X_Y_Z_','AERO',JSV,' (ppbv)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E9
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
          YCOMMENT,IRESP)
   END DO
   !
@@ -1858,56 +1861,56 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN
     WRITE(YCOMMENT,'(A21,I1,A5)')'RG (nb) AEROSOL MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XRG3D(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'RGAM',JJ
     WRITE(YCOMMENT,'(A20,I1,A5)')'RG (m) AEROSOL MODE ',JJ,' (um)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XRG3D(:,:,:,JJ) / (EXP(-3.*(LOG(XSIG3D(:,:,:,JJ)))**2))
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A3,I1)')'N0A',JJ
     WRITE(YCOMMENT,'(A16,I1,A7)')'N0 AEROSOL MODE ',JJ,' (1/cc)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XN3D(:,:,:,JJ)*1.E-6
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'SIGA',JJ
     WRITE(YCOMMENT,'(A19,I1)')'SIGMA AEROSOL MODE ',JJ
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XSIG3D(:,:,:,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'MSO4',JJ
     WRITE(YCOMMENT,'(A22,I1,A5)')'MASS SO4 AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SO4,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'MNO3',JJ
     WRITE(YCOMMENT,'(A22,I1,A5)')'MASS NO3 AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_NO3,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'MNH3',JJ
     WRITE(YCOMMENT,'(A22,I1,A5)')'MASS NH3 AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_NH3,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A4,I1)')'MH2O',JJ
     WRITE(YCOMMENT,'(A22,I1,A5)') 'MASS H2O AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_H2O,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     IF (NSOA .EQ. 10) THEN
@@ -1915,70 +1918,70 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA1 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA1,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA2',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA2 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA2,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA3',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA3 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA3,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
            YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA4',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA4 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA4,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
            YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA5',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA5 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA5,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA6',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA6 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA6,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA7',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA7 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA7,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA8',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA8 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA8,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A5,I1)')'MSOA9',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA9 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA9,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
       !
       WRITE(YRECFM,'(A6,I1)')'MSOA10',JJ
       WRITE(YCOMMENT,'(A23,I1,A5)')'MASS SOA10 AEROSOL MODE ',JJ,'(ug/m3)'
       ILENCH=LEN(YCOMMENT)
       ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_SOA10,JJ)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                   YCOMMENT,IRESP)
     END IF
     !
@@ -1986,14 +1989,14 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN
     WRITE(YCOMMENT,'(A21,I1,A5)')'MASS OC AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_OC,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
     !
     WRITE(YRECFM,'(A3,I1)')'MBC',JJ
     WRITE(YCOMMENT,'(A21,I1,A5)')'MASS BC AEROSOL MODE ',JJ,'(ug/m3)'
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=ZPTOTA(:,:,:,JP_AER_BC,JJ)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
                 YCOMMENT,IRESP)
   ENDDO
 END IF
@@ -2005,31 +2008,31 @@ IF (LVAR_LS) THEN
   YCOMMENT='X_Y_Z_Large Scale U component (M/S)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSUM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSUM,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM='LSVM'
   YCOMMENT='X_Y_Z_Large Scale V component (M/S)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSVM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSVM,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (LWIND_ZM) THEN
     YCOMMENT='X_Y_Z_Large Scale Zonal and Meridian components of horizontal wind (M/S)'
     CALL UV_TO_ZONAL_AND_MERID(XLSUM,XLSVM,23, &
-              HFMFILE=HFMFILE,HRECU='LSUM_ZM',HRECV='LSVM_ZM',HCOMMENT=YCOMMENT)
+              HFMFILE=YFMFILE2,HRECU='LSUM_ZM',HRECV='LSVM_ZM',HCOMMENT=YCOMMENT)
   ENDIF
   !
   YRECFM='LSWM'
   YCOMMENT='X_Y_Z_Large Scale vertical wind (M/S)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSWM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSWM,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   YRECFM='LSTHM'
   YCOMMENT='X_Y_Z_Large Scale potential Temperature (K)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XLSTHM,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   IF (LUSERV) THEN
     YRECFM='LSMRV'
@@ -2037,7 +2040,7 @@ IF (LVAR_LS) THEN
     IGRID=1
     ILENCH=LEN(YCOMMENT)
     ZWORK31(:,:,:)=XLSRVM(:,:,:)*1.E3
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 !
@@ -2052,70 +2055,70 @@ IF (LVAR_FRC .AND. LFORCING) THEN
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XUFRC(:,JT),IGRID,ILENCH,     &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XUFRC(:,JT),IGRID,ILENCH,     &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='VFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XVFRC(:,JT),IGRID,ILENCH,     &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XVFRC(:,JT),IGRID,ILENCH,     &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='WFRC'//YFRC
     YCOMMENT=' '
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XWFRC(:,JT),IGRID,ILENCH,     &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XWFRC(:,JT),IGRID,ILENCH,     &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='THFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTHFRC(:,JT),IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTHFRC(:,JT),IGRID,ILENCH,    &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='RVFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XRVFRC(:,JT),IGRID,ILENCH,    &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XRVFRC(:,JT),IGRID,ILENCH,    &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='TENDTHFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTENDTHFRC(:,JT),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTENDTHFRC(:,JT),IGRID,ILENCH,  &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='TENDRVFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XTENDRVFRC(:,JT),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XTENDRVFRC(:,JT),IGRID,ILENCH,  &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='GXTHFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XGXTHFRC(:,JT),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XGXTHFRC(:,JT),IGRID,ILENCH,  &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='GYTHFRC'//YFRC
     YCOMMENT=' '
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XGYTHFRC(:,JT),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XGYTHFRC(:,JT),IGRID,ILENCH,  &
                                                             YCOMMENT,IRESP)
 !
     YRECFM='PGROUNDFRC'//YFRC
     YCOMMENT=' '
     IGRID=0
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',XPGROUNDFRC(JT),IGRID,ILENCH,  &
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'--',XPGROUNDFRC(JT),IGRID,ILENCH,  &
                                                             YCOMMENT,IRESP)
 !
   END DO
@@ -2133,7 +2136,7 @@ IF (LTPZH .OR. LCOREF) THEN
   IGRID=1
   ILENCH=LEN(YCOMMENT)
   ZWORK31(:,:,:)=ZTEMP(:,:,:) - XTT
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !* Pressure in hPa        
   YRECFM='PRES'
@@ -2141,14 +2144,14 @@ IF (LTPZH .OR. LCOREF) THEN
   IGRID=1
   ILENCH=LEN(YCOMMENT)
   ZWORK31(:,:,:)=XPABST(:,:,:)*1E-2
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !* Geopotential in meters
   YRECFM='ALT'
   YCOMMENT='X_Y_Z_ALTitude (M)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XZZ,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 !* Relative humidity in percent
   IF (LUSERV) THEN
@@ -2169,14 +2172,14 @@ IF (LTPZH .OR. LCOREF) THEN
     YCOMMENT='X_Y_Z_RElative HUmidity (%)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     ZWORK33(:,:,:)=ZWORK33(:,:,:)*ZWORK32(:,:,:)*1E-4
     YRECFM='VPRES'
     YCOMMENT='X_Y_Z_Vapor PRESsure (hPa)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF (LCOREF) THEN
       ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2                &
@@ -2186,17 +2189,17 @@ IF (LTPZH .OR. LCOREF) THEN
       YCOMMENT='X_Y_Z_REFraction COindex (N-units)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
       !
       ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(1,IKU,1,XZZ(:,:,:))*1E6/XRADIUS
       YRECFM='MCOREF'
       YCOMMENT='X_Y_Z_Modified REFraction COindex (M-units)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF
 ELSE
-    PRINT*, 'NO WATER VAPOR IN ',HFMFILE,' RELATIVE HUMIDITY IS NOT COMPUTED'
+    PRINT*, 'NO WATER VAPOR IN ',YFMFILE2,' RELATIVE HUMIDITY IS NOT COMPUTED'
   END IF
 !
 END IF
@@ -2228,7 +2231,7 @@ IF ( LMOIST_V .OR. LMSLP .OR. LBLTOP ) THEN
     YCOMMENT='X_Y_Z_Virtual potential temperature (K)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAV,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAV,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
 END IF
@@ -2255,7 +2258,7 @@ IF (LVISI) THEN
       YCOMMENT='X_Y_Z_Visibility Kunkel (m)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIKUN,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIKUN,IGRID,ILENCH,YCOMMENT,IRESP)
 !
     IF ((CCLOUD == 'C2R2') .OR. (CCLOUD =='KHKO')) THEN
       ZVISIGUL(:,:,:) = 10000.
@@ -2269,13 +2272,13 @@ IF (LVISI) THEN
       YCOMMENT='X_Y_Z_Visibility Gultepe (m)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIGUL,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIGUL,IGRID,ILENCH,YCOMMENT,IRESP)
 ! Visibity Zhang                      
       YRECFM='VISIZHA'
       YCOMMENT='X_Y_Z_Visibility Zhang (m)'
       IGRID=1
       ILENCH=LEN(YCOMMENT)
-      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZVISIZHA,IGRID,ILENCH,YCOMMENT,IRESP)
+      CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZVISIZHA,IGRID,ILENCH,YCOMMENT,IRESP)
 !
       DEALLOCATE(ZVISIGUL,ZVISIZHA)
     END IF
@@ -2304,7 +2307,7 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN
     YCOMMENT='X_Y_Z_Equivalent potential Temperature (K)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAE,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAE,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 !-------------------------------------------------------------------------------
@@ -2324,7 +2327,7 @@ IF (LMOIST_ES .AND. (NRR>0)) THEN
   YCOMMENT='X_Y_Z_Equivalent Saturated potential Temperature(K)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAES,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZTHETAES,IGRID,ILENCH,YCOMMENT,IRESP)
 ENDIF
 !
 !-------------------------------------------------------------------------------
@@ -2338,7 +2341,7 @@ IF (LVORT) THEN
   YCOMMENT='X_Y_Z_x component of vorticity (/S)'
   IGRID=2
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !    
 ! Vorticity y
   ZWORK32(:,:,:)=MZF(1,IKU,1,MXF(MYM(ZVOY(:,:,:))))
@@ -2346,12 +2349,12 @@ IF (LVORT) THEN
   YCOMMENT='X_Y_Z_y component of vorticity (/S)'
   IGRID=3
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (LWIND_ZM) THEN
     YCOMMENT='X_Y_Z_Zonal and Meridian components of horizontal vorticity (M/S)'
     CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, &
-                HFMFILE=HFMFILE,HRECU='UM1_ZM',HRECV='VM1_ZM',HCOMMENT=YCOMMENT)
+                HFMFILE=YFMFILE2,HRECU='UM1_ZM',HRECV='VM1_ZM',HCOMMENT=YCOMMENT)
   ENDIF
 !    
 ! Vorticity z
@@ -2360,7 +2363,7 @@ IF (LVORT) THEN
   YCOMMENT='X_Y_Z_relative vorticity (/S)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 ! Absolute Vorticity 
   ZWORK31(:,:,:)=MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:)
@@ -2368,7 +2371,7 @@ IF (LVORT) THEN
   YCOMMENT='X_Y_Z_z ABsolute VORticity (/S)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 END IF
 !    
@@ -2394,7 +2397,7 @@ IF ( LMEAN_POVO ) THEN
   YCOMMENT='X_Y_Z_MEAN of POtential VOrticity (PVU)'
   IGRID=4
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !
 ! Virtual Potential Vorticity in PV units
@@ -2410,7 +2413,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN
   YCOMMENT='X_Y_Z_Virtual POtential VOrticity (PVU)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   IF (LMEAN_POVO) THEN
     IWORK1(:,:)=0
@@ -2426,7 +2429,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN
     YCOMMENT='X_Y_Z_MEAN of Virtual POtential VOrticity (PVU)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 !
@@ -2444,7 +2447,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN
   YCOMMENT='X_Y_Z_Equivalent POtential VOrticity (PVU)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   IF (LMEAN_POVO) THEN
     IWORK1(:,:)=0
@@ -2460,7 +2463,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN
     YCOMMENT='X_Y_Z_MEAN of Equivalent POtential VOrticity (PVU)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     DEALLOCATE(IWORK1)
   END IF 
   !
@@ -2479,7 +2482,7 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN
   YCOMMENT='X_Y_Z_Equivalent Saturated POtential VOrticity (PVU)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
 ENDIF
 !
 !
@@ -2495,7 +2498,7 @@ IF (LDIV) THEN
   YCOMMENT='(1/s)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   IF (LUSERV) THEN
    YRECFM= 'HMDIV'
@@ -2504,7 +2507,7 @@ IF (LDIV) THEN
    ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT
    ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT
    ZWORK33=GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY)
-   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,  &
+   CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,  &
         YCOMMENT,IRESP)
  END IF
 !
@@ -2554,18 +2557,18 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='X_Y_Z_U component of GEOstrophic wind (m/s)'
     IGRID=2
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 ! 
     YRECFM='VM88'
     YCOMMENT='X_Y_Z_V component of GEOstrophic wind (m/s)'
     IGRID=3
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF (LWIND_ZM) THEN
     YCOMMENT='X_Y_Z_Zonal and Meridian components of GEOstrophic wind (m/s)'
       CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, &
-              HFMFILE=HFMFILE,HRECU='UM88_ZM',HRECV='VM88_ZM',HCOMMENT=YCOMMENT)
+              HFMFILE=YFMFILE2,HRECU='UM88_ZM',HRECV='VM88_ZM',HCOMMENT=YCOMMENT)
     ENDIF
 !
 ! wm necessary to plot vertical cross sections of wind vectors
@@ -2574,7 +2577,7 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='(M/S)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
   IF (LAGEO) THEN
@@ -2583,19 +2586,19 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='X_Y_Z_U component of AGEOstrophic wind (m/s)'
     IGRID=2
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
     ZWORK32(:,:,:)=XVT(:,:,:)-ZWORK32(:,:,:)
     YRECFM='VM89'
     YCOMMENT='X_Y_Z_V component of AGEOstrophic wind (m/s)'
     IGRID=3
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     IF (LWIND_ZM) THEN
       YCOMMENT='X_Y_Z_Zonal and Meridian components of AGEOstrophic wind (m/s)'
       CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23, &
-              HFMFILE=HFMFILE,HRECU='UM89_ZM',HRECV='VM89_ZM',HCOMMENT=YCOMMENT)
+              HFMFILE=YFMFILE2,HRECU='UM89_ZM',HRECV='VM89_ZM',HCOMMENT=YCOMMENT)
     ENDIF
 !
 ! wm necessary to plot vertical cross sections of wind vectors
@@ -2603,7 +2606,7 @@ IF (LGEO .OR. LAGEO) THEN
     YCOMMENT='X_Y_Z_vertical wind (m/s)'
     IGRID=4
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XWT,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
 END IF
@@ -2633,7 +2636,7 @@ IF (LMSLP) THEN
   YCOMMENT='X_Y_Mean Sea Level Pressure (hPa)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
 END IF
 !-------------------------------------------------------------------------------
 !
@@ -2652,7 +2655,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of Vapor Water (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:) = 0.
@@ -2666,7 +2669,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of Cloud Water (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:) = 0.
@@ -2680,7 +2683,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of Rain Water (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:)   = 0.
@@ -2694,7 +2697,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of ICe (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:)   = 0.
@@ -2708,7 +2711,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of SNow (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:)   = 0.
@@ -2722,7 +2725,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of GRaupel (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   ZWORK21(:,:)   = 0.
@@ -2736,7 +2739,7 @@ IF (LTHW) THEN
     YCOMMENT    ='X_Y_THickness of HAil (MM)'
     IGRID       =1
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 !
@@ -2771,7 +2774,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
   END IF
   IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. &
                   CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   ELSE
     PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN'
     PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' 
@@ -2790,7 +2793,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
         WRITE(YRECFM,'(A9,2I2.2)')'LS_ACTOPR',JI,JJ
         YCOMMENT    ='X_Y_Large Scale ACccumulated TOtal Precipitation Rate (MM)'
         ILENCH      =LEN(YCOMMENT)
-        CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+        CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
       END IF
     END DO
     !
@@ -2823,7 +2826,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
   END IF
   IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. &
                   CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   ELSE
     PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE'
     PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' 
@@ -2837,7 +2840,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
     YRECFM      ='LS_INTOPR'
     YCOMMENT    ='X_Y_Large Scale INstantaneous TOtal Precipitation Rate (MM/H)'
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 !
 END IF
@@ -2860,32 +2863,32 @@ IF (NCAPE >=0 .AND. LUSERV) THEN
   YCOMMENT='X_Y_MAX of Convective Available Potential Energy (J/kg)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   YRECFM='CINMAX'
   YCOMMENT='X_Y_MAX of Convective INhibition energy (J/kg)'
   IGRID=1
   ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (NCAPE >=1) THEN
     YRECFM='CAPE3D'
     YCOMMENT='X_Y_Z_Convective Available Potential Energy (J/kg)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     YRECFM='CIN3D'
     YCOMMENT='X_Y_Z_Convective INhibition energy (J/kg)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     YRECFM='DCAPE3D'
     YCOMMENT='X_Y_Z_ (J/kg)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
   !
   IF (NCAPE >=2) THEN
@@ -2897,7 +2900,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN
     YCOMMENT='X_Y_Z_Vertical Kinetic Energy (J/kg)'
     IGRID=1
     ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 ENDIF
 !
@@ -2923,7 +2926,7 @@ IF (LBV_FR) THEN
   YCOMMENT    ='X_Y_Z_Brunt-Vaissala frequency (/S)'
   IGRID       =4
   ILENCH      =LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !  
   IF (NRR > 0) THEN
     ZWORK32(:,:,:)=DZM(1,IKU,1,ZTHETAE(:,:,:))/ MZM(1,IKU,1,ZTHETAE(:,:,:))
@@ -2943,7 +2946,7 @@ IF (LBV_FR) THEN
     YCOMMENT    ='X_Y_Z_Equivalent Brunt-Vaissala frequency (/S)'
     IGRID       =4
     ILENCH      =LEN(YCOMMENT)
-    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
   END IF
 END IF
 !
@@ -2958,27 +2961,27 @@ IF ( NGPS>=0 ) THEN
   ZGAMREF=-6.5E-3
   ZWORK21(:,:) = ZTEMP(:,:,IKB) - ZGAMREF*((XZZ(:,:,IKB)+XZZ(:,:,IKB+1))/2.-XZS(:,:))
   !
-  YFGRI=ADJUSTL(ADJUSTR(HFMFILE)//'GPS')
+  YFGRI=ADJUSTL(ADJUSTR(YFMFILE2)//'GPS')
   CALL GPS_ZENITH (YFGRI,XRT(:,:,:,1),ZTEMP,XPABST,ZWORK21,ZWORK22,ZWORK23,ZWORK24)    
   !
   YRECFM       ='ZTD'
   YCOMMENT     ='X_Y_Z_Zenithal Total Delay (m)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK22,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (NGPS>=1) THEN
     YRECFM       ='ZHD'
     YCOMMENT     ='X_Y_Z_Zenithal Hydrostatic Delay (m)'
     IGRID        =1
     ILENCH       =LEN(YCOMMENT)
-    CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK23,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     YRECFM       ='ZWD'
     YCOMMENT     ='X_Y_Z_Zenithal Wet Delay (m)'
     IGRID        =1
     ILENCH       =LEN(YCOMMENT)
-    CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP)
+    CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK24,IGRID,ILENCH,YCOMMENT,IRESP)
     !
   END IF
   !
@@ -3017,25 +3020,25 @@ IF(LRADAR .AND. LUSERR) THEN
   YCOMMENT     ='X_Y_Z_RAdar REflectivity (dBZ)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM       ='VDOP'
   YCOMMENT     ='X_Y_Z_radar DOPpler fall speed (M/S)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM       ='ZDR'
   YCOMMENT     ='X_Y_Z_Differential polar Reflectivity (dBZ)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK33,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM       ='KDP'
   YCOMMENT     ='X_Y_Z_Differential Phase Reflectivity (degree/km)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT (HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT (YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP)
 !
    ELSE 
     !
@@ -3160,7 +3163,7 @@ IF(LRADAR .AND. LUSERR) THEN
                  INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL)))
           WRITE(YGRID_SIZE,'(I3.3)') 2*NMAX
           DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5)
-            YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//HFMFILE
+            YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//YFMFILE2
             CALL OPEN_ll(UNIT=ILURS,FILE=YRS,IOSTAT=IRESP,STATUS="NEW",ACTION='WRITE', &
                          FORM="FORMATTED",RECL=8192)
             WRITE(ILURS,'(A,4F12.6,2I5)') '**domaine LATLON ',ZWORK43(JI,1,1),ZWORK43(JI,4*NMAX-1,2*NMAX), &
@@ -3188,7 +3191,7 @@ IF(LRADAR .AND. LUSERR) THEN
           WRITE(YELEV,'(I2.2,A1,I1.1)') FLOOR(XELEV(JI,JEL)),'.',&
                 INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL)))
           DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5)
-            YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//HFMFILE
+            YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YFMFILE2
             CALL OPEN_ll(UNIT=ILURS,FILE=YRS,IOSTAT=IRESP,ACTION='WRITE',MODE=GLOBAL)
             DO JH=1,NBAZIM
               DO JV=1,NBSTEPMAX+1
@@ -3205,7 +3208,7 @@ IF(LRADAR .AND. LUSERR) THEN
 END IF
 !
 IF (LLIDAR) THEN
-  PRINT *,'CALL LIDAR/RADAR with HFMFILE =',HFMFILE
+  PRINT *,'CALL LIDAR/RADAR with YFMFILE2 =',YFMFILE2
   YVIEW='     '
   YVIEW=TRIM(CVIEW_LIDAR)
   PRINT *,'CVIEW_LIDAR REQUESTED ',YVIEW
@@ -3301,13 +3304,13 @@ IF (LLIDAR) THEN
   YCOMMENT     ='X_Y_Z_Normalized_Lidar_Profile (1/m/sr)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,YCOMMENT,IRESP)
 !
   YRECFM       ='LIPAR'
   YCOMMENT     ='X_Y_Z_Particle_Lidar_Profile (1/m/sr)'
   IGRID        =1
   ILENCH       =LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',ZWORK32,IGRID,ILENCH,YCOMMENT,IRESP)
 !
 END IF
 !
@@ -3320,8 +3323,8 @@ IF (LBLTOP) THEN
   ZWORK31(:,:,1:IKU-1)=0.5*(XZZ(:,:,1:IKU-1)+XZZ(:,:,2:IKU))
   ZWORK31(:,:,IKU)=2.*ZWORK31(:,:,IKU-1)-ZWORK31(:,:,IKU-2)
   YFMFILE=CINIFILE
-  CINIFILE=HFMFILE
-  CALL FREE_ATM_PROFILE(ZTHETAV,ZWORK31,XZS,XZSMT,ZGAMREF,ZWORK32,ZWORK33)
+  CINIFILE=YFMFILE2
+  CALL FREE_ATM_PROFILE(TPFILE,ZTHETAV,ZWORK31,XZS,XZSMT,ZGAMREF,ZWORK32,ZWORK33)
   CINIFILE=YFMFILE
 END IF
 !
@@ -3335,26 +3338,26 @@ IF ( LCH_CONV_LINOX ) THEN
   YCOMMENT    = 'X_Y_IC_RATE (/s)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XIC_RATE,IGRID,ILENCH,YCOMMENT,IRESP)
 
   YRECFM      = 'CG_RATE'
   YCOMMENT    = 'X_Y_CG_RATE (/s)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCG_RATE,IGRID,ILENCH,YCOMMENT,IRESP)
 
   YRECFM      = 'IC_TOTAL_NB'
   YCOMMENT    = 'X_Y_IC_TOTAL_NUMBER (no unit)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XIC_TOTAL_NUMBER,IGRID,ILENCH, &
        YCOMMENT,IRESP)
 
   YRECFM      = 'CG_TOTAL_NB'
   YCOMMENT    = 'X_Y_CG_TOTAL_NUMBER (no unit)'
   IGRID       = 1
   ILENCH      = LEN(YCOMMENT)
-  CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, &
+  CALL FMWRIT(YFMFILE2,YRECFM,CLUOUT,'XY',XCG_TOTAL_NUMBER,IGRID,ILENCH, &
        YCOMMENT,IRESP)
 END IF
 !-------------------------------------------------------------------------------