EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

mips64el-linux-gnuabi64-gfortran-5 - Online în cloud

Rulați mips64el-linux-gnuabi64-gfortran-5 în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda mips64el-linux-gnuabi64-gfortran-5 care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


gfortran - compilator GNU Fortran

REZUMAT


gfortran [-c|-S|-E]
[-g] [-pag] [-Onivel]
[-Wavertiza...] [-pedant]
[-Idir...] [-Ldir...]
[-Dmacro[=defn]...] [-Umacro]
[-fopțiune...]
[-mmașină-opțiune...]
[-o outfile] infile...

Aici sunt enumerate doar cele mai utile opțiuni; vezi mai jos pentru restul.

DESCRIERE


gfortran comanda acceptă toate opțiunile acceptate de gcc comanda. Doar opțiuni
specifice pentru GNU Fortran sunt documentate aici.

Toate opțiunile GCC și GNU Fortran sunt acceptate de ambele gfortran și de gcc (precum și orice
alți drivere construite în același timp, cum ar fi g ++), de când a adăugat GNU Fortran la GCC
distribuția permite acceptarea opțiunilor GNU Fortran de către toate driverele relevante.

În unele cazuri, opțiunile au forme pozitive și negative; forma negativă a -ffoo ar
be -fno-foo. Acest manual documentează doar una dintre aceste două formulare, oricare nu este
Mod implicit.

OPŢIUNI


Iată un rezumat al tuturor opțiunilor specifice GNU Fortran, grupate după tip.
Explicațiile sunt în secțiunile următoare.

Fortran Limbă Opţiuni
-cădere-intrinseci -fbackslash -fcray-pointer -fd-lines-as-code -fd-lines-as-commentarii
-fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 -fdolar-ok
-lungime-linie-fixă-n -lungime-linie-fixă-niciuna -fforma-liberă -flungime-linie-liberă-n
-ffree-line-lungime-niciuna -fimplicit-niciuna -deget-4-întreg-8 -fmax-identificator-lungime
-fmodule-privat -formă-fixă -fno-range-check -fopenacc -fopenmp -freal-4-real-10
-freal-4-real-16 -freal-4-real-8 -freal-8-real-10 -freal-8-real-16 -freal-8-real-4
-std=std

preprocesare Opţiuni
-ARE-întrebare[=răspunde] -Aîntrebare=răspunde -C -CC -Dmacro[=defn] -H -P -Umacro -cpp -dD
-dI -dM -dN -dU -fworking-director -imultilib dir -iprefix fişier -citez -isysroot dir
-isistem dir -nocpp -nostdinc -undef

Eroare și avertizare Opţiuni
-Waliasing -Perete -Wampersand - Limite de război -Wc-tip-legare -Wtrunchierea caracterelor
-Wconversie -Wfuncție-eliminare -Interfață-Wimplicit -Wimplicit-procedura
-Wintrinsic-umbră -Wuse-fără-doar -Wintrinsics-std -Wline-truncare
-Wno-align-commons -Wno-file -Wreal-q-constant -Wsurprinzător -Wunderflow
-Wunused-parametru -Wrealloc-lhs -Wrealloc-lhs-toate -Wtarget-durata de viata -fmax-erori=n
-doar fsyntax -pedant -pedant-erori

Depanarea Opţiuni
-fbacktrace -fdump-fortran-optimizat -fdump-fortran-original -fdump-parse-tree
-ffpe-trap=listă -ffpe-rezumat=listă

director Opţiuni
-Idir -Jdir -cale-module-fintrinseci dir

Link Opţiuni
-static-libgfortran

Runtime Opţiuni
-fconvert=convertire -fmax-lungimea-subînregistrării=lungime -marcator de frecvențe=lungime -fsemn-zero

Cod Generație Opţiuni
-eliminare-funcţie-agresivă -fblas-matmul-limit=n -fbounds-check
-fcheck-array-temporaries -fcheck=
-fcoarray= -fexternal-blas -ff2c -ffrontend-optimize
-caracter-finit=n -finit-intger=n -finit-local-zero -finit-logic=
-finit-real= -fmax-array-constructor=n -fmax-stack-var-size=n
-fno-align-commons -fno-automat -fno-protect-parents -fno-subliniere
-fsecond-subliniere -derivat din fpack -frealloc-lhs -frecursiv -frepack-arrays
-fshort-enums -fstack-arrays

Opţiuni controlul Fortran dialect
Următoarele opțiuni controlează detaliile dialectului Fortran acceptate de compilator:

-fforma-liberă
-formă-fixă
Specificați aspectul utilizat de fișierul sursă. Aspectul în formă liberă a fost introdus în
Fortran 90. Forma fixă ​​a fost folosită în mod tradițional în programele Fortran mai vechi. Cand
nicio opțiune nu este specificată, forma sursă este determinată de extensia fișierului.

-cădere-intrinseci
Această opțiune face ca toate procedurile intrinseci (inclusiv extensiile specifice GNU).
A fi acceptat. Acest lucru poate fi util cu -std=f95 pentru a forța respectarea standardului dar obține
acces la întreaga gamă de intrinseci disponibile cu gfortran. În consecință,
-Wintrinsics-std va fi ignorată și nicio procedură definită de utilizator cu același nume ca
orice intrinsec va fi apelat cu excepția cazului în care este declarat în mod explicit „EXTERN”.

-fd-lines-as-code
-fd-lines-as-commentarii
Activați tratamentul special pentru liniile care încep cu „d” sau „D” în sursele de formă fixă.
În cazul în care -fd-lines-as-code este dată opțiunea, acestea sunt tratate ca și cum prima coloană
conţinea un gol. Dacă -fd-lines-as-commentarii este dată opțiunea, acestea sunt tratate ca
linii de comentarii.

-fdolar-ok
Permite $ ca un caracter valid care nu este primul într-un nume de simbol. Simboluri care încep cu $ sunt
respins, deoarece nu este clar ce reguli să se aplice pentru tastarea implicită ca fiind diferite
furnizorii implementează reguli diferite. Folosind $ în declaraţiile „IMPLICITE” este de asemenea respinsă.

-fbackslash
Schimbați interpretarea barelor oblice inverse în literalele șir de la o singură bară oblică inversă
caracter la caractere de evadare „în stil C”. Următoarele combinații sunt extinse
„\a”, „\b”, „\f”, „\n”, „\r”, „\t”, „\v”, „\\” și „\0” la caracterele ASCII
alertă, backspace, feed de formular, linie nouă, întoarcere transport, filă orizontală, filă verticală,
backslash și, respectiv, NUL. În plus, „\x”nn, „\u”nnnn si tu"nnnnnnnn
(unde fiecare n este o cifră hexazecimală) sunt traduse în caractere Unicode
corespunzătoare punctelor de cod specificate. Toate celelalte combinații ale unui caracter
precedate de \ sunt neexpandate.

-fmodule-privat
Setați accesibilitatea implicită a entităților modulului la „PRIVAT”. Utilizare asociată
entitățile nu vor fi accesibile decât dacă sunt declarate în mod explicit drept „PUBLICE”.

-lungime-linie-fixă-n
Setați coloana după care caracterele sunt ignorate în linii tipice cu formă fixă ​​din
fișierul sursă și prin care sunt asumate spații (ca și cum ar fi adăpostite la acea lungime) după
capetele liniilor scurte de formă fixă.

Valori populare pentru n include 72 (standard și implicit), 80 (imagine card) și
132 (corespunzător opțiunilor „sursă extinsă” din unele compilatoare populare). n Mai
de asemenea fi nici unul, ceea ce înseamnă că întreaga linie este semnificativă și acel caracter continuă
constantele nu au spații implicite atașate pentru a completa linia.
-lungime-linie-fixă-0 înseamnă același lucru ca și -lungime-linie-fixă-niciuna.

-flungime-linie-liberă-n
Setați coloana după care caracterele sunt ignorate în linii tipice cu formă liberă din sursă
fişier. Valoarea implicită este 132. n poate fi nici unul, adică întreaga linie este
plin de înțeles. -flungime-linia-liberă-0 înseamnă același lucru ca și -ffree-line-lungime-niciuna.

-fmax-identifier-length=n
Specificați lungimea maximă permisă a identificatorului. Valorile tipice sunt 31 (Fortran 95) și
63 (Fortran 2003 și Fortran 2008).

-fimplicit-niciuna
Specificați că nu este permisă nicio tastare implicită, cu excepția cazului în care este suprascrisă de „IMPLICIT” explicit
declarații. Acesta este echivalentul cu adăugarea „niciunul implicit” la începutul fiecărui
procedură.

-fcray-pointer
Activați extensia indicatorului Cray, care oferă funcționalitate de indicator asemănătoare C.

-fopenacc
Activați extensiile OpenACC. Aceasta include directivele OpenACC „!$acc” în formă liberă
și directivele „c$acc”, *$acc și „!$acc” în formă fixă, compilarea condiționată „!$”
santinelele în formă liberă și santinelele „c$”, „*$” și „!$” în formă fixă ​​și când
legarea aranjează pentru conectarea bibliotecii de execuție OpenACC.

Rețineți că aceasta este o caracteristică experimentală, incompletă și care poate fi modificată în viitor
versiuni ale GCC. Vedeahttps://gcc.gnu.org/wiki/OpenACC> pentru mai multe informații.

-fopenmp
Activați extensiile OpenMP. Aceasta include directivele OpenMP „!$omp” în formă liberă
și directivele „c$omp”, *$omp și „!$omp” în formă fixă, compilare condiționată „!$”
santinelele în formă liberă și santinelele „c$”, „*$” și „!$” în formă fixă ​​și când
linking aranjează ca biblioteca de rulare OpenMP să fie conectată. Opțiunea -fopenmp
implică -frecursiv.

-fno-range-check
Dezactivați verificarea intervalului pentru rezultatele simplificării expresiilor constante în timpul
compilare. De exemplu, GNU Fortran va da o eroare la momentul compilarii când
simplificând „a = 1. / 0”. Cu această opțiune, nu va fi dată nicio eroare și va fi „a”.
a atribuit valoarea „+Infinit”. Dacă o expresie se evaluează la o valoare din afara
interval relevant de ["-HUGE()":"HUGE()"], atunci expresia va fi înlocuită cu "-Inf"
sau „+Inf”, după caz. În mod similar, „DATA i/Z'FFFFFFFF'/” va avea ca rezultat un număr întreg
overflow pe majoritatea sistemelor, dar cu -fno-range-check valoarea se va „încheia” și
„i” va fi inițializat la -1.

-fdefault-integer-8
Setați tipurile întregi și logice implicite la un tip de 8 octeți. De asemenea, această opțiune
afectează tipul de constante întregi precum 42. Spre deosebire de -deget-4-întreg-8, da
nu promovează variabile cu declarație explicită de tip.

-fdefault-real-8
Setați tipul real implicit la un tip de 8 octeți. Această opțiune afectează și tipul de
constante reale non-duble precum 1.0 și promovează lățimea implicită a „DOUBLE
PRECIZIE” la 16 octeți, dacă este posibil, cu excepția cazului în care este specificat și „-fdefault-double-8”. Spre deosebire de
-freal-4-real-8, nu promovează variabile cu declarație explicită de tip.

-fdefault-double-8
Setați tipul „DOUBLE PRECISION” la un tip de 8 octeți. Nu faceți nimic dacă acest lucru este deja
implicit. Dacă -fdefault-real-8 este dat, „DUBĂ PRECIZIE” ar fi în schimb
promovat la 16 octeți dacă este posibil și -fdefault-double-8 poate fi folosit pentru a preveni acest lucru.
Tipul de constante reale precum „1.d0” nu va fi schimbat de -fdefault-real-8 deşi,
astfel, de asemenea -fdefault-double-8 nu o afectează.

-deget-4-întreg-8
Promovați toate entitățile „INTEGER(KIND=4)” la entități „INTEGER(KIND=8)”. Dacă „KIND=8”
nu este disponibil, atunci va fi emisă o eroare. Această opțiune trebuie utilizată cu grijă
și este posibil să nu fie potrivit pentru codurile dvs. Zonele de posibilă îngrijorare includ apelurile către
proceduri externe, aliniere în „ECHIVALENTĂ” și/sau „COMUN”, interfețe generice,
Conversie constantă literală BOZ și I/O. Verificarea intermediarului
reprezentare a codului Fortran tradus, produs de -fdump-tree-original, Este
sugerat.

-freal-4-real-8
-freal-4-real-10
-freal-4-real-16
-freal-8-real-4
-freal-8-real-10
-freal-8-real-16
Promovați toate entitățile „REAL(KIND=M)” la entități „REAL(KIND=N)”. Dacă „REAL(KIND=N)” este
indisponibil, atunci va fi emisă o eroare. Toate celelalte tipuri reale sunt neafectate
prin această opțiune. Aceste opțiuni trebuie utilizate cu grijă și pot să nu fie potrivite pentru
codurile dvs. Domeniile posibile de îngrijorare includ apeluri la proceduri externe, aliniere
în „ECHIVALENCE” și/sau „COMUN”, interfețe generice, conversie constantă literală BOZ,
și I/O. Inspecția reprezentării intermediare a Fortranului tradus
cod, produs de -fdump-tree-original, este sugerat.

-std=std
Specificați standardul la care se așteaptă să se conformeze programul, care poate fi unul dintre
f95, f2003, f2008, gnu, Sau moştenire. Valoarea implicită pentru std is gnu, care precizează
un superset al standardului Fortran 95 care include toate extensiile acceptate de
GNU Fortran, deși vor fi date avertismente pentru extensiile învechite nu sunt recomandate
pentru utilizare în codul nou. The moştenire valoarea este echivalentă, dar fără avertismentele pentru
extensii învechite și pot fi utile pentru programele vechi non-standard. The f95, f2003
și f2008 valorile specifică conformitatea strictă cu Fortran 95, Fortran 2003 și
Standardele Fortran 2008, respectiv; erori sunt date pentru toate extensiile dincolo de
standard de limbă relevant și sunt date avertismente pentru caracteristicile Fortran 77 care
sunt permise, dar învechite în standardele ulterioare. -std=f2008ts permite Fortran 2008
standard, inclusiv completările Specificației tehnice (TS) 29113 pe Further
Interoperabilitatea Fortran cu C și TS 18508 pe funcții paralele suplimentare în
Fortran.

Permite și personaliza preprocesare
Opțiuni legate de preprocesor. Vezi secțiunea preprocesare și condiţional compilare pentru
informații mai detaliate despre preprocesare în gfortran.

-cpp
-nocpp
Activați preprocesarea. Preprocesorul este invocat automat dacă extensia fișierului
is .fpp, .FPP, .F, .PENTRU, .FTN, .F90, .F95, .F03 or .F08. Utilizați această opțiune pentru a efectua manual
activați preprocesarea oricărui tip de fișier Fortran.

Pentru a dezactiva preprocesarea fișierelor cu oricare dintre extensiile enumerate mai sus, utilizați
forma negativa: -nocpp.

Preprocesorul rulează în modul tradițional. Orice restricții ale formatului fișierului,
în special limitele privind lungimea liniei, se aplică și pentru ieșirea preprocesată, deci
ar putea fi recomandabil să utilizați -ffree-line-lungime-niciuna or -lungime-linie-fixă-niciuna
opțiuni.

-dM În loc de ieșirea normală, generați o listă de directive „#define” pentru toate
macrocomenzi definite în timpul execuției preprocesorului, inclusiv macrocomenzi predefinite.
Acest lucru vă oferă o modalitate de a afla ce este predefinit în versiunea dvs. a
preprocesor. Presupunând că nu aveți niciun fișier foo.f90, comanda

atinge foo.f90; gfortran -cpp -E -dM foo.f90

va afișa toate macrocomenzile predefinite.

-dD Aprecieri -dM cu excepția a două aspecte: nu include macrocomenzile predefinite și acesta
scoate atât directivele „#define”, cât și rezultatul preprocesării. Ambele tipuri de
ieșire merge la fișierul de ieșire standard.

-dN Aprecieri -dD, dar emit doar numele macro, nu expansiunile acestora.

-dU Aprecieri dD cu excepția faptului că numai macrocomenzile care sunt extinse sau a căror definiție este testată
directivele de preprocesor, sunt ieșite; ieșirea este întârziată până la utilizarea sau testarea
macroul; și directivele „#undef” sunt, de asemenea, rezultate pentru macrocomenzile testate, dar nedefinite la
timpul.

-dI Ieșiți directivele „#include” în plus față de rezultatul preprocesării.

-fworking-director
Activați generarea de marcatori de linie în ieșirea preprocesorului care va permite compilatorului
cunoașteți directorul de lucru curent în momentul preprocesării. Când această opțiune este
activat, preprocesorul va emite, după marcatorul de linie inițial, un al doilea marcator de linie
cu directorul de lucru curent urmat de două bare oblice. GCC va folosi acest lucru
director, când este prezent în intrarea preprocesată, ca directorul emis ca
directorul de lucru curent în unele formate de informații de depanare. Această opțiune este
activat implicit dacă informațiile de depanare sunt activate, dar acest lucru poate fi inhibat cu
forma negata -fno-director-de-lucru. Dacă -P steag este prezent în comandă
linie, această opțiune nu are niciun efect, deoarece nu sunt emise directive „#line”.

-idirafter dir
Caută dir pentru include fișiere, dar faceți-o după toate directoarele specificate cu -I și
directoarele standard de sistem au fost epuizate. dir este tratat ca un sistem
include directorul. Dacă dir începe cu „=", atunci „=" va fi înlocuit cu
prefix sysroot; vedea --sysroot și -isysroot.

-imultilib dir
Utilizare dir ca subdirector al directorului care conține anteturi C++ specifice țintei.

-iprefix prefix
Specifica prefix ca prefix pentru ulterioare -icuprefix Opțiuni. Dacă prefix
reprezintă un director, ar trebui să includeți finalul „/”.

-isysroot dir
Această opțiune este ca --sysroot opțiunea, dar se aplică numai fișierelor antet. Vezi
--sysroot opțiune pentru mai multe informații.

-citez dir
Caută dir numai pentru fișierele antet solicitate cu „#include „fișier””; ei nu sunt
a căutat „#include ", înaintea tuturor directoarelor specificate de -I și înainte de
directoare standard de sistem. Dacă dir începe cu „=", apoi „=" va fi înlocuit cu
prefixul sysroot; vedea --sysroot și -isysroot.

-isistem dir
Caută dir pentru fișierele antet, după toate directoarele specificate de -I dar înainte de
directoare standard de sistem. Marcați-l ca director de sistem, astfel încât să devină același
tratament special aplicat directoarelor de sistem standard. Dacă dir începe cu
„=", apoi „=" va fi înlocuit cu prefixul sysroot; vedea --sysroot și -isysroot.

-nostdinc
Nu căutați fișierele antet în directoarele standard de sistem. Doar directoarele
ai specificat cu -I opțiuni (și directorul fișierului curent, dacă
adecvate) sunt căutate.

-undef
Nu predefiniți macrocomenzi specifice sistemului sau specifice GCC. Standardul predefinit
macrourile rămân definite.

-Apredicat=răspunde
Faceți o afirmație cu predicatul predicat si raspunsul răspunde. Această formă este
preferat formei mai vechi -Un predicat(răspuns), care este încă susținut, deoarece acesta
nu folosește caractere speciale shell.

-ARE-predicat=răspunde
Anulează o aserțiune cu predicatul predicat si raspunsul răspunde.

-C Nu aruncați comentarii. Toate comentariile sunt transmise în fișierul de ieșire, cu excepția
pentru comentariile din directivele procesate, care sunt șterse împreună cu directiva.

Ar trebui să fiți pregătit pentru efecte secundare atunci când utilizați -C; determină preprocesorul să
tratează comentariile ca semne în sine. De exemplu, comentariile care apar la
începutul a ceea ce ar fi o linie directivă are ca efect transformarea acelei linii într-un
linie sursă obișnuită, deoarece primul jeton de pe linie nu mai este un „#”.

Avertisment: acest lucru se ocupă în prezent numai de comentarii în stil C. Preprocesorul încă nu
recunoașteți comentariile în stilul Fortran.

-CC Nu aruncați comentarii, inclusiv în timpul extinderii macrocomenzilor. Acesta este ca -C, cu exceptia
că comentariile conținute în macrocomenzi sunt, de asemenea, transmise în fișierul de ieșire unde
macro-ul este extins.

Pe lângă efectele secundare ale -C opțiune, -CC opțiunea cauzează tot stilul C++
comentariile dintr-o macrocomandă pentru a fi convertite în comentarii în stil C. Acest lucru este pentru a preveni mai târziu
utilizarea acelei macrocomenzi de la comentarea din neatenție a restului liniei sursă.
-CC opțiunea este în general utilizată pentru a susține comentariile la scame.

Atenție: în prezent se ocupă doar de comentarii în stil C și C++. Preprocesorul face
nu recunosc încă comentariile în stilul Fortran.

-Dnume
Predefiniți numele ca macrocomandă, cu definiția 1.

-Dnume=definiție
Conținutul definiție sunt tokenizate și procesate ca și cum ar fi apărut în timpul
faza de traducere a treia într-o directivă „#define”. În special, definiția va
să fie trunchiată de caractere de linie nouă încorporate.

Dacă invocați preprocesorul dintr-un shell sau un program asemănător shell-ului de care aveți nevoie
pentru a utiliza sintaxa de ghilimele shell-ului pentru a proteja caractere precum spațiile care au a
sens în sintaxa shell.

Dacă doriți să definiți o macrocomandă asemănătoare unei funcții pe linia de comandă, scrieți argumentul acesteia
listă cu paranteze înconjurătoare înainte de semnul egal (dacă există). Parantezele sunt
semnificativ pentru majoritatea shell-urilor, așa că va trebui să citați opțiunea. Cu sh și csh,
„-D’name(args...)=definition’” funcționează.

-D și -U opțiunile sunt procesate în ordinea în care sunt date pe linia de comandă. Toate
Opțiunile de fișier -imacros și -include fișiere sunt procesate după toate opțiunile -D și -U.

-H Tipăriți numele fiecărui fișier antet utilizat, pe lângă alte activități normale. Fiecare
numele este indentat pentru a arăta cât de adânc este în stiva „#include”.

-P Inhibați generarea de marcatori de linie în ieșirea de la preprocesor. Acest lucru ar putea fi
util atunci când rulați preprocesorul pe ceva care nu este cod C și va fi trimis
la un program care ar putea fi confundat de marcatori de linie.

-Unume
Anulați orice definiție anterioară a nume, fie încorporat, fie prevăzut cu a -D opțiune.

Opţiuni la solicita or suprima Erori și avertismente
Erorile sunt mesaje de diagnosticare care raportează că compilatorul GNU Fortran nu poate compila
piesa relevantă de cod sursă. Compilatorul va continua să proceseze programul în
o încercare de a raporta erori suplimentare pentru a ajuta la depanare, dar nu va produce nicio compilație
ieșire.

Avertismentele sunt mesaje de diagnosticare care raportează construcții care nu sunt în mod inerent
eronate, dar care sunt riscante sau sugerează că este probabil să existe o eroare în program.
dacă nu -Eroare este specificat, acestea nu împiedică compilarea programului.

Puteți solicita multe avertismente specifice cu opțiunile care încep -W, De exemplu, -Wimplicit
să solicite avertismente asupra declaraţiilor implicite. De asemenea, fiecare dintre aceste opțiuni specifice de avertizare
are un început de formă negativă -Nu- a dezactiva avertismentele; de exemplu, - Nu-implicit.
Acest manual listează doar una dintre cele două forme, oricare dintre acestea nu este implicit.

Aceste opțiuni controlează cantitatea și tipurile de erori și avertismente produse de GNU Fortran:

-fmax-erori=n
Limitează numărul maxim de mesaje de eroare la n, moment în care GNU Fortran renunță
mai degrabă decât încercarea de a continua procesarea codului sursă. Dacă n este 0, nu există
limita numărului de mesaje de eroare produse.

-doar fsyntax
Verificați codul pentru erori de sintaxă, dar nu îl compilați de fapt. Aceasta va genera
fișiere de modul pentru fiecare modul prezent în cod, dar niciun alt fișier de ieșire.

-pedant
Emiteți avertismente pentru utilizarea extensiilor la Fortran 95. -pedant se aplică și pentru
Construcții în limbaj C acolo unde apar în fișierele sursă GNU Fortran, cum ar fi utilizarea \e
într-o constantă de caractere în cadrul unei directive precum „#include”.

Programele valide Fortran 95 ar trebui să fie compilate corect cu sau fără această opțiune.
Cu toate acestea, fără această opțiune, anumite extensii GNU și caracteristici tradiționale Fortran
sunt susținute de asemenea. Cu această opțiune, multe dintre ele sunt respinse.

Unii utilizatori încearcă să folosească -pedant pentru a verifica programele pentru conformitate. Ei găsesc curând
că nu face ceea ce vor ei --- găsește niște practici nestandard, dar
nu tot. Cu toate acestea, îmbunătățirile aduse GNU Fortran în acest domeniu sunt binevenite.

Acest lucru ar trebui folosit împreună cu -std=f95, -std=f2003 or -std=f2008.

-pedant-erori
Aprecieri -pedant, cu excepția faptului că sunt produse mai degrabă erori decât avertismente.

-Perete
Activează opțiunile de avertizare utilizate în mod obișnuit referitoare la utilizare pe care vă recomandăm să le evitați
și despre care credem că sunt ușor de evitat. Aceasta include în prezent -Waliasing,
-Wampersand, -Wconversie, -Wsurprinzător, -Wc-tip-legare, -Wintrinsics-std,
-Wno-file, -Wintrinsic-umbră, -Wline-truncare, -Wtarget-durata de viata, -Wreal-q-constant
și -Wunused.

-Waliasing
Avertizați despre posibila aliasare a argumentelor false. Mai exact, avertizează dacă la fel
Argumentul actual este asociat cu un argument inactiv cu „INTENT(IN)” și un dummy
argument cu „INTENT(OUT)” într-un apel cu o interfață explicită.

Următorul exemplu va declanșa avertismentul.

interfață
bara subrutinei (a,b)
întreg, intenție(în) :: a
întreg, intenție (out) :: b
sfârşitul subrutinei
interfața finală
întreg :: a

bara de apeluri(a,a)

-Wampersand
Avertizați despre lipsa ampersand în constantele caracterelor continue. Se da avertismentul
cu -Wampersand, -pedant, -std=f95, -std=f2003 și -std=f2008. Notă: Cu nr
Ampersand dat într-o constantă de caractere continuă, GNU Fortran presupune continuarea la
primul caracter non-comentare, fără spații albe după semnul și care a inițiat
continuare.

-Razboi-temporari
Avertizați despre matricele temporare generate de compilator. Informațiile generate de
acest avertisment este uneori util în optimizare, pentru a evita astfel de temporare.

-Wc-tip-legare
Avertizați dacă variabila a nu poate fi interoperabilă C. În special, avertizați dacă
variabila a fost declarată folosind un tip intrinsec cu tip implicit în loc să fie utilizat
un parametru de tip definit pentru interoperabilitatea C în „ISO_C_Binding” intrinsec
modul. Această opțiune este implicată de -Perete.

-Wtrunchierea caracterelor
Avertizați când o atribuire de caractere va trunchia șirul atribuit.

-Wline-truncare
Avertizați când o linie de cod sursă va fi trunchiată. Această opțiune este implicată de -Perete. Pentru
cod sursă în formă liberă, implicit este -Werror=truncare-linie astfel încât trunchiuri
sunt raportate ca eroare.

-Wconversie
Avertizați cu privire la conversiile implicite care ar putea schimba valoarea expresiei
după conversie. Implicat de -Perete.

-Wconversie-extra
Avertizați despre conversiile implicite între diferite tipuri și tipuri. Această opțiune face
nu implica -Wconversie.

-Wextra
Activează unele opțiuni de avertizare pentru utilizarea caracteristicilor lingvistice care pot fi problematice.
Aceasta include în prezent -Wcompare-reals și -Wunused-parametru.

-Interfață-Wimplicit
Avertizați dacă o procedură este apelată fără o interfață explicită. Rețineți că acestea sunt doar verificări
că este prezentă o interfață explicită. Nu verifică dacă interfețele declarate
sunt consecvente între unitățile de program.

-Wimplicit-procedura
Avertizați dacă este apelată o procedură care nu are nici o interfață explicită și nici nu a fost
declarat ca „EXTERN”.

-Wintrinsics-std
Avertizați dacă gfortran găsește o procedură numită ca un intrinsec care nu este disponibil în
standard selectat în prezent (cu -std) și o tratează ca procedură „EXTERNĂ” deoarece
din aceasta. -cădere-intrinseci poate fi folosit pentru a nu declanșa niciodată acest comportament și pentru a lega întotdeauna
la intrinsec indiferent de standardul selectat.

-Wreal-q-constant
Produceți un avertisment dacă o constantă-literală reală conține o literă-exponent „q”.

-Wsurprinzător
Produceți un avertisment atunci când sunt întâlnite constructe de cod „suspecte”. In timp ce
legale din punct de vedere tehnic, acestea indică de obicei că a fost făcută o eroare.

Acest lucru produce în prezent un avertisment în următoarele circumstanțe:

* Un construct INTEGER SELECT are un CASE care nu poate fi niciodată egalat ca mai mic
valoarea este mai mare decât valoarea sa superioară.

* Un construct LOGIC SELECT are trei instrucțiuni CASE.

* UN TRANSFER specifică o sursă care este mai scurtă decât destinația.

* Tipul unui rezultat al funcției este declarat de mai multe ori cu același tip. Dacă
-pedant sau modul conform standardului este activat, aceasta este o eroare.

* O variabilă „CARACTER” este declarată cu lungime negativă.

-Wtabs
În mod implicit, filele sunt acceptate ca spații albe, dar filele nu sunt membre ale Fortran
Set de caractere. Pentru liniile de continuare, este o filă urmată de o cifră între 1 și 9
sprijinit. -Wtabs va determina emiterea unui avertisment dacă este întâlnită o filă. Notă,
-Wtabs este activ pentru -pedant, -std=f95, -std=f2003, -std=f2008, -std=f2008ts și
-Perete.

-Wunderflow
Produceți un avertisment atunci când sunt întâlnite expresii constante numerice, care produc un
SUBFLOW în timpul compilării. Activat implicit.

-Wintrinsic-umbră
Avertizați dacă o procedură definită de utilizator sau o procedură de modul are același nume cu un
intrinsec; în acest caz, o interfață explicită sau „EXTERN” sau „INTRINSEC”
s-ar putea să fie necesară declarația pentru ca apelurile să fie soluționate ulterior la cea dorită
intrinsecă/procedură. Această opțiune este implicată de -Perete.

-Wuse-fără-doar
Avertizați dacă o instrucțiune „USE” nu are calificativ „ONLY” și implicit importă toate
entități publice ale modulului utilizat.

-Wunus-dummy-argument
Avertizați despre argumentele false neutilizate. Această opțiune este implicată de -Perete.

-Wunused-parametru
Contrar la gccsensul lui -Wunused-parametru, gfortranimplementarea acestui lucru
opțiunea nu avertizează despre argumentele false neutilizate (vezi -Wunus-dummy-argument), dar
despre valorile „PARAMETER” neutilizate. -Wunused-parametru este subînțeles de -Wextra dacă de asemenea
-Wunused or -Perete este folosit.

-Walign-commons
În mod implicit, gfortran avertizează cu privire la orice ocazie de completare a variabilelor pentru corectitudine
alinierea în interiorul unui bloc „COMUN”. Acest avertisment poate fi dezactivat prin
-Wno-align-commons. Vezi si -falign-commons.

-Wfuncție-eliminare
Avertizați dacă apelurile la funcții sunt eliminate de optimizările activate de
-ffrontend-optimize opțiune.

-Wrealloc-lhs
Avertizați când compilatorul poate introduce cod pentru alocarea sau realocarea unui
variabilă matrice alocabilă de tip intrinsec în atribuiri intrinseci. În bucle fierbinți,
caracteristica de realocare Fortran 2003 poate reduce performanța. Dacă matricea este
deja alocat cu forma corectă, luați în considerare utilizarea unui întreg array-spec
(de ex. „(:,:,:)”) pentru variabila din partea stângă pentru a preveni realocarea
Verifica. Rețineți că, în unele cazuri, avertizarea este afișată, chiar dacă compilatorul o va face
optimizați controalele de realocare. De exemplu, când partea dreaptă conține
aceeași variabilă înmulțită cu un scalar. Vezi si -frealloc-lhs.

-Wrealloc-lhs-toate
Avertizați când compilatorul introduce cod pentru alocarea sau realocarea unui
variabilă alocabilă; aceasta include scalari și tipurile derivate.

-Wcompare-reals
Avertizați când comparați tipuri reale sau complexe pentru egalitate sau inegalitate. Această opțiune este
subînțeles de -Wextra.

-Wtarget-durata de viata
Avertizați dacă indicatorul dintr-o atribuire de indicator poate fi mai lung decât ținta acestuia. Acest
opțiunea este implicată de -Perete.

-Wzerotrip
Avertizați dacă se știe că o buclă „DO” se execută de zero ori în timpul compilării. Această opțiune este
subînțeles de -Perete.

-Eroare
Transformă toate avertismentele în erori.

Unele dintre acestea nu au niciun efect la compilarea programelor scrise în Fortran.

Opţiuni pentru depanare ta program or GNU Fortran
GNU Fortran are diverse opțiuni speciale care sunt utilizate pentru depanarea fie programului dvs., fie
compilatorul GNU Fortran.

-fdump-fortran-original
Ieșiți arborele de analiză intern după traducerea programului sursă în intern
reprezentare. Cu adevărat util doar pentru depanarea compilatorului GNU Fortran în sine.

-fdump-fortran-optimizat
Ieșiți arborele de analiză după optimizarea front-end. Cu adevărat util doar pentru depanare
compilatorul GNU Fortran însuși.

-fdump-parse-tree
Ieșiți arborele de analiză intern după traducerea programului sursă în intern
reprezentare. Cu adevărat util doar pentru depanarea compilatorului GNU Fortran în sine.
Această opțiune este depreciată; utilizați în schimb „-fdump-fortran-original”.

-ffpe-trap=listă
Specificați o listă de capcane de excepție în virgulă mobilă de activat. Pe majoritatea sistemelor, dacă a
apare o excepție în virgulă mobilă și este activată capcana pentru acea excepție, un SIGFPE
semnalul va fi trimis și programul va fi avortat, producând un fișier de bază util pentru
depanare. listă este o listă (posibil goală) separată prin virgulă a următoarelor
exceptii: invalid (operație nevalidă în virgulă mobilă, cum ar fi „SQRT(-1.0)”), zero
(impartirea cu zero), revărsare (depășire într-o operație în virgulă mobilă), debordare
(subflux într-o operațiune în virgulă flotantă), inexacte (pierderea preciziei în timpul
operare), și denormal (operație efectuată pe o valoare denormală). Primele cinci
excepțiile corespund celor cinci excepții IEEE 754, în timp ce ultima (denormal)
nu face parte din standardul IEEE 754, dar este disponibil pe unele arhitecturi comune
cum ar fi x86.

Primele trei excepții (invalid, zero, și revărsare) indică adesea grav
erori și cu excepția cazului în care programul are prevederi pentru tratarea acestor excepții,
activarea capcanelor pentru aceste trei excepții este probabil o idee bună.

Multe, dacă nu majoritatea, operațiunile cu virgulă mobilă implică pierderi de precizie din cauza rotunjirii,
și, prin urmare, „ffpe-trap=inexact” este probabil să fie neinteresant în practică.

În mod implicit, nicio capcană de excepție nu este activată.

-ffpe-rezumat=listă
Specificați o listă de excepții în virgulă mobilă, a căror stare este tipărită
„ERROR_UNIT” la invocarea „STOP” și „ERROR STOP”. listă pote fi oricare nici unul, toate sau un
listă, separată prin virgulă, a următoarelor excepții: invalid, zero, revărsare, debordare,
inexacte și denormal. (Vedea -ffpe-capcană pentru o descriere a excepțiilor.)

În mod implicit, un rezumat pentru toate excepțiile, dar inexacte este arătat.

-fno-backtrace
Când se întâlnește o eroare gravă de rulare sau este emis un semnal mortal
(eroare de segmentare, instrucțiuni ilegale, eroare de magistrală, excepție în virgulă mobilă și
alte semnale POSIX care au acțiune CORE), biblioteca de rulare Fortran încearcă
scoate un backtrace al erorii. „-fno-backtrace” dezactivează generarea backtrace.
Această opțiune are influență numai pentru compilarea programului principal Fortran.

Opţiuni pentru director căutare
Aceste opțiuni afectează modul în care GNU Fortran caută fișierele specificate de „INCLUDE”
directivă și unde caută modulele compilate anterior.

De asemenea, afectează căile de căutare utilizate de cpp atunci când este folosit pentru a preprocesa sursa Fortran.

-Idir
Acestea afectează interpretarea directivei „INCLUDE” (precum și a directivei „#include”
directiva a cpp preprocesor).

De asemenea, rețineți că comportamentul general al -I iar „INCLUDE” este aproape identic cu din
-I cu „#include” în cpp preprocesor, în ceea ce privește căutarea antet.gcc
dosare și alte asemenea lucruri.

Această cale este folosită și pentru a căuta .mod fișierele când modulele compilate anterior sunt
cerut de o declarație „USE”.

-Jdir
Această opțiune specifică unde se pune .mod fișiere pentru modulele compilate. Se mai adauga
la lista de directoare care trebuie căutate printr-o instrucțiune „USE”.

Implicit este directorul curent.

-cale-module-fintrinseci dir
Această opțiune specifică locația modulelor intrinseci pre-compilate, dacă nu sunt
în locația implicită așteptată de compilator.

influentarea il legarea pas
Aceste opțiuni intră în joc atunci când compilatorul leagă fișierele obiect într-un executabil
fisier de iesire. Ele sunt lipsite de sens dacă compilatorul nu face un pas de legătură.

-static-libgfortran
Pe sistemele care oferă libgfortran ca bibliotecă partajată și statică, această opțiune
forțează utilizarea versiunii statice. Dacă nu există o versiune partajată a libgfortran a fost construit
când compilatorul a fost configurat, această opțiune nu are efect.

influentarea Runtime comportament
Aceste opțiuni afectează comportamentul de rulare al programelor compilate cu GNU Fortran.

-fconvert=convertire
Specificați reprezentarea datelor pentru fișierele neformatate. Valori valide pentru conversie
sunt: nativ, implicit; schimba, schimbă între big- și little-endian; big endian, Utilizare
reprezentare big-endian pentru fișiere neformatate; little-endian, folosește little-endian
reprezentare pentru fișiere neformatate.

Acest opțiune are an efect afară cand utilizat in il principal programul. "CONVERTIT" specificator
și il GFORTRAN_CONVERT_UNIT mediu inconjurator variabil trece peste il lipsă specificată by
-fconvert.

-marcator de frecvențe=lungime
Specificați lungimea markerilor de înregistrare pentru fișierele neformatate. Valori valabile pentru lungime
sunt 4 și 8. Implicit este 4. Acest is diferit din precedent Versiunile of gfortran,
care a specificat o lungime implicită a markerului de înregistrare de 8 pe majoritatea sistemelor. Dacă doriți să
citiți sau scrieți fișiere compatibile cu versiunile anterioare ale gfortran, Utilizare
-marcător de frecvență=8.

-fmax-lungimea-subînregistrării=lungime
Specificați lungimea maximă pentru o subînregistrare. Valoarea maximă permisă pentru lungime este
2147483639, care este, de asemenea, implicit. Numai util pentru utilizare de către gfortran
suită de teste.

-fsemn-zero
Când este activat, sunt scrise numere în virgulă mobilă cu valoarea zero cu bitul de semn setat
ca număr negativ în rezultatul formatat și tratat ca negativ în „SEMNE”
intrinsec. -fno-semn-zero nu imprimă semnul negativ al valorilor zero (sau al valorilor
rotunjit la zero pentru I/O) și consideră zero ca număr pozitiv în intrinsecul „SIGN”.
pentru compatibilitate cu Fortran 77. Implicit este -fsemn-zero.

Opţiuni pentru cod generaţie Convenții
Aceste opțiuni independente de mașină controlează convențiile de interfață utilizate în cod
generaţie.

Cele mai multe dintre ele au atât forme pozitive, cât și negative; forma negativă a -ffoo va fi
-fno-foo. În tabelul de mai jos, este listată doar una dintre forme --- cea care nu este
Mod implicit. Puteți descoperi cealaltă formă fie prin eliminarea nO- sau adăugându-l.

-fno-automat
Tratați fiecare unitate de program (cu excepția celor marcate ca RECURSIV) ca și cum ar fi afirmația „SAVE”.
au fost specificate pentru fiecare variabilă locală și matrice la care se face referire în ea. Nu afectează
blocuri comune. (Unele compilatoare Fortran oferă această opțiune sub numele -static or
-Salvați.) Valoarea implicită, care este -fautomatic, folosește stiva pentru variabilele locale mai mici
decât valoarea dată de -fmax-stiva-var-size. Utilizați opțiunea -frecursiv a folosi nr
memorie statică.

-ff2c
Generați cod conceput pentru a fi compatibil cu codul generat de g77 și f2c.

Convențiile de apelare utilizate de g77 (implementat inițial în f2c) necesită funcții
acel tip de returnare implicit „REAL” pentru a returna de fapt tipul C „dublu” și funcții
care returnează tipul „COMPLEX” pentru a returna valorile printr-un argument suplimentar în apelare
secvență care indică unde să stocheze valoarea returnată. Sub GNU implicit
convenții de apelare, astfel de funcții pur și simplu își returnează rezultatele așa cum ar fi în GNU
C---funcțiile implicite „REAL” returnează tipul C „float”, iar funcțiile „COMPLEX” returnează
tipul GNU C „complex”. În plus, această opțiune implică -fsecond-subliniere
opțiune, cu excepția cazului în care -fno-secunda-subliniere este solicitat în mod explicit.

Acest lucru nu afectează generarea de cod care interfață cu libgfortran
bibliotecă.

Prudență: Nu este o idee bună să amestecați codul Fortran compilat cu -ff2c cu codul
compilat cu implicit -fno-f2c apelarea convențiilor ca, apelarea „COMPLEX” sau
funcții implicite „REALE” între părțile programului care au fost compilate cu diferite
convențiile de apelare se vor rupe la momentul execuției.

Prudență: Acest lucru va sparge codul care trece funcții intrinseci de tip implicit „REAL”
sau „COMPLEX” ca argumente reale, deoarece implementările bibliotecii folosesc -fno-f2c
convenții de apelare.

-fno-subliniere
Nu transformați numele entităților specificate în fișierul sursă Fortran prin adăugare
le subliniază.

cu -funderscoring de fapt, GNU Fortran adaugă o liniuță de subliniere la numele externe
fără subliniere. Acest lucru se face pentru a asigura compatibilitatea cu codul produs de mulți
Compilatoare UNIX Fortran.

Prudență: Comportamentul implicit al GNU Fortran este incompatibil cu f2c și g77, Vă rugăm să
utilizați -ff2c opțiune dacă doriți ca fișierele obiect compilate cu GNU Fortran să fie
compatibil cu codul obiect creat cu aceste instrumente.

Utilizarea de -fno-subliniere nu este recomandat decât dacă experimentați cu probleme
cum ar fi integrarea GNU Fortran în mediile de sistem existente (vis-a-vis
biblioteci, instrumente existente și așa mai departe).

De exemplu, cu -funderscoringși presupunând că „j()” și „max_count()” sunt
funcții externe în timp ce „my_var” și „lvar” sunt variabile locale, o declarație ca

I = J() + MAX_COUNT (MY_VAR, LVAR)

este implementat ca ceva asemănător cu:

i = j_() + max_count__(&my_var__, &lvar);

cu -fno-subliniere, aceeași declarație este implementată ca:

i = j() + max_count(&my_var, &lvar);

Utilizarea de -fno-subliniere permite specificarea directă a numelor definite de utilizator în timp ce
depanare și la interfațarea codului GNU Fortran cu alte limbi.

Rețineți că doar pentru că numele se potrivesc nu înseamnă că interfața implementată de
GNU Fortran pentru un nume extern se potrivește cu interfața implementată de altcineva
limba pentru același nume. Adică, obținerea codului produs de GNU Fortran la care să se conecteze
codul produs de un alt compilator care utilizează această metodă sau orice altă metodă poate fi doar a
o mică parte a soluției generale --- obținerea codului generat de ambii compilatori la
a fi de acord asupra altor probleme decât denumirea poate necesita un efort semnificativ și, spre deosebire de denumire
dezacorduri, linkerii în mod normal nu pot detecta dezacorduri în aceste alte domenii.

De asemenea, rețineți că cu -fno-subliniere, lipsa sublinierii anexate introduce
posibilitatea foarte reală ca un nume extern definit de utilizator să intre în conflict cu un nume
într-o bibliotecă de sistem, ceea ce ar putea face găsirea erorilor de referință nerezolvate
dificile în unele cazuri --- ele pot apărea în timpul rulării programului și pot apărea doar ca
comportament de erori în timpul rulării.

În versiunile viitoare ale GNU Fortran, sperăm să îmbunătățim problemele legate de denumire și legături, astfel încât
depanarea implică întotdeauna utilizarea numelor așa cum apar în sursă, chiar dacă
numele așa cum sunt văzute de linker sunt alterate pentru a preveni legarea accidentală între
proceduri cu interfeţe incompatibile.

-fsecond-subliniere
În mod implicit, GNU Fortran adaugă un caracter de subliniere la numele externe. Dacă această opțiune este
folosit GNU Fortran adaugă două litere de subliniere la nume cu caractere de subliniere și una de subliniere
la nume externe fără caractere de subliniere. GNU Fortran adaugă și două subliniere la
nume interne cu caractere de subliniere pentru a evita coliziunile de denumire cu numele externe.

Această opțiune nu are efect dacă -fno-subliniere este în vigoare. Este subînțeles de
-ff2c opțiune.

În caz contrar, cu această opțiune, un nume extern, cum ar fi „MAX_COUNT” este implementat ca a
referință la simbolul extern de timp de legătură „max_count__”, în loc de „max_count_”.
Acest lucru este necesar pentru compatibilitate cu g77 și f2c, și este implicită prin utilizarea
-ff2c opțiune.

-fcoarray=
nici unul
Dezactivați suportul coaray; folosind declarații coarase și instrucțiuni de control al imaginii
va produce o eroare de compilare. (Mod implicit)

singur
Modul o singură imagine, adică „num_images()” este întotdeauna unul.

lib Paralelizare coaarray bazată pe bibliotecă; o bibliotecă coarray GNU Fortran adecvată
trebuie conectat.

-fcheck=
Activați generarea de verificări în timpul execuției; argumentul va fi o listă delimitată prin virgulă
dintre următoarele cuvinte cheie.

toate Activați toate testele de rulare ale -fverifica.

matrice-temps
Avertizează în timpul rulării când pentru a transmite un argument real trebuia să existe o matrice temporară
generate. Informațiile generate de acest avertisment sunt uneori utile în
optimizare, pentru a evita astfel de temporare.

Notă: avertismentul este tipărit o singură dată per locație.

limite
Activați generarea de verificări în timpul execuției pentru subindicele matricei și față de cele declarate
valorile minime și maxime. De asemenea, verifică indicii de matrice pentru asumați și amânați
forme matrice față de limitele reale alocate și se asigură că toate șirurile
lungimile sunt egale pentru constructorii de matrice de caractere fără o specificație de tip explicită.

Unele verificări impun asta -fcheck=limite este setat pentru compilarea principalului
programul.

Notă: În viitor, aceasta poate include și alte forme de verificare, de exemplu, verificarea
referințe la subșiruri.

do Activați generarea de verificări de rulare pentru modificarea nevalidă a iterației buclei
variabile.

în sine Activați generarea de verificări de rulare pentru alocarea memoriei. Notă: Această opțiune
nu afectează alocările explicite folosind instrucțiunea „ALLOCATE”, care va fi
mereu verificat.

indicatorul
Activați generarea de verificări în timpul execuției pentru pointeri și alocabile.

recursivitate
Activați generarea de verificări în timpul execuției pentru subrutine numite recursiv și
funcții care nu sunt marcate ca recursive. Vezi si -frecursiv. Notă: Aceasta
verificarea nu funcționează pentru programele OpenMP și este dezactivată dacă este utilizat împreună cu
-frecursiv și -fopenmp.

-fbounds-check
Alias ​​depreciat pentru -fcheck=limite.

-fcheck-array-temporaries
Alias ​​depreciat pentru -fcheck=array-temps.

-fmax-array-constructor=n
Această opțiune poate fi folosită pentru a crește limita superioară permisă în constructorii de matrice.
Codul de mai jos necesită această opțiune pentru a extinde matricea în timpul compilării.

testul programului
implicit nici unul
întreg j
întreg, parametru :: n = 100000
întreg, parametru :: i(n) = (/ (2*j, j = 1, n) /)
tipăriți „(10(I0,1X))”, i
sfârșitul testului programului

Prudență: Acest opțiune poate să conduce la lung compila ori și excesiv mare obiect
fișiere.

Valoarea implicită pentru n este 65535.

-fmax-stack-var-size=n
Această opțiune specifică dimensiunea în octeți a celei mai mari matrice care va fi pusă pe
grămadă; dacă dimensiunea este depășită, se folosește memoria statică (cu excepția procedurilor marcate ca
RECURSIV). Utilizați opțiunea -frecursiv pentru a permite proceduri recursive care nu
au un atribut RECURSIV sau pentru programe paralele. Utilizare -fno-automat a nu folosi niciodată
stiva.

Această opțiune afectează în prezent numai matricele locale declarate cu limite constante și poate
nu se aplică tuturor variabilelor caracter. Versiunile viitoare de GNU Fortran ar putea îmbunătăți acest lucru
comportament.

Valoarea implicită pentru n este 32768.

-fstack-arrays
Adăugarea acestei opțiuni va face ca compilatorul Fortran să pună toate matricele locale, chiar și pe cele ale
dimensiune necunoscută în memoria stivei. Dacă programul dvs. folosește matrice locale foarte mari, este
este posibil să trebuiască să vă extindeți limitele de rulare pentru memoria stivă pe unele
sisteme de operare. Acest flag este activat implicit la nivel de optimizare -De repede.

-derivat din fpack
Această opțiune îi spune lui GNU Fortran să împacheteze membrii tip derivat cât mai aproape posibil.
Codul compilat cu această opțiune este probabil să fie incompatibil cu codul compilat fără
această opțiune și se poate executa mai lent.

-frepack-arrays
În unele circumstanțe, GNU Fortran poate trece secțiuni de matrice de formă presupusă prin a
descriptor care descrie o zonă necontiguă a memoriei. Această opțiune adaugă cod la
prologul funcției pentru a reambala datele într-un bloc contiguu în timpul execuției.

Acest lucru ar trebui să aibă ca rezultat accesări mai rapide la matrice. Cu toate acestea se poate introduce
suprasarcină semnificativă pentru apelul de funcție, mai ales atunci când datele transmise sunt
necontigue.

-fshort-enums
Această opțiune este oferită pentru interoperabilitatea cu codul C care a fost compilat cu
-fshort-enums opțiune. Acesta va determina GNU Fortran să aleagă cel mai mic tip „INTEGER” a
setul de enumeratori dat se va potrivi și va oferi tuturor enumeratorilor săi acest tip.

-fexternal-blas
Această opțiune va face gfortran genera apeluri la funcții BLAS pentru unele matrice
operațiuni precum „MATMUL”, în loc să folosim proprii algoritmi, dacă dimensiunea
matricele implicate este mai mare decât o limită dată (vezi -fblas-matmul-limit). Aceasta ar putea fi
profitabil dacă este disponibilă o bibliotecă BLAS optimizată pentru furnizor. Biblioteca BLAS va
trebuie specificate la momentul linkului.

-fblas-matmul-limit=n
Numai semnificativ când -fexternal-blas este în vigoare. Înmulțirea matriceală a matricelor
cu dimensiunea mai mare decât (sau egală cu) n va fi efectuată prin apeluri la funcțiile BLAS,
în timp ce altele vor fi tratate de gfortran algoritmi interni. Dacă matricele implicate
nu sunt pătrate, compararea dimensiunilor se realizează folosind media geometrică a
dimensiunile argumentului și matricelor rezultate.

Valoarea implicită pentru n este 30.

-frecursiv
Permite recursiunea indirectă forțând toate tablourile locale să fie alocate pe stivă.
Acest steag nu poate fi folosit împreună cu -fmax-stack-var-size= or -fno-automat.

-finit-local-zero
-finit-intger=n
-finit-real=
-finit-logic=
-caracter-finit=n
-finit-local-zero opțiunea indică compilatorului să inițializeze „INTEGER” local.
Variabilele „REAL” și „COMPLEX” la zero, variabilele „LOGICALE” la fals și „CARACTER”
variabile într-un șir de octeți nuli. Opțiunile de inițializare mai fine sunt
furnizate de către -finit-intger=n, -finit-real= (care, de asemenea
inițializează părțile reale și imaginare ale variabilelor „COMPLEX” locale),
-finit-logic=, și -caracter-finit=n (Unde n este un caracter ASCII
valoare) opțiuni. Aceste opțiuni nu se inițializează

* tablouri alocabile

* componente ale variabilelor de tip derivat

* variabile care apar într-o instrucțiune „ECHIVALENȚĂ”.

(Aceste limitări pot fi eliminate în versiunile viitoare).

Rețineți că -finit-real=nan opțiunea inițializează variabilele „REAL” și „COMPLEX” cu a
liniște NaN. Pentru o utilizare de semnalizare NaN -finit-real=snan; rețineți, totuși, că timpul de compilare
optimizările le pot transforma în NaN silențios și această captare trebuie activată
(de ex. via -ffpe-capcană).

În cele din urmă, rețineți că activarea oricăruia dintre -finit-* opțiunile vor reduce la tăcere avertismentele care
ar fi fost emis de -Winitializat pentru variabilele locale afectate.

-falign-commons
În mod implicit, gfortran impune alinierea corectă a tuturor variabilelor într-un bloc „COMUN” prin
căptușindu-le după cum este necesar. Pe anumite platforme acest lucru este obligatoriu, pe altele crește
performanţă. Dacă un bloc „COMUN” nu este declarat cu tipuri de date consistente
peste tot, această căptușeală poate cauza probleme și -fno-align-commons pot fi utilizate pentru a
dezactivați alinierea automată. Aceeași formă a acestei opțiuni ar trebui utilizată pentru toate fișierele
care au un bloc „COMUN”. Pentru a evita potențialele probleme de aliniere în blocurile „COMUNE”,
se recomanda comandarea obiectelor de la cel mai mare la cel mai mic.

-fno-protect-parents
Implicit, parantezele din expresie sunt onorate pentru toate nivelurile de optimizare astfel
că compilatorul nu face nicio reasociere. Folosind -fno-protect-parents permite
compilator pentru a reordona expresiile „REAL” și „COMPLEX” pentru a produce cod mai rapid. Rețineți că
pentru optimizarea reasocierii -fno-semnat-zerouri și -fno-capcană-matematică Trebuie să
fi în vigoare. Protecția pentru paranteze este activată în mod implicit, cu excepția cazului în care -De repede is
dat.

-frealloc-lhs
O parte din stânga alocabilă a unei atribuiri intrinseci este automat
(re)alocat dacă este fie nealocat, fie are o formă diferită. Opțiunea este
activat implicit, cu excepția cazului în care -std=f95 este dată. Vezi si -Wrealloc-lhs.

-eliminare-funcţie-agresivă
Funcțiile cu liste de argumente identice sunt eliminate în cadrul instrucțiunilor, indiferent
dacă aceste funcții sunt marcate „PURE” sau nu. De exemplu, în

a = f(b,c) + f(b,c)

va exista doar un singur apel la „f”. Această opțiune funcționează numai dacă
-ffrontend-optimize este în vigoare.

-ffrontend-optimize
Această opțiune realizează optimizarea front-end, bazată pe manipularea pieselor Fortran
parse tree. Activat implicit de către oricare -O opțiune. Optimizări permise de aceasta
opțiunea include eliminarea apelurilor de funcții identice din expresii, eliminarea
apeluri inutile către „TRIM” în comparații și atribuiri și înlocuirea TRIM(a) cu
„a(1:LEN_TRIM(a))”. Poate fi deselectat prin specificare -fno-frontend-optimize.

MEDIUL


gfortran Compilatorul nu folosește în prezent nicio variabilă de mediu pentru a controla
funcţionarea acestuia dincolo de cele care afectează funcţionarea gcc.

Utilizați mips64el-linux-gnuabi64-gfortran-5 online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad