Index: LMDZ6/trunk/libf/misc/readTracFiles_mod.f90
===================================================================
--- LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4453)
+++ LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4454)
@@ -1,6 +1,6 @@
 MODULE readTracFiles_mod
 
-  USE strings_mod,    ONLY: msg, find, get_in, str2int, dispTable, testFile, strReduce,  strFind, strStack, strHead,  &
-       test, removeComment, cat, fmsg, maxlen, int2str, checkList, strParse, strReplace, strTail, strCount, strIdx, reduceExpr
+  USE strings_mod,    ONLY: msg, find, get_in, str2int, dispTable, strHead,  strReduce,  strFind, strStack, strIdx, &
+       test, removeComment, cat, fmsg, maxlen, int2str, checkList, strParse, strReplace, strTail, strCount, reduceExpr
 
   IMPLICIT NONE
@@ -292,5 +292,5 @@
   CHARACTER(LEN=maxlen), ALLOCATABLE :: trac_files(:), sections(:)
   LOGICAL, ALLOCATABLE :: ll(:)
-  LOGICAL :: lD
+  LOGICAL :: lD, lFound
   INTEGER :: is, nsec
   lD = .FALSE.; IF(PRESENT(lDisp)) lD = lDisp
@@ -301,11 +301,14 @@
   IF(test(strParse(type_trac, '|', sections,  n=nsec), lerr)) RETURN !--- Parse "type_trac" list
   IF(PRESENT(sects)) sects = sections
-  ALLOCATE(trac_files(nsec)); DO is=1, nsec; trac_files(is) = 'tracer_'//TRIM(sections(is))//'.def'; END DO
+  ALLOCATE(trac_files(nsec), ll(nsec))
+  DO is=1, nsec
+     trac_files(is) = 'tracer_'//TRIM(sections(is))//'.def'
+     INQUIRE(FILE=TRIM(trac_files(is)), EXIST=ll(is))
+  END DO
   IF(PRESENT(tracf)) tracf = trac_files
-  ll = .NOT.testFile(trac_files)
   fType = 0
-  IF(.NOT.testFile('traceur.def')) fType = 1                         !--- OLD STYLE FILE
-  IF(.NOT.testFile('tracer.def'))  fType = 2                         !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
-  IF(ALL(ll))                      fType = 3                         !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
+  INQUIRE(FILE='traceur.def', EXIST=lFound); IF(lFound)  fType = 1   !--- OLD STYLE FILE
+  INQUIRE(FILE='tracer.def',  EXIST=lFound); IF(lFound)  fType = 2   !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
+                                             IF(ALL(ll)) fType = 3   !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
   IF(.NOT.lD) RETURN                                                 !--- NO CHECKING/DISPLAY NEEDED: JUST GET type_trac,fType
   IF(ANY(ll) .AND. fType/=3) THEN                                    !--- MISSING FILES
@@ -1032,4 +1035,5 @@
   CHARACTER(LEN=*),        INTENT(IN)    :: fnam                     !--- Input file name
   TYPE(isot_type), TARGET, INTENT(INOUT) :: isot(:)                  !--- Isotopes descriptors (field %parent must be defined!)
+  LOGICAL :: lFound
   INTEGER :: is, iis, it, idb, ndb, nb0
   CHARACTER(LEN=maxlen), ALLOCATABLE :: vals(:)
@@ -1040,5 +1044,6 @@
 
   !--- THE INPUT FILE MUST BE PRESENT
-  IF(test(fmsg('Missing isotopes parameters file "'//TRIM(fnam)//'"', modname, testFile(fnam)),lerr)) RETURN
+  INQUIRE(FILE=TRIM(fnam), EXIST=lFound); lerr = .NOT.lFound
+  IF(fmsg('Missing isotopes parameters file "'//TRIM(fnam)//'"', modname, lerr)) RETURN
 
   !--- READ THE FILE SECTIONS, ONE EACH PARENT TRACER
Index: LMDZ6/trunk/libf/misc/strings_mod.F90
===================================================================
--- LMDZ6/trunk/libf/misc/strings_mod.F90	(revision 4453)
+++ LMDZ6/trunk/libf/misc/strings_mod.F90	(revision 4454)
@@ -10,5 +10,5 @@
   PUBLIC :: is_numeric, bool2str, int2str, real2str, dble2str
   PUBLIC :: reduceExpr, str2bool, str2int, str2real, str2dble
-  PUBLIC :: addQuotes, testFile, checkList, removeComment, test
+  PUBLIC :: addQuotes, checkList, removeComment, test
 
   INTERFACE get_in;     MODULE PROCEDURE getin_s,  getin_i,  getin_r,  getin_l;  END INTERFACE get_in
@@ -29,5 +29,4 @@
   INTERFACE reduceExpr;   MODULE PROCEDURE   reduceExpr_1,   reduceExpr_m; END INTERFACE reduceExpr
   INTERFACE addQuotes;    MODULE PROCEDURE    addQuotes_1,    addQuotes_m; END INTERFACE addQuotes
-  INTERFACE testFile;     MODULE PROCEDURE     testFile_1,     testFile_m; END INTERFACE testFile
 
   INTEGER, PARAMETER :: maxlen    = 256                    !--- Standard maximum length for strings
@@ -1452,25 +1451,4 @@
 
 !==============================================================================================================================
-!=== TEST WHETHER A FILE IS PRESENT OR NOT ====================================================================================
-!==============================================================================================================================
-LOGICAL FUNCTION testFile_1(fname) RESULT(out)
-  CHARACTER(LEN=*), INTENT(IN) :: fname
-!------------------------------------------------------------------------------------------------------------------------------
-  INTEGER :: ierr
-  OPEN(90, FILE=fname, FORM='formatted', STATUS='old', IOSTAT=ierr); CLOSE(99)
-  out = ierr/=0
-END FUNCTION testFile_1
-!==============================================================================================================================
-FUNCTION testFile_m(fname) RESULT(out)
-  LOGICAL,         ALLOCATABLE ::   out(:)
-  CHARACTER(LEN=*), INTENT(IN) :: fname(:)
-  INTEGER :: k
-!------------------------------------------------------------------------------------------------------------------------------
-  out = [(testFile_1(fname(k)), k=1, SIZE(fname))]
-END FUNCTION testFile_m
-!==============================================================================================================================
-
-
-!==============================================================================================================================
 !=== DISPLAY "<message>: the following <items> are <reason>" FOLLOWED BY THE LIST OF <str> FOR WHICH <lerr>==T. ===============
 !==============================================================================================================================
