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: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 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
(notez les '*' dans les write, c'est juste pour pas m'embêté avec ça pour le moment....)
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
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 ?
Partager