2011-05-04 3 views
2

Le code Fortran suivant:aucun Implicite - Type explicite - Interface abstraite - Erreur

module Mod 
    implicit none 

    TYPE derivedtype 
     procedure(procInterface),POINTER,PASS::f 
    END TYPE derivedtype 

    ABSTRACT INTERFACE   
     subroutine procInterface(A) 
      import derivedtype    
      implicit none 
      class(derivedtype),intent(inout)::A 
     end subroutine 
    END INTERFACE 

end module Mod 

produit une erreur si compilé avec ifort:

erreur # 6404: Ce nom ne dispose pas d'un type et doit avoir un type explicite. [F]

Pourquoi? Est-ce un bug?

+0

À quelle ligne fait-il référence? – eriktous

+0

Il fait référence à "procédure (procInterface), POINTER, PASS :: f" –

Répondre

1

Il s'agit probablement d'un compilateur à court terme. Les compilateurs Cray et IBM peuvent aussi compiler ce module spécifique, comme gfortran 4.6.1. En fonction de ce que vous voulez réaliser, vous pourriez peut-être utiliser des procédures génériques liées au type à la place, mais je ne suis pas sûr, si cela serait mieux supporté par le compilateur Intel.

Questions connexes