[2427] | 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 |
---|