IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

wait bar dans une subroutine fortran appelée par R


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Par défaut wait bar dans une subroutine fortran appelée par R
    Bonjour,

    Je cherche à mettre au point un barre de progression dans une subroutine fortan, sachant que celui-ci est appelé initialement par un programme R.
    L'avantage de linux c'est que les fonctions write() et print passent très bien pour ce genre de chose, en revanche sur une plate-forme windows, les print et les write font planter le programme.
    Je sais qu'il existe, pour passer outre le problème les fonctions 'dblepr' ; 'intpr' ; et 'realpr'. Mais elle ne sont pas du tout adaptée à ce que je veux faire.

    Quelqu'un a-t-il une idée pour faire afficher dans R une chaîne de caractères à partir de fortran ?

    Merci beaucoup d'avance pour vos solutions.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Par défaut Ca marche ... mais pas tout le temps !
    Bonjour,

    quand on est un 'vieux' programmeur, le langage et le comportement de R sont des plus étranges ...

    Tu peux essayer d'écrire dans la console R simplement avec un write(6,*) : ça marche ... quelque fois. De plus, il faut que la console soir visible, que le curseur soit positionné tout en bas, que R n'écrive pas ses fonctions, ...

    On reste quand même loin d'une progress bar.

    Bon courage !
    Jean

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Par défaut
    Tu peux essayer d'écrire dans la console R simplement avec un write(6,*) : ça marche ... quelque fois.
    Jean
    Que fait l'adresse '6' de plus que le write(*,*)?
    Heureusement, aucune fonction R de mon programme n'intervient au cours de la progression de ma boucle Fortran.
    Pour l'instant j'ai réglé le problème en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call intpr(bar, -1, ni, 0)
    bar est la chaine de caractère correspondant à ma progressbar, ni une variable de type int et 0 permet ne pas afficher la variable (je n'ai donc que la chaîne de caractères).
    Mais c'est très bidouillé puis ma progress bar apparaît dans sa totalité autant de fois qu'elle se met à jour, ce qui est relativement laid ...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Par défaut
    le canal 6 est le stdout : l'organe de sortie standard. Donc l'écran. Je pense que R redirige les sorties écran vers sa console.

    Au fait tu appelles ta fonction par .FORTRAN() ou tu lances un executable externe ?
    Jean

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Par défaut
    Non j'appelle mon programme fortran depuis R grâce à la commande .Fotran(). C'est mieux de lancer une commande bash qui appelle le programme ? Mais dans ce cas il faut que je revois l'intégralité de mon package car je transmet à Fortran 65 arguments .. J'ai bien peur que le système d'écriture/lecture fichier me prenne beaucoup plus de temps d'exécution ...

    Si write(6,*) permet de rediriger en sortie standard, dans ce cas que fait write(*,*) exactement ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Par défaut
    L'appel par .FORTRAN() est bien meilleur ! Ce qui m'a troublé c'est que tu puisses afficher quelque chose avec call intpr.

    Comme je n'ai jamais utilisé write(* (!) je ne sais pas la différence avec write(6 !!

    Autre point : dans la relation entre R et FORTRAN, ce qui prend 'beaucoup' de temps est le passage de paramètre. Il faut essayer de réduire le nombre et la taille de ceux-ci.

    A+
    Jean

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jquery dans une page PHP appelée par CRON
    Par nicolas2603 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 17/02/2014, 16h18
  2. Appel d'une subroutine fortran en c++
    Par Ankain dans le forum Débuter
    Réponses: 1
    Dernier message: 12/03/2012, 18h44
  3. appeler une matrice dans une subroutine
    Par brahim20 dans le forum Fortran
    Réponses: 2
    Dernier message: 01/07/2010, 08h51
  4. [Fortran 77] Déclaration dans une subroutine
    Par feynman dans le forum Fortran
    Réponses: 4
    Dernier message: 18/04/2008, 17h41
  5. progress bar dans une status bar ?
    Par raggadoll dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2005, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo