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

Philippe 03/05/2018: IO: check if NAM_BACKUP namelist is present and that the...

Philippe 03/05/2018: IO: check if NAM_BACKUP namelist is present and that the list of valid backups is not empty
parent a51b76fa
No related branches found
No related tags found
No related merge requests found
......@@ -141,6 +141,11 @@ DO IMI = 1, NMODEL
CALL FIND_REMOVE_DUPLICATES(IBAK_NUMB,IBAK_STEP)
CALL FIND_REMOVE_DUPLICATES(IOUT_NUMB,IOUT_STEP)
!
!* Find and remove out of time range entries
!
CALL FIND_REMOVE_OUTOFTIMERANGE(IBAK_NUMB,IBAK_STEP)
CALL FIND_REMOVE_OUTOFTIMERANGE(IOUT_NUMB,IOUT_STEP)
!
!* Sort entries
!
CALL SORT_ENTRIES(IBAK_NUMB,IBAK_STEP)
......@@ -154,6 +159,8 @@ DO IMI = 1, NMODEL
IBAK_NUMB = IBAK_NUMB + 1
END IF
END DO
IF (IBAK_NUMB==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_PREPARE_BAKOUT_STRUCT','no (valid) backup time')
!
IOUT_NUMB = 0
DO JOUT = 1,SIZE(IOUT_STEP)
IF (IOUT_STEP(JOUT) >= 0) THEN
......@@ -426,6 +433,21 @@ SUBROUTINE FIND_REMOVE_DUPLICATES(KNUMB,KSTEPS)
END SUBROUTINE FIND_REMOVE_DUPLICATES
!
!#########################################################################
SUBROUTINE FIND_REMOVE_OUTOFTIMERANGE(KNUMB,KSTEPS)
!#########################################################################
!
INTEGER, INTENT(IN) :: KNUMB
INTEGER,DIMENSION(:), INTENT(INOUT) :: KSTEPS
!
DO JOUT = 1,KNUMB
IF ( KSTEPS(JOUT) < 1 .OR. KSTEPS(JOUT) > ISTEP_MAX ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','FIND_REMOVE_OUTOFTIMERANGE','found backup/output step outside of time range')
KSTEPS(JOUT) = NNEGUNDEF
END IF
END DO
END SUBROUTINE FIND_REMOVE_OUTOFTIMERANGE
!
!#########################################################################
SUBROUTINE SORT_ENTRIES(KNUMB,KSTEPS)
!#########################################################################
!
......
......@@ -540,7 +540,11 @@ IF (KMI == 1) THEN
READ(UNIT=ILUSEG,NML=NAM_BACKUP)
ELSE
CALL POSNAM(ILUSEG,'NAM_FMOUT',GFOUND)
IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
IF (GFOUND) THEN
CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT')
ELSE
CALL PRINT_MSG(NVERB_ERROR,'IO','READ_EXSEG_n','namelist NAM_BACKUP not found')
END IF
END IF
CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT)
IF (GFOUND) THEN
......
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