Je viens d'installer 12.04 LTS sur mon ordinateur portable et je suis un peu nouveau dans ce domaine. Je suis obligé d'écrire un programme dans Fortran 77 et j'ai besoin d'un compilateur Fortran 77. J'ai essayé d'installer g77 comme décrit sur le site web d'Ubuntu mais je n'ai pas pu le faire. J'ai tapé dans le terminal suivant:
Sudo apt-get install g77
et obtenez ce qui suit:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package g77 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'g77' has no installation candidate
Puis-je savoir quel est le problème? J'ai essayé de chercher g77 dans le centre logiciel mais apparemment ce n'est pas là. Est-ce que cela signifie qu'il n'est pas disponible pour 12.04?
J'utilise actuellement un ordinateur portable Asus K43S avec processeur Intel Core i5-2450M et mon Ubuntu est installé à côté de Windows.
Il y a GNU compilateur Fortran 95 dans les référentiels, qui peuvent être installés à l'aide de
Sudo apt-get install gfortran
Il s'agit du GNU Fortran 95, compilateur de Fortran 95 sur des plates-formes prises en charge par le compilateur gcc. Il utilise le backend gcc pour générer du code optimisé.
Si vous avez spécifiquement besoin des fonctionnalités Edge saignantes de Fortran 77, il existe un programme f2c
qui peut apparemment traduire Fortran 77 en C.
f2c traduit FORTRAN 77 (avec certaines extensions) en C afin qu’il puisse ensuite être compilé et exécuté sur un système ne disposant pas du compilateur Fortran. Les fichiers C doivent ensuite être liés aux bibliothèques appropriées.
Il s’agit d’un traducteur FORTRAN en C activement mis à jour et avec l’interface fort77, il constitue un moyen idéal pour compiler les routines FORTRAN sous forme de boîtes noires (par exemple, pour l’appel depuis C). Les fonctions de débogage au niveau source ne sont pas disponibles et les messages d'erreur ne sont pas aussi développés que dans g77.
Je ne suis pas sûr de ce qui est arrivé au compilateur g77
- apparemment, il était présent dans les anciennes versions d'Ubuntu, mais plus maintenant, du moins pas dans les référentiels standard.
Tapez votre terminal;
Pour le compilateur Fortran 95:
Sudo apt-get install gfortran
Pour le compilateur Fortran 77:
Sudo apt-get install fort77
Vous pouvez également essayer f77
, d’Intel. Il existe une licence gratuite si vous êtes un étudiant, un enseignant d’un contributeur open source (il existe également d’autres profils qui répondent aux exigences d’Intel en matière de licence de logiciel libre, généralement si vous ne l’utilisez pas à des fins commerciales).
https://software.intel.com/en-us/qualify-for-free-software
Il suffit de cliquer sur l'un des profils d'utilisateurs ci-dessus, de vous inscrire, de télécharger et d'installer. J'utilise Intel Parallel Studio XE
, qui vient également avec le support de MPI afin que vous puissiez exécuter des tâches parallèles. Lors du téléchargement, vous pouvez choisir l'installateur complet avec quelques Go ou l'installateur partiel qui vous permettra de choisir les outils que vous souhaitez installer. Comme je voulais juste Fortran, j'ai téléchargé le programme d'installation partiel et l'installé avec les éléments suivants:
$ tar -xvf parallel_studio_xe_2018_update1_cluster_edition_online.tgz
$ cd parallel_studio_xe_2018_update1_cluster_edition_online
$ Sudo ./install_GUI.sh
Ensuite, suivez les instructions pour terminer la procédure. Une fois terminé, vous devez charger l'environnement pour pouvoir utiliser le compilateur. Il suffit de taper
$ source /opt/intel/bin/ifortvars.sh intel64
Et après cela, vous remarquerez que les commandes ifort
et f77
sont disponibles au terminal. Ce sont des compilateurs pour Fortran. Vous pouvez trouver plus d'informations à ce sujet ici: https://software.intel.com/en-us/intel-fortran-compiler-17.0-user-and-reference-guide
N'oubliez pas que vous devez charger l'environnement à chaque fois que vous démarrez une nouvelle session sur un terminal.