source: XIOS3/branches/xios-3.0-beta/src/interface/fortran/imem_checker.F90 @ 2427

Last change on this file since 2427 was 2427, checked in by jderouillat, 17 months ago

Backport the system to log the memory consumption (commit ID [2418-2420,2425-2426])

File size: 1.5 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IMEM_CHECKER
4   USE, INTRINSIC :: ISO_C_BINDING
5   
6   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
7     
8      SUBROUTINE cxios_mem_checker_get(mem) BIND(C)
9         USE ISO_C_BINDING
10         REAL     (kind = C_DOUBLE), VALUE        :: mem
11      END SUBROUTINE cxios_mem_checker_get
12
13      SUBROUTINE cxios_mem_checker_log(memid, memid_size, finalize) BIND(C)
14         USE ISO_C_BINDING
15         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: memid
16         INTEGER  (kind = C_INT)   , VALUE        :: memid_size
17         LOGICAL  (kind = C_BOOL)                 :: finalize
18      END SUBROUTINE cxios_mem_checker_log
19       
20   END INTERFACE
21
22   CONTAINS ! Fonctions disponibles pour les utilisateurs.
23
24   FUNCTION xios(mem_checker_get)() RESULT(mem)
25      IMPLICIT NONE
26      REAL                                       :: mem
27      REAL(KIND=C_DOUBLE)                        :: mem_
28     
29      CALL cxios_mem_checker_get(mem_)
30      mem=mem_
31   END FUNCTION xios(mem_checker_get)
32 
33   SUBROUTINE xios(mem_checker_log)(mem_id, finalize)
34   USE ISO_C_BINDING
35      IMPLICIT NONE
36      CHARACTER(len = *) , INTENT(IN) :: mem_id
37      LOGICAL, OPTIONAL,INTENT(IN)    :: finalize
38      LOGICAL (KIND=C_BOOL)           :: finalize_               
39
40      finalize_=.FALSE.
41      IF (PRESENT(finalize)) finalize_ = finalize
42      CALL cxios_mem_checker_log(mem_id, len(mem_id), finalize_)
43
44   END SUBROUTINE xios(mem_checker_log)
45
46END MODULE IMEM_CHECKER
Note: See TracBrowser for help on using the repository browser.