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 :
la compilation indique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
2- et sur celui-là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error: Can't convert TYPE(_gfortran_iso_c_binding_c_funptr) to TYPE(c_funptr)
j'ai un warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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))
ce qui est contradictoire avec le use, intrinsic :: ISO_C_BINDING
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Warning: Procedure 'c_funloc' called with an implicit interface
Des idées ? des suggestions ?
Merci !
Partager