From 85d853a83a232cb21afc3d5930a562454069b2b4 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Wed, 21 Mar 2018 16:40:47 +0100
Subject: [PATCH] Philippe 21/03/2018: IO: add NNCNAR field to TFILEDATA
 (needed by LFI2CDF)

---
 src/LIB/SURCOUCHE/src/modd_io.f90     | 1 +
 src/LIB/SURCOUCHE/src/mode_fm.f90     | 4 ++++
 src/LIB/SURCOUCHE/src/mode_io.f90     | 5 +++++
 src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 2 +-
 4 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index fddb02428..a3bfbd886 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -94,6 +94,7 @@ TYPE TFILEDATA
   !
   ! Fields for netCDF files
   INTEGER(KIND=IDCDF_KIND) :: NNCID = -1 !File identifier
+  INTEGER(KIND=IDCDF_KIND) :: NNCNAR = 0 !Number of articles of the netCDF file (only accurate if file opened in read mode)
   LOGICAL                  :: LNCREDUCE_FLOAT_PRECISION = .FALSE. ! Reduce the precision of floats to single precision
                                                                   ! instead of double precision
   LOGICAL                  :: LNCCOMPRESS = .FALSE. ! Do compression on fields
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 46563b0bd..627734e13 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -335,6 +335,10 @@ IF (TPFILE%LMASTER) THEN
         IF (INCERR /= NF90_NOERR) THEN
           CALL PRINT_MSG(NVERB_FATAL,'IO','FMOPEN_ll','NF90_OPEN for '//TRIM(YFILEM)//'.nc: '//NF90_STRERROR(INCERR))
         END IF
+        INCERR = NF90_INQUIRE(TPFILE%NNCID,NVARIABLES=TPFILE%NNCNAR)
+        IF (INCERR /= NF90_NOERR) THEN
+          CALL PRINT_MSG(NVERB_FATAL,'IO','FMOPEN_ll','NF90_INQUIRE for '//TRIM(YFILEM)//'.nc: '//NF90_STRERROR(INCERR))
+        END IF
      END IF
      
      IF (YACTION == 'WRITE') THEN
diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90
index 050b305af..6444bde79 100644
--- a/src/LIB/SURCOUCHE/src/mode_io.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io.f90
@@ -662,6 +662,11 @@ CONTAINS
                       ELSE
                          IOS = 0
                       END IF
+                      IOSCDF = NF90_INQUIRE(TZSPLITFILE%NNCID,NVARIABLES=TZSPLITFILE%NNCNAR)
+                      IF (IOSCDF /= NF90_NOERR) THEN
+                        CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','NF90_INQUIRE for '//TRIM(TZSPLITFILE%CNAME)//'.nc: ' &
+                                                                  //NF90_STRERROR(IOSCDF))
+                      END IF
                    END IF
                    
                    IF (YACTION == 'WRITE') THEN
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index bee688fff..7aa3e2cf7 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -50,7 +50,7 @@ END INTERFACE IO_READ_FIELD_NC4
 ! Public from module netcdf
 PUBLIC NF90_CLOSE,NF90_OPEN,NF90_CREATE,                                &
        NF90_NOWRITE,NF90_CLOBBER,NF90_NETCDF4,NF90_NOERR,NF90_STRERROR, &
-       NF90_FILL_REAL
+       NF90_FILL_REAL,NF90_INQUIRE
 ! Public from this module :
 PUBLIC NEWIOCDF,CLEANIOCDF,IO_GUESS_DIMIDS_NC4,                 &
        IO_SET_KNOWNDIMS_NC4,IO_WRITE_COORDVAR_NC4,              &
-- 
GitLab