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