1 | #include "xios_fortran_prefix.hpp" |
---|
2 | |
---|
3 | MODULE 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 | |
---|
46 | END MODULE IMEM_CHECKER |
---|