Newer
Older

ESCOBAR MUNOZ Juan
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
!MNH_LIC Copyright 2021-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
!-----------------------------------------------------------------
! Author:
! P. Wautelet 06/07/2021
! Modifications:
!
!-----------------------------------------------------------------
MODULE MODE_FINALIZE_MNH
IMPLICIT NONE
CONTAINS
SUBROUTINE FINALIZE_MNH
USE MODD_CONF, only: LCHECK, NMODEL
USE MODD_IO, only: NIO_VERB, NVERB_DEBUG
USE MODD_LUNIT, only: TLUOUT0
USE MODD_LUNIT_n, only: LUNIT_MODEL
USE MODD_MNH_SURFEX_n, only: SURFEX_DEALLO_LIST
#ifdef CPLOASIS
USE MODD_SFX_OASIS, only: LOASIS
#endif
USE MODE_INIT_ll, only: END_PARA_ll
USE MODE_IO_FILE, only: IO_File_close
USE MODE_IO_MANAGE_STRUCT, only: IO_Filelist_print
#ifdef MNH_OPENACC
USE MODE_MNH_ZWORK, only: PRINT_FLATPOOL_STATS
#endif
USE multigrid, only: mg_finalise
USE MODE_MPPDB, only: MPPDB_BARRIER
USE MODE_MSG, only: MSG_STATS
#ifdef CPLOASIS
USE MODI_SFX_OASIS_END
#endif
IMPLICIT NONE
INTEGER :: IRESP
INTEGER :: JMODEL
!Print the list of all files and some statistics on them
IF ( NIO_VERB >= NVERB_DEBUG ) CALL IO_Filelist_print()
#ifdef MNH_OPENACC
CALL PRINT_FLATPOOL_STATS()
#endif
call mg_finalise()
!Print the number of printed messages via Print_msg
CALL MSG_STATS()
!Close all the opened 'output listing' files
IF ( TLUOUT0%LOPENED ) CALL IO_File_close(TLUOUT0)
DO JMODEL = 1, NMODEL
IF ( ASSOCIATED( LUNIT_MODEL(JMODEL)%TLUOUT ) ) THEN
IF ( LUNIT_MODEL(JMODEL)%TLUOUT%LOPENED ) CALL IO_File_close( LUNIT_MODEL(JMODEL)%TLUOUT)
END IF
END DO
!Finalize the parallel libraries
IF ( LCHECK ) THEN
CALL MPPDB_BARRIER()
ELSE
CALL END_PARA_ll( IRESP )
#ifdef CPLOASIS
IF ( LOASIS ) THEN
CALL SFX_OASIS_END()
END IF
#endif
END IF
!Free SURFEX structures if necessary
CALL SURFEX_DEALLO_LIST()
END SUBROUTINE FINALIZE_MNH
END MODULE MODE_FINALIZE_MNH