Skip to content
Snippets Groups Projects
Commit 0dd66fcc authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 11/01/2019: NVERB_INFO->NVERB_WARNING for zero-size fields + ignore...

Philippe 11/01/2019: NVERB_INFO->NVERB_WARNING for zero-size fields + ignore them for LFI files (already done for nc4)
parent 5080f5df
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 1994-2019 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 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1. !MNH_LIC for details. version 1.
...@@ -8,6 +8,7 @@ module mode_io_write_lfi ...@@ -8,6 +8,7 @@ module mode_io_write_lfi
! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 ! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4
! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 ! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90
! Philippe Wautelet: 11/01/2019: do not write variables with a zero size
! !
USE MODD_IO_ll USE MODD_IO_ll
USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH
...@@ -100,6 +101,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD ...@@ -100,6 +101,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -143,6 +150,13 @@ TYPE(TFILEDATA),POINTER :: TZFILE ...@@ -143,6 +150,13 @@ TYPE(TFILEDATA),POINTER :: TZFILE
IRESP=0 IRESP=0
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
!
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
IF (PRESENT(KVERTLEVEL)) THEN IF (PRESENT(KVERTLEVEL)) THEN
IF (.NOT.PRESENT(KZFILE)) THEN IF (.NOT.PRESENT(KZFILE)) THEN
CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE argument not provided') CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE argument not provided')
...@@ -198,6 +212,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD ...@@ -198,6 +212,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -237,6 +257,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X4','writing '//TRIM(TPFIELD ...@@ -237,6 +257,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X4','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -276,6 +302,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X5','writing '//TRIM(TPFIELD ...@@ -276,6 +302,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X5','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -315,6 +347,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X6','writing '//TRIM(TPFIELD ...@@ -315,6 +347,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X6','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(PFIELD) ILENG = SIZE(PFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -393,6 +431,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N1','writing '//TRIM(TPFIELD ...@@ -393,6 +431,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N1','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(KFIELD) ILENG = SIZE(KFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -432,6 +476,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N2','writing '//TRIM(TPFIELD ...@@ -432,6 +476,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N2','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(KFIELD) ILENG = SIZE(KFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -471,6 +521,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N3','writing '//TRIM(TPFIELD ...@@ -471,6 +521,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N3','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(KFIELD) ILENG = SIZE(KFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
! !
IF (IRESP==0) THEN IF (IRESP==0) THEN
...@@ -558,6 +614,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L1','writing '//TRIM(TPFIELD ...@@ -558,6 +614,12 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L1','writing '//TRIM(TPFIELD
! !
ILENG = SIZE(OFIELD) ILENG = SIZE(OFIELD)
! !
IF ( ILENG==0 ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')')
KRESP = 0
RETURN
END IF
!
!Convert LOGICAL to INTEGER (LOGICAL format not supported by LFI files) !Convert LOGICAL to INTEGER (LOGICAL format not supported by LFI files)
WHERE (OFIELD) WHERE (OFIELD)
IFIELD = 1 IFIELD = 1
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files ! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files
! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages ! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages
! P. Wautelet : 11/01/2019 : NVERB_INFO->NVERB_WARNING for zero size fields
!----------------------------------------------------------------- !-----------------------------------------------------------------
#if defined(MNH_IOCDF4) #if defined(MNH_IOCDF4)
module mode_io_write_nc4 module mode_io_write_nc4
...@@ -337,7 +338,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -337,7 +338,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -432,7 +433,7 @@ CALL CLEANMNHNAME(TZFIELD%CMNHNAME,YVARNAME) ...@@ -432,7 +433,7 @@ CALL CLEANMNHNAME(TZFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -503,7 +504,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -503,7 +504,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -575,7 +576,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -575,7 +576,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -647,7 +648,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -647,7 +648,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -719,7 +720,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -719,7 +720,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(PFIELD)==0) THEN IF (SIZE(PFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -885,7 +886,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -885,7 +886,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(KFIELD)==0) THEN IF (SIZE(KFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -947,7 +948,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -947,7 +948,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(KFIELD)==0) THEN IF (SIZE(KFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -1013,7 +1014,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -1013,7 +1014,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(KFIELD)==0) THEN IF (SIZE(KFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
...@@ -1147,7 +1148,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) ...@@ -1147,7 +1148,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME)
STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
IF (STATUS /= NF90_NOERR) THEN IF (STATUS /= NF90_NOERR) THEN
IF (SIZE(OFIELD)==0) THEN IF (SIZE(OFIELD)==0) THEN
CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')')
KRESP = 0 KRESP = 0
RETURN RETURN
END IF END IF
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment