From dc5bf08b880c6441ad0423c7d53730848ec966c0 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 19 Oct 2017 10:43:03 +0200
Subject: [PATCH] Philippe 19/10/2017: IO: replaced all remaining calls to
 FMOPEN_ll/FMCLOSE_ll + FMOPEN_ll/FMCLOSE_ll are now private + cleaning of
 comments

---
 src/LIB/SURCOUCHE/src/extern_userio.f90 |  54 +---------
 src/LIB/SURCOUCHE/src/modd_io.f90       |   2 +-
 src/LIB/SURCOUCHE/src/mode_fm.f90       |   2 +-
 src/LIB/SURCOUCHE/src/modi_fm.f90       |  46 +++------
 src/LIB/SURCOUCHE/src/modn_confio.f90   |   2 +-
 src/MNH/ch_monitorn.f90                 |   1 -
 src/MNH/compare_dad.f90                 |   5 +-
 src/MNH/ini_cpl.f90                     |   2 +-
 src/MNH/ini_modeln.f90                  |   2 +-
 src/MNH/ini_segn.f90                    |   4 +-
 src/MNH/ini_size_spawn.f90              |   5 +-
 src/MNH/ini_sizen.f90                   |   3 +-
 src/MNH/ls_coupling.f90                 |   4 +-
 src/MNH/mnh2lpdm_ech.f90                |   3 +-
 src/MNH/modeln.f90                      |   6 +-
 src/MNH/open_data_files.f90             | 129 ------------------------
 src/MNH/open_nestpgd_files.f90          |   4 -
 src/MNH/open_prc_files.f90              |   3 -
 src/MNH/prep_ideal_case.f90             |   4 +-
 src/MNH/prep_real_case.f90              |  11 +-
 src/MNH/spawn_model2.f90                |   6 +-
 21 files changed, 44 insertions(+), 254 deletions(-)
 delete mode 100644 src/MNH/open_data_files.f90

diff --git a/src/LIB/SURCOUCHE/src/extern_userio.f90 b/src/LIB/SURCOUCHE/src/extern_userio.f90
index 14c94c0c8..7cf8feab8 100644
--- a/src/LIB/SURCOUCHE/src/extern_userio.f90
+++ b/src/LIB/SURCOUCHE/src/extern_userio.f90
@@ -88,10 +88,8 @@ INTEGER,          INTENT(OUT), OPTIONAL :: IRESP
 CALL E_FLUSH_ll(HFILE,IRESP)
 
 END SUBROUTINE FLUSH_ll
-
-
 !
-! Routines found in the MODE_FM module : FMATTR_ll, FMLOOK_ll, FMOPEN_ll, FMCLOS_ll
+! Routines found in the MODE_FM module : FMATTR_ll, FMLOOK_ll
 !
 SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK)
 USE MODE_FM, ONLY : E_SET_FMPACK_ll=>SET_FMPACK_ll
@@ -101,18 +99,6 @@ CALL E_SET_FMPACK_ll(O1D,O2D,OPACK)
 
 END SUBROUTINE SET_FMPACK_ll
 
-SUBROUTINE FMATTR_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
-USE MODE_FM, ONLY : E_FMATTR_ll=>FMATTR_ll
-IMPLICIT NONE 
-CHARACTER(LEN=*), INTENT(IN)  :: HFILEM
-CHARACTER(LEN=*), INTENT(IN)  :: HFIPRI
-INTEGER,          INTENT(OUT) :: KNUMBR
-INTEGER,          INTENT(OUT) :: KRESP
-
-CALL E_FMATTR_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
-
-END SUBROUTINE FMATTR_ll
-
 SUBROUTINE FMLOOK_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
 USE MODE_FM, ONLY : E_FMLOOK_ll=>FMLOOK_ll
 IMPLICIT NONE 
@@ -124,44 +110,6 @@ INTEGER,          INTENT(OUT) :: KRESP
 CALL E_FMLOOK_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
 
 END SUBROUTINE FMLOOK_ll
-
-SUBROUTINE FMOPEN_ll(HFILEM,HACTION,KNPRAR,KFTYPE,KVERB,KNINAR&
-     & ,KRESP,OPARALLELIO,TPFILE)
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODE_FM, ONLY : E_FMOPEN_ll=>FMOPEN_ll
-IMPLICIT NONE 
-CHARACTER(LEN=*),INTENT(IN) ::HFILEM  ! name of the file.
-CHARACTER(LEN=*),INTENT(IN) ::HACTION ! Action upon the file
-! 'READ' or 'WRITE'
-INTEGER,         INTENT(IN) ::KNPRAR  ! number of predicted
-! articles  (not vital).
-INTEGER,         INTENT(IN) ::KFTYPE  ! type of FM-file.
-INTEGER,         INTENT(IN) ::KVERB   ! level of verbose.
-INTEGER,         INTENT(OUT)::KNINAR  ! number of articles
-! initially
-! present in the file.
-INTEGER,         INTENT(OUT), OPTIONAL :: KRESP ! return-code if a problem
-! araised.
-LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
-TYPE(TFILEDATA), INTENT(INOUT), OPTIONAL :: TPFILE ! File structure
-
-CALL E_FMOPEN_ll(HFILEM,HACTION,KNPRAR,KFTYPE,KVERB,KNINAR,KRESP,OPARALLELIO,TPFILE)
-
-END SUBROUTINE FMOPEN_ll
-
-SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,KRESP,OPARALLELIO,TPFILE)
-USE MODD_IO_ll, ONLY : TFILEDATA
-USE MODE_FM, ONLY : E_FMCLOS_ll=>FMCLOS_ll
-IMPLICIT NONE
-CHARACTER(LEN=*),     INTENT(IN) ::HFILEM  ! file name
-CHARACTER(LEN=*),     INTENT(IN) ::HSTATU  ! status for the closed file
-INTEGER,              INTENT(OUT), OPTIONAL :: KRESP   ! return-code if problems araised
-LOGICAL,              INTENT(IN),  OPTIONAL :: OPARALLELIO
-TYPE(TFILEDATA),      INTENT(IN),  OPTIONAL :: TPFILE ! File structure
-
-CALL E_FMCLOS_ll(HFILEM,HSTATU,KRESP,OPARALLELIO,TPFILE)
-
-END SUBROUTINE FMCLOS_ll
 !
 ! Routines found in the MODE_GATHER_ll module : GATHERALL_xx
 !
diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index 537ff3dce..68cb59cbd 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -47,7 +47,7 @@ INTEGER, SAVE :: NGEN_VERB        = NVERB_WARNING ! Verbosity level for 'GEN' (g
 INTEGER, SAVE :: NGEN_ABORT_LEVEL = NVERB_ERROR   ! Level of 'GEN' error necessary to force stop of application
 
 TYPE LFIPARAM
-  INTEGER :: FITYP   ! FM File Type (used in FMCLOSE)
+  INTEGER :: FITYP   ! FM File Type (used in FMCLOS_ll)
 END TYPE LFIPARAM
 
 !Structure containing one pointer to a file
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 3154d1582..86ba53c54 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -28,7 +28,7 @@ PRIVATE
 INTEGER, PARAMETER :: JPPIPE = 10
 !INCLUDE 'mpif.h'
 
-PUBLIC SET_FMPACK_ll,FMATTR_ll,FMLOOK_ll,FMOPEN_ll,FMCLOS_ll
+PUBLIC SET_FMPACK_ll,FMLOOK_ll
 PUBLIC IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll
 
 CONTAINS 
diff --git a/src/LIB/SURCOUCHE/src/modi_fm.f90 b/src/LIB/SURCOUCHE/src/modi_fm.f90
index cbcbd10a3..3533bfb60 100644
--- a/src/LIB/SURCOUCHE/src/modi_fm.f90
+++ b/src/LIB/SURCOUCHE/src/modi_fm.f90
@@ -19,43 +19,27 @@ INTERFACE
 SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK)
 LOGICAL, INTENT(IN) :: O1D,O2D,OPACK
 END SUBROUTINE SET_FMPACK_ll
-
-SUBROUTINE FMATTR_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
-CHARACTER(LEN=*), INTENT(IN)  :: HFILEM
-CHARACTER(LEN=*), INTENT(IN)  :: HFIPRI
-INTEGER,          INTENT(OUT) :: KNUMBR
-INTEGER,          INTENT(OUT) :: KRESP
-END SUBROUTINE FMATTR_ll
-
+!
 SUBROUTINE FMLOOK_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
 CHARACTER(LEN=*), INTENT(IN)  :: HFILEM
 CHARACTER(LEN=*), INTENT(IN)  :: HFIPRI
 INTEGER,          INTENT(OUT) :: KNUMBR
 INTEGER,          INTENT(OUT) :: KRESP
 END SUBROUTINE FMLOOK_ll
-
-SUBROUTINE FMOPEN_ll(HFILEM,HACTION,HFIPRI,KNPRAR,KFTYPE,KVERB,KNINAR&
-     & ,KRESP,OPARALLELIO)
-CHARACTER(LEN=*),INTENT(IN) ::HFILEM  ! name of the file.
-CHARACTER(LEN=*),INTENT(IN) ::HACTION ! Action upon the file
-                                      ! 'READ' or 'WRITE'
-CHARACTER(LEN=*),INTENT(IN) ::HFIPRI  ! file for prints in FM.
-INTEGER,         INTENT(IN) ::KNPRAR  ! number of predicted
-                                      ! articles  (not vital).
-INTEGER,         INTENT(IN) ::KFTYPE  ! type of FM-file.
-INTEGER,         INTENT(IN) ::KVERB   ! level of verbose.
-INTEGER,         INTENT(OUT)::KNINAR  ! number of articles initially present in the file.
-INTEGER,         INTENT(OUT)::KRESP   ! return-code if a problem araised.
-LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
-END SUBROUTINE FMOPEN_ll
-
-SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,HFIPRI,KRESP,OPARALLELIO)
-CHARACTER(LEN=*),     INTENT(IN) ::HFILEM  ! file name
-CHARACTER(LEN=*),     INTENT(IN) ::HSTATU  ! status for the closed file
-CHARACTER(LEN=*),     INTENT(IN) ::HFIPRI  ! file for prints in FM
-INTEGER,              INTENT(OUT)::KRESP   ! return-code if problems araised
-LOGICAL,              INTENT(IN),  OPTIONAL :: OPARALLELIO
-END SUBROUTINE FMCLOS_ll
+!
+SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO)
+USE MODD_IO_ll, ONLY: TFILEDATA
+TYPE(TFILEDATA),POINTER,INTENT(INOUT)         :: TPFILE ! File structure
+INTEGER,                INTENT(OUT), OPTIONAL :: KRESP  ! Return code
+LOGICAL,                INTENT(IN),  OPTIONAL :: OPARALLELIO
+END SUBROUTINE IO_FILE_OPEN_ll
+!
+SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO)
+USE MODD_IO_ll, ONLY: TFILEDATA
+TYPE(TFILEDATA),  INTENT(INOUT)         :: TPFILE ! File structure
+INTEGER,          INTENT(OUT), OPTIONAL :: KRESP  ! Return code
+LOGICAL,          INTENT(IN),  OPTIONAL :: OPARALLELIO
+END SUBROUTINE IO_FILE_CLOSE_ll
 !
 END INTERFACE
 END MODULE MODI_FM_ll
diff --git a/src/LIB/SURCOUCHE/src/modn_confio.f90 b/src/LIB/SURCOUCHE/src/modn_confio.f90
index 2f85e5f5d..20787d02d 100644
--- a/src/LIB/SURCOUCHE/src/modn_confio.f90
+++ b/src/LIB/SURCOUCHE/src/modn_confio.f90
@@ -8,7 +8,7 @@
 !!    -------
 !     Define I/O configuration variables that can be set with the NAM_CONFIO namelist
 !!    /!\ These variables must be transmitted to the SURCOUCHE library via the
-!!    SET_CONFIO_ll subroutine before the FIRST call to FMOPEN_ll.
+!!    SET_CONFIO_ll subroutine before the FIRST call to IO_FILE_OPEN_ll
 !
 !!
 !!**  IMPLICIT ARGUMENTS
diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90
index dba8b0984..b8674ccf1 100644
--- a/src/MNH/ch_monitorn.f90
+++ b/src/MNH/ch_monitorn.f90
@@ -129,7 +129,6 @@ USE MODI_CH_AQUEOUS_TMICKHKO
 USE MODI_CH_AQUEOUS_SEDIM1MOM
 USE MODI_CH_AQUEOUS_SEDIM2MOM
 USE MODI_CH_AQUEOUS_CHECK
-USE MODI_FM_ll
 USE MODI_SUM_ll
 USE MODI_CH_AER_SEDIM_n
 USE MODI_CH_AER_WETDEP_n
diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90
index fb1bafbf3..5c19c6642 100644
--- a/src/MNH/compare_dad.f90
+++ b/src/MNH/compare_dad.f90
@@ -48,9 +48,8 @@ END MODULE MODI_COMPARE_DAD
 !!    EXTERNAL
 !!    --------
 !!
-!!      FMATTR        : to associate a logical unit number to a file
-!!      FMOPEN        : to open a FM-file (DESFM + LFIFM)
-!!      FMCLOS        : to close a FM-file (DESFM + LFIFM)
+!!      IO_FILE_OPEN_ll  : to open a FM-file (DESFM + LFIFM)
+!!      IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM)
 !!
 !!
 !!
diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90
index b0c857597..57b35173b 100644
--- a/src/MNH/ini_cpl.f90
+++ b/src/MNH/ini_cpl.f90
@@ -148,7 +148,7 @@ END MODULE MODI_INI_CPL
 !!    --------
 !!      FMLOOK      : to retrieve a logical unit number 
 !!      IO_READ_FIELD: to read data in LFI_FM file
-!!      FMCLOS      : to close a FM-file
+!!      IO_FILE_CLOSE_ll : to close a FM-file
 !!      INI_LS      : to initialize larger scale fields
 !!      INI_LB      : to initialize "2D" surfacic LB fields 
 !!      TEMPORAL_DIST : compute the temporal distance in secunds between 2 dates
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 10c9d2275..bd00e1883 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -65,7 +65,7 @@ END MODULE MODI_INI_MODEL_n
 !!    INI_CPL.
 !!       - The initialization of the parameters needed for the dynamics
 !!         of the model n is realized in INI_DYNAMICS.
-!!       - Then the initial file (DESFM+LFIFM files) is closed by FMCLOS.
+!!       - Then the initial file (DESFM+LFIFM files) is closed by IO_FILE_CLOSE_ll.
 !!       - The initialization of the parameters needed for the ECMWF radiation
 !!         code is realized in INI_RADIATIONS.
 !!       - The contents of the scalar variables are overwritten by
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 4bf2c6de7..894575937 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -79,7 +79,7 @@ END MODULE MODI_INI_SEG_n
 !!      The  name of the initial file is read in EXSEG file.     
 !!         - Default values are supplied for variables in descriptor files
 !!      (by DEFAULT_DESFM).
-!!         - The Initial file (LFIFM + DESFM) is opened by FMOPEN.
+!!         - The Initial file (LFIFM + DESFM) is opened by IO_FILE_OPEN_ll.
 !!         - The descriptor DESFM file is read (by READ_DESFM_n). 
 !!         - The descriptor file EXSEG is read (by READ_EXSEG_n) and coherence
 !!      between the initial file and the description of segment is also checked 
@@ -96,7 +96,7 @@ END MODULE MODI_INI_SEG_n
 !!    EXTERNAL
 !!    --------
 !!      FMATTR        : to associate a logical unit number to a file 
-!!      FMOPEN        : to open descriptor file or LFI file
+!!      IO_FILE_OPEN_ll : to open descriptor file or LFI file
 !!      DEFAULT_DESFM1: to set default values
 !!      READ_DESFM_n    : to read a DESFM file 
 !!      READ_EXSEG_n    : to read a EXSEG file
diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90
index ec110b529..0f05423ae 100644
--- a/src/MNH/ini_size_spawn.f90
+++ b/src/MNH/ini_size_spawn.f90
@@ -47,11 +47,10 @@ END MODULE MODI_INI_SIZE_SPAWN
 !
 !!    EXTERNAL
 !!    --------
-!!    FMLOOK_ll
 !!    DEFAULT_DESFM2
-!!    FMOPEN_ll
+!!    IO_FILE_OPEN_ll
 !!    READ_HGRID
-!!    FMCLOS_ll
+!!    IO_FILE_CLOSE_ll
 !!    RETRIEVE_NEST_INFO
 !!
 !!    IMPLICIT ARGUMENTS
diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90
index fa151291a..7532ff651 100644
--- a/src/MNH/ini_sizen.f90
+++ b/src/MNH/ini_sizen.f90
@@ -60,8 +60,7 @@ END MODULE MODI_INI_SIZE_n
 !!    EXTERNAL
 !!    --------
 !!      FMLOOK_ll   : to retrieve a logical unit number associated with a file 
-!!      FMREAD      : to read a LFIFM file
-!!      FMCLOS      : to close a FM-file
+!!      IO_READ_FIELD : to read a LFIFM file
 !!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------ 
diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90
index 833ab5a44..6a4f44a7e 100644
--- a/src/MNH/ls_coupling.f90
+++ b/src/MNH/ls_coupling.f90
@@ -131,8 +131,8 @@ END MODULE MODI_LS_COUPLING
 !!    EXTERNAL
 !!    --------
 !!      FMLOOK      : to retrieve a logical unit number 
-!!      FMREAD      : to read data in LFI_FM file
-!!      FMCLOS      : to close a FM-file
+!!      IO_READ_FIELD : to read data in file
+!!      IO_FILE_CLOSE_ll : to close a file
 !!      INI_LS      : to initialize larger scale fields
 !!      INI_LB      : to initialize "2D" surfacic LB fields 
 !!
diff --git a/src/MNH/mnh2lpdm_ech.f90 b/src/MNH/mnh2lpdm_ech.f90
index 9402582ad..2b0a83647 100644
--- a/src/MNH/mnh2lpdm_ech.f90
+++ b/src/MNH/mnh2lpdm_ech.f90
@@ -33,8 +33,7 @@ USE MODD_MNH2LPDM
 USE MODE_FM
 USE MODE_FMREAD
 !
-USE MODI_IO_LL
-USE MODI_FM_LL
+USE MODI_IO_ll
 USE MODI_INI_CST
 !
 IMPLICIT NONE
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 89fcd7513..7e93c673c 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -66,7 +66,7 @@ END MODULE MODI_MODEL_n
 !!    EXTERNAL
 !!    --------
 !!      Subroutine FMLOOK: to recover the logical unit number linked to a FMfile
-!!      Subroutine FMOPEN: to open a FMfile
+!!      Subroutine IO_FILE_OPEN_ll: to open a file
 !!      Subroutine WRITE_DESFM: to write the descriptive part of a FMfile
 !!      Subroutine WRITE_LFIFM: to write the binary part of a FMfile
 !!      Subroutine SET_MASK   : to compute all the masks selected for budget
@@ -93,7 +93,7 @@ END MODULE MODI_MODEL_n
 !!                                 compute the large scale fields, used to
 !!                                 couple Model_n with outer informations.
 !!      Subroutine ENDSTEP_BUDGET: writes the budget informations.
-!!      Subroutine FMCLOS        : closes a FM file
+!!      Subroutine IO_FILE_CLOSE_ll: closes a file
 !!      Subroutine ADD_FORECAST_TO_DATE : transform the current time in GMT
 !!      Subroutine FORCING : computes forcing terms
 !!      Subroutine ADD3DFIELD_ll : add a field to 3D-list
@@ -1965,7 +1965,7 @@ IF (OEXIT) THEN
   CALL IO_FILE_CLOSE_ll(TDIAFILE)
   !
   CALL IO_FILE_CLOSE_ll(TINIFILE)
-  IF (CSURF=="EXTE") CALL FMCLOS_ll(CINIFILEPGD,'KEEP',IRESP,OPARALLELIO=.FALSE.)
+  IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
 !
 !*       28.1   print statistics!
 !
diff --git a/src/MNH/open_data_files.f90 b/src/MNH/open_data_files.f90
deleted file mode 100644
index eaaa5a1ea..000000000
--- a/src/MNH/open_data_files.f90
+++ /dev/null
@@ -1,129 +0,0 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 prep_pgd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
-!     ###########################
-      MODULE MODI_OPEN_DATA_FILES
-!     ###########################
-INTERFACE
-      SUBROUTINE OPEN_DATA_FILES(HFILETYPE,HFILENAME,HLOCFILENAME,OLOCTRANSFER)
-      
-!
-CHARACTER(LEN=6),  INTENT(IN)    :: HFILETYPE     ! Type of the data file
-CHARACTER(LEN=28), INTENT(IN)    :: HFILENAME     ! Name of the field file.
-CHARACTER(LEN=28), INTENT(INOUT) :: HLOCFILENAME  ! Name of the truncated field file.
-LOGICAL,           INTENT(INOUT) :: OLOCTRANSFER  ! .T. : local file is saved
-!
-END SUBROUTINE OPEN_DATA_FILES
-END INTERFACE
-END MODULE MODI_OPEN_DATA_FILES
-!
-!
-!     #########################################################################
-      SUBROUTINE OPEN_DATA_FILES(HFILETYPE,HFILENAME,HLOCFILENAME,OLOCTRANSFER)
-!     #########################################################################
-!
-!!**** *OPEN_DATA_FILES* open the data files
-!!
-!!    PURPOSE
-!!    -------
-!!
-!!    METHOD
-!!    ------
-!!   
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!
-!!    V. Masson        Meteo-France
-!!
-!!    MODIFICATION
-!!    ------------
-!!
-!!    Original    03/03/97
-!!
-!----------------------------------------------------------------------------
-!
-!*    0.     DECLARATION
-!            -----------
-!
-USE MODE_FM
-USE MODE_IO_ll
-!
-USE MODD_LUNIT
-!
-IMPLICIT NONE
-!
-!*    0.1    Declaration of arguments
-!            ------------------------
-!
-CHARACTER(LEN=6),  INTENT(IN)    :: HFILETYPE     ! Type of the data file
-CHARACTER(LEN=28), INTENT(IN)    :: HFILENAME     ! Name of the field file.
-CHARACTER(LEN=28), INTENT(INOUT) :: HLOCFILENAME  ! Name of the truncated field file.
-LOGICAL,           INTENT(INOUT) :: OLOCTRANSFER  ! .T. : local file is saved
-!
-!*    0.2    Declaration of local variables
-!            ------------------------------
-!
-INTEGER :: IRESP, ILUOUT0
-INTEGER :: ININAR
-INTEGER :: IGLB, ILOC      ! logical units for global and local files
-!-------------------------------------------------------------------------------
-!
-CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
-!
-!*    1.      Open the global file
-!             --------------------
-!
-IF (HFILETYPE=='MESONH') THEN
-  CALL FMOPEN_ll(HFILENAME,'READ',0,2,5,ININAR,IRESP)
-ELSE IF (HFILETYPE=='BINLLV') THEN
-  CALL OPEN_ll(UNIT=IGLB,FILE=HFILENAME,IOSTAT=IRESP,STATUS="OLD",ACTION='READ', &
-          FORM="UNFORMATTED", POSITION="REWIND",MODE='GLOBAL')
-ELSE IF (HFILETYPE=='LATLON') THEN
-  CALL OPEN_ll(UNIT=IGLB,FILE=HFILENAME,STATUS="OLD",IOSTAT=IRESP,FORM="FORMATTED", &
-               POSITION="REWIND",ACTION='READ',MODE='GLOBAL')
-ENDIF
-!
-!*    2.      Open the local file
-!             -------------------
-!
-IF (.NOT. OLOCTRANSFER) RETURN
-!
-IF (HLOCFILENAME == HFILENAME) THEN
-  HLOCFILENAME='lc'//HFILENAME
-  OLOCTRANSFER=.FALSE.
-  WRITE(ILUOUT0,*) 'local data file ',HFILENAME,' would have the same name as input file'
-  WRITE(ILUOUT0,*) 'It will not be transfered'
-END IF 
-IF (HFILETYPE=='BINLLV') THEN
-  CALL OPEN_ll(UNIT=ILOC,FILE=HLOCFILENAME,STATUS="NEW",IOSTAT=IRESP,FORM="UNFORMATTED",   &
-               POSITION="REWIND",ACTION="WRITE", MODE='GLOBAL')
-ELSE IF (HFILETYPE=='LATLON') THEN
-  CALL OPEN_ll(UNIT=ILOC,FILE=HLOCFILENAME,STATUS="NEW",IOSTAT=IRESP,FORM="FORMATTED",   &
-               POSITION="REWIND",ACTION="WRITE", MODE='GLOBAL')
-ENDIF
-!
-IF (HFILETYPE=='MESONH') THEN
-  OLOCTRANSFER=.FALSE.
-  ! in the mesonh input file case, ylocfilename is used
-  ! to store the name of the field to read in the file
-END IF
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE OPEN_DATA_FILES
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index f0c06499f..c34b9dbb9 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -41,8 +41,6 @@ END MODULE MODI_OPEN_NESTPGD_FILES
 !!    EXTERNAL
 !!    --------
 !!
-!!    Routine FMOPEN
-!!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 !!
@@ -84,8 +82,6 @@ USE MODD_NESTING
 USE MODD_PARAMETERS
 USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE
 !
-USE MODI_OPEN_LUOUTn
-!
 USE MODE_IO_ll
 USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
 USE MODE_FM
diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90
index e9fdced51..1f273ab9f 100644
--- a/src/MNH/open_prc_files.f90
+++ b/src/MNH/open_prc_files.f90
@@ -62,9 +62,6 @@ END MODULE MODI_OPEN_PRC_FILES
 !!    EXTERNAL
 !!    --------
 !!
-!!    Routine FMATTR
-!!    Routine FMOPEN
-!!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 !!
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 79bc36abf..fbe3a0ac8 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -175,10 +175,10 @@
 !!      SET_REF       : to compute  rhoJ 
 !!      RESSURE_IN_PREP : to apply an anelastic correction in the case of
 !!                        non-vanishing orography 
-!!      FMOPEN        : to open a FM-file (DESFM + LFIFM)
+!!      IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM)
 !!      WRITE_DESFM   : to write the  DESFM file
 !!      WRI_LFIFM     : to write the   LFIFM file  
-!!      FMCLOS        : to close a FM-file (DESFM + LFIFM)
+!!      IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM)
 !!
 !!      MXM,MYM,MZM   : Shuman operators
 !!      WGUESS        : to compute W with the continuity equation from 
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 55af9a27b..99a518629 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -264,9 +264,7 @@
 !!      Routine WRITE_DESFM1  : to write a DESFM file.
 !!      Routine WRITE_LFIFM1  : to write a LFIFM file.
 !!      Routine FMLOOK        : to retrieve the logical unit of a file.
-!!      Routine FMCLOS        : to close a FM-file (DESFM + LFIFM).
-!!      Routine FMFREE        : to relase a logical unit number linked to a 
-!!                              file.
+!!      Routine IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM).
 !!
 !!      Module MODE_GRIDPROJ  : contains conformal projection routines
 !!    
@@ -393,7 +391,7 @@ USE MODE_POS
 USE MODE_FM
 USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME
 USE MODE_ll
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
@@ -1075,7 +1073,10 @@ CALL MNHWRITE_ZS_DUMMY_n(TINIFILE)
 !
 CALL DEALLOCATE_MODEL1(3)
 !
-IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) CALL FMCLOS_ll(YATMFILE,'KEEP',IRESP)
+IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) THEN
+  CALL IO_FILE_FIND_BYNAME(TRIM(YATMFILE),TZATMFILE,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZATMFILE)
+END IF
 !-------------------------------------------------------------------------------
 !
 !*      18.    INTERPOLATION OF SURFACE VARIABLES
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index f727c5e86..afce684f6 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -80,7 +80,6 @@ END MODULE MODI_SPAWN_MODEL2
 !!    EXTERNAL
 !!    --------
 !!
-!!      FMATTR        : to associate a logical unit number to a file
 !!      Module MODE_GRIDPROJ : contains conformal projection routines
 !!           SM_GRIDPROJ   : to compute some grid variables, in
 !!                           case of conformal projection.
@@ -91,10 +90,10 @@ END MODULE MODI_SPAWN_MODEL2
 !!      TOTAL_DMASS   : to compute the total mass of dry air
 !!      ANEL_BALANCE2  : to apply an anelastic correction in the case of changing
 !!                      resolution between the two models
-!!      FMOPEN        : to open a FM-file (DESFM + LFIFM)
+!!      IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM)
 !!      WRITE_DESFM   : to write the  DESFM file
 !!      WRITE_LFIFM   : to write the  LFIFM file  
-!!      FMCLOS        : to close a FM-file (DESFM + LFIFM)
+!!      IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM)
 !!      INI_BIKHARDT2     : initializes Bikhardt coefficients
 !!
 !!
@@ -312,7 +311,6 @@ LOGICAL,               INTENT(IN) :: OSPAWN_SURF  ! flag to spawn surface fields
 !*       0.1.3  Declarations of local variables :
 !
 !
-INTEGER :: IRESP    ! Return codes in FM routines
 INTEGER :: ILUOUT   ! Logical unit number for the output listing 
 INTEGER :: INPRAR   ! Number of articles predicted in the LFIFM file
 !
-- 
GitLab