Подтвердить что ты не робот

Как скомпилировать файлы Fortran 77 в Linux?

Мне нужен компилятор для Fortran 77 в linux.

Есть ли свободные компиляторы, которые люди используют?

Я слышал о g77, но я не могу найти rpm или как установить его в Linux.

Спасибо!

4b9b3361

Ответ 1

Имя компилятора GCC Fortran изменилось: g77 был заменен на gfortran, который обрабатывает Fortran 95 и, возможно, более поздние варианты.

Пакет в Ubuntu называется gfortran:

sudo apt-get install gfortran

(или использовать синаптический)

Пакет в Fedora называется gfortran и является частью gcc, который вы, вероятно, уже имеете:

sudo yum install gcc

(или использовать пирут)

Подобные поисковые запросы также должны работать и для вашего распространения.

Обновление: В RedHat 4.1.2 пакет, как представляется, называется gcc4-gfortran. Кстати, вы должны иметь возможность искать это с помощью yum, и это может быть лучшим ответом на ваш вопрос:

yum search "*fortran*"

Ответ 2

Для Amazon Linux:

 sudo yum --enablerepo=epel install gcc-gfortran

Ответ 3

"Quark" написал в своем ответе, что g77 переименован в gfortran. Это неверно.

g77 ang gfortran - разные компиляторы. g77 заменяется gfortran в коллекции компилятора GNU (GCC), он не переименован в gfortran.

gfortran - это современный компилятор Fortran, основанный на компиляторе g95. g77 является отказом. Они не разделяют кодовую базу. Двоичные файлы и библиотеки также несовместимы между g77 и gfortran, так как они используют разные ABI.

g77 - это тот же самый компилятор, который известен как f2c (который можно загрузить из Netlib), или, точнее, оболочку script fc, который называется f2c, а затем cc на выходе. Все g77 состояло в том, чтобы пропустить C как промежуточный язык, поскольку он пришел со штрафом за скорость в 1980-х и начале 1990-х годов. f2c и g77 были написаны одним и тем же человеком и в остальном идентичны. Благодаря современному процессору (длинному конвейеру и прогнозу ветвления) и современному компилятору C (гораздо лучшему анализу псевдонимов) g77 не дает вам преимуществ перед исходным f2c. gfortran, с другой стороны, поддерживает современные стандарты Fortran (Fortran 90, 95, 2003 и 2008) в дополнение к старым Fortran 77 и Fortran 66 (также известный как FORTRAN IV) и является явным улучшением по сравнению с g77 и f2c. Он также генерирует более быстрый код и дает нам лучшие сообщения об ошибках.

g77 двоично совместим с f2c, но не с gfortran. gfortran может быть вынужден принять g77 ABI, передав -ff2c. Этот параметр компилятора следует избегать, если это возможно, поскольку это ухудшает производительность кода Fortran.

Ответ 4

Здесь http://www.g95.org/, который доступен.

Если я хорошо помню, что GNU не имеет компилятора FORTRAN, а препроцессор FORTRAN (или что бы там ни называлось). Он просто переводит ваш код на C и компилирует его с помощью компилятора C. Конечно, производительность становится дерьмой в этом процессе.

Однако, если вы используете FORTRAN, я предполагаю, что это своего рода проект вычисления. Если это бесплатно (не академическое и не связанное с курсом), вы можете бесплатно получить компилятор Intel FORTRAN. По моему опыту это происходит примерно в 3-4 раза быстрее, чем любая свободная реализация.

Ответ 5

gcc-fortran - это имя пакета для Fortran компилятора для openSUSE 11.x.

linux-y3pi: # zypper what-provides gcc-fortran
Loading repository data...                                                                                                                                                        
Reading installed packages...
S | Name        | Type    | Version | Arch   | Repository             
--+-------------+---------+---------+--------+------------------------
i | gcc-fortran | package | 4.5-4.2 | x86_64 | openSUSE-11.3-Oss      
i | gcc-fortran | package | 4.5-4.2 | x86_64 | openSUSE-11.3 11.3-1.82
v | gcc-fortran | package | 4.5-4.2 | i586   | openSUSE-11.3-Oss      
[1]+  Done                    yast2
linux-y3pi: # 

http://gcc.gnu.org/fortran/

Ответ 6

Я сделал следующие шаги и работает!

  • Отредактируйте /etc/apt/sources.list

  • добавить этот текст в этот файл (/etc/apt/sources.list):

    deb http://hu.archive.ubuntu.com/ubuntu/ hardy universe
    deb-src http://hu.archive.ubuntu.com/ubuntu/ hardy universe
    deb http://hu.archive.ubuntu.com/ubuntu/ hardy-updates universe
    deb-src http://hu.archive.ubuntu.com/ubuntu/ hardy-updates universe
    
  • Сохранить файл

  • Откройте терминал, введите: sudo apt-get install fort77

Ответ 7

Средства для установки программного обеспечения зависят от дистрибутива. Например, в Ubuntu9 я хотел бы запустить Synaptic и выполнить поиск Fortran или g77 (apt-get также можно использовать).

Другие дистрибутивы, о которых я мало знаю, хотя я слышал о yum и yast (я думаю, но я не уверен) RedHat и Suse.

Если он не доступен через стандартный установщик пакетов, вам нужно найти другое решение, например:

  • с использованием другого Fortran; или
  • построение его из источника.

Этот второй метод звучит зловеще, но на самом деле это не так (за исключением того, что у вас есть правильные зависимости). Процесс configure/make/install, с которым следуют большинство исходных пакетов, делает его чрезвычайно простым в кросс-распределении.

Некоторые RPM можно найти здесь. Программное обеспечение GNU доступно здесь или вы можете проверить их зеркала для более быстрого сайта.

Ответ 8

Вы также можете использовать Netbeans и создать проект c & С++ и добавить Fortran с новым файлом .f90 и использовать инструменты Netbeans для запуска и отладки. перед этим вы должны установить gcc и gfortran.

Ответ 9

По моему опыту, дистрибутивы Red Hat (и те, что основаны на нем) содержат gfortran, но это вариант, когда вы выполняете установку, поэтому кажется вероятным, что ваша система была настроена без gfortran. Если у вас установлены установочные носители, я думаю, что вы сможете установить gfortran оттуда.

В противном случае, чтобы получить надлежащую скорость gfortran для вашей системы, я предлагаю связанную страницу rpmfind.

Как только вы установите gfortran, я думаю, что "-std = legacy" (кавычки) должен позволить компиляции F77 работать.