Utilisation correcte des modules, fonctions et sous-routines en Fortran

J'ai récemment appris à propos de l'interface des blocs lors de l'ajout d'une fonction de mon programme Fortran. Tout fonctionne belle et bien, mais maintenant je veux ajouter une deuxième fonction dans le bloc d'interface.

Voici mon bloc d'interface:

interface
    function correctNeighLabel (A,i,j,k)
    integer :: correctNeighLabel
    integer, intent(in) :: i,j,k
    integer,dimension(:,:,:),intent(inout) :: A
    end function

    function correctNeighArray (B,d,e,f)
        character :: correctNeighArray
    integer, intent(in) :: d,e,f
    character, dimension(:,:,:),intent(inout) :: B
    end function
end interface

Il me semble que cela peut ne pas être la meilleure option.

J'ai regardé dans les sous-routines, mais je ne suis pas très convaincu que c'est la bonne solution. Ce que je suis en train de faire est relativement simple, et j'ai besoin de passer des arguments à la sous-routine, mais tous les sous-programmes, j'ai vu sont a) compliqué (c'est à dire trop compliqué pour une fonction), et b) ne prennent pas les arguments. Ils se comportent comme s'ils manipuler les variables sans leur passé pour eux.

Je n'ai pas vraiment regardé dans les modules correctement, mais de ce que j'ai vu c'est pas la bonne chose à utiliser.

Qui dois-je utiliser quand et comment dois-je faire mieux?

  • En Fortran, c'est de 'caractère' non 'char'
InformationsquelleAutor Pureferret | 2011-12-07