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