From d50d9c8f1142ce791d1c0863e019d3930b9fcdbd Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 29 Mar 2018 09:13:55 +0200
Subject: [PATCH] Philippe 29/03/2018: IO: more explicit dimension names

---
 src/LIB/SURCOUCHE/src/modd_netcdf.f90 |  2 +-
 src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 26 +++++++++++---------------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/modd_netcdf.f90 b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
index a9ae971cd..bc9ae7bcb 100644
--- a/src/LIB/SURCOUCHE/src/modd_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
@@ -18,7 +18,7 @@ TYPE IOCDF
 END TYPE IOCDF
 
 TYPE DIMCDF
-   CHARACTER(LEN=8)         :: NAME = ''
+   CHARACTER(LEN=32)        :: NAME = ''
    INTEGER(KIND=IDCDF_KIND) :: LEN  = 0
    INTEGER(KIND=IDCDF_KIND) :: ID   = -1
    TYPE(DIMCDF), POINTER    :: NEXT => NULL()
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index 12b8ab3fb..a9c24f4af 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -855,9 +855,8 @@ TYPE(DIMCDF), POINTER   :: GETDIMCDF
 
 TYPE(DIMCDF), POINTER :: TMP
 INTEGER               :: COUNT
-CHARACTER(LEN=7)      :: YSUFFIX
-CHARACTER(LEN=8)      :: YDIMNAME
-CHARACTER(LEN=20)     :: YLEN
+CHARACTER(LEN=16)     :: YSUFFIX
+CHARACTER(LEN=20)     :: YDIMNAME
 INTEGER(KIND=IDCDF_KIND) :: STATUS
 LOGICAL                  :: GCHKLEN !Check if KLEN is valid
 TYPE(IOCDF), POINTER     :: PIOCDF
@@ -874,9 +873,10 @@ IF (PRESENT(HDIMNAME)) THEN
   END IF
 END IF
 
+WRITE(YSUFFIX,'(I0)') KLEN
+
 IF (GCHKLEN .AND. KLEN < 1) THEN
-  WRITE(YLEN,*) KLEN
-  CALL PRINT_MSG(NVERB_FATAL,'IO','GETDIMCDF','KLEN='//TRIM(YLEN))
+  CALL PRINT_MSG(NVERB_FATAL,'IO','GETDIMCDF','KLEN='//TRIM(YSUFFIX))
 END IF
 
 IF (PRESENT(HDIMNAME)) THEN
@@ -891,8 +891,7 @@ ELSE
       TMP=>TMP%NEXT
       COUNT = COUNT+1
    END DO
-   WRITE(YSUFFIX,'(i7)') KLEN
-   YDIMNAME = 'D'//ADJUSTL(YSUFFIX)
+   YDIMNAME = 'size'//TRIM(YSUFFIX)
 END IF
 
 IF (.NOT. ASSOCIATED(TMP)) THEN
@@ -918,16 +917,15 @@ INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN
 INTEGER(KIND=IDCDF_KIND)            :: GETSTRDIMID
 
 TYPE(DIMCDF), POINTER :: TMP
-CHARACTER(LEN=7)      :: YSUFFIX
-CHARACTER(LEN=8)      :: YDIMNAME
-CHARACTER(LEN=20)     :: YLEN
+CHARACTER(LEN=16)     :: YSUFFIX
 INTEGER(KIND=IDCDF_KIND) :: STATUS
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','GETSTRDIMID','called')
 
+WRITE(YSUFFIX,'(I0)') KLEN
+
 IF (KLEN < 1) THEN
-  WRITE(YLEN,*) KLEN
-  CALL PRINT_MSG(NVERB_FATAL,'IO','GETSTRDIMID','KLEN='//TRIM(YLEN))
+  CALL PRINT_MSG(NVERB_FATAL,'IO','GETSTRDIMID','KLEN='//TRIM(YSUFFIX))
 END IF
 
 ! Search string dimension with KLEN length
@@ -936,13 +934,11 @@ DO WHILE(ASSOCIATED(TMP))
    IF (TMP%LEN == KLEN) EXIT
    TMP=>TMP%NEXT
 END DO
-WRITE(YSUFFIX,'(i7)') KLEN
-YDIMNAME = 'S'//ADJUSTL(YSUFFIX)
 
 IF (.NOT. ASSOCIATED(TMP)) THEN
    ! Not found then define new dimension
    ALLOCATE(TMP)
-   TMP%NAME = YDIMNAME
+   TMP%NAME = 'char'//TRIM(YSUFFIX)
    TMP%LEN = KLEN
    STATUS = NF90_DEF_DIM(TPFILE%NNCID, TMP%NAME, KLEN, TMP%ID)
    IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETSTRDIMID[NF90_DEF_DIM]')
-- 
GitLab