Commande INTERFAC TO SUBROUTINE (Vis. Fort.) à remplacer sous Linux
Commande INTERFAC TO SUBROUTINE (Vis. Fort.) à remplacer sous Linux - Divers - Programmation
MarshPosté le 29-10-2004 à 14:56:10
Bonjour,
Je suis en train de reprendre un travail de programmation réalisé sous visual fortran. Il contient des routines écrites en Fortran90 et en C. Les subroutines appelées par le Fortran et écrites en C nécessitent une interface rédigée dans un fichier à part sous la forme :
INTERFACE TO SUBROUTINE masubroutine [C,ALIAS:'_masubroutine'] (alpha,beta) INTEGER*4 alpha INTEGER*4 beta END
Avec cette structure, les fichiers fortran et C++ ne m'apparaissent pas modifiés. Notamment, il n'y a pas de :
extern "C" void masubroutine(int*,int*);
avant de définir les fonctions écrites en C.
Cette structure d'écriture est particulière à Microsoft. Je voudrais ainsi savoir de quelle manière elle doit être écrite en C, sous Linux/Unix. Notamment, je voudrais savoir commment procéder afin de ne pas avoir à modifier les deux fichiers initiaux, écrits en F90 et C, mais juste ce fichier d'interface.
Marsh Posté le 29-10-2004 à 14:56:10
Bonjour,
Je suis en train de reprendre un travail de programmation réalisé sous visual fortran. Il contient des routines écrites en Fortran90 et en C. Les subroutines appelées par le Fortran et écrites en C nécessitent une interface rédigée dans un fichier à part sous la forme :
INTERFACE TO SUBROUTINE masubroutine [C,ALIAS:'_masubroutine'] (alpha,beta)
INTEGER*4 alpha
INTEGER*4 beta
END
Avec cette structure, les fichiers fortran et C++ ne m'apparaissent pas modifiés. Notamment, il n'y a pas de :
extern "C" void masubroutine(int*,int*);
avant de définir les fonctions écrites en C.
Cette structure d'écriture est particulière à Microsoft. Je voudrais ainsi savoir de quelle manière elle doit être écrite en C, sous Linux/Unix. Notamment, je voudrais savoir commment procéder afin de ne pas avoir à modifier les deux fichiers initiaux, écrits en F90 et C, mais juste ce fichier d'interface.
Merci de votre aide,
J'espère avoir été clair,
Cordialement,