From cdfd2ed8d28843d434ad081136f72140196f9498 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 22 Mar 2018 17:15:59 +0100
Subject: [PATCH] Philippe 23/02/2018: minor modifications * set JPXKRK to
 NLFIMAXCOMMENTLENGTH * add NSTRINGCHUNKSIZE parameter in mode_netcdf (instead
 of IMULT) * typo

---
 src/LIB/SURCOUCHE/src/fmreadwrit.f90  |  4 +++-
 src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 14 ++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 b/src/LIB/SURCOUCHE/src/fmreadwrit.f90
index abdabfc4e..63edf2961 100644
--- a/src/LIB/SURCOUCHE/src/fmreadwrit.f90
+++ b/src/LIB/SURCOUCHE/src/fmreadwrit.f90
@@ -14,6 +14,8 @@
 MODULE MODE_READWRITE_LFI
 !
 USE MODD_IO_ll
+USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH
+!
 USE MODE_FIELD, ONLY : TFIELDDATA
 USE MODE_MSG
 !
@@ -21,7 +23,7 @@ IMPLICIT NONE
 !
 PRIVATE
 !
-INTEGER, PARAMETER :: JPXKRK = 100
+INTEGER, PARAMETER :: JPXKRK = NLFIMAXCOMMENTLENGTH
 INTEGER, PARAMETER :: JPXFIE = 1.5E8
 !
 INTERFACE IO_READ_FIELD_LFI
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index 7aa3e2cf7..06005c38d 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -23,6 +23,9 @@ PRIVATE
 INTEGER(KIND=IDCDF_KIND),PARAMETER :: SHUFFLE = 1 !Set to 1 for (usually) better compression
 INTEGER(KIND=IDCDF_KIND),PARAMETER :: DEFLATE = 1
 
+INTEGER,PARAMETER :: NSTRINGCHUNKSIZE = 16 !Dimension of the chunks of strings
+                                           !(to limit the number of dimensions for strings)
+
 INTERFACE IO_WRITE_FIELD_NC4
    MODULE PROCEDURE IO_WRITE_FIELD_NC4_X0,IO_WRITE_FIELD_NC4_X1, &
                     IO_WRITE_FIELD_NC4_X2,IO_WRITE_FIELD_NC4_X3, &
@@ -203,7 +206,7 @@ REAL,DIMENSION(:),ALLOCATABLE   :: ZXHATM, ZYHATM,ZZHATM !Coordinates at mass po
 REAL,DIMENSION(:,:),POINTER     :: ZLAT, ZLON
 TYPE(IOCDF), POINTER            :: PIOCDF
 
-CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for'//TRIM(TPFILE%CNAME))
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for '//TRIM(TPFILE%CNAME))
 
 PIOCDF => TPFILE%TNCDIMS
 
@@ -1097,6 +1100,7 @@ ELSE
   END DO
 END IF
 !
+!print *,'IO_GUESS_DIMIDS_NC4: ',TPFIELD%CMNHNAME,':  klen,ilen,dims%len=',KLEN,ILEN,TPDIMS(:)%LEN
 IF (KLEN /= ILEN) THEN
   CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','problem with dimensions for field '&
                                    //TRIM(TPFIELD%CMNHNAME))
@@ -1957,8 +1961,6 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 CHARACTER(LEN=*),      INTENT(IN) :: HFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER,PARAMETER :: IMULT = 16
-!
 INTEGER(KIND=IDCDF_KIND)               :: STATUS
 INTEGER(KIND=IDCDF_KIND)               :: INCID
 CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))   :: YVARNAME
@@ -1972,11 +1974,11 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': w
 !
 IRESP = 0
 
-!Store the character string in a string of a size multiple of IMULT
+!Store the character string in a string of a size multiple of NSTRINGCHUNKSIZE
 !This is done to limit the number of dimensions in the netCDF file
-ILEN = ((LEN_TRIM(HFIELD)+IMULT-1)/IMULT)*IMULT
+ILEN = ((LEN_TRIM(HFIELD)+NSTRINGCHUNKSIZE-1)/NSTRINGCHUNKSIZE)*NSTRINGCHUNKSIZE
 !If the string is empty, create it anyway with a non-zero size (to prevent problems later)
-IF (ILEN==0) ILEN = IMULT
+IF (ILEN==0) ILEN = NSTRINGCHUNKSIZE
 
 ! Get the Netcdf file ID
 INCID = TPFILE%NNCID
-- 
GitLab