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 : 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)
la compilation indique :
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)
2- et sur celui-là :
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))
j'ai un warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !