From ff819d119d7378ac312036ac21bcef6686ad4aed Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Tue, 13 Mar 2018 17:13:50 +0100
Subject: [PATCH] Philippe 13/09/2018: lfi2cdf: manage correctly splitting of
 files by variables

---
 LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
index 5f73e9741..7a5ec9a23 100644
--- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
+++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
@@ -1449,6 +1449,8 @@ stop
   END SUBROUTINE OPEN_SPLIT_NCFILE_IN
 
   SUBROUTINE OPEN_SPLIT_NCFILES_OUT(outfiles,houtfile,nbvar,tpreclist,options)
+    USE MODE_FM,               ONLY: IO_FILE_OPEN_ll
+    USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST
     TYPE(filelist_struct),         INTENT(INOUT) :: outfiles
     CHARACTER(LEN=*),              INTENT(IN)    :: houtfile
     INTEGER,                       INTENT(IN)    :: nbvar
@@ -1471,16 +1473,26 @@ stop
       outfiles%files(idx)%var_id = ji
 
       filename = trim(houtfile)//'.'//trim(tpreclist(ji)%name)//'.nc'
-      status = NF90_CREATE(trim(filename), IOR(NF90_CLOBBER,NF90_NETCDF4), outfiles%files(idx)%lun_id)
-      IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__)
+      CALL IO_FILE_ADD2LIST(OUTFILES%TFILES(idx)%TFILE,filename,'UNKNOWN','WRITE', &
+                            HFORMAT='NETCDF4')
+      CALL IO_FILE_OPEN_ll(OUTFILES%TFILES(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG)
+      outfiles%files(idx)%lun_id = OUTFILES%TFILES(idx)%TFILE%NNCID
+      outfiles%files(idx)%format = NETCDF_FORMAT
+      outfiles%files(idx)%status = WRITING
+      outfiles%files(idx)%opened  = .TRUE.
+
+      IF (options(OPTCOMPRESS)%set) THEN
+        outfiles%tfiles(idx)%tfile%LNCCOMPRESS       = .TRUE.
+        outfiles%tfiles(idx)%tfile%NNCCOMPRESS_LEVEL = options(OPTCOMPRESS)%ivalue
+      END IF
+
+      IF (options(OPTREDUCE)%set) THEN
+        outfiles%tfiles(idx)%tfile%LNCREDUCE_FLOAT_PRECISION = .TRUE.
+      END IF
 
       status = NF90_SET_FILL(outfiles%files(idx)%lun_id,NF90_NOFILL,omode)
       IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__)
 
-      outfiles%files(idx)%opened  = .TRUE.
-      outfiles%files(idx)%format = NETCDF_FORMAT
-      outfiles%files(idx)%status = WRITING
-
       idx = idx + 1
     END DO
 
-- 
GitLab