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

Philippe 08/01/2021: allow output files with empty variable list (useful if...

Philippe 08/01/2021: allow output files with empty variable list (useful if IO_Field_user_write is not empty)
parent cc4c522e
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 2016-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 2016-2021 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.
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
! P. Wautelet 12/03/2019: add TMAINFILE field in TFILEDATA ! P. Wautelet 12/03/2019: add TMAINFILE field in TFILEDATA
! P. Wautelet 11/02/2020: bugfix: TDADFILE was wrongly constructed for output files ! P. Wautelet 11/02/2020: bugfix: TDADFILE was wrongly constructed for output files
! S. Donnier 28/02/2020: type STREAM needed for use of ECOCLIMAP SG ! S. Donnier 28/02/2020: type STREAM needed for use of ECOCLIMAP SG
! P. Wautelet 08/01/2021: allow output files with empty variable list (useful if IO_Field_user_write is not empty)
!----------------------------------------------------------------- !-----------------------------------------------------------------
MODULE MODE_IO_MANAGE_STRUCT MODULE MODE_IO_MANAGE_STRUCT
! !
...@@ -272,24 +273,28 @@ DO IMI = 1, NMODEL ...@@ -272,24 +273,28 @@ DO IMI = 1, NMODEL
DO IPOS = 1,JPOUTVARMAX DO IPOS = 1,JPOUTVARMAX
IF (COUT_VAR(IMI,IPOS)/='') IVAR = IVAR + 1 IF (COUT_VAR(IMI,IPOS)/='') IVAR = IVAR + 1
END DO END DO
IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Bakout_struct_prepare','no fields chosen for output') IF (IVAR==0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Bakout_struct_prepare','no fields chosen for output')
ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR)) ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR))
!Determine the list of the outputs to do (by field number)
IVAR = 1 if ( ivar > 0 ) then
!Set the NFIELDLIST for the 1st output !Determine the list of the outputs to do (by field number)
!All the others will use the same list (for the moment) !Set the NFIELDLIST for the 1st output
DO IPOS = 1,JPOUTVARMAX !All the others will use the same list (for the moment)
IF (COUT_VAR(IMI,IPOS)/='') THEN IVAR = 0
CALL FIND_FIELD_ID_FROM_MNHNAME(COUT_VAR(IMI,IPOS),IFIELD,IRESP) DO IPOS = 1,JPOUTVARMAX
OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR) = IFIELD IF (COUT_VAR(IMI,IPOS)/='') THEN
IF (IRESP/=0) THEN IVAR=IVAR+1
CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) CALL FIND_FIELD_ID_FROM_MNHNAME(COUT_VAR(IMI,IPOS),IFIELD,IRESP)
!MNH is killed to prevent problems with wrong values in NFIELDLIST OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR) = IFIELD
IF (IRESP/=0) THEN
CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS)))
!MNH is killed to prevent problems with wrong values in NFIELDLIST
END IF
!
END IF END IF
! END DO
IVAR=IVAR+1 end if
END IF
END DO
!All the outputs use the same field list (for the moment) !All the outputs use the same field list (for the moment)
DO IPOS = 2,IOUT_NUMB DO IPOS = 2,IOUT_NUMB
OUT_MODEL(IMI)%TOUTPUTN(IPOS)%NFIELDLIST => OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST OUT_MODEL(IMI)%TOUTPUTN(IPOS)%NFIELDLIST => OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST
......
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