J'essaye d'employer le solveur de DDE pour ex4p4p1.f90
disponible de radford en utilisant le Fortran90 sourcedde_solver_m_unix.f90
. Je crois que je devrais pouvoir simplement télécharger et compiler avec zéro changements mais j'obtiens l'erreur suivante:Il n'y a aucune fonction spécifique pour le 'dde_solver' générique
ex4p4p1.f90:107:8:
SOL = DDE_SOLVER(NVAR,DDES,DELAYS,HISTORY,TSPAN=(/ 0D0,350D0 /))
1
Error: There is no specific function for the generic ‘dde_solver’ at (1)
Pour complètement (et simplement) reproduire, je l'ai écrit un petit script qui va télécharger , extraire et compiler la source:
#!/usr/bin/env bash
### Download and extract solver
dde_solver_url=http://www.radford.edu/~thompson/ffddes/dde_solver_m.zip
wget $dde_solver_url
unzip dde_solver_m.zip
### Download main routine
example_code_url=http://www.radford.edu/~thompson/ffddes/ex4p4p1.f90
wget $example_code_url
### Compile
gfortran dde_solver_m_unix.f90 ex4p4p1.f90
Depuis que je crois que ces fichiers sont écrits comme des exemples de « drag and drop », je crois qu'il peut être un problème avec mon environnement ou peut-être que je suis mal la compilation.
Y a-t-il des problèmes avec la façon dont je compile? Si non, quelles modifications minimes puis-je apporter au (1) code du pilote (ex4p4p1.f90
) pour que cela fonctionne ou (moins souhaitable) (2) le code du solveur (dde_solver_m_unix.f90
)?
Ce serait beaucoup mieux de nous montrer ce code. C'est probablement faux. Je ne pense pas que ce soit quelque chose de changeable par une autre méthode de compilation, à moins qu'il y ait un pré-traitement quelque part ou que vous changiez le type réel ou entier par défaut pour une partie seulement du code. –
Le fait qu'ils ont besoin d'une source spécifique Unix est suspect. Fortran est normalement assez portable. –
Et étant donné qu'il n'y a pas de "IMPLICIT NONE" dans le module de solveur, je ne vais pas aller plus loin. Si vous voulez en savoir plus, trouvez la fonction spécifique appropriée et vérifiez tous les arguments un par un. Il faudra peut-être «-freal-8» ou quelque chose comme ça, mais qui sait. –