# Compilateur Fortran



## nastyshrimp (14 Novembre 2005)

Bonjour,

Je précise tout de suite que j'ai déjà fait des recherches à ce sujet, sur ce forum ou ailleurs.
Pour ce que j'en ai déduis, il n'y a qu'une seule solution de compilateur Fortran gratuit sur mac : http://hpc.sourceforge.net/

Je précise ensuite que je suis étudiant en physique, pas en info, que j'ai juste fait un peu de C l'an dernier sous Linux, mais qu'à part ça je n'y connais vraiment rien.

J'en viens à mon problème : je n'arrive pas à installer ce compilateur, je ne comprends pas du tout ... je veux juste compiler du fortran 95 vraiment basique (pour faire des simulations ou des calculs), je n'ai pas besoin d'options ou de librairie particulière.
Je suis aussi nouveau sur mac, et pas encore très familier avec les install ... 
Et là avec tous les fichiers proposés en anglais, des espèce de ligne de commande, la recommandation d'avoir l'Apple Developper Tools installé ... 
J'ai téléchargé ce qui me semblait le compilateur, qui était un fichier à dézipper, mais une fois ouvert il y avait un dossier rempli de fichiers étranges xD
Et sur mon terminal, la commande pour le fortran ne fonctionnait pas.

Donc si quelqu'un a déjà installé la même chose, ou a compris ce qu'il fallait faire, je lui en serais très reconnaissant


----------



## tatouille (15 Novembre 2005)

nastyshrimp a dit:
			
		

> Bonjour,
> 
> Je précise tout de suite que j'ai déjà fait des recherches à ce sujet, sur ce forum ou ailleurs.
> Pour ce que j'en ai déduis, il n'y a qu'une seule solution de compilateur Fortran gratuit sur mac :
> ...


 www.absoft.com
SciTech list Fortran
(pour les payants)

ouvre Terminal.app

$> curl -O http://voxel.dl.sourceforge.net/sourceforge/hpc/g95-tiger-bin.tar.gz
$> tar zxf g95-tiger-bin.tar.gz
$> open /usr/local

installes les ressources dans le dossier local
sans écraser des fichiers existants

$> man install

export PATH=$PATH:/usr/local/bin

$> gfortran

ou

$> /usr/local/bin/gfortran


----------



## nastyshrimp (16 Novembre 2005)

Premièrement merci 

ouvre Terminal.app ---> Ok !  

$> curl -O http://voxel.dl.sourceforge.net/sourceforge/hpc/g95-tiger-bin.tar.gz 
---> il n'arrive pas à se connecter à une adresse ip. J'ai téléchargé le fichier à la main (en fait quand on clique sur lien, ça redirige sur un autre en erreur 404 ... mais en tapant l'adresse dans la barre du navigateur, ça fonctionne) et l'ai mis dans mon "home"l. (aie ?)
$> tar zxf g95-tiger-bin.tar.gz
---> Ok, il dézip.
$> open /usr/local
---> No such file or Directory. (aie ?)

installes les ressources dans le dossier local
sans écraser des fichiers existants
--> qu'est ce qu'une ressource ? le dossier dézippé est dans local en tout cas.

$> man install
---> me file tout un texte dans le terminal, qui m'empêche de taper une commande ensuite. N'ai trouvé que "q" pour en sortir et retaper des commandes, mais je suppose que ça annule ...

export PATH=$PATH:/usr/local/bin
---> Ok, enfin il ne dit rien et je peux continuer.

$> gfortran
---> bash
ou

$> /usr/local/bin/gfortran
---> No such file in directory
Pourtant, j'ai vérifié, il y a bien dans mon "home" un dossier usr, qui inclut un dossier local, qui inclut un dossier bin, qui inclu gfortran (programme).

J'ai raté une étape, je suppose ? :/


----------



## ntx (16 Novembre 2005)

Il ne doit pas être dans ton home mais à la racine du système de fichiers comme son chemin l'indique : "/" signifie la racine du système de fichiers pas ton home .


----------



## nastyshrimp (16 Novembre 2005)

Le dossier le plus haut dans lequel je puisse remonter avec le Finder pour copier le dossier téléchargé est le home.
Visiblement, avec Lire les informations, ce n'est pas la racine, puisqu'il y a user/nomprénom.

Comment faire pour mettre ça à la racine ?

(désolé pour mes questions qui doivent paraître idiotes mais je débute sur mac en plus ... merci de répondre en tout cas  )


----------



## ntx (17 Novembre 2005)

Soit dans le Finder : menu "Aller", item "Aller au dossier ..."
Soit par le terminal.

Il te faudra dans les deux cas, le mot de passe admin et peut être root.


----------



## tatouille (17 Novembre 2005)

nastyshrimp a dit:
			
		

> Premièrement merci
> 
> ouvre Terminal.app ---> Ok !
> 
> ...


open /usr

si le dossier local est manquant

sudo mkdir -p /usr/local

http://forums.macg.co/vbulletin/showpost.php?p=3495019#10


----------



## dgeorg (17 Janvier 2006)

Salut!
comment faire pour eviter d'écrire à chaque fois qu'on démarre le terminal : export PATH=$PATH:/usr/local/bin

est-ce qu'on est obligé d'être en root et de modifier etc/profile ? je l'ai jamais fait et j'ai pas trop
envie de le faire (parce que je sais pas faire)


----------



## supermoquette (17 Janvier 2006)

Oui il le faut dans le profile, mais pour pas flipper tu peux utiliser la commande sudo

genre sudo pico /etc/profile et ajouter la ligne


----------



## dgeorg (17 Janvier 2006)

c'est fait!!
merci bcp! super truc!


----------



## MarbolanGos (13 Novembre 2006)

Bonjour,

je sais que je remonte un sujet, mais on peut &#233;viter d'en cr&#233;er un quand il existe d&#233;j&#224; 

Gr&#226;ce aux explications d'avant j'ai r&#233;ussi &#224; faire "fonctionner" le compilteur, c'est &#224; dire si je lui tape *gfortran* il me sort *gfortran: no input files

*Par contre j'ai &#233;crit un programme qui compile sur et certain (je l'ai fait ce matin sur un autre ordi), mais au cas o&#249; :

```
program degminsec

real :: theta, phi, min1, sec1
integer :: deg, min, sec
real, parameter :: pi=3.14159

print*,'valeur angle = (en radian)' ; read*,theta
if (theta < -pi .or. theta > pi) then
        print*,'entrez uen valeur entre',-pi,'et',pi
        stop
else
        phi = 180*theta/pi
        deg = phi
        min1 = phi-deg
        min = min1*60
        sec1 = min1*60 - min
        sec = sec1*60
        print*,theta,'radians donne',deg,'degr&#233;',min,'minutes',sec,'secondes'
end if
end
```
C'est en fortran 90.

Quand je donne &#231;a au compilateur via :
*gfortran -o degminsec degminsec.f90

*Il me sort ceci :

```
/usr/bin/ld: table of contents for archive: /usr/local/lib/gcc/powerpc-apple-darwin8.4.0/4.1.0/../../../libgfortranbegin.a is out of date; rerun ranlib(1) (can't load from it)
/usr/bin/ld: table of contents for archive: /usr/local/lib/gcc/powerpc-apple-darwin8.4.0/4.1.0/libgcc.a is out of date; rerun ranlib(1) (can't load from it)
collect2: ld returned 1 exit status
```
Ma config : ibook G4 Mac OSX version 10.4.8
xcode tool 2.3 install&#233; (ca doit pas &#234;tre la derni&#232;re version...) je pense pas que &#231;a influe m&#234;me si j'ai lu quelque part que &#231;a jouait.

Si quelqu'un a une id&#233;e 

[edit]
gcc install&#233; en faisant un -v &#231;a donne :


> Using built-in specs.
> Target: powerpc-apple-darwin8
> Configured with: /private/var/tmp/gcc/gcc-5341.obj~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=powerpc-apple-darwin8 --host=powerpc-apple-darwin8 --target=powerpc-apple-darwin8
> Thread model: posix
> gcc version 4.0.1 (Apple Computer, Inc. build 5341)


----------



## tatouille (14 Novembre 2006)

gnouf 

bah fait ce qu'il demande en plus il te donne le *man ranlib(1)*
*
man 1 ranlib *

tu tombes donc sur le man de libtool

*  ranlib - add or update the table of contents of archive libraries*

sudo ranlib /usr/local/lib/gcc/powerpc-apple-darwin8.4.0/4.1.0/../../../libgfortranbegin.a
*
libgfortranbegin.a is out of date; rerun ranlib(1) (can't load from it)
*
(j'ai tap&#233; ceci ds google)
paf premiere page
http://gcc.gnu.org/ml/fortran/2006-08/msg00062.html*

libgcc.a is out of date; rerun ranlib(1) (can't load from it)*



ca vole haut en ce moment sur ce forum , il n'y a pas marqu&#233; forum &#224; newbs ou assist&#233;s du cerveau en tout genre 
il y a marqu&#233; forums techniques ...


----------



## MarbolanGos (14 Novembre 2006)

Merci pour la réponse, je vais tester

Mais si c'est pour se faire insulter quand on comprend pas ce que veut dire un message d'erreur (que d'ailleurs j'ai soumis à d'autres personnes avant et qui ne savaient que faire non plus...) on peut plus supposer que c'est un forum pour les problèmes !


En plus j'ai repris la suite du sujet d'avant je savais pas ou il était posté j'aurai posté dans newbs sinon, on n'est pas tous né avec un mac dans les mains (ce qui est bien dommage).


----------



## Luc G (14 Novembre 2006)

La petite... incompréhension  entre nos deux derniers posteurs a, je pense, une explication simple : 
- tatouille est un "vrai" développeur et, comme tel, trouve simples certaines choses qui ne le sont pas pour tout le monde ;
- les gens qui programment en Fortran sont souvent (sans doute est-ce le cas de MarbolanGos) des scientifiques qui "utilisent" les outils de développement mais n'ont pas forcément de compétences particulières dans le domaine. Ils maîtrisent généralement les algorithmes scientifiques et la programmation qui va avec mais dès qu'on parle d'édition de liens ou autres, ça échappe à beaucoup.

J'ai souvenir du mystère que représentaient à l'époque les étranges cartes JCL (job control language) qu'on rajoutait au début et à la fin des programmes de simulation qu'on tapait. On se les passait de l'un à l'autre à défaut d'y comprendre quelque chose, ça n'empêchait pas d'arrive à résoudre les systèmes d'équations qui, eux, étaient le sujet du travail. 

Le problème, c'est que si on ne met pas le fortran, même à usage scientifique pur, dans le forum développement, je ne vois pas trop où on peut le mettre (à part au bar ).

je pense que ça peut rendre de grands services à pas mal de gens. Tatouille et quelques autres sont des mines d'or pour ça. Il leur faut un peu de manusétude pour les béotiens qui ne manquent pas toujours de bonne volonté mais ont des compétences en "développement" très ciblées, c'est à dire aussi, limitées.


----------



## tatouille (14 Novembre 2006)

il ne faut pas se vexer quand je m'enerve c'est pour faire avancer rapidemment 
 et je n'insulte pas je tape (ton objectif c'est de pouvoir compiler ton programme 
donc je te tape t'as peur tu fais vite et tu compiles  )

non ce que je regrette :
l'informatique comme n'importe quelle autre dissipline
demande une reflexion et un esprit d'analyse 

et les gens consid&#232;re ceci comme un du bah malheureusement non 
c'est un travail

et quand je suis confront&#233; &#224; un probl&#232;me avant de solliciter autrui je retourne le truc
avec tous les outils que j'ai en main et j'en ai un de g&#233;nial :

www.google.com

quand j'ai un message d'erreur que je ne sais pas correctement interpreter
j'en colle des morceaux dans google qui me donne &#224; 99 % satisfaction

et je ne parle pas seulement d'informatique car je m'interresse &#224; d'autres choses aussi

une r&#232;gle : plus vous apprenez de choses, plus vous pouvez en apprendre rapidemment
vous avez tous un HD infinie 

et si MarbolanGos est scientifique il est encore plus coupable 

pour finir avant de toucher un truc je lis la documentation 
et fait quelque recherche d'exemples


----------



## MarbolanGos (14 Novembre 2006)

Luc G a raison j'utilise ca pour essayer de faire de l'analyse numérique, mais bon c'est vraiment pas ma tasse de thé, un bon stylo pour faire les calculs c'est plus efficace à mon goût.

Bah oui on peut considérer queje suis scientifique et google c'est mon premier réflexe, mais comme j'ai dit dans le 2ème poste, j'ai pas compris le message d'erreur donc pour moi le reflexe c'était d'ecrire la ligne : */usr/bin/ld: table of contents for archive: /usr/local/lib/gcc/powerpc-apple-darwin8.4.0/4.1.0/../../../libgfortranbegin.a is out of date; rerun ranlib(1) (can't load from it)* dans google et voir ce qu'il sort mais malheureusement j'ai fait chou blanc. Donc savoir qu'il fallait taper ranlib machin chose je pouvais pas trop savoir.

Enfin au final la solution de faire le sudo ranlib ... n'a même pas fonctionné, par contre j'ai téléchargé la denrière version de xcode qui était sur l'apple developper et là le programma a compilé et marché sans problème...
Je devais avoir un "conflit" entre les gcc isntallés au fur et à mesure.

Le fortran dans développement d'accord mais là c'est un problème avec le logiciel qui s'est passé.

Enfin de toute facon je sais très bien que d'ici un ou deuxmois j'aurai une autre erreur que je comprendrai pas et que bien sur google sortira rien et ou on va encore me dire que c'est trivial mais bon si on n'apprend pas on progresse pas.

@tatouille (à prendre en joke) : moi aussi je tape j'insulte pas c'est plus expressif


----------



## tatouille (14 Novembre 2006)

MarbolanGos a dit:


> : moi aussi je tape j'insulte pas c'est plus expressif




c'est que l'installation de xcode a "ranlib"er toutes les archives

c'est juste une date limite sur des objets "storer" statiquement
en effet ces libraries non pas vraiment de version 

donc le compilo te dit HA n'est ce pas un peu vieux ?

si l'utilisateur consid&#232;re que non que le yaourt est toujours d'actualit&#233;

ranlib /path/to/libmy.a

ranlib peu extraire les objets aussi et faire bien d'autres choses


----------

