From e6585f902314b719f074acba2f94bf95674dd8d0 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 8 Dec 2017 15:48:22 +0100
Subject: [PATCH] Philippe 08/12/2017: IO: remove last calls to FMLOOK_ll

---
 src/MNH/close_file_mnh.f90    | 27 ++++++++++-----------------
 src/MNH/mnhclose_namelist.f90 | 16 ++++++++--------
 src/MNH/mnhget_luout.f90      | 23 +++++++++--------------
 3 files changed, 27 insertions(+), 39 deletions(-)

diff --git a/src/MNH/close_file_mnh.f90 b/src/MNH/close_file_mnh.f90
index e3a76b891..76ca4f2fb 100644
--- a/src/MNH/close_file_mnh.f90
+++ b/src/MNH/close_file_mnh.f90
@@ -60,11 +60,10 @@ END MODULE MODI_CLOSE_FILE_MNH
 USE MODD_CONF,             ONLY: CPROGRAM
 USE MODD_IO_ll,            ONLY: TFILEDATA
 USE MODD_IO_NAM,           ONLY: TFILE
-USE MODD_LUNIT,            ONLY: CLUOUT0
+USE MODD_LUNIT,            ONLY: TLUOUT0
+USE MODD_LUNIT_n,          ONLY: TLUOUT
 !
-USE MODE_FM,               ONLY: FMLOOK_ll,IO_FILE_CLOSE_ll
-USE MODE_IO_ll,            ONLY: CLOSE_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
+USE MODE_FM,               ONLY: IO_FILE_CLOSE_ll
 USE MODE_MSG
 !
 IMPLICIT NONE
@@ -78,23 +77,20 @@ INTEGER,           INTENT(IN)  :: KUNIT    ! logical unit of file
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears 
-                                    ! at the open of the file in LFI  routines 
-!
-INTEGER           :: IMI            ! model index
 INTEGER           :: ILUOUT         ! output listing logical unit
-CHARACTER(LEN=16) :: YLUOUT         ! output listing file name
 TYPE(TFILEDATA),POINTER :: TZFILE
 !-------------------------------------------------------------------------------
 !
 SELECT CASE(CPROGRAM)
   CASE('REAL  ','IDEAL ','DIAG  ','PGD   ')
-    YLUOUT = CLUOUT0
+    TZFILE => TLUOUT0
+    ILUOUT = TLUOUT0%NLU
   CASE('MESONH','SPAWN ')
-    CALL GET_MODEL_NUMBER_ll  (IMI)
-    WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' '
+    TZFILE => TLUOUT
+    ILUOUT = TLUOUT%NLU
   CASE DEFAULT
-    YLUOUT = ''
+    TZFILE => NULL()
+    ILUOUT = -1
 END SELECT
 !
 !-------------------------------------------------------------------------------
@@ -102,11 +98,8 @@ END SELECT
 !* special case: closing of the output listing file
 !  ------------------------------------------------
 !
-CALL FMLOOK_ll(YLUOUT,YLUOUT,ILUOUT,IRESP)
 IF (ILUOUT==KUNIT) THEN
-  CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(YLUOUT))
-  TZFILE => NULL()
-  CALL IO_FILE_FIND_BYNAME(YLUOUT,TZFILE,IRESP)
+  CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(TZFILE%CNAME))
   CALL IO_FILE_CLOSE_ll(TZFILE)
   RETURN
 END IF
diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90
index 66da0cbdb..cb8d2248e 100644
--- a/src/MNH/mnhclose_namelist.f90
+++ b/src/MNH/mnhclose_namelist.f90
@@ -59,10 +59,10 @@ END MODULE MODI_MNHCLOSE_NAMELIST
 !
 USE MODD_CONF,             ONLY: CPROGRAM
 USE MODD_IO_NAM,           ONLY: TNAM
-USE MODD_LUNIT,            ONLY: CLUOUT0
+USE MODD_LUNIT,            ONLY: TLUOUT0
+USE MODD_LUNIT_n,          ONLY: TLUOUT
 !
-USE MODE_FM,               ONLY: FMLOOK_ll,IO_FILE_CLOSE_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
+USE MODE_FM,               ONLY: IO_FILE_CLOSE_ll
 USE MODE_MSG
 !
 IMPLICIT NONE
@@ -99,16 +99,16 @@ IF (TNAM%NLU==KLUNAM) THEN
 ELSE
   SELECT CASE(CPROGRAM)
     CASE('REAL  ','IDEAL ','DIAG  ')
-      YLUOUT = CLUOUT0
+      ILUOUT = TLUOUT0%NLU
     CASE('MESONH','SPAWN ')
-      CALL GET_MODEL_NUMBER_ll  (IMI)
-      WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' '
+      ILUOUT = TLUOUT%NLU
+    CASE DEFAULT
+      CALL PRINT_MSG(NVERB_FATAL,'GEN','MNHCLOSE_NAMELIST','CPROGRAM '//TRIM(CPROGRAM)//' not allowed')
   END SELECT
   !
-  CALL FMLOOK_ll(YLUOUT,YLUOUT,ILUOUT,IRESP)
   WRITE(ILUOUT,*) 'Error for closing a namelist file: '
   WRITE(ILUOUT,*) 'logical unit ',KLUNAM,' does not correspond to namelist file', TNAM%CNAME
-!callabortstop
+  !callabortstop
   CALL PRINT_MSG(NVERB_FATAL,'GEN','MNHCLOSE_NAMELIST','')
 END IF
 !
diff --git a/src/MNH/mnhget_luout.f90 b/src/MNH/mnhget_luout.f90
index 6e25b0c49..a1d74fa00 100644
--- a/src/MNH/mnhget_luout.f90
+++ b/src/MNH/mnhget_luout.f90
@@ -57,9 +57,10 @@ END MODULE MODI_MNHGET_LUOUT
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODE_FM, ONLY : FMLOOK_ll
+USE MODD_CONF,    ONLY: CPROGRAM
 USE MODE_ll
-USE MODD_CONF, ONLY : CPROGRAM
+USE MODD_LUNIT,   ONLY: TLUOUT0
+USE MODD_LUNIT_n, ONLY: LUNIT_MODEL,TLUOUT
 !
 IMPLICIT NONE
 !
@@ -72,28 +73,22 @@ INTEGER,           INTENT(OUT) :: KLUOUT   ! Logical unit of output listing
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears 
-                                    ! at the open of the file in LFI  routines 
-INTEGER           :: IMI            ! model index
+INTEGER :: IMI ! model index
 !
-CHARACTER(LEN=16) :: YLUOUT         ! output listing file name
 !-------------------------------------------------------------------------------
 !
-!
 SELECT CASE (CPROGRAM)
   CASE ('REAL  ','PGD   ','NESPGD')
-    YLUOUT = 'OUTPUT_LISTING0'
+    KLUOUT = TLUOUT0%NLU
   CASE ('IDEAL ')
-    YLUOUT = 'OUTPUT_LISTING1'
+    KLUOUT = TLUOUT%NLU
   CASE ('MESONH','DIAG  ','SPAWN ')
-    CALL GET_MODEL_NUMBER_ll  (IMI)
-    WRITE(YLUOUT,FMT='(A14,I1,A1)')  'OUTPUT_LISTING',IMI,' '
+    CALL GET_MODEL_NUMBER_ll(IMI)
+    KLUOUT = LUNIT_MODEL(IMI)%TLUOUT%NLU
   CASE DEFAULT
-    YLUOUT = 'OUTPUT_LISTING0'
+    KLUOUT = TLUOUT0%NLU
 END SELECT
 !
-CALL FMLOOK_ll(YLUOUT,YLUOUT,KLUOUT,IRESP)
-!
 !-------------------------------------------------------------------------------
 !
 END SUBROUTINE MNHGET_LUOUT
-- 
GitLab