Instal·lar Fortran i Gnuplot per Mac + XCode i VSCode

Instal·lar Fortran i Gnuplot per Mac + XCode i VSCode

Si algú que té un Mac vol fer una guia/tutorial més detallada sobre les diferents opcions i el procés, endavant! Aquests apunts han estat creats ajuntat tutorials d’internet així que potser us trobeu amb errors, poseu comentaris!
Instruccions oficials
PDF professors:
Vídeo útil de YT:
Extra: Orígens del Fortran

PART 1: Instal·lar Fortan i Gnuplot

Previ: La terminal del Mac

Obrir la terminal

Es pot fer simplement obrint el buscador (Cmd+Space) i escrivint “Terminal”. O també obrint el Launchpad, entrant a Other i obrint l’aplicació Terminal.

Comandaments per navegar

Nota: directori = carpeta (pel que ens interessa aquí).
  • cd significa change directory, serveix per canviar de carpeta. (Exemple: cd Desktop).
  • cd .. serveix per anar un directori amunt.
  • pwd significa print working directory, et diu a quina ruta et trobes.
  • ls és una abreviació de list, et dona una llista de totes els arxius i subcarpetes que es troben en aquell directori.
  • clear serveix per netejar la pantalla de la terminal.

Aconseguir permisos d’administrador

Si no vols haver d’estar posant la contrasenya cada vegada que vols instal·lar alguna llibreria o paquet, pots fer-ho sols un cop escrivint su seguit del nom del teu usuari.
Per exemple si el nostre usuari fos “Pol” faríem su Pol, escriuríem la contrasenya i ja estaríem amb els privilegis d’administrador activats.

Previ: Què és XCode?

XCode

Com instal·lar-lo

Bla bla

Instal·lem Fortran i Gnuplot mitjançant Brew

1. Instal·lem Brew

Brew és un gestor de paquets, permet instal·lar diferents paquets controlant que no hi hagi errors de dependències i facilitant el procés.
Obra la terminal del Mac i copia-hi el següent comandament
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Segurament hauràs d’escriure la contrasenya (la que utilitzes quan s’obra l’ordinador).
Nota: al escriure la contrasenya no es mostrarà per pantalla. Així funciona la terminal de Mac per seguretat, simplement escriu-la i prem enter.

2. Instal·lem Fortran

GCC és una llibreria de GNU que inclou compiladors de Fortran, C++, Go… entre d’altres.
La instal·larem escrivint el següent comandament:
brew install gcc

3. Instalem gnuplot

De la mateixa manera que abans, utilitzem brew per instal·lar el paquet que ens interessa, en aquest cas gnuplot.
brew install gnuplot

Opcional: Instal·lem Gedit com a editor de text

Si volem fer sevir Gedit (un editor de text molt i molt bàsic) també ho podem fer amb brew. Simplement utilitzem.
brew install gedit
Nota: és un editor molt rudimentari, amb XCode o VSCode es va molt millor.

Opció alternativa: MacPorts

Si no volem fer servir Brew, també podem fer servir un altre gestor de paquets anomenat MacPorts.

1. Instal·lar MacPorts

xcode-select --install
Més informació aquí.

2. Instal·lar GCC (Fortran)

sudo port install gcc14
Nota: gcc14 fa referència a la versió 14.2.0, que és la última versió estable (escrit el 2/10/2024), potser quan llegeixis això ja han tret la 15 o la 16.

3. Instal·lar Gnuplot

sudo port install gnuplot

Ara anem a comprovar que funcionen correctament

Manera ràpida

Simplement comprovem que s’han instal·lat mirant quina versió tenim instal·lada
gfortran --version
I també
gnuplot --version
Si en alguna de les dues no ens diu la versió exacta és que no s’ha instal·lat correctament.

Previ: preparem un directori

Creem una carpeta a on vulguem (per exemple a l’escriptori) i allà hi posarem els nostres programes de prova. Obrim una terminal i ens dirigim a dins d’aquella carpeta (Exemple: cd Desktop/Proves)

Comprovar que funciona el Fortran

Creem un arxiu manualment, i l’anomenem per exemple “prova.f90”. Hi posem el següent codi:
program helloWorld implicit none print *, 'Hello World!' end program
El compilem mitjançant el següent comandament a la terminal:
gfortran -o prova prova.f90
Es generarà un arxiu executable anomenat ‘prova’, l’executem fent
./prova
Hauríem de veure un Hello World! a la terminal.

Em surt un error

És probable (sobretot amb macOS BigSur) que surti el següent error
ld: library not found for -lSystem collect2: error: ld returned 1 exit status
Segurament l’error sigui que el Path està mal configurat.
Què és el Path?
Afegir un programa al Path un programa és equivalent a indicar-li la ruta a on es troben els executables.
Aquests normalment estan a dins d’una carpeta anomenada bin, on hi ha els arxius binaris que permeten convertir el codi en executables (és a dir compilar).
Nosaltres estem interessats en poder compilar un codi en Fortran en qualsevol carpeta (no sols a dins de la carpeta bin de Fortran).
Per a poder-ho fer, hem d’afegir aquella carpeta al Path, és a dir indicar-li al nostre ordinador la ruta de la carpeta bin i aquest li donarà permís per poder-se executar des d’altres directoris.
Per a configurar-lo correctament provarem a fer el següent:
brew link gcc
brew link gnuplot
Si en el procés ens surt l’error could not symlink, /usr/local/bin is not writable o similar, significa que el gestor de paquets brew no té permisos per modificar el Path.
Per donar-li aquest permís farem
sudo chown -R `whoami`:admin /usr/local/bin
Nota: potser en el vostre cas, en l’error us surt una ruta diferent de /usr/local/bin, poseu doncs al comandament la ruta que us surti a vosaltres.
Ara en teoria li hem donat el permís correctament. Així que tornarem a provar de fer de nou el brew link gcc i el brew link gnuplot.
Si torna a sortir l’error tornarem a repetir amb el sudo chown -R `whoami`:admin [ruta] i anirem repetint l'intent de linkejar (donar permís per modificar el Path) fins que surti
Warning: Already linked: /usr/local/Cellar/gcc/10.2.0_4
Quan surti això significa que s’ha modificat correctament el Path, i ara sí, hauríem de poder compilar correctament amb gfortran -o prova prova.f90 i .\prova.

Comprovar que funciona el Gnuplot

Creem un fitxer anomenat per exemple “dades.dat” i hi enganxem les següents dades:
1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81
Creem un fitxer anomena’t “fig1.gnu” i hi enganxem el següent codi:
file = 'dades.dat' set term png set out 'fig1.png' plot file
Generem el gràfic escrivint el següent comandament a la terminal
gnuplot fig1.gnu
A la nostra carpeta s’hauria d’haver generat un fitxer “fig1.png”, que si l’obrim hauria de ser la següent imatge
notion image

Part 2: Instal·lem un editor de text

VSCode

Bla bla

Part 3 (opcional): Automatitzem-ho

De manera molt similar a
🚀
Instal·lar Fortran i Gnuplot per Windows + Visual Studio Code
fem el mateix, però ara simplement el tasks.json hem de tenir en compte que utilitza la shell de ubuntu enlloc del powershell de windows.
Així doncs les tasques seran
{ "version": "2.0.0", "tasks": [ { "label": "Create Folders", "type": "shell", "command": "mkdir -p exes data out", "options": { "cwd": "${fileDirname}" }, "problemMatcher": [], "group": "build" }, { "label": "Build & Run Fortran", "type": "shell", "command": "${fileDirname}/exes/${fileBasenameNoExtension}", "options": { "cwd": "${fileDirname}" }, "dependsOn": [ "Build Fortran" ] }, { "label": "Build Fortran", "type": "shell", "command": "gfortran", "options": { "cwd": "${fileDirname}" }, "args": [ "${fileDirname}/${fileBasename}", "-o", "${fileDirname}/exes/${fileBasenameNoExtension}" ] }, { "label": "Create Plot", "type": "shell", "command": "gnuplot", "options": { "cwd": "${fileDirname}" }, "args": [ "${fileDirname}/${fileBasename}" ] } ] }
Notar que hem canviat simplement md amb un condicional per mkdir -p i hem tret l’extensió .exe innecessària per macOS i linux..
I les dreceres seran iguals