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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?