From 76f30e0cab25ffed9e4c304a3067745f48906283 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 15 Mar 2019 15:38:22 +0100
Subject: [PATCH] Philippe 15/03/2019: rename IDCDF_KIND by CDFINT

---
 LIBTOOLS/tools/lfi2cdf/src/mode_util.f90    |  26 +-
 src/LIB/SURCOUCHE/src/modd_io.f90           |  16 +-
 src/LIB/SURCOUCHE/src/modd_netcdf.f90       |  13 +-
 src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90  |  28 +-
 src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90  | 250 +++++++-------
 src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 |  45 +--
 src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 347 ++++++++++----------
 src/MNH/read_chem_data_netcdf_case.f90      |  18 +-
 8 files changed, 373 insertions(+), 370 deletions(-)

diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
index f577d4bb4..11ad357f0 100644
--- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
+++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 MODULE mode_util
   USE MODD_IO_ll,  ONLY: TFILE_ELT
-  USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND
+  USE MODD_NETCDF, ONLY: DIMCDF, CDFINT
   USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX
   use modd_precision, only: LFIINT
 
@@ -83,9 +83,9 @@ CONTAINS
     INTEGER                                  :: leng
     INTEGER                                  :: IID, IRESP, IDATES, ICURDATE
     INTEGER                                  :: IDXDATE, IDXTIME
-    INTEGER(KIND=IDCDF_KIND)                 :: kcdf_id, kcdf_id2, var_id
-    INTEGER(KIND=IDCDF_KIND)                 :: status
     INTEGER(KIND=LFIINT)                     :: iresp2,ilu,ileng,ipos
+    INTEGER(KIND=CDFINT)                     :: kcdf_id, kcdf_id2, var_id
+    INTEGER(KIND=CDFINT)                     :: status
     LOGICAL                                  :: ladvan
     LOGICAL                                  :: GOK
     TYPE(TLFIDATE),DIMENSION(MAXDATES)       :: TLFIDATES
@@ -632,8 +632,8 @@ END DO
     CHARACTER(LEN=16) :: YMNHVERSION
     CHARACTER(LEN=:),ALLOCATABLE :: YHISTORY
     INTEGER :: ilen, ji
-    INTEGER(KIND=IDCDF_KIND) :: status
-    INTEGER(KIND=IDCDF_KIND) :: kcdf_id
+    INTEGER(KIND=CDFINT) :: status
+    INTEGER(KIND=CDFINT) :: kcdf_id
 
 
     CALL PRINT_MSG(NVERB_DEBUG,'IO','def_ncdf','called')
@@ -686,7 +686,7 @@ END DO
     INTEGER                                  :: IDIMS
     INTEGER                                  :: INSRC
     INTEGER                                  :: ISRC
-    INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN
+    INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN
     logical,dimension(knaf)                  :: gtimedep_in, gtimedep_out
 
     CHARACTER(LEN=:),       ALLOCATABLE :: YTAB0D
@@ -962,9 +962,9 @@ END DO
     TYPE(option),DIMENSION(:),   INTENT(IN)  :: options
     INTEGER,                     INTENT(IN)  :: runmode
 
-    INTEGER                     :: idx, IRESP2
-    INTEGER(KIND=IDCDF_KIND)    :: omode
-    INTEGER(KIND=IDCDF_KIND)    :: status
+    INTEGER              :: idx, IRESP2
+    INTEGER(KIND=CDFINT) :: omode
+    INTEGER(KIND=CDFINT) :: status
     INTEGER(KIND=LFIINT) :: ilu,iresp
 
 
@@ -1115,8 +1115,8 @@ END DO
     CHARACTER(LEN=NMNHNAMELGTMAX),DIMENSION(nbvar) :: YVARS
     INTEGER                  :: ji
     INTEGER                  :: idx1, idx2
-    INTEGER(KIND=IDCDF_KIND) :: status
-    INTEGER(KIND=IDCDF_KIND) :: omode
+    INTEGER(KIND=CDFINT)     :: status
+    INTEGER(KIND=CDFINT)     :: omode
 
     CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_SPLIT_NCFILES_OUT','called')
 
@@ -1193,8 +1193,8 @@ END DO
 
     INTEGER                                  :: ILENG
     INTEGER                                  :: JDIM
-    INTEGER(KIND=IDCDF_KIND)                 :: ISTATUS
-    INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID
+    INTEGER(KIND=CDFINT)                     :: ISTATUS
+    INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID
 
     CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GET_METADATA_NC4','called')
 
diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index edb9bf50b..7ca303c91 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -11,9 +11,9 @@
 
 MODULE MODD_IO_ll
 !
-USE MODD_NETCDF,     ONLY: IDCDF_KIND, IOCDF, TPTR2DIMCDF
+USE MODD_NETCDF,     ONLY: IOCDF, TPTR2DIMCDF
 USE MODD_PARAMETERS, ONLY: NDIRNAMELGTMAX, NFILENAMELGTMAX
-use modd_precision,  only: LFIINT
+use modd_precision,  only: CDFINT, LFIINT
 !
 IMPLICIT NONE 
 !
@@ -100,13 +100,13 @@ TYPE TFILEDATA
   INTEGER(KIND=LFIINT) :: NLFIFLU   = -1 !File identifier
   !
   ! 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
+  INTEGER(KIND=CDFINT) :: NNCID = -1 !File identifier
+  INTEGER(KIND=CDFINT) :: 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
-  INTEGER(KIND=IDCDF_KIND) :: NNCCOMPRESS_LEVEL = 0 ! Compression level
-  TYPE(IOCDF),POINTER      :: TNCDIMS => NULL()     ! Structure containing netCDF dimensions
+  LOGICAL              :: LNCCOMPRESS = .FALSE. ! Do compression on fields
+  INTEGER(KIND=CDFINT) :: NNCCOMPRESS_LEVEL = 0 ! Compression level
+  TYPE(IOCDF),POINTER  :: TNCDIMS => NULL()     ! Structure containing netCDF dimensions
   TYPE(TPTR2DIMCDF),DIMENSION(:,:),ALLOCATABLE :: TNCCOORDS ! Structure pointing to the coordinates variables
   !
   !Fields for other files
diff --git a/src/LIB/SURCOUCHE/src/modd_netcdf.f90 b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
index 24541396d..b73380b56 100644
--- a/src/LIB/SURCOUCHE/src/modd_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
@@ -7,9 +7,10 @@
 !  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !-----------------------------------------------------------------
 MODULE MODD_NETCDF
-IMPLICIT NONE 
 
-INTEGER,PARAMETER :: IDCDF_KIND = SELECTED_INT_KIND(8)
+use modd_precision, only: CDFINT
+
+IMPLICIT NONE
 
 TYPE IOCDF
    TYPE(DIMCDF), POINTER :: DIM_NI      => NULL()
@@ -26,10 +27,10 @@ TYPE IOCDF
 END TYPE IOCDF
 
 TYPE DIMCDF
-   CHARACTER(LEN=32)        :: NAME = ''
-   INTEGER(KIND=IDCDF_KIND) :: LEN  = 0
-   INTEGER(KIND=IDCDF_KIND) :: ID   = -1
-   TYPE(DIMCDF), POINTER    :: NEXT => NULL()
+   CHARACTER(LEN=32)     :: NAME = ''
+   INTEGER(KIND=CDFINT)  :: LEN  = 0
+   INTEGER(KIND=CDFINT)  :: ID   = -1
+   TYPE(DIMCDF), POINTER :: NEXT => NULL()
 END TYPE DIMCDF
 
 TYPE TPTR2DIMCDF
diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
index 34b375157..6f605e364 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90
@@ -18,15 +18,15 @@
 #if defined(MNH_IOCDF4)
 module mode_io_file_nc4
 
-use modd_io_ll,  only: tfiledata
-use modd_netcdf, only: IDCDF_KIND
+use modd_io_ll,        only: tfiledata
+use modd_precision,    only: CDFINT
 
 use mode_io_tools_nc4, only: io_handle_err_nc4, io_set_knowndims_nc4, newiocdf
 use mode_msg
 
-use NETCDF,      only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE,  &
-                       NF90_CLOSE, NF90_CREATE, NF90_GET_ATT, NF90_INQUIRE, NF90_INQUIRE_ATTRIBUTE, &
-                       NF90_OPEN, NF90_PUT_ATT, NF90_STRERROR
+use NETCDF,            only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE,  &
+                             NF90_CLOSE, NF90_CREATE, NF90_GET_ATT, NF90_INQUIRE, NF90_INQUIRE_ATTRIBUTE, &
+                             NF90_OPEN, NF90_PUT_ATT, NF90_STRERROR
 
 implicit none
 
@@ -44,7 +44,7 @@ subroutine io_create_file_nc4(tpfile,hprogram_orig)
   character(len=*),optional, intent(in)    :: hprogram_orig !to emulate a file coming from this program
 
   character(len=:),allocatable :: yfilem  ! name of the file
-  integer(kind=IDCDF_KIND)     :: istatus
+  integer(kind=CDFINT)         :: istatus
 
   call print_msg(NVERB_DEBUG,'IO','io_create_file_nc4','called for '//trim(tpfile%cname))
 
@@ -66,10 +66,10 @@ end subroutine io_create_file_nc4
 subroutine io_close_file_nc4(tpfile,kstatus)
   use mode_io_tools_nc4, only: cleaniocdf
 
-  type(tfiledata),                    intent(inout) :: tpfile
-  integer(kind=IDCDF_KIND), optional, intent(out)   :: kstatus
+  type(tfiledata),                intent(inout) :: tpfile
+  integer(kind=CDFINT), optional, intent(out)   :: kstatus
 
-  integer(kind=IDCDF_KIND) :: istatus
+  integer(kind=CDFINT) :: istatus
 
   call print_msg(NVERB_DEBUG,'IO','io_close_file_nc4','called for '//trim(tpfile%cname))
 
@@ -100,7 +100,7 @@ subroutine io_open_file_nc4(tpfile)
   type(tfiledata), intent(inout) :: tpfile
 
   character(len=:),allocatable :: yfilem  ! name of the file
-  integer(kind=IDCDF_KIND)     :: istatus
+  integer(kind=CDFINT)         :: istatus
 
   call print_msg(NVERB_DEBUG,'IO','io_open_file_nc4','called for '//trim(tpfile%cname))
 
@@ -131,8 +131,8 @@ subroutine io_check_cleanly_closed_nc4(tpfile)
   type(tfiledata), intent(in) :: tpfile
 
   character(len=:), allocatable :: yclean
-  integer(kind=IDCDF_KIND) :: ilen, istatus
-  integer, dimension(3) :: imnhversion
+  integer(kind=CDFINT)          :: ilen, istatus
+  integer, dimension(3)         :: imnhversion
 
   call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4','called for '//trim(tpfile%cname))
 
@@ -174,7 +174,7 @@ end subroutine io_check_cleanly_closed_nc4
 subroutine io_set_cleanly_closed_nc4(tpfile)
   type(tfiledata), intent(in) :: tpfile
 
-  integer(kind=IDCDF_KIND) :: istatus
+  integer(kind=CDFINT) :: istatus
 
   call print_msg(NVERB_DEBUG,'IO','io_set_cleanly_closed_nc4','called for '//trim(tpfile%cname))
 
@@ -186,7 +186,7 @@ end subroutine io_set_cleanly_closed_nc4
 subroutine io_set_not_cleanly_closed_nc4(tpfile)
   type(tfiledata), intent(in) :: tpfile
 
-  integer(kind=IDCDF_KIND) :: istatus
+  integer(kind=CDFINT) :: istatus
 
   call print_msg(NVERB_DEBUG,'IO','io_set_not_cleanly_closed_nc4','called for '//trim(tpfile%cname))
 
diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
index dbaf49d89..fbc6e4283 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
@@ -15,7 +15,7 @@
 module mode_io_read_nc4
 
 use modd_io_ll,        only: tfiledata
-use modd_netcdf,       only: IDCDF_KIND
+use modd_precision,    only: CDFINT
 
 use mode_field,        only: tfielddata
 use mode_io_tools_nc4, only: cleanmnhname, io_handle_err_nc4
@@ -52,15 +52,15 @@ USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN
 !
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE
 TYPE(TFIELDDATA),         INTENT(INOUT) :: TPFIELD
-INTEGER(KIND=IDCDF_KIND), INTENT(IN)    :: KVARID
+INTEGER(KIND=CDFINT),     INTENT(IN)    :: KVARID
 INTEGER,                  INTENT(OUT)   :: KRESP  ! return-code
 CHARACTER(LEN=*),OPTIONAL,INTENT(IN)    :: HCALENDAR
 !
 INTEGER                      :: IERRLEVEL
 INTEGER                      :: ILEN
 INTEGER                      :: IGRID
-INTEGER(KIND=IDCDF_KIND)     :: INCID
-INTEGER(KIND=IDCDF_KIND)     :: STATUS
+INTEGER(KIND=CDFINT)         :: INCID
+INTEGER(KIND=CDFINT)         :: STATUS
 CHARACTER(LEN=12)            :: YVAL_FILE, YVAL_MEM
 CHARACTER(LEN=:),ALLOCATABLE :: YVALUE
 LOGICAL                      :: GOLDMNH !if old version of MesoNH (<5.4, old files without complete and correct metadata)
@@ -262,13 +262,13 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 REAL,             INTENT(INOUT) :: PFIELD
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT) :: STATUS
+INTEGER(KIND=CDFINT) :: INCID
+INTEGER(KIND=CDFINT) :: IVARID
+INTEGER(KIND=CDFINT) :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT) :: IDIMS   ! number of dimensions
+CHARACTER(LEN=30)    :: YVARNAME
+INTEGER              :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -317,15 +317,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:),INTENT(INOUT) :: PFIELD
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IDIMLEN
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT) :: STATUS
+INTEGER(KIND=CDFINT) :: INCID
+INTEGER(KIND=CDFINT) :: IVARID
+INTEGER(KIND=CDFINT) :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT) :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)    :: YVARNAME
+INTEGER(KIND=CDFINT) :: IDIMLEN
+INTEGER              :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -384,15 +384,15 @@ TYPE(TFIELDDATA),   INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:,:),INTENT(INOUT) :: PFIELD
 INTEGER,            INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT) :: STATUS
+INTEGER(KIND=CDFINT) :: INCID
+INTEGER(KIND=CDFINT) :: IVARID
+INTEGER(KIND=CDFINT) :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT) :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)    :: YVARNAME
+INTEGER(KIND=CDFINT),DIMENSION(3) :: IDIMLEN
+INTEGER              :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -466,15 +466,15 @@ TYPE(TFIELDDATA),     INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:,:,:),INTENT(INOUT) :: PFIELD
 INTEGER,              INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)                              :: STATUS
-INTEGER(KIND=IDCDF_KIND)                              :: INCID
-INTEGER(KIND=IDCDF_KIND)                              :: IVARID
-INTEGER(KIND=IDCDF_KIND)                              :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)                              :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND),DIMENSION(3)                 :: IDIMLEN
-CHARACTER(LEN=30)                                     :: YVARNAME
-INTEGER                                               :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+INTEGER(KIND=CDFINT),DIMENSION(3)                 :: IDIMLEN
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -537,15 +537,15 @@ TYPE(TFIELDDATA),       INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD
 INTEGER,                INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)                              :: STATUS
-INTEGER(KIND=IDCDF_KIND)                              :: INCID
-INTEGER(KIND=IDCDF_KIND)                              :: IVARID
-INTEGER(KIND=IDCDF_KIND)                              :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)                              :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND),DIMENSION(4)                 :: IDIMLEN
-CHARACTER(LEN=30)                                     :: YVARNAME
-INTEGER                                               :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+INTEGER(KIND=CDFINT),DIMENSION(4)                 :: IDIMLEN
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -611,15 +611,15 @@ TYPE(TFIELDDATA),         INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD
 INTEGER,                  INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)                              :: STATUS
-INTEGER(KIND=IDCDF_KIND)                              :: INCID
-INTEGER(KIND=IDCDF_KIND)                              :: IVARID
-INTEGER(KIND=IDCDF_KIND)                              :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)                              :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND),DIMENSION(5)                 :: IDIMLEN
-CHARACTER(LEN=30)                                     :: YVARNAME
-INTEGER                                               :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+INTEGER(KIND=CDFINT),DIMENSION(5)                 :: IDIMLEN
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -688,15 +688,15 @@ TYPE(TFIELDDATA),           INTENT(INOUT) :: TPFIELD
 REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD
 INTEGER,                    INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)                              :: STATUS
-INTEGER(KIND=IDCDF_KIND)                              :: INCID
-INTEGER(KIND=IDCDF_KIND)                              :: IVARID
-INTEGER(KIND=IDCDF_KIND)                              :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)                              :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND),DIMENSION(6)                 :: IDIMLEN
-CHARACTER(LEN=30)                                     :: YVARNAME
-INTEGER                                               :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+INTEGER(KIND=CDFINT),DIMENSION(6)                 :: IDIMLEN
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -767,13 +767,13 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 INTEGER,          INTENT(INOUT) :: KFIELD
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT) :: STATUS
+INTEGER(KIND=CDFINT) :: INCID
+INTEGER(KIND=CDFINT) :: IVARID
+INTEGER(KIND=CDFINT) :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT) :: IDIMS   ! number of dimensions
+CHARACTER(LEN=30)    :: YVARNAME
+INTEGER              :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -823,15 +823,15 @@ TYPE(TFIELDDATA),        INTENT(INOUT) :: TPFIELD
 INTEGER, DIMENSION(:),   INTENT(INOUT) :: KFIELD
 INTEGER,                 INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IDIMLEN
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER(KIND=CDFINT)                              :: IDIMLEN
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -891,15 +891,15 @@ TYPE(TFIELDDATA),        INTENT(INOUT) :: TPFIELD
 INTEGER, DIMENSION(:,:), INTENT(INOUT) :: KFIELD
 INTEGER,                 INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN
-INTEGER                  :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER(KIND=CDFINT),DIMENSION(3)                 :: IDIMLEN
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -973,14 +973,14 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 LOGICAL,          INTENT(INOUT) :: OFIELD
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER                  :: IRESP
-INTEGER                  :: IFIELD
+INTEGER(KIND=CDFINT) :: STATUS
+INTEGER(KIND=CDFINT) :: INCID
+INTEGER(KIND=CDFINT) :: IVARID
+INTEGER(KIND=CDFINT) :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT) :: IDIMS   ! number of dimensions
+CHARACTER(LEN=30)    :: YVARNAME
+INTEGER              :: IRESP
+INTEGER              :: IFIELD
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -1043,17 +1043,17 @@ TYPE(TFIELDDATA),    INTENT(INOUT) :: TPFIELD
 LOGICAL,DIMENSION(:),INTENT(INOUT) :: OFIELD
 INTEGER,             INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND) :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND) :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND) :: IDIMLEN
-CHARACTER(LEN=30)        :: YVARNAME
-INTEGER                  :: IRESP
-INTEGER                  :: JI
-INTEGER,DIMENSION(SIZE(OFIELD)) :: IFIELD
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+INTEGER(KIND=CDFINT)                              :: IDIMLEN
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER                                           :: IRESP
+INTEGER                                           :: JI
+INTEGER,DIMENSION(SIZE(OFIELD))                   :: IFIELD
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -1130,16 +1130,16 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 CHARACTER(LEN=*), INTENT(INOUT) :: HFIELD
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)     :: STATUS
-INTEGER(KIND=IDCDF_KIND)     :: INCID
-INTEGER(KIND=IDCDF_KIND)     :: IVARID
-INTEGER(KIND=IDCDF_KIND)     :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)     :: IDIMS   ! number of dimensions
-INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
-CHARACTER(LEN=30)            :: YVARNAME
-CHARACTER(LEN=:),ALLOCATABLE :: YSTR
-INTEGER(KIND=IDCDF_KIND)     :: IDIMLEN
-INTEGER                      :: IRESP
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)                                 :: YVARNAME
+CHARACTER(LEN=:),ALLOCATABLE                      :: YSTR
+INTEGER(KIND=CDFINT)                              :: IDIMLEN
+INTEGER                                           :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
 
@@ -1199,14 +1199,14 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
 TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA
 INTEGER,          INTENT(OUT)   :: KRESP  ! return-code
 
-INTEGER(KIND=IDCDF_KIND)     :: STATUS
-INTEGER(KIND=IDCDF_KIND)     :: INCID
-INTEGER(KIND=IDCDF_KIND)     :: IVARID
-INTEGER(KIND=IDCDF_KIND)     :: ITYPE   ! variable type
-INTEGER(KIND=IDCDF_KIND)     :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT)         :: STATUS
+INTEGER(KIND=CDFINT)         :: INCID
+INTEGER(KIND=CDFINT)         :: IVARID
+INTEGER(KIND=CDFINT)         :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)         :: IDIMS   ! number of dimensions
 CHARACTER(LEN=30)            :: YVARNAME
 CHARACTER(LEN=:),ALLOCATABLE :: YSTR
-INTEGER(KIND=IDCDF_KIND)     :: IDIMLEN
+INTEGER(KIND=CDFINT)         :: IDIMLEN
 INTEGER                      :: IDX,IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90
index b66011fac..81f32ccce 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90
@@ -13,8 +13,9 @@
 #if defined(MNH_IOCDF4)
 module mode_io_tools_nc4
 
-use modd_io_ll,  only: tfiledata
-use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf, tdim_dummy
+use modd_io_ll,     only: tfiledata
+use modd_netcdf,    only: dimcdf, iocdf, tdim_dummy
+use modd_precision, only: CDFINT
 
 use mode_field,  only: tfielddata
 use mode_msg
@@ -327,7 +328,7 @@ END SUBROUTINE IO_SET_KNOWNDIMS_NC4
 SUBROUTINE CLEANIOCDF(PIOCDF)
 TYPE(IOCDF),  POINTER :: PIOCDF
 
-INTEGER(KIND=IDCDF_KIND) :: IRESP
+INTEGER(KIND=CDFINT) :: IRESP
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','CLEANIOCDF','called')
 
@@ -355,10 +356,10 @@ END SUBROUTINE CLEANIOCDF
 
 
 SUBROUTINE FILLVDIMS(TPFILE, TPFIELD, KSHAPE, KVDIMS)
-TYPE(TFILEDATA),                      INTENT(IN)  :: TPFILE
-TYPE(TFIELDDATA),                     INTENT(IN)  :: TPFIELD
-INTEGER(KIND=IDCDF_KIND),DIMENSION(:),INTENT(IN)  :: KSHAPE
-INTEGER(KIND=IDCDF_KIND),DIMENSION(:),ALLOCATABLE,INTENT(OUT) :: KVDIMS
+TYPE(TFILEDATA),                              INTENT(IN)  :: TPFILE
+TYPE(TFIELDDATA),                             INTENT(IN)  :: TPFIELD
+INTEGER(KIND=CDFINT),DIMENSION(:),            INTENT(IN)  :: KSHAPE
+INTEGER(KIND=CDFINT),DIMENSION(:),ALLOCATABLE,INTENT(OUT) :: KVDIMS
 !
 INTEGER               :: IGRID
 INTEGER               :: JI
@@ -428,9 +429,9 @@ END SUBROUTINE FILLVDIMS
 
 
 FUNCTION GETDIMCDF(TPFILE, KLEN, HDIMNAME)
-TYPE(TFILEDATA),         INTENT(IN) :: TPFILE
-INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN
-CHARACTER(LEN=*), OPTIONAL :: HDIMNAME ! When provided don't search but
+TYPE(TFILEDATA),            INTENT(IN) :: TPFILE
+INTEGER(KIND=CDFINT),       INTENT(IN) :: KLEN
+CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HDIMNAME ! When provided don't search but
                                        ! simply create with name HDIMNAME
 TYPE(DIMCDF), POINTER   :: GETDIMCDF
 
@@ -438,9 +439,9 @@ TYPE(DIMCDF), POINTER :: TMP
 INTEGER               :: COUNT
 CHARACTER(LEN=16)     :: YSUFFIX
 CHARACTER(LEN=20)     :: YDIMNAME
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-LOGICAL                  :: GCHKLEN !Check if KLEN is valid
-TYPE(IOCDF), POINTER     :: PIOCDF
+INTEGER(KIND=CDFINT)  :: STATUS
+LOGICAL               :: GCHKLEN !Check if KLEN is valid
+TYPE(IOCDF), POINTER  :: PIOCDF
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','called')
 
@@ -494,14 +495,14 @@ END FUNCTION GETDIMCDF
 
 
 FUNCTION GETSTRDIMID(TPFILE,KLEN)
-TYPE(TFILEDATA),         INTENT(IN) :: TPFILE
-INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN
-INTEGER(KIND=IDCDF_KIND)            :: GETSTRDIMID
+TYPE(TFILEDATA),      INTENT(IN) :: TPFILE
+INTEGER(KIND=CDFINT), INTENT(IN) :: KLEN
+INTEGER(KIND=CDFINT)             :: GETSTRDIMID
 
 TYPE(DIMCDF), POINTER :: TMP
 TYPE(IOCDF),  POINTER :: TZIOCDF
 CHARACTER(LEN=16)     :: YSUFFIX
-INTEGER(KIND=IDCDF_KIND) :: STATUS
+INTEGER(KIND=CDFINT)  :: STATUS
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','GETSTRDIMID','called')
 
@@ -555,11 +556,11 @@ END FUNCTION NEWIOCDF
 
 
 subroutine io_handle_err_nc4(kstatus,hsubr,hncsubr,hvar,kresp)
-integer(kind=IDCDF_KIND),intent(in)  :: kstatus
-character(len=*),        intent(in)  :: hsubr
-character(len=*),        intent(in)  :: hncsubr
-character(len=*),        intent(in)  :: hvar
-integer, optional,       intent(out) :: kresp
+integer(kind=CDFINT), intent(in)  :: kstatus
+character(len=*),     intent(in)  :: hsubr
+character(len=*),     intent(in)  :: hncsubr
+character(len=*),     intent(in)  :: hvar
+integer, optional,    intent(out) :: kresp
 
 ! Don't stop (by default) the code when kresp is present
 ! and ensure kresp is a negative integer
diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90
index c6837768f..48a3b43be 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90
@@ -16,7 +16,8 @@
 module mode_io_write_nc4
 
 use modd_io_ll,        only: gsmonoproc, tfiledata
-use modd_netcdf,       only: dimcdf, IDCDF_KIND, iocdf
+use modd_netcdf,       only: dimcdf, iocdf
+use modd_precision,    only: CDFINT
 
 use mode_field,        only: tfielddata
 use mode_io_tools_nc4, only: cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4
@@ -48,8 +49,8 @@ END INTERFACE IO_WRITE_FIELD_NC4
 integer,parameter :: NSTRINGCHUNKSIZE = 16 !Dimension of the chunks of strings
                                            !(to limit the number of dimensions for strings)
 
-integer(kind=IDCDF_KIND),parameter :: SHUFFLE = 1 !Set to 1 for (usually) better compression
-integer(kind=IDCDF_KIND),parameter :: DEFLATE = 1
+integer(kind=CDFINT),parameter :: SHUFFLE = 1 !Set to 1 for (usually) better compression
+integer(kind=CDFINT),parameter :: DEFLATE = 1
 
 contains
 
@@ -60,16 +61,16 @@ USE MODD_CONF_n, ONLY: CSTORAGE_TYPE
 !
 USE MODE_FIELD,  ONLY: TYPEINT, TYPEREAL
 !
-TYPE(TFILEDATA),                               INTENT(IN) :: TPFILE
-TYPE(TFIELDDATA),                              INTENT(IN) :: TPFIELD
-INTEGER(KIND=IDCDF_KIND),                      INTENT(IN) :: KVARID
-LOGICAL,                                       INTENT(IN) :: OEXISTED !True if variable was already defined
-INTEGER(KIND=IDCDF_KIND),DIMENSION(:),OPTIONAL,INTENT(IN) :: KSHAPE
-CHARACTER(LEN=*),                     OPTIONAL,INTENT(IN) :: HCALENDAR
-LOGICAL,                              OPTIONAL,INTENT(IN) :: OISCOORD   ! Is a coordinate variable (->do not write coordinates attribute)
+TYPE(TFILEDATA),                              INTENT(IN) :: TPFILE
+TYPE(TFIELDDATA),                             INTENT(IN) :: TPFIELD
+INTEGER(KIND=CDFINT),                         INTENT(IN) :: KVARID
+LOGICAL,                                      INTENT(IN) :: OEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT), DIMENSION(:), OPTIONAL, INTENT(IN) :: KSHAPE
+CHARACTER(LEN=*),                   OPTIONAL, INTENT(IN) :: HCALENDAR
+LOGICAL,                            OPTIONAL, INTENT(IN) :: OISCOORD   ! Is a coordinate variable (->do not write coordinates attribute)
 !
-INTEGER(KIND=IDCDF_KIND)     :: INCID
-INTEGER(KIND=IDCDF_KIND)     :: STATUS
+INTEGER(KIND=CDFINT)         :: INCID
+INTEGER(KIND=CDFINT)         :: STATUS
 CHARACTER(LEN=:),ALLOCATABLE :: YCOORDS
 LOGICAL                      :: GISCOORD
 !
@@ -254,13 +255,13 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 REAL,                  INTENT(IN) :: PFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -277,7 +278,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
 IF (STATUS /= NF90_NOERR) THEN
    IF (TPFIELD%LTIMEDEP) THEN
      ! Get the netcdf dimensions
-     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
      ! Define the variable
 #if (MNH_REAL == 8)
      STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID)
@@ -317,13 +318,13 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 REAL,DIMENSION(:),     INTENT(IN) :: PFIELD   ! array containing the data field
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4)          :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -345,7 +346,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -390,16 +391,16 @@ INTEGER,OPTIONAL,      INTENT(IN) :: KVERTLEVEL ! Number of the vertical level (
 INTEGER,OPTIONAL,      INTENT(IN) :: KZFILE     ! Number of the Z-level splitted file
 LOGICAL,OPTIONAL,      INTENT(IN) :: OISCOORD   ! Is a coordinate variable (->do not write coordinates attribute)
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=4)         :: YSUFFIX
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-TYPE(TFIELDDATA)         :: TZFIELD
-TYPE(TFILEDATA),POINTER  :: TZFILE
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=4)                                :: YSUFFIX
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4)          :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+TYPE(TFIELDDATA)                                :: TZFIELD
+TYPE(TFILEDATA),POINTER                         :: TZFILE
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 IRESP = 0
 !
@@ -440,7 +441,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -464,7 +465,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD)
+CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT),OISCOORD=OISCOORD)
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -482,13 +483,13 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 REAL,DIMENSION(:,:,:), INTENT(IN) :: PFIELD   ! array containing the data field
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
@@ -511,7 +512,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -536,7 +537,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -554,13 +555,13 @@ TYPE(TFIELDDATA),          INTENT(IN) :: TPFIELD
 REAL,DIMENSION(:,:,:,:),   INTENT(IN) :: PFIELD   ! array containing the data field
 INTEGER,                   INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
@@ -583,7 +584,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -608,7 +609,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -626,13 +627,13 @@ TYPE(TFIELDDATA),          INTENT(IN) :: TPFIELD
 REAL,DIMENSION(:,:,:,:,:), INTENT(IN) :: PFIELD   ! array containing the data field
 INTEGER,                   INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
@@ -655,7 +656,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -680,7 +681,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -698,13 +699,13 @@ TYPE(TFIELDDATA),            INTENT(IN) :: TPFIELD
 REAL,DIMENSION(:,:,:,:,:,:), INTENT(IN) :: PFIELD   ! array containing the data field
 INTEGER,                     INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
@@ -727,7 +728,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN
@@ -752,7 +753,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -776,14 +777,14 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 INTEGER,               INTENT(IN) :: KFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
-TYPE(IOCDF), POINTER     :: TZIOCDF
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
+TYPE(IOCDF), POINTER                            :: TZIOCDF
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -800,7 +801,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
 IF (STATUS /= NF90_NOERR) THEN
    IF (TPFIELD%LTIMEDEP) THEN
      ! Get the netcdf dimensions
-     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS)
+     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS)
      ! Define the variable
 #if ( MNH_INT == 4 )
      STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT,   IVDIMS, IVARID)
@@ -845,7 +846,7 @@ END IF
 #endif
 IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) THEN
   TZIOCDF => TPFILE%TNCDIMS
-  TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z')
+  TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=CDFINT),'Z')
 END IF
 
 KRESP = IRESP
@@ -865,13 +866,13 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 INTEGER, DIMENSION(:), INTENT(IN) :: KFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -893,7 +894,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
 #if ( MNH_INT == 4 )
@@ -926,13 +927,13 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 INTEGER,DIMENSION(:,:),INTENT(IN) :: KFIELD   ! array containing the data field
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 IRESP = 0
 !
@@ -955,7 +956,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
 #if ( MNH_INT == 4 )
@@ -975,7 +976,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -992,13 +993,13 @@ TYPE(TFIELDDATA),        INTENT(IN) :: TPFIELD
 INTEGER,DIMENSION(:,:,:),INTENT(IN) :: KFIELD   ! array containing the data field
 INTEGER,                 INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 IRESP = 0
 !
@@ -1021,7 +1022,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
 #if ( MNH_INT == 4 )
@@ -1041,7 +1042,7 @@ ELSE
 END IF
 
 ! Write metadata
-CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND))
+CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=CDFINT))
 ! Write the data
 STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD)
 IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP)
@@ -1060,14 +1061,14 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 LOGICAL,               INTENT(IN) :: OFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER                  :: IFIELD
-INTEGER(KIND=IDCDF_KIND) :: STATUS
-INTEGER(KIND=IDCDF_KIND) :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
-INTEGER(KIND=IDCDF_KIND) :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE      :: IVDIMS
-INTEGER                  :: IRESP
-LOGICAL                  :: GEXISTED !True if variable was already defined
+INTEGER                                         :: IFIELD
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -1084,7 +1085,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
 IF (STATUS /= NF90_NOERR) THEN
    IF (TPFIELD%LTIMEDEP) THEN
      ! Get the netcdf dimensions
-     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS)
+     CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=CDFINT), IVDIMS)
      ! Define the variable
      ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean
      STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID)
@@ -1126,14 +1127,14 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 LOGICAL, DIMENSION(:), INTENT(IN) :: OFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER, DIMENSION(SIZE(OFIELD))                         :: IFIELD
-INTEGER(KIND=IDCDF_KIND)                                 :: STATUS
-INTEGER(KIND=IDCDF_KIND)                                 :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))                     :: YVARNAME
-INTEGER(KIND=IDCDF_KIND)                                 :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE      :: IVDIMS
-INTEGER                                                  :: IRESP
-LOGICAL                                                  :: GEXISTED !True if variable was already defined
+INTEGER, DIMENSION(SIZE(OFIELD))                :: IFIELD
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -1155,7 +1156,7 @@ IF (STATUS /= NF90_NOERR) THEN
    END IF
 
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean
@@ -1192,14 +1193,14 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 CHARACTER(LEN=*),      INTENT(IN) :: HFIELD
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND)               :: STATUS
-INTEGER(KIND=IDCDF_KIND)               :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))   :: YVARNAME
-INTEGER(KIND=IDCDF_KIND)               :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: IVDIMS
-INTEGER                                :: IRESP, ILEN
-CHARACTER(LEN=:),ALLOCATABLE           :: YFIELD
-LOGICAL                                :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                 :: STATUS
+INTEGER(KIND=CDFINT)                 :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
+INTEGER(KIND=CDFINT)                 :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(1)   :: IVDIMS
+INTEGER                              :: IRESP, ILEN
+CHARACTER(LEN=:),ALLOCATABLE         :: YFIELD
+LOGICAL                              :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -1225,7 +1226,7 @@ IF (TPFIELD%LTIMEDEP) &
 STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
 IF (STATUS /= NF90_NOERR) THEN
    ! Get the netcdf string dimensions id
-   IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=IDCDF_KIND))
+   IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=CDFINT))
    ! Define the variable
    STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID)
      IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_DEF_VAR',trim(YVARNAME))
@@ -1256,17 +1257,17 @@ TYPE(TFIELDDATA),             INTENT(IN)  :: TPFIELD
 CHARACTER(LEN=*),DIMENSION(:),INTENT(IN)  :: HFIELD
 INTEGER,                      INTENT(OUT) :: KRESP
 !
-INTEGER(KIND=IDCDF_KIND),PARAMETER :: IONE = 1
+INTEGER(KIND=CDFINT),PARAMETER :: IONE = 1
 !
-INTEGER(KIND=IDCDF_KIND)               :: STATUS
-INTEGER(KIND=IDCDF_KIND)               :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))   :: YVARNAME
-INTEGER(KIND=IDCDF_KIND)               :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(2) :: IVDIMS
-INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMSTMP
-INTEGER(KIND=IDCDF_KIND)               :: ILEN, ISIZE
-INTEGER                                :: IRESP
-LOGICAL                                :: GEXISTED !True if variable was already defined
+INTEGER(KIND=CDFINT)                            :: STATUS
+INTEGER(KIND=CDFINT)                            :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))            :: YVARNAME
+INTEGER(KIND=CDFINT)                            :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(2)              :: IVDIMS
+INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMSTMP
+INTEGER(KIND=CDFINT)                            :: ILEN, ISIZE
+INTEGER                                         :: IRESP
+LOGICAL                                         :: GEXISTED !True if variable was already defined
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -1328,17 +1329,17 @@ TYPE(TFIELDDATA),      INTENT(IN) :: TPFIELD
 TYPE (DATE_TIME),      INTENT(IN) :: TPDATA
 INTEGER,               INTENT(OUT):: KRESP
 !
-INTEGER(KIND=IDCDF_KIND)               :: STATUS
-INTEGER(KIND=IDCDF_KIND)               :: INCID
-CHARACTER(LEN=LEN(TPFIELD%CMNHNAME))   :: YVARNAME
-INTEGER(KIND=IDCDF_KIND)               :: IVARID
-INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: IVDIMS
-INTEGER                                :: IRESP
-TYPE(TFIELDDATA)                       :: TZFIELD
-CHARACTER(LEN=40)                      :: YUNITS
-LOGICAL                                :: GEXISTED !True if variable was already defined
-REAL                                   :: ZDELTATIME !Distance in seconds since reference date and time
-TYPE(DATE_TIME)                        :: TZREF
+INTEGER(KIND=CDFINT)                 :: STATUS
+INTEGER(KIND=CDFINT)                 :: INCID
+CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME
+INTEGER(KIND=CDFINT)                 :: IVARID
+INTEGER(KIND=CDFINT), DIMENSION(1)   :: IVDIMS
+INTEGER                              :: IRESP
+TYPE(TFIELDDATA)                     :: TZFIELD
+CHARACTER(LEN=40)                    :: YUNITS
+LOGICAL                              :: GEXISTED !True if variable was already defined
+REAL                                 :: ZDELTATIME !Distance in seconds since reference date and time
+TYPE(DATE_TIME)                      :: TZREF
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME))
 !
@@ -1421,7 +1422,7 @@ TZFIELD%CCOMMENT  = 'YYYYMMDD'
 STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID)
 IF (STATUS /= NF90_NOERR) THEN
    ! Get the netcdf dimensions
-   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS)
+   CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=CDFINT), IVDIMS)
 
    ! Define the variable
    STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_INT, IVDIMS, IVARID)
@@ -1491,7 +1492,7 @@ CHARACTER(LEN=:),ALLOCATABLE    :: YPROGRAM
 INTEGER                         :: IIU, IJU, IKU
 INTEGER                         :: ID, IID, IRESP
 INTEGER                         :: IMI
-INTEGER(KIND=IDCDF_KIND)        :: INCID
+INTEGER(KIND=CDFINT)            :: INCID
 LOGICAL                         :: GCHANGEMODEL
 LOGICAL,POINTER                 :: GSLEVE
 REAL,DIMENSION(:),POINTER       :: ZXHAT, ZYHAT, ZZHAT
@@ -1653,9 +1654,9 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND
   INTEGER                       :: IRESP
   INTEGER                       :: ISIZE
   INTEGER                       :: JI
-  INTEGER(KIND=IDCDF_KIND)      :: IVARID
-  INTEGER(KIND=IDCDF_KIND)      :: IVDIM
-  INTEGER(KIND=IDCDF_KIND)      :: STATUS
+  INTEGER(KIND=CDFINT)          :: IVARID
+  INTEGER(KIND=CDFINT)          :: IVDIM
+  INTEGER(KIND=CDFINT)          :: STATUS
   LOGICAL                       :: GALLOC
   REAL,DIMENSION(:),POINTER     :: ZTAB
 
@@ -1799,9 +1800,9 @@ SUBROUTINE WRITE_VER_COORD(TDIM,HLONGNAME,HSTDNAME,HCOMPNAME,PSHIFT,KBOUNDLOW,KB
   INTEGER                       :: IRESP
   INTEGER                       :: ISIZE
   INTEGER                       :: JI
-  INTEGER(KIND=IDCDF_KIND)      :: IVARID
-  INTEGER(KIND=IDCDF_KIND)      :: IVDIM
-  INTEGER(KIND=IDCDF_KIND)      :: STATUS
+  INTEGER(KIND=CDFINT)          :: IVARID
+  INTEGER(KIND=CDFINT)          :: IVDIM
+  INTEGER(KIND=CDFINT)          :: STATUS
 
   ISIZE = TDIM%LEN
   YVARNAME = TRIM(TDIM%NAME)
@@ -1881,9 +1882,9 @@ SUBROUTINE WRITE_TIME_COORD(TDIM)
   REAL                         :: ZDELTATIME
   CHARACTER(LEN=40)            :: YUNITS
   CHARACTER(LEN=:),ALLOCATABLE :: YVARNAME
-  INTEGER(KIND=IDCDF_KIND)     :: IVARID
-  INTEGER(KIND=IDCDF_KIND)     :: IVDIM
-  INTEGER(KIND=IDCDF_KIND)     :: STATUS
+  INTEGER(KIND=CDFINT)         :: IVARID
+  INTEGER(KIND=CDFINT)         :: IVDIM
+  INTEGER(KIND=CDFINT)         :: STATUS
   TYPE(DATE_TIME)              :: TZREF
 
 
@@ -1938,7 +1939,7 @@ SUBROUTINE IO_WRITE_HEADER_NC4(TPFILE)
 !
 TYPE(TFILEDATA), INTENT(IN)  :: TPFILE ! File structure
 !
-INTEGER(KIND=IDCDF_KIND)     :: ISTATUS
+INTEGER(KIND=CDFINT) :: ISTATUS
 !
 IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN
 !
@@ -1990,7 +1991,7 @@ INTEGER,PARAMETER :: YEAR=1, MONTH=2, DAY=3, HH=5, MM=6, SS=7
 CHARACTER(len=5)             :: YZONE
 CHARACTER(LEN=:),ALLOCATABLE :: YCMD, YHISTORY, YHISTORY_NEW, YHISTORY_PREV
 INTEGER                      :: ILEN_CMD, ILEN_PREV
-INTEGER(KIND=IDCDF_KIND)     :: ISTATUS
+INTEGER(KIND=CDFINT)         :: ISTATUS
 INTEGER,DIMENSION(8)         :: IDATETIME
 !
 IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN
diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90
index bd59e32da..53bfcf250 100644
--- a/src/MNH/read_chem_data_netcdf_case.f90
+++ b/src/MNH/read_chem_data_netcdf_case.f90
@@ -103,10 +103,10 @@ USE MODD_GRID_n
 USE MODD_IO_ll,      ONLY: TFILEDATA
 USE MODD_LUNIT,      ONLY: TLUOUT0
 USE MODE_MODELN_HANDLER
-USE MODD_NETCDF,     ONLY:IDCDF_KIND
 USE MODD_NSV  
 USE MODD_PARAMETERS
-USE MODD_PARAM_n,    ONLY : CTURB
+USE MODD_PARAM_n,    ONLY: CTURB
+USE MODD_PRECISION,  ONLY: CDFINT
 USE MODD_PREP_REAL
 USE MODD_TIME
 USE MODD_TIME_n
@@ -189,12 +189,12 @@ TYPE(TFILEDATA),POINTER                       :: TZFILE
 !
 ! For netcdf 
 !
-integer(kind=IDCDF_KIND) :: status, ncid, varid
-integer(kind=IDCDF_KIND) :: lat_varid, lon_varid, lev_varid, time_varid 
-integer(kind=IDCDF_KIND) :: hyam_varid, hybm_varid, p0_varid, t_varid, q_varid, ps_varid 
-integer(kind=IDCDF_KIND) :: recid, latid, lonid, levid, timeid
-integer(kind=IDCDF_KIND) :: latlen, lonlen, levlen, nrecs,timelen
-integer(kind=IDCDF_KIND) :: itimeindex, KILEN, jrec
+integer(kind=CDFINT) :: status, ncid, varid
+integer(kind=CDFINT) :: lat_varid, lon_varid, lev_varid, time_varid
+integer(kind=CDFINT) :: hyam_varid, hybm_varid, p0_varid, t_varid, q_varid, ps_varid
+integer(kind=CDFINT) :: recid, latid, lonid, levid, timeid
+integer(kind=CDFINT) :: latlen, lonlen, levlen, nrecs,timelen
+integer(kind=CDFINT) :: itimeindex, KILEN, jrec
 CHARACTER(LEN=40)                     :: recname
 REAL, DIMENSION(:), ALLOCATABLE       :: lats
 REAL, DIMENSION(:), ALLOCATABLE       :: lons 
@@ -764,7 +764,7 @@ CONTAINS
 !     #############################
       SUBROUTINE HANDLE_ERR(STATUS)
 !     #############################
-     INTEGER(KIND=IDCDF_KIND) STATUS
+     INTEGER(KIND=CDFINT) STATUS
      IF (STATUS .NE. NF90_NOERR) THEN
         PRINT *, NF90_STRERROR(STATUS)
      STOP 'Stopped'
-- 
GitLab