diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 112f1959d97bad7ba1297fd71b7165ae5e9414fc..d549bcc0e3694c3897ef6b96c7f1360f264bc705 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -10,7 +10,8 @@ ! $Revision$ ! $Date$ !Correction : -! D.Gazen : avril 2016 change error message +! D.Gazen : avril 2016 change error message +! P. Wautelet : may 2016: use NetCDF Fortran module !----------------------------------------------------------------- !----------------------------------------------------------------- @@ -137,7 +138,7 @@ USE MODE_IO_ll, ONLY : OPEN_ll,GCONFIO USE MODD_CONFZ,ONLY : NB_PROCIO_R,NB_PROCIO_W !JUANZ #if defined(MNH_IOCDF4) -USE MODD_NETCDF +USE MODD_NETCDF, ONLY:IDCDF_KIND USE MODE_NETCDF #endif CHARACTER(LEN=*),INTENT(IN) ::HFILEM ! name of the file. @@ -256,26 +257,26 @@ IF (ISP == TZFDLFI%OWNER) THEN IF (HACTION == 'READ' .AND. .NOT. LLFIREAD) THEN !! Open NetCDF File for reading TZFDLFI%CDF => NEWIOCDF() - INCERR = NF_OPEN(ADJUSTL(TRIM(HFILEM))//".nc4", NF_NOWRITE, TZFDLFI%CDF%NCID) - IF (INCERR /= NF_NOERR) THEN - !PRINT *, 'FMOPEN_ll, NF_OPEN error : ', NF_STRERROR(INCERR) - PRINT *, 'Error in opening (FMOPEN_ll/NF_OPEN) ', TRIM(HFILEM)//'.nc4', ' : ', NF_STRERROR(IRESOU) + INCERR = NF90_OPEN(ADJUSTL(TRIM(HFILEM))//".nc4", NF90_NOWRITE, TZFDLFI%CDF%NCID) + IF (INCERR /= NF90_NOERR) THEN + !PRINT *, 'FMOPEN_ll, NF90_OPEN error : ', NF90_STRERROR(INCERR) + PRINT *, 'Error in opening (FMOPEN_ll/NF90_OPEN) ', TRIM(HFILEM)//'.nc4', ' : ', NF90_STRERROR(INCERR) STOP END IF - PRINT *, 'NF_OPEN: ', TRIM(HFILEM)//'.nc4' + PRINT *, 'NF90_OPEN: ', TRIM(HFILEM)//'.nc4' END IF IF (HACTION == 'WRITE') THEN ! HACTION == 'WRITE' TZFDLFI%CDF => NEWIOCDF() - INCERR = NF_CREATE(ADJUSTL(TRIM(HFILEM))//".nc4", & - &IOR(NF_CLOBBER,NF_NETCDF4), TZFDLFI%CDF%NCID) - IF (INCERR /= NF_NOERR) THEN - !PRINT *, 'FMOPEN_ll, NF_CREATE error : ', NF_STRERROR(INCERR) - PRINT *, 'Error in opening (FMOPEN_ll/NF_CREATE) ', TRIM(HFILEM)//'.nc4', ' : ', NF_STRERROR(IRESOU) + INCERR = NF90_CREATE(ADJUSTL(TRIM(HFILEM))//".nc4", & + &IOR(NF90_CLOBBER,NF90_NETCDF4), TZFDLFI%CDF%NCID) + IF (INCERR /= NF90_NOERR) THEN + !PRINT *, 'FMOPEN_ll, NF90_CREATE error : ', NF90_STRERROR(INCERR) + PRINT *, 'Error in opening (FMOPEN_ll/NF90_CREATE) ', TRIM(HFILEM)//'.nc4', ' : ', NF90_STRERROR(INCERR) STOP END IF - PRINT *, 'NF_CREATE: ', TRIM(HFILEM)//'.nc4' + PRINT *, 'NF90_CREATE: ', TRIM(HFILEM)//'.nc4' END IF END IF #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 06e981263ae60c6c8d825a95ba5b89485c810ca9..b8da82a4da9a0579696d845aa61984fdf03bfb6e 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -19,8 +19,9 @@ ! Juan 22/05/2008: bug mode SPECIFIC in OPEN_ll ! Juan 05/11/2009: allow JPMAX_UNIT=48 open files ! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL -! Philippe 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 +! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 ! D.Gazen : avril 2016 change error message +! P. Wautelet : may 2016: use NetCDF Fortran module ! MODULE MODE_IO_ll @@ -223,7 +224,7 @@ CONTAINS KMELEV,& OPARALLELIO) #if defined(MNH_IOCDF4) - USE MODD_NETCDF + USE MODD_NETCDF, ONLY:IDCDF_KIND USE MODE_NETCDF #endif USE MODD_IO_ll @@ -662,29 +663,29 @@ CONTAINS IF (YACTION == 'READ' .AND. .NOT. LLFIREAD) THEN ! Open NetCDF File for reading TZFD_IOZ%CDF => NEWIOCDF() - IOSCDF = NF_OPEN(TRIM(FILE)//cfile//".nc4", NF_NOWRITE, TZFD_IOZ%CDF%NCID) - IF (IOSCDF /= NF_NOERR) THEN - PRINT *, 'Error in opening (NF_OPEN) ', TRIM(FILE)//cfile//'.nc4', ' : ', NF_STRERROR(IOS) + IOSCDF = NF90_OPEN(TRIM(FILE)//cfile//".nc4", NF90_NOWRITE, TZFD_IOZ%CDF%NCID) + IF (IOSCDF /= NF90_NOERR) THEN + PRINT *, 'Error in opening (NF90_OPEN) ', TRIM(FILE)//cfile//'.nc4', ' : ', NF90_STRERROR(IOSCDF) STOP ELSE IOS = 0 END IF - PRINT *, 'NF_OPEN(IO_ZSPLIT): ',TRIM(FILE)//cfile//'.nc4' + PRINT *, 'NF90_OPEN(IO_ZSPLIT): ',TRIM(FILE)//cfile//'.nc4' END IF IF (YACTION == 'WRITE') THEN ! YACTION == 'WRITE' ! Create NetCDF File for writing TZFD_IOZ%CDF => NEWIOCDF() - IOSCDF = NF_CREATE(TRIM(FILE)//cfile//".nc4", & - &IOR(NF_CLOBBER,NF_NETCDF4), TZFD_IOZ%CDF%NCID) - IF (IOSCDF /= NF_NOERR) THEN - PRINT *, 'Error in opening (NF_CREATE) ', TRIM(FILE)//cfile//'.nc4', ' : ', NF_STRERROR(IOS) + IOSCDF = NF90_CREATE(TRIM(FILE)//cfile//".nc4", & + &IOR(NF90_CLOBBER,NF90_NETCDF4), TZFD_IOZ%CDF%NCID) + IF (IOSCDF /= NF90_NOERR) THEN + PRINT *, 'Error in opening (NF90_CREATE) ', TRIM(FILE)//cfile//'.nc4', ' : ', NF90_STRERROR(IOSCDF) STOP ELSE IOS = 0 END IF - PRINT *, 'NF_CREATE(IO_ZSPLIT): ',TRIM(FILE)//cfile//'.nc4' + PRINT *, 'NF90_CREATE(IO_ZSPLIT): ',TRIM(FILE)//cfile//'.nc4' END IF END IF #endif diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 8a98a298dbb861027bec45c5cbee21b394bd26c3..3dd23621ff0038058ee87baf0ea8b2601c931e71 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -1,6 +1,16 @@ +!MNH_LIC Copyright 1994-2016 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet : may 2016: use NetCDF Fortran module +!----------------------------------------------------------------- +!----------------------------------------------------------------- #if defined(MNH_IOCDF4) MODULE MODE_NETCDF USE MODD_NETCDF +USE NETCDF IMPLICIT NONE @@ -20,8 +30,8 @@ INTERFACE NCREAD & NCREADC0 END INTERFACE NCREAD -! Public from netcdf.inc : -!PUBLIC NF_OPEN,NF_CREATE,NF_NOWRITE,NF_CLOBBER,NF_NETCDF4,NF_NOERR,NF_STRERROR +! Public from module netcdf +PUBLIC NF90_OPEN,NF90_CREATE,NF90_NOWRITE,NF90_CLOBBER,NF90_NETCDF4,NF90_NOERR,NF90_STRERROR ! Public from this module : PUBLIC NEWIOCDF,CLEANIOCDF,NCWRIT,NCREAD @@ -55,9 +65,9 @@ TYPE(IOCDF), POINTER :: PIOCDF INTEGER(KIND=IDCDF_KIND) :: IRESP ! Close Netcdf File -IRESP = NF_CLOSE(PIOCDF%NCID) -IF (IRESP /= NF_NOERR) THEN - PRINT *, 'CLEANIOCDF, NF_CLOSE error : ', NF_STRERROR(IRESP) +IRESP = NF90_CLOSE(PIOCDF%NCID) +IF (IRESP /= NF90_NOERR) THEN + PRINT *, 'CLEANIOCDF, NF90_CLOSE error : ', NF90_STRERROR(IRESP) END IF ! Clean DIMLIST and DIMSTR @@ -92,8 +102,8 @@ INTEGER, OPTIONAL, INTENT(OUT) :: kresp ! Don't stop the code when kresp is present ! and ensure kresp is a negative integer -IF (status /= NF_NOERR) THEN - PRINT *, 'NETCDF ERROR in '//TRIM(text), line, NF_STRERROR(status) +IF (status /= NF90_NOERR) THEN + PRINT *, 'NETCDF ERROR in '//TRIM(text), line, NF90_STRERROR(status) IF (PRESENT(kresp)) THEN IF (status < 0) THEN kresp = status @@ -130,17 +140,14 @@ INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KVARID TYPE(FMHEADER), INTENT(IN) :: TPFMH INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND),PARAMETER :: IONE = 1 ! GRID attribute definition -STATUS = NF_PUT_ATT_INT(KNCID, KVARID, 'GRID', & - &NF_INT, IONE, INT(TPFMH%GRID,KIND=IDCDF_KIND)) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'WRITATTR [NF_PUT_ATT_INT]') +STATUS = NF90_PUT_ATT(KNCID, KVARID, 'GRID', TPFMH%GRID) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'WRITATTR [NF90_PUT_ATT]') ! COMMENT attribute definition -STATUS = NF_PUT_ATT_TEXT(KNCID, KVARID,'COMMENT', & - &INT(LEN_TRIM(TPFMH%COMMENT),KIND=IDCDF_KIND), TPFMH%COMMENT) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'WRITATTR [NF_PUT_ATT_TEXT]') +STATUS = NF90_PUT_ATT(KNCID, KVARID,'COMMENT', TRIM(TPFMH%COMMENT)) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'WRITATTR [NF90_PUT_ATT]') END SUBROUTINE WRITATTR @@ -183,8 +190,8 @@ IF (.NOT. ASSOCIATED(TMP)) THEN ALLOCATE(TMP) TMP%NAME = YDIMNAME TMP%LEN = KLEN - STATUS = NF_DEF_DIM(PIOCDF%NCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETDIMCDF[NF_DEF_DIM]') + STATUS = NF90_DEF_DIM(PIOCDF%NCID, TMP%NAME, KLEN, TMP%ID) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETDIMCDF[NF90_DEF_DIM]') NULLIFY(TMP%NEXT) TMP%NEXT => PIOCDF%DIMLIST PIOCDF%DIMLIST => TMP @@ -223,8 +230,8 @@ IF (.NOT. ASSOCIATED(TMP)) THEN ALLOCATE(TMP) TMP%NAME = YDIMNAME TMP%LEN = KLEN - STATUS = NF_DEF_DIM(PIOCDF%NCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETSTRDIMID[NF_DEF_DIM]') + STATUS = NF90_DEF_DIM(PIOCDF%NCID, TMP%NAME, KLEN, TMP%ID) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETSTRDIMID[NF90_DEF_DIM]') NULLIFY(TMP%NEXT) TMP%NEXT => PIOCDF%DIMSTR PIOCDF%DIMSTR => TMP @@ -315,7 +322,6 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS INTEGER(KIND=IDCDF_KIND) :: INCID CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND),PARAMETER :: IZERO = 0 INTEGER :: IRESP IRESP = 0 @@ -327,19 +333,19 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Define the scalar variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, IZERO, IZERO, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX0[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX0[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX0 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX0[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX0[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX0 @@ -369,22 +375,22 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX1[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX1[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX1 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX1[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX1[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX1 @@ -419,18 +425,18 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF90_DEF_VAR]') IF (LDEFLATEX2) THEN ! Compress the variable with deflate level 2 - STATUS = NF_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, DEFLATE_LEVEL) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF_DEF_VAR_DEFLATE]') + STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, DEFLATE_LEVEL) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF90_DEF_VAR_DEFLATE]') END IF CALL WRITATTR(INCID, IVARID, TPFMH) ELSE @@ -438,8 +444,8 @@ ELSE END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX2[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX2 @@ -469,22 +475,22 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX3[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX3[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX3 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX3[NF_PUT_VAR_DOUBLE] '//TRIM(HVARNAME),IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX3[NF90_PUT_VAR] '//TRIM(HVARNAME),IRESP) KRESP = IRESP END SUBROUTINE NCWRITX3 @@ -514,22 +520,22 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX4[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX4[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX4 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX4[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX4[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX4 @@ -559,22 +565,22 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX5[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX5[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX5 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX5[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX5[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX5 @@ -604,22 +610,22 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_DOUBLE, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX6[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX6[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITX6 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_DOUBLE(INCID, IVARID, PFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX6[NF_PUT_VAR_DOUBLE]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITX6[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITX6 @@ -639,7 +645,6 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS INTEGER(KIND=IDCDF_KIND) :: INCID CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND),PARAMETER :: IZERO = 0 INTEGER :: IRESP IRESP = 0 @@ -651,28 +656,23 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Define the scalar variable #ifndef MNH_INT8 - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, IZERO, IZERO, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVARID) #else - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, IZERO, IZERO, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVARID) #endif - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF_DEF_VAR]') + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITN0 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -#ifndef MNH_INT8 -STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF_PUT_VAR_INT]',IRESP) -#else -STATUS = NF_PUT_VAR_INT64(INCID, IVARID, KFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF_PUT_VAR_INT64]',IRESP) -#endif +STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF90_PUT_VAR]',IRESP) ! ! Use IMAX, JMAX, KMAX to define DIMX, DIMY, DIMZ ! /!\ Can only work if IMAX, JMAX or KMAX are written before any array @@ -717,30 +717,25 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) -! Define the variable + ! Define the variable #ifndef MNH_INT8 - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) #else - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF_DEF_VAR] '//TRIM(YVARNAME)) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF90_DEF_VAR] '//TRIM(YVARNAME)) CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITN1 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -#ifndef MNH_INT8 -STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF_PUT_VAR_INT]',IRESP) -#else -STATUS = NF_PUT_VAR_INT64(INCID, IVARID, KFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF_PUT_VAR_INT64]',IRESP) -#endif +STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITN1 @@ -770,31 +765,26 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable #ifndef MNH_INT8 - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) #else - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF_DEF_VAR]') + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITN2 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -#ifndef MNH_INT8 -STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF_PUT_VAR_INT]',IRESP) -#else -STATUS = NF_PUT_VAR_INT64(INCID, IVARID, KFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF_PUT_VAR_INT64]',IRESP) -#endif +STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITN2 @@ -831,21 +821,21 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id IVDIMS(1) = GETSTRDIMID(PZCDF, INT(LEN(YSTR),KIND=IDCDF_KIND)) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_CHAR, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC0[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC0[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITC0 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VAR_TEXT(INCID, IVARID, YSTR) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC0[NF_PUT_VAR_TEXT]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, YSTR) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC0[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITC0 @@ -868,7 +858,6 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: ITMP INTEGER :: IRESP INTEGER(KIND=IDCDF_KIND) :: ILEN INTEGER(KIND=IDCDF_KIND) :: ISIZE -INTEGER(KIND=IDCDF_KIND),PARAMETER :: IONE=1 IRESP = 0 ILEN = LEN(HFIELD) @@ -882,23 +871,23 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! The variable should not already exist but who knows ? -STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN +STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions ID IVDIMS(1) = GETSTRDIMID(PZCDF,ILEN) CALL FILLVDIMS(PZCDF, (/ISIZE/), HDIR, ITMP) IVDIMS(2) = ITMP(1) ! Define the variable - STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_CHAR, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC1[NF_DEF_VAR]') + STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) + IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC1[NF90_DEF_VAR]') CALL WRITATTR(INCID, IVARID, TPFMH) ELSE PRINT *,'NCWRITC1 : ', TRIM(YVARNAME), ' already defined !' END IF ! Write the data -STATUS = NF_PUT_VARA_TEXT(INCID, IVARID, (/IONE,IONE/),(/ILEN,ISIZE/), HFIELD) -IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC1[NF_PUT_VARA_TEXT]',IRESP) +STATUS = NF90_PUT_VAR(INCID, IVARID, HFIELD) +IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITC1[NF90_PUT_VAR]',IRESP) KRESP = IRESP END SUBROUTINE NCWRITC1 @@ -919,14 +908,14 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS INTEGER(KIND=IDCDF_KIND) :: ICOMLEN ! Read variables attributes (GRID and COMMENT) -STATUS = NF_GET_ATT_INT(KNCID, KVARID, 'GRID', TPFMH%GRID) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'READATTR[NF_GET_ATT_INT] '//TRIM(HVAR)) -STATUS = NF_INQ_ATTLEN(KNCID, KVARID, 'COMMENT', ICOMLEN) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'READATTR[NF_INQ_ATTLEN] '//TRIM(HVAR)) +STATUS = NF90_GET_ATT(KNCID, KVARID, 'GRID', TPFMH%GRID) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'READATTR[NF90_GET_ATT_INT] '//TRIM(HVAR)) +STATUS = NF90_INQUIRE_ATTRIBUTE(KNCID, KVARID, 'COMMENT', LEN=ICOMLEN) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'READATTR[NF90_INQUIRE_ATTRIBUTE] '//TRIM(HVAR)) IF (ICOMLEN <= JPXKRK) THEN TPFMH%COMLEN = ICOMLEN - STATUS = NF_GET_ATT_TEXT(KNCID, KVARID, 'COMMENT', TPFMH%COMMENT) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'READATTR[NF_GET_ATT_TEXT] '//TRIM(HVAR)) + STATUS = NF90_GET_ATT(KNCID, KVARID, 'COMMENT', TPFMH%COMMENT) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'READATTR[NF90_GET_ATT] '//TRIM(HVAR)) ELSE PRINT *, 'READATTR : '//TRIM(HVAR)//' COMMENT attribute ignored because too long.' TPFMH%COMLEN = 0 @@ -956,21 +945,19 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX0[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX0[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX0[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX0[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX0[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == 0 .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == 0 .AND. ITYPE == NF90_DOUBLE) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX0[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX0[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1012,32 +999,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX1[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX1[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX1[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX1[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1083,32 +1066,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX2[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX2[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX2[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX2[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1154,32 +1133,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX3[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX3[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX3[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX3[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1225,32 +1200,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX4[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX4[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX4[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX4[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1296,32 +1267,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX5[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX5[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX5[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX5[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1367,32 +1334,28 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX6[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX6[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADX6[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF_DOUBLE) THEN +IF (IDIMS == SIZE(SHAPE(PFIELD)) .AND. ITYPE == NF90_DOUBLE) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(PFIELD)) THEN ! Read variable - STATUS = NF_GET_VAR_DOUBLE(KNCID, IVARID, PFIELD) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF_GET_VAR_DOUBLE] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, PFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADX6[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1434,29 +1397,23 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN0[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN0[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN0[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN0[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN0[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) #ifndef MNH_INT8 -IF (IDIMS == 0 .AND. ITYPE == NF_INT) THEN +IF (IDIMS == 0 .AND. ITYPE == NF90_INT) THEN #else -IF (IDIMS == 0 .AND. ITYPE == NF_INT64) THEN +IF (IDIMS == 0 .AND. ITYPE == NF90_INT64) THEN #endif -! Read variable -#ifndef MNH_INT8 - STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) -#else - STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) -#endif - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN0[NF_GET_VAR_INT] '//TRIM(YVARNAME),IRESP) + ! Read variable + STATUS = NF90_GET_VAR(KNCID, IVARID, KFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN0[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1498,40 +1455,32 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN1[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN1[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN1[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) #ifndef MNH_INT8 -IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT) THEN +IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF90_INT) THEN #else -IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN +IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF90_INT64) THEN #endif ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(KFIELD)) THEN ! Read variable -#ifndef MNH_INT8 - STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) -#else - STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) -#endif - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF_GET_VAR_INT] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, KFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN1[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1577,40 +1526,32 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN2[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN2[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN2[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) #ifndef MNH_INT8 -IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT) THEN +IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF90_INT) THEN #else -IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN +IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF90_INT64) THEN #endif -! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) + ! Check size of variable before reading IVARSIZE = 1 DO II=1,IDIMS - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(II),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(II), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IVARSIZE = IVARSIZE*IDIMLEN END DO IF (IVARSIZE == SIZE(KFIELD)) THEN ! Read variable -#ifndef MNH_INT8 - STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) -#else - STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) -#endif - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF_GET_VAR_INT] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, KFIELD) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADN2[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read variables attributes (GRID and COMMENT) @@ -1657,28 +1598,24 @@ YVARNAME = str_replace(HVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') ! Get variable ID, NDIMS and TYPE -STATUS = NF_INQ_VARID(KNCID, YVARNAME, IVARID) -IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF_INQ_VARID] '//TRIM(YVARNAME),IRESP) +STATUS = NF90_INQ_VARID(KNCID, YVARNAME, IVARID) +IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF90_INQ_VARID] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF -STATUS = NF_INQ_VARNDIMS(KNCID, IVARID, IDIMS) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADC0[NF_INQ_VARNDIMS] '//TRIM(YVARNAME)) -STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) -IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADC0[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) +STATUS = NF90_INQUIRE_VARIABLE(KNCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) +IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADC0[NF90_INQUIRE_VARIABLE] '//TRIM(YVARNAME)) -IF (IDIMS == 1 .AND. ITYPE == NF_CHAR) THEN +IF (IDIMS == 1 .AND. ITYPE == NF90_CHAR) THEN ! Check size of variable before reading - STATUS = NF_INQ_VARDIMID(KNCID, IVARID, IVDIMS) - IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF_INQ_VARDIMID] '//TRIM(YVARNAME)) - STATUS = NF_INQ_DIMLEN(KNCID,IVDIMS(1),IDIMLEN) - IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF_INQ_DIMLEN] '//TRIM(YVARNAME)) + STATUS = NF90_INQUIRE_DIMENSION(KNCID, IVDIMS(1), LEN=IDIMLEN) + IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF90_INQUIRE_DIMENSION] '//TRIM(YVARNAME)) IF (IDIMLEN <= LEN(YSTR)) THEN ! Read variable - STATUS = NF_GET_VAR_TEXT(KNCID, IVARID, YSTR) - IF (STATUS /= NF_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF_GET_VAR_TEXT] '//TRIM(YVARNAME),IRESP) + STATUS = NF90_GET_VAR(KNCID, IVARID, YSTR) + IF (STATUS /= NF90_NOERR) THEN + CALL HANDLE_ERR(status,__LINE__,'NCREADC0[NF90_GET_VAR] '//TRIM(YVARNAME),IRESP) GOTO 1000 END IF IF (LEN_TRIM(YSTR) > LEN(HFIELD)) PRINT *, 'NCDREADC0 : '//TRIM(YVARNAME)//' truncated !!' diff --git a/src/Makefile b/src/Makefile index d2d234d361a5036d0dc55ade64dfe3f6635a2af5..4cac9720e7bcfb06f54ab195ff0fed1c71d4196d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -345,7 +345,7 @@ $(CDF_INC) : cd ${DIR_HDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --with-zlib=no \ FC="$(FC)" FCFLAGS="$(HDF_OPT)" CPPFLAGS="-DpgiFortran" ${HDF_CONF} && make && make install && $(MAKE) -j 1 clean cd ${DIR_CDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --disable-cxx --enable-f90 --disable-dap \ - FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" CPPFLAGS="-DpgiFortran ${INC_NETCDF}" ${CDF_CONF} LDFLAGS=" -L${CDF_PATH}/lib64" && make && make install && $(MAKE) -j 1 clean + FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" CPPFLAGS="-DpgiFortran ${INC_NETCDF}" ${CDF_CONF} LDFLAGS=" -L${CDF_PATH}/lib64" && make && make install && $(MAKE) -j 1 clean cleanmaster : cleancdf cleancdf :