[Fortran2003] Problème d'interopérabilité
Salut à tous,
Je vous soumets un petit problème que je rencontre actuellement.
J'utilise les fonctionnalités d'interopérabilité 2003 de gfortran, et tout fonctionne correctement, sauf que
1- sur le bout de code suivant :
Code:
1 2 3 4 5 6 7 8
|
subroutine subroutine_toto bind(c) ! procédure fortran
end subroutine subroutine_toto
...
use, intrinsic :: ISO_C_BINDING
type(c_funptr) :: cfunptr
cfunptr = c_funloc(subroutine_toto) |
la compilation indique :
Code:
1 2
|
Error: Can't convert TYPE(_gfortran_iso_c_binding_c_funptr) to TYPE(c_funptr) |
2- et sur celui-là :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
use, intrinsic :: ISO_C_BINDING
...
subroutine subroutine_toto bind(c)
end subroutine subroutine_toto
...
interface
subroutine fonction_c(subarg) BIND(C,name="fonction_c") ! procédure C
import :: c_funptr
implicit none
type(c_funptr), value, intent(in) :: subarg
end subroutine fonction_c
end interface
...
call fonction_c(c_funloc(subroutine_toto)) |
j'ai un warning :
Code:
1 2
|
Warning: Procedure 'c_funloc' called with an implicit interface |
ce qui est contradictoire avec le use, intrinsic :: ISO_C_BINDING
Des idées ? des suggestions ?
Merci !