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