Capisco che gfortran possa compilare f90 o f95? Come fa a sapere quale compilazione? Inoltre può compilare il codice f77? Ubuntu ha già un compilatore fortran o devo scaricare gfortran?Come può dire gfortran se sto compilando il codice f90 o f95?
risposta
gfortran può indovinare determinate cose dall'estensione del file; se il file ha un'estensione di .f, .f90, f95, .f03 o .f08, assumerà il formato fisso (.f) o libero con gli standard appropriati. Ma puoi forzarlo a compilare (diciamo) il codice di fortran2003 con l'opzione -std = f2003. Ad esempio, dal documentation,
-std = std
Specificare lo standard a cui si prevede il programma di conformarsi, che può essere uno dei `F95' ,` F2003' , `F2008' , `gnu 'o` legacy'. Il valore predefinito di per std è `gnu ', che specifica un superset dello standard Fortran 95 che include tutte le estensioni supportate da GNU Fortran, sebbene vengano fornite avvertenze per le estensioni obsolete non consigliate per l'uso nel nuovo codice. Il valore "legacy" è equivalente a ma senza gli avvisi per le estensioni obsolete e potrebbe essere utile per i vecchi programmi non standard. I valori "f95", "f2003" e "f2008" specificano la conformità rigorosa rispettivamente agli standard Fortran 95, Fortran 2003 e Fortran 2008; gli errori sono riportati per tutte le estensioni oltre lo standard di lingua pertinente e vengono fornite avvertenze per le funzioni di Fortran 77 consentite ma obsolete negli standard successivi . `-STD = f2008ts' permette al Fortran standard di 2008 tra cui le aggiunte della specifica tecnica (TS) 29113 su un ulteriore Interoperabilità dei Fortran con C.
Si noti che, con poche eccezioni, gli standard FORTRAN sono altamente compatibile con le versioni precedenti, in modo che molto "bello", conforme allo standard, il codice fortran-77 sia valido anche per il codice fortran 2003. Il problema principale è che molto codice fortran degli anni '80 e precedenti non è né "bello" né conforme allo standard.
Si può persuadere gfortran che un file .f è Fortran 95 o superiore? '-std = f95' non è sufficiente. – hertzsprung
@hertzsprung 'gcc -x f95 file.f' può funzionare –
Sì, gfortran può compilare FORTRAN 77 e Fortran 90,95 ecc. Ha molte funzionalità del 2003 & implementate nel 2003. Per il codice Fortran 90/95/2003/2008 una buona estensione da utilizzare è .f90. Alcuni altri compilatori non riconoscono .f95, .f2003, ecc. E vuoi veramente rinominare i tuoi file quando esce un nuovo standard? Usa .f o .for per FORTRAN 77. La differenza principale è il layout sorgente che il compilatore si aspetta: forma libera per .f90, forma fissa per .f o .for. (I tipi di file maiuscoli causeranno l'esecuzione del preprocessore.) È possibile forzare il layout a forma di modulo fisso con le opzioni -ffisso-modulo -ffisso-lunghezza-nessuna.
- 1. Compilando java nel codice nativo?
- 2. Haskell: come testare che il codice non si sta compilando?
- 3. Come posso scrivere una funzione to_upper() o to_lower() in F90?
- 4. compilando il proprio glibc
- 5. Come posso rilevare se sto eseguendo MATLAB o Octave?
- 6. Un sito Web può sapere se sto eseguendo un userscript?
- 7. come dire se sta usando zsh o bash
- 8. Compilando il codice C dal prompt dei comandi in Windows?
- 9. cosa significa l'errore quando sto compilando C++ con il compilatore g ++?
- 10. Eclipse: Come sapere se sto eseguendo o eseguendo il debug di un'applicazione non server?
- 11. come dire se il codice viene eseguito all'interno di un contesto knitr/rmarkdown?
- 12. programmazione socket gfortran
- 13. Come può il mio codice dire se è in esecuzione sul server di Google o sul mio server di sviluppo locale?
- 14. Come posso sapere se il mio GCC sta compilando 64 bit per impostazione predefinita?
- 15. Come si può dire a livello di codice se una macro di Word è firmato da VB.Net/C#
- 16. Codice Contratto o se dichiarazione?
- 17. Impossibile installare gfortran tramite homebrew
- 18. Come dire se il pulsante avanti o indietro è stato premuto usando l'evento popstate
- 19. modulo intrinseco ieee_arithmetic in gfortran
- 20. Quando si utilizza il ResXResourceReader come si può dire se la risorsa è un file incorporato o se si tratta di una stringa incorporato
- 21. Come può passare il codice response.redirect?
- 22. Dovrebbe se chiama SqlDataReader.HasRows se sto chiamando SqlReader.Read
- 23. Come dire a tumblr di smettere di apportare modifiche al markdown e/o al codice HTML?
- 24. Come dire se la funzione corrente è una funzione membro normale o statica in C++ 11?
- 25. compilando OpenSSH per iPhone?
- 26. Come dire se un contesto OpenGL è accelerato hardware?
- 27. simpless non compilando
- 28. Come posso risolvere xcode compilando tutto tutto il tempo?
- 29. Come dire se return è JSONObject o JSONArray con JSON-simple (Java)?
- 30. Perché dovrei usare il controllo di versione se sto lavorando da solo e sto già effettuando regolarmente il backup?
Vedere anche [Come può Gfortran dire se sto compilando codice f90 o f95?] (Https://stackoverflow.com/q/10884260/608639), [Makefile con diversi tipi di sorgente] (https: // StackOverflow. it/q/8940552/608639), [cmake, fortran 2008 e estensione file .f08] (https://stackoverflow.com/q/25005017/608639), [suffisso corretto per il file sorgente Fortran 2003 - compilatore Intel Fortran] (https://stackoverflow.com/q/20269076/608639), ecc. – jww