[Fortran 95] Surcharge de WRITE
Bonjour à tous.... voilà mon problème, je cherche à faire une fonction équaivalente à deux write, un qui écrit à l'écran et l'autre qui écrit dans un fichier de log
mon souci est que je passe parfois seulement du texte, parfois du texte et des variables... cependant, petit aspect simplificateur, le format est imposé (pas de passage de format en parametre), le fichier est tjrs le même...
voilà ce que j'ai écris:
Code:
1 2 3 4 5 6 7 8 9 10 11
| Function LogVar(name,var)
integer Logvar !permet de retourner 0 quand tout va bien
Character(len=20),intent(in) :: name !une petite chaine de caratère
real(kind=kind(1.d0)),intent(in) :: var!une variable de type real
open(unit=75,file="Fox1D.log",status="unknown",position="append")
write(*,*)name,var
write(75,*)name,var
close(75)
LogVar=1
return
end function logVar |
que j'ai mis en fin d'un module 'fileutils' avec bloc interface mais je récupère une erreur de compilation "statement not recognised" au niveau du fichier principal:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
program Fox1D
!section use:
use fileutils
!Declarations de variables
implicit none
character(len=20),parameter:: bob="coucou"
real(kind=kind(1.d0)),parameter :: val=1.d0
LogVar(bob,val)
END program Fox1D |
(notez les '*' dans les write, c'est juste pour pas m'embêté avec ça pour le moment....)
d'où deux question: comment faire marché cela? et: y a-t-il pas un moyen des faire une fonction avec une déclaration equivalent à Write (ou print, je suis pas raciste) plus simple ?