InglesPransesEspanyol

Ad


OnWorks favicon

ftnchek - Online sa Cloud

Patakbuhin ang ftnchek sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na ftnchek na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


ftnchek - Fortran 77 program checker

SINOPSIS


ftnchek [ -mga argumento[=listahan] ] [ - hanay[=listahan] ]
[ -[hindi]maikli ] [ -calltree[=listahan] ] [ -[hindi]tsek ]
[ -mga hanay[=num] ] [ -karaniwan[=listahan] ]
[ -[hindi]crossref[=listahan] ] [ -[hindi]magpahayag ]
[ -[hindi]dibisyon ] [ -mga pagkakamali[=num] ] [ -[hindi]panlabas ]
[ -[hindi]f77[=listahan] ] [ -[hindi]f90[=listahan] ]
[ -[hindi]f95[=listahan] ] [ -[hindi]Tulungan ]
[ -[hindi]identifier-chars[=listahan] ] [ -include=STR ]
[ - intrinsic[=listahan] ] [ -[hindi]aklatan ] [ -[hindi]listahan ]
[ -makecls[=listahan] ] [ -mkhtml[=listahan] ]
[ -[hindi]baguhan ] [ -output=STR ]
[ -pointersize[=num] ] [ -[hindi]maaaring dalhin[=listahan] ]
[ -[hindi]medyo[=listahan] ] [ proyekto[=listahan] ]
[ -[hindi]dalisay ] [ -[hindi]tahimik ] [ -[hindi]sanggunian ]
[ -[hindi]mga mapagkukunan ] [ -[hindi]sixchar ] [ -[hindi]uri ]
[ -pinagmulan[=listahan] ] [ -Style[=listahan] ] [ -[hindi]symtab ]
[ -[hindi]pagputol[=listahan] ] [ -gamit[=listahan] ]
[ -[hindi]vcg ] [ -[hindi]bersyon ] [ -[hindi]pabagu-bago ng isip ]
[ - laki ng salita[=num] ] [ -balot[=num] ] [ file ... ]

DESCRIPTION


ftnchek (maikli para sa Fortran checker) ay idinisenyo upang makita ang ilang mga error sa isang Fortran
program na karaniwang hindi ginagawa ng isang compiler. ftnchek ay hindi pangunahing inilaan upang makita
mga error sa syntax. Ang layunin nito ay tulungan ang user sa paghahanap ng mga semantic error. Semantiko
Ang mga pagkakamali ay legal sa wikang Fortran ngunit maaksaya o maaaring magdulot ng hindi tama
operasyon. Halimbawa, ang mga variable na hindi kailanman ginagamit ay maaaring magpahiwatig ng ilang pagkukulang sa
programa; Ang mga hindi nasimulang variable ay naglalaman ng mga basura na maaaring maging sanhi ng mga maling resulta
kinakalkula; at ang mga variable na hindi idineklara ay maaaring walang nilalayong uri. ftnchek
ay nilayon na tulungan ang mga user sa pag-debug ng kanilang Fortran program. Hindi ito sinadya
upang mahuli ang lahat ng mga error sa syntax. Ito ang function ng compiler. Bago gamitin
ftnchek, dapat i-verify ng user na tama ang pag-compile ng program.

Ang dokumentong ito ay unang nagbubuod kung paano mag-invoke ftnchek. Dapat basahin muna ang seksyong iyon
simula sa paggamit ftnchek. Ang mga susunod na seksyon ay naglalarawan ftnchekMga opsyon ni sa mas detalyado, ibigay
isang halimbawa ng paggamit nito, at ipaliwanag kung paano bigyang kahulugan ang output. Ang mga huling seksyon
banggitin ang mga limitasyon at kilalang mga bug sa ftnchek.

PAGTATANGGI FTNCHEK


ftnchek ay hinihingi sa pamamagitan ng isang utos ng form:

$ ftnchek [-option -option ...] filename [filename ...]

Ang mga bracket ay nagpapahiwatig ng isang bagay na opsyonal. Ang mga bracket mismo ay hindi
talagang nag-type. Narito ang mga opsyon ay command-line switch o mga setting, na kumokontrol sa
pagpapatakbo ng programa at ang dami ng impormasyong ipi-print. Kung hindi
ang opsyon ay tinukoy, ang default na aksyon ay ang pag-print ng mga mensahe ng error, mga babala, at
mga mensaheng nagbibigay-kaalaman, ngunit hindi ang listahan ng programa o mga talahanayan ng simbolo.

Ang bawat opsyon ay nagsisimula sa '-' na character. (Sa VAX/VMS o MS-DOS system na maaari mong gamitin
alinman sa '/' o '-'.) Para sa kapakanan ng pagsang-ayon sa isang lalong karaniwang kumbensyon,
ang mga opsyon ay maaari ding magsimula sa '--'. Ang mga opsyon ay inilarawan sa mas malaking haba sa susunod
seksyon.

ftnchek ang mga opsyon ay nahahati sa dalawang kategorya: mga switch, na alinman sa totoo o mali, at
mga setting, na mayroong numeric o string value. Ang pangalan ng switch ay prefix ng 'no'
o 'hindi-' para i-off ito: hal -walang kwenta ay patayin ang mga babala tungkol sa maruming paggana.
Ang 'no' prefix ay maaari ding gamitin sa mga numeric na setting, na may epekto ng pag-off
ang kaukulang mga babala. Ang mga setting na kumokontrol sa mga listahan ng mga babala ay may espesyal na syntax
tinalakay sa ibaba. Tanging ang unang 3 character ng isang pangalan ng opsyon (hindi binibilang ang '-')
kailangang ibigay. Maaaring gumamit ng tutuldok bilang kapalit ng katumbas na tanda para sa numeric o string
pagtatakda ng mga takdang-aralin; gayunpaman, ipinapakita lang namin ang equals sign form sa ibaba.

Ang mga switch at setting kung saan ftnchek kasalukuyang kinikilala ay nakalista sa ibaba. Para sa bawat isa
opsyon, ang default ay ang halagang ginagamit kung ang opsyon ay hindi tahasang tinukoy, habang ang
Ang turn-on ay ang halagang ginagamit kung ang opsyon ay ibinigay nang hindi ito binibigyan ng halaga.

-mga argumento=listahan
Kontrolin ang mga babala tungkol sa uri ng subprogram at hindi pagkakatugma ng argumento. Default = turn-on
= lahat.

-array=listahan
Kontrolin ang mga babala sa pagsuri ng mga argumento ng array ng mga subprogram. Default = turn-on =
lahat.

-maikli Gumamit ng mas maikling format para sa ilang mensahe ng error. Default = hindi.

-calltree=listahan
Gumawa ng hierarchy ng tawag sa subprogram sa isa sa 3 mga format: text call-tree, who-calls-
sino at VCG. Default = wala, turn-on = tree, prune, sort.

Kung ang -mkhtml ang opsyon ay hinihingi at tree ay ang inilapat na opsyon sa calltree, isang file
pinangalanang CallTree.html, ay gagawing naglalarawan sa puno sa HTML na format.

-suriin Magsagawa ng pagsusuri. Default = oo.

-mga hanay=num
Itakda ang maximum na haba ng linya sa num mga hanay. (Higit pa dito ay binabalewala.) Turn-on = max =
132. Default = 72.

-karaniwan=listahan
Itakda ang antas ng pagiging mahigpit sa pagsuri sa mga COMMON blocks. Default = turn-on = lahat.

-crossref=listahan
Mag-print ng cross-reference na listahan ng mga subprogram na tawag, paggamit ng label, at/o COMMON block
gamitin. Default = wala.

-magpahayag
Mag-print ng listahan ng lahat ng mga identifier na ang datatype ay hindi tahasang idineklara. Default
= hindi.

-dibisyon
Magbabala saanman ginawa ang paghahati (maliban sa paghahati sa pamamagitan ng isang pare-pareho). Default = hindi.

-mga error=num
Itakda ang maximum na bilang ng mga mensahe ng error sa bawat cascade. Default = turn-on = 3.

-panlabas
Magbabala kung ang mga panlabas na subprogram na hinihingi ay hindi kailanman tinukoy. Default = oo.

-f77=listahan
Kontrolin ang mga partikular na babala tungkol sa mga sinusuportahang extension sa Fortran 77 Standard.
Default = wala, turn-on = lahat.

-f90=listahan
Kontrolin ang mga partikular na babala tungkol sa mga sinusuportahang extension sa Fortran 77 Standard
na hindi pinagtibay bilang bahagi ng Fortran 90 Standard. Default = wala, i-on
= lahat.

-f95=listahan
Kontrolin ang mga partikular na babala tungkol sa mga karaniwang feature ng Fortran 77 na tinanggal mula sa
ang Fortran 95 Standard. Default = wala, turn-on = lahat.

-tulong I-print ang buod ng command. Default = hindi.

-identifier-chars=listahan
Tukuyin ang mga hindi alphanumeric na character na maaaring gamitin sa mga identifier. Default =
turn-on = dollar sign at underscore.

-include=landas
Tukuyin ang isang direktoryo upang maghanap para sa INCLUDE file bago maghanap sa buong system
direktoryo. Pinagsama-sama. Default = turn-on = wala.

-intrinsic=listahan
Kontrolin ang paggamot ng mga hindi karaniwang intrinsic na function. Default = lahat maliban vms para
Bersyon ng Unix, lahat maliban Unix para sa bersyon ng VMS, lahat maliban Unix at vms para sa iba
mga bersyon. Turn-on = lahat.

-aklatan
Simulan ang mode ng library: huwag bigyan ng babala ang tungkol sa mga subprogram sa file na tinukoy ngunit
hindi nagamit. Default = hindi.

-Lista I-print ang source listing ng program. Default = hindi.

-makecls=listahan
Maghanda ng file ng mga deklarasyon. Ang listahan tumutukoy sa mga opsyon para sa format nito
file. Default = wala, turn-on = mga deklarasyon.

-mkhtml=listahan
Lumikha ng indibidwal na HTML na mga file ng dokumento mula sa pagsusuri ng ftnchek at mga komento sa code.
Kadalasan ay gusto mo ring tukuyin -tawag=puno upang lumikha ng root HTML file
CallTree.html. Default = wala, turn-on = mga dokumento.

-baguhan
Magbigay ng output na angkop para sa mga baguhan na gumagamit. Default = oo.

-output=filename
Magpadala ng output sa ibinigay na file. Ang default at turn-on ay nagpapadala ng output sa screen.
(Ang default na extension ng filename ay .lis).

-pointersize=num
Itakda ang laki ng mga variable ng ``Cray pointer'' num byte. Min = 1, max = 16.
Default = turn-on = 4

-portability=listahan
Babala tungkol sa mga hindi portable na paggamit. Default = wala, turn-on = lahat.

-maganda=listahan
Magbigay ng mga babala para sa posibleng mapanlinlang na hitsura ng source code. Default = turn-
sa = lahat.

-proyekto=listahan
Lumikha ng file ng proyekto (tingnan ang paliwanag sa ibaba). Default = hindi.

-dalisay Ipagpalagay na ang mga function ay dalisay, ibig sabihin ay walang mga side effect. Default = oo.

-tahimik Gumawa ng mas kaunting verbose na output. Default = hindi.

-sanggunian
I-print ang talahanayan ng mga subprogram na isinangguni ng bawat subprogram. Default = hindi.

-mga mapagkukunan
Mag-print ng halaga ng mga mapagkukunang ginamit sa pagsusuri ng programa. Default = hindi.

-sixchar
Ilista ang anumang mga variable na pangalan na nag-aaway sa 6 na character ang haba. Default = hindi.

-uri-uriin I-print ang listahan ng mga subprogram na pinagsunod-sunod sa kinakailangang pagkakasunud-sunod. Default = hindi.

-pinagmulan=listahan
Pumili ng mga opsyon sa source formatting: fixed o free form, DEC Fortran tab-formatted
linya, VMS-style INCLUDE statement, UNIX-style backslash escape sequence, at
implicit na pag-type ng mga parameter. Default = wala, turn-on = lahat.

-style=listahan
Gumawa ng mga sobrang piling babala tungkol sa laos o makalumang programming
mga konstruksyon. Default = wala, turn-on = lahat.

-symtab
I-print ang talahanayan ng simbolo at talahanayan ng label para sa bawat subprogram. Default = hindi.

-pagputol=listahan
Suriin ang posibleng pagkawala ng katumpakan sa pamamagitan ng pagputol. Default = turn-on = lahat.

-gamit=listahan
Kontrolin ang mga babala tungkol sa hindi nagamit o hindi nasimulang mga variable, karaniwang mga bloke, atbp.
Default = turn-on = lahat.

-vcg Gumawa ng VCG format ng call graph.

-version
Numero ng bersyon ng pag-print. Default = hindi.

-pabagu-bago
Ipagpalagay na ang mga COMMON block ay nawawalan ng kahulugan sa pagitan ng mga pag-activate. Default = hindi. (Hindi na ginagamit.
paggamit -karaniwan=pabagu-bago sa halip.)

-laki ng salita=num
Itakda ang default na laki ng salita para sa mga numeric na dami num byte. Default = turn-on =
4 bytes

-balutin=num
Itakda ang column ng output kung saan ibalot ang mahahabang mensahe ng error at babala sa susunod
linya. Kung nakatakda sa 0, i-off ang pagbabalot. Default = turn-on = 79.

Kapag higit sa isang opsyon ang ginamit, dapat silang paghiwalayin ng isang blangkong espasyo, maliban sa
mga system tulad ng VMS kung saan nagsisimula ang mga opsyon sa slash ( / ). Walang bakanteng espasyo ang maaaring ilagay
sa paligid ng equals sign ( = ) sa isang setting. ftnchek "?" gagawa ng buod ng utos
listahan ng lahat ng mga opsyon at setting.

Para sa mga setting na kumukuha ng listahan ng mga keyword, ibig sabihin -mga argumento, - hanay, -calltree, -karaniwan,
-crossref, -f77, -f90, -f95, - intrinsic, -makecls, -mkhtml, -portability, -maganda,
proyekto, -pinagmulan, -Style, -pagputol, at -gamit, ang listahan ay binubuo ng mga keyword
pinaghihiwalay ng mga kuwit o tutuldok. Kung ang listahan ng mga keyword ay tinanggal, ang epekto ay itatakda
ang opsyon sa turn-on value nito (katulad ng ``lahat'' sa karamihan ng mga kaso). Gayundin, kung ang listahan ay
tinanggal, maaaring lagyan ng prefix ang pangalan ng setting hindi or hindi- upang i-off ang lahat ng mga pagpipilian nito
mga kontrol. Halimbawa, -f77 Ino-on ang lahat ng babala tungkol sa hindi karaniwang mga konstruksyon, habang
-nof77 pinapatay silang lahat. Tatlong espesyal na keyword ay:

Tulungan I-print ang lahat ng mga keyword ng opsyon na kinokontrol ng setting, na may maikling
pagpapaliwanag ng kanilang mga kahulugan. Ang keyword na ito ay hindi maibibigay sa isang listahan kasama ng iba
mga keyword.

lahat Itakda ang lahat ng mga pagpipilian. Ino-on nito ang lahat ng opsyong kinokontrol ng setting.

wala I-clear ang lahat ng mga opsyon. Ino-off nito ang lahat ng opsyong kinokontrol ng setting.

Ang tatlong espesyal na keyword na ito ay dapat ibigay nang buo. Para sa lahat ng iba pang keyword, kasing dami lang
mga titik ng keyword kung kinakailangan upang matukoy ito nang malinaw ay kailangang ibigay, o a
maaaring gamitin ang wildcard pattern. Ang pagsasama ng isang keyword sa listahan ay nagiging katumbas
opsyon sa. Halimbawa, -f77=intrinsic i-on lamang ang mga babala tungkol sa paggamit ng
nonstandard intrinsic functions. Pag-prefix ng keyword sa pamamagitan ng hindi- i-off ang opsyon nito. Para sa
Halimbawa, -pretty=no-long-line pinapatay ang mga babala tungkol sa mga linyang lampas sa 72 column sa loob
haba habang iniiwan ang lahat ng iba pang mga babala tungkol sa mapanlinlang na hitsura. Kung ang
may default ang setting wala, maaari mong i-on ang lahat ng opsyon maliban sa isa o dalawa sa pamamagitan ng paggamit lahat
una. Halimbawa, -f77=lahat, walang-kasama nagbibigay-daan sa mga babala tungkol sa lahat ng hindi karaniwang mga extension
maliban sa ISAMA ang mga pahayag. Kung ang isang setting ay may default lahat, maaari mong i-off ang lahat ng mga babala
maliban sa isa o dalawa sa pamamagitan ng paggamit wala una. Halimbawa, -truncation=wala,demotion liliko
i-off ang lahat ng mga babala na may kaugnayan sa katumpakan maliban sa mga demosyon. Ang mga pattern ng wildcard ay naglalaman ng isang
asterisk upang tumayo para sa anumang string ng mga character. Kung ginamit ang wildcard pattern, lahat ng
apektado ang mga babala na tumutugma dito. Kung hindi- ay prefix sa pattern, lahat ng pagtutugma
naka-off ang mga babala, kung hindi, naka-on ang lahat. Ang pinakamababang hindi malabo na haba
hindi nalalapat ang panuntunan sa pagtutugma ng wildcard. Halimbawa, gamitin -usage=no-*var* upang patayin
lahat ng babala na may kaugnayan sa variable na paggamit (parehong lokal at karaniwan). (Maaaring kailanganin ng mga user ng Unix na
quote ang anumang mga opsyon na naglalaman ng mga wildcard upang maiwasan ang pagtatangka ng shell
palawakin ang mga ito.) Ang mga wildcard ay kinikilala lamang sa mga listahan ng mga babalang keyword, hindi sa itaas-
mga pagpipilian sa antas mismo.

Kailan ftnchek nagsisimula, naghahanap ito ng mga variable ng kapaligiran at para din sa isang kagustuhan
file. Ang anumang mga opsyon na tinukoy sa kapaligiran o sa file ng mga kagustuhan ay ginagamit bilang
mga default sa halip ng mga built-in na default. Ang mga ito ay over-ridden ng anumang command line
mga pagpipilian. Tingnan ang seksyon sa pagbabago ng mga default para sa mga detalye tungkol sa kapaligiran
mga pagpipilian at ang file ng mga kagustuhan.

Kapag nagbibigay ng pangalan ng isang input file, opsyonal ang extension. Kung walang extension na ibinigay,
ftnchek maghahanap muna ng project file na may extension .prj, at gagamitin iyon kung ito
umiiral. Kung hindi, kung gayon ftnchek maghahanap ng Fortran source file na may extension .para sa
para sa mga VMS system, .f para sa mga sistema ng UNIX. Mahigit sa isang pangalan ng file ang maaaring ibigay sa ftnchek,
at ipoproseso nito ang mga module sa lahat ng mga file na parang nasa isang file.

Pinapayagan ang mga wildcard sa detalye ng mga filename sa command line para sa VMS
at mga bersyon ng MS-DOS, pati na rin siyempre sa ilalim ng UNIX at anumang iba pang sistema na gumaganap
pagpapalawak ng wildcard sa command processor.

Kung walang ibinigay na filename, ftnchek ay magbabasa ng input mula sa karaniwang input.

Opsyon


Ang seksyong ito ay nagbibigay ng mas detalyadong talakayan ng ftnchek mga pagpipilian sa command-line. Mga pagpipilian
at ang mga filename ay maaaring interspersed sa isang command line. Karamihan sa mga opsyon ay positional: bawat isa
ang opsyon ay nananatiling may bisa mula sa puntong ito ay nakatagpo hanggang sa ito ay ma-override ng a
mamaya magbago. Kaya halimbawa, ang listahan ay maaaring pinigilan para sa ilang mga file at hindi para sa
iba pa. Ang mga pagbubukod ay: ang - intrinsic, -pointersize, at - laki ng salita mga setting, na
hindi mababago kapag nagsimula na ang pagproseso ng mga input file; ang -mga argumento, - hanay,
-calltree, -karaniwan, -crossref, -panlabas, -sanggunian, -mga mapagkukunan, -uri-uriin, -vcg, at -pabagu-bago
mga opsyon, kung saan nakadepende lamang ang pagkilos sa halaga ng opsyon pagkatapos ng pagproseso ng
tapos na ang input file; at ang -isama setting, na pinagsama-sama.

Ang mga pangalan ng opsyon sa sumusunod na listahan ay nasa alphabetical order.

-mga argumento=listahan
Kinokontrol ang mga babala tungkol sa hindi pagkakatugma sa pagitan ng aktwal at dummy na mga argumento ng subprogram,
at tungkol din sa hindi pagkakatugma sa pagitan ng inaasahan at aktwal na uri ng subprogram. (Isang aktwal
Ang argumento ay isang argumentong ipinasa sa subprogram ng tumatawag; isang dummy argument ay
isang argumentong natanggap ng subprogram.) Bilang default, lahat ng babala ay naka-on.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil sa lahat ng ito
naka-on ang mga babala bilang default, isama ang isang keyword na prefix ni hindi- para patayin a
partikular na babala. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala tungkol sa mga argumento, wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng
lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -mga argumento
ay katumbas ng -arguments=lahat, at -noarguments ay katumbas ng -arguments=wala.
Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

arrayness:
magbabala tungkol sa hindi pantay na paggamit ng mga argumento na mga array. Ang mga babalang ito ay maaaring
mas kontrolado ng - hanay pagpipilian.

uri:
magbabala tungkol sa mga dummy na argumento ng ibang uri ng data mula sa mga aktwal na argumento.

uri ng pagpapaandar:
magbabala kung ipinapalagay ng invocation na ibang uri ang return value ng function
kaysa ito talaga. Nagbabala rin kung ang isang function ay tinatawag bilang subroutine, o
vice versa.

numero:
magbabala tungkol sa paggamit ng isang subprogram na may ibang bilang ng mga argumento kaysa sa
inaasahan ng subprogram.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo nito
tinatanggap din ang setting: ang listahan ay pinalitan ng isang numero mula 0 hanggang 3. Isang halaga ng
Ino-off ng 0 ang lahat ng babala, 1 ang i-on lang numero, 2 turns sa lahat maliban numero,
at 3 i-on ang lahat ng mga babala.

Ang setting na ito ay hindi nalalapat sa pagsuri ng mga invocation ng intrinsic function o
mga function ng pahayag, na maaari lamang isara ng -nocheck pagpipilian.

Tingnan din ang: - hanay, -aklatan, -gamit.

-array=listahan
Kinokontrol ang antas ng pagiging mahigpit sa pagsuri ng kasunduan sa pagitan ng aktwal at dummy
mga argumento ng subprogram na mga array. Ang mga babala na kinokontrol ng setting na ito ay
para sa mga konstruksyon na maaaring lehitimong gamitin ng isang maalam na programmer,
ngunit madalas itong nagpapahiwatig ng mga error sa programming. Bilang default, nakabukas ang lahat ng babala
sa.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil sa lahat ng ito
naka-on ang mga babala bilang default, isama ang isang keyword na prefix ni hindi- para patayin a
partikular na babala. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala tungkol sa mga argumento ng array, wala upang patayin silang lahat, at Tulungan upang i-print ang
listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal,
- hanay ay katumbas ng -array=lahat, at -noarray ay katumbas ng -array=wala. ang
ang mga keyword na may babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

sukat:
magbabala kung ang mga argumento ay naiiba sa kanilang bilang ng mga sukat, o kung ang aktwal
Ang argumento ay isang array element habang ang dummy argument ay isang buong array.

laki:
bigyan ng babala kung ang parehong mga argumento ay mga array, ngunit sila ay naiiba sa bilang ng mga elemento.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo nito
tinatanggap din ang setting: ang listahan ay pinalitan ng isang numero mula 0 hanggang 3. Isang halaga ng
Ino-off ng 0 ang lahat ng babala, 1 ang i-on lang sukat, 2 turns lang laki, at
Ino-on ng 3 ang lahat ng babala.

Tandaan: Ang isang babala ay palaging ibinibigay anuman ang setting na ito kung ang aktwal na argumento
ay isang array habang ang dummy argument ay isang scalar variable, o kung ang aktwal
Ang argumento ay isang scalar variable o expression habang ang dummy argument ay isang array.
Ang mga kasong ito ay bihirang sinasadya. (Upang i-off kahit ang mga babalang ito, gamitin ang
-arguments=no-arrayness.) Walang babala ang ibibigay kung ang aktwal na argumento ay isang
array element habang ang dummy argument ay isang scalar variable. Variable-dimensioned
array at arrays na may sukat na 1 o asterisk ay tumutugma sa anumang bilang ng array
mga elemento. Walang pagsusuri kung ang mga multi-dimensional na array ay sumasang-ayon sa laki
ng bawat dimensyon nang hiwalay.

Tingnan din ang: -mga argumento, -aklatan, -gamit.

-maikli
Pumili ng mas maikling format para sa ilang mensahe ng babala. Sa kasalukuyan, ang tanging mga babala
kinokontrol ng watawat na ito ay ang mga nakalimbag sa dulo ng pagproseso ng bawat isa
subprogram. Kabilang dito ang mga babala tungkol sa mga variable na nakatakda ngunit hindi ginagamit o
ginamit bago itakda, mga variable na pangalan na hindi sumusunod sa pamantayan ng Fortran 77,
atbp. (Ang mga babalang ito ay maaaring ganap na sugpuin depende sa iba pang mga flag, gaya ng
ang -gamit or -f77 flags.) Sa default na format ang bawat variable ay nakalista sa a
hiwalay na linya, kasama ang numero ng linya kung saan idineklara, itinakda o ang variable
ginamit, ayon sa likas na katangian ng babala. Ang mas maikling format ay naglilista lamang ng lahat
mga variable kung saan nalalapat ang babala, na may hanggang 4 na mga variable bawat linya.

Tingnan din ang: -tahimik.

-calltree=listahan
Sanhi ftnchek upang i-print ang istraktura ng tawag ng kumpletong programa.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Mayroong dalawang espesyal
keyword: wala upang i-off ang lahat ng mga opsyon, at Tulungan upang i-print ang listahan ng lahat ng
mga keyword na may maikling paliwanag ng bawat isa. (Ang keyword lahat naka-on ang lahat ng
mga opsyon, ngunit hindi dapat karaniwang gamitin dahil isang format lang ang dapat
tinukoy.) Kung listahan ay tinanggal, -calltree ay katumbas ng -calltree=puno, at
-nocalltree ay katumbas ng -calltree=wala. Bilang default, walang naka-print na call graph.

Kung ang -mkhtml na opsyon ay na-invoke at tree ay ang inilapat na opsyon sa calltree, isang file
na pinangalanang CallTree.html, ay gagawin din na naglalarawan sa puno sa HTML na format. Ito
Ang file ay kapaki-pakinabang bilang panimulang punto para sa pag-browse sa mga HTML file na naglalarawan sa bawat isa
bahagi ng programa.

Ang mga keyword na kumokontrol kung aling format ang ginagamit ay ang mga sumusunod:

puno:
gumawa ng call graph sa tree format.

sanggunian:
gumawa ng graph ng tawag sa format na who-calls-who (katulad ng -sanggunian lumipat).

vcg:
gumawa ng call graph sa VCG format (katulad ng -vcg lumipat).

Isa lang sa mga format puno, sanggunian, O vcg maaaring tukuyin.

Ang mga sumusunod na keyword ay nagkokontrol sa mga opsyon na nakakaapekto sa output:

putulin:
putulin ang mga paulit-ulit na subtree (naaangkop lamang sa puno). Ito ang default.

uri:
pag-uri-uriin ang mga bata ng bawat gawain sa alpabetikong pagkakasunud-sunod. Ito ang default.

Tingnan ang talakayan ng -sanggunian at -vcg mga flag para sa mga detalye tungkol sa mga ito
format.

para puno format, Ang call graph ay naka-print mula sa pangunahing programa,
na nakalista sa unang linya sa kaliwang margin. Pagkatapos sa mga sumusunod na linya,
ang bawat gawain na tinatawag ng pangunahing programa ay nakalista, naka-indent ng ilang mga puwang, sinusundan
sa pamamagitan ng subtree simula sa routine na iyon.

Sa default na mode, kung ang isang routine ay tinatawag ng higit sa isa pang routine, its
call subtree ay naka-print lamang sa unang pagkakataon na ito ay nakatagpo Mamaya tawag ay nagbibigay lamang
ang karaniwang pangalan at ang paunawa ``(tingnan sa itaas)''. Upang mai-print ang subtree para sa
bawat paglitaw ng nakagawiang, gamitin ang opsyon walang prune.

Tandaan na ang call tree ay hindi kumpleto kung ang alinman sa mga input file ay proyekto
mga file na naglalaman ng higit sa isang module na ginawa sa -aklatan mode. Tingnan ang
talakayan ng mga file ng proyekto sa ibaba.

Mga teknikal na punto: Ang bawat listahan ng mga routine na tinatawag ng isang partikular na routine ay naka-print sa
alpabetikong ayos maliban kung ang walang uri ang pagpipilian ay ibinigay. Kung maramihang mga pangunahing programa
ay matatagpuan, ang call tree ng bawat isa ay naka-print nang hiwalay. Kung walang pangunahing programa ay
natagpuan, ang isang ulat sa epekto na iyon ay naka-print out, at ang mga puno ng tawag ng anumang pinakamataas na antas
nakalimbag ang mga gawaing hindi aklatan. Kinokontrol lang ng flag na ito ang pag-print ng tawag
puno: ftnchek constructs ang call tree sa anumang kaso dahil ito ay ginagamit upang matukoy
aling mga module ng library ang susuriin. Tingnan ang talakayan ng -aklatan
bandila.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo nito
tinatanggap din ang setting: ang listahan ay pinalitan ng isang numero mula 0 hanggang 15. Ito
Ang numero ay nabuo mula sa 1 para sa puno format, 2 para sa sanggunian format, o 3 para sa vcg
format, kasama ang 4 para sa walang prune, at 8 para sa walang uri.

Tingnan din ang: -crossref, -aklatan, -sanggunian, -uri-uriin, -symtab, -vcg.

-suriin
Ang switch na ito ay ibinigay upang ang mga error at mga mensahe ng babala ay maaaring i-off kapag
ftnchek ay ginagamit para sa mga layunin maliban sa paghahanap ng mga bug, tulad ng paggawa ng mga deklarasyon
o pag-print ng call tree. Ito ay nakaposisyon, kaya pagkatapos i-off ang lahat ng mga tseke,
maaaring i-on muli ang mga napiling tseke. Ang epekto ng -nocheck ay ilagay ang lahat
switch, numeric na setting, at setting na kumokontrol sa mga listahan ng mga babala sa kanilang
mga halaga ng turn-off, na parang tinukoy ang lahat ng ito gamit ang -no prefix. Mga switch
at mga setting na tumutukoy sa mga opsyon at mode ng pagpapatakbo, sa halip na pagkontrol
mga babala, ay hindi naaapektuhan. Ang mga ito ay -mga hanay, -crossref, -isama, - intrinsic,
-aklatan, -Lista, -makecls, -baguhan, -output, -pointersize, proyekto, -tahimik,
-sanggunian, -mga mapagkukunan, -uri-uriin, -pinagmulan, -symtab, -vcg, -version, - laki ng salita, at
-balot. Default = oo.

Ang mga error sa pag-parse (mga error sa syntax dahil sa hindi nakikilala o mali ang pagkakabuo ng mga pahayag) ay hindi
pinigilan ng switch na ito, dahil maaaring hindi tama ang mga resulta kung ftnchek hindi pa
na-parse ng tama ang programa.

Mayroong ilang iba't ibang mga error at mga mensahe ng babala na hindi kinokontrol ng
anumang iba pang switch, at sa gayon ay maaari lamang i-off ng switch na ito. Tandaan na ang paggamit
-suriin sumusunod -nocheck mayroon lamang epekto ng pagbaling sa mga espesyal na babalang ito
bumalik, at hindi ibinabalik ang lahat ng mga tseke na na-off nito. Ang mga babalang ito ay:

o Ang module ay hindi naglalaman ng mga executable na pahayag.

o Sa libreng source form, nawawalang espasyo kung saan kinakailangan ang espasyo (hal sa pagitan ng a
keyword at isang identifier) ​​o espasyong naroroon kung saan walang pinapayagan (hal. sa loob
isang identifier).

o Zero o negatibong detalye ng haba sa isang deklarasyon ng uri ng data ng form
type*len.

o Di-wastong (mga) operand sa isang expression.

o Array na itinalaga sa scalar.

o Uri ng mismatch sa pagitan ng DO index at mga hangganan.

o Hindi natukoy na karaniwang bloke na idineklara sa SAVE na pahayag.

o Intrinsic function na tahasang idineklara na may hindi tugmang uri.

o Hindi kilalang intrinsic function na tahasang ipinahayag sa isang INTRINSIC na pahayag.

o Intrinsic function na ipinasa bilang isang subprogram argument ay hindi idineklara sa isang
INTRINSIC na pahayag.

o Intrinsic function o statement function na na-invoke nang hindi tama.

o Hindi nagtatakda ang function ng return value bago ang RETURN statement.

o Hindi nasusuri ang pare-parehong halaga ng parameter (ito ay ftnchekkasalanan ni, at tama lang
ipaalam sa iyo ang katotohanan).

o Entry point ng isang subprogram ay ginamit sa ibang pagkakataon bilang ibang pangalan ng subprogram.

o Hindi kilalang keyword na ginamit sa isang I/O statement.

o Ilegal na sanggunian sa label (hal. GOTO ay tumutukoy sa isang hindi maipapatupad na pahayag; I/O
ang pahayag ay tumutukoy sa isang di-format na pahayag).

Tingnan din ang: -mga pagkakamali.

-mga hanay=num
Itakda ang maximum na haba ng statement sa num mga hanay. (Beyond this is ignored.) Ito
setting ay ibinigay upang payagan ang pagsuri ng mga programa na maaaring lumabag sa Fortran
karaniwang limitasyon ng 72 mga hanay para sa haba ng isang pahayag. Ayon sa
standard, lahat ng mga character na lampas sa column 72 ay binabalewala. Kung gagamitin ang setting na ito kung kailan
ang -f77=mahabang linya ang opsyon ay may bisa, isang babala ang ibibigay para sa anumang mga linya sa loob
kung aling mga character sa lampas column 72 ang pinoproseso. Turn-on = max = 132. Default = 72.

Hindi pinipigilan ng setting na ito ang mga babala tungkol sa pagkakaroon ng mga character sa kabila
column 72. Upang iproseso ang code na may makabuluhang program text na lampas sa column 72, gamitin ito
setting at siguraduhin na ang -f77 mahabang linya naka-off ang opsyon. Upang iproseso ang code gamit ang
sequence number sa column 73 hanggang 80, iwanan ang setting ng column sa default
halaga at gamitin ang -pretty=no-long-line bandila.

Tingnan din ang: -f77, -maganda.

-karaniwan=listahan
Kinokontrol ng setting na ito ang higpit ng pagsuri ng COMMON blocks. Bilang default, lahat
mga babala maliban sa pabagu-bago ng isip naka-on.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil karamihan sa mga ito
naka-on ang mga babala bilang default, isama ang isang keyword na prefix ni hindi- para patayin a
partikular na babala. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala, wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat ng mga keyword
na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -karaniwan ay katumbas ng
-common=dimensions,eksakto,haba,uri, at -hindi pangkaraniwan ay katumbas ng -karaniwan=wala.
Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

sukat:
nararapat na mga array sa bawat deklarasyon ng isang bloke ay dapat magkasundo sa laki at
bilang ng mga sukat. Ang pagpipiliang ito ay may epekto lamang kapag ginamit kasama ng
eksakto.

eksakto:
ang paghahambing ng dalawang bloke ay ginagawa variable-by-variable sa halip na simple
nangangailangan ng kasunduan sa pagitan ng mga kaukulang lokasyon ng imbakan. Gamitin ito kung lahat
ang mga deklarasyon ng isang ibinigay na COMMON block ay dapat na magkapareho, na isang
magandang kasanayan sa programming.

haba:
magbabala kung ang magkakaibang deklarasyon ng parehong bloke ay hindi pantay sa kabuuang haba.
Ang Fortran 77 Standard ay nangangailangan ng bawat pinangalanang karaniwang bloke, ngunit hindi blangko na karaniwan,
na magkapareho ang haba sa lahat ng mga module ng programa.

uri:
sa bawat deklarasyon ng isang ibinigay na COMMON block, kaukulang mga lokasyon ng memorya
(mga salita o byte) ay dapat sumang-ayon sa uri ng data. Kung gagamitin kasama ng eksakto, Ito
ay mangangailangan na ang mga kaukulang variable ay sumang-ayon sa uri ng data.

pabagu-bago ng isip:
Ipagpalagay na ang COMMON blocks ay pabagu-bago ng isip.

Ipinapalagay ng maraming programmer ng Fortran na ang mga variable, lokal man o KARANIWAN, ay
static, ibig sabihin, kapag nagtalaga ng value, permanente nilang pinapanatili ang value na iyon hanggang
nagtalaga ng ibang halaga ng programa. Gayunpaman, sa katunayan ang Fortran 77
Hindi kinakailangan ng pamantayan na ito ang mangyari. Ang mga lokal na variable ay maaaring maging
hindi natukoy sa pagitan ng mga pag-activate ng isang module kung saan idineklara ang mga ito. Katulad nito,
COMMON blocks ay maaaring maging undefined kung walang module kung saan idineklara ang mga ito
aktibo. (Ang teknikal na termino para sa mga entity na may ganitong gawi ay ``awtomatiko'', ngunit
ftnchek gumagamit ng salitang ``volatile'' dahil mas malinaw ito sa nonspecialist.) Lamang
KARANIWANG bloke na idineklara sa isang SAVE na pahayag, o idineklara sa pangunahing programa o sa a
block data subprogram mananatiling tinukoy hangga't ang program ay tumatakbo. Mga variable
at COMMON blocks na maaaring maging undefined sa isang punto ay tinatawag na volatile.

Kung ang -karaniwan=pabagu-bago nakabukas ang bandila, ftnchek ay babalaan ka kung nakahanap ito ng a
pabagu-bago ng isip COMMON block. Kung, sa parehong oras, ang -usage=com-block-volatile opsyon
ay naka-on (na siyang default), ftnchek ay susubukan na suriin kung tulad ng isang bloke
maaaring mawala ang tinukoy nitong katayuan sa pagitan ng mga pag-activate ng mga module kung nasaan ito
ipinahayag. ftnchek ay hindi gumagawa ng napakahusay na gawain nito: ang panuntunang ginamit ay ang makita
kung ang block ay idineklara sa dalawang magkahiwalay na subtree ng call tree. Para sa
Halimbawa, ito ang mangyayari kung ang dalawang module, na parehong tinatawag mula sa pangunahing programa,
nagbahagi ng pabagu-bagong COMMON block. Ang isang bloke ay maaari ding maging hindi natukoy sa pagitan ng dalawa
sunud-sunod na tawag ng parehong subprogram, ngunit ftnchek ay hindi sapat na matalino upang sabihin
kung ang isang subprogram ay maaaring tawagan ng higit sa isang beses, kaya ang kasong ito ay hindi nasuri.

Ang -karaniwan=pabagu-bago watawat ay hindi nakakaapekto sa paraan ftnchek sinusuri ang paggamit ng lokal
mga variable.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo nito
tinatanggap din ang setting: ang listahan ay pinalitan ng isang numero mula 0 hanggang 3. Isang halaga ng
Ino-off ng 0 ang lahat ng babala, pag-on ang 1 o higit pa uri, 2 o mas mataas na pag-on
haba, at 3 naka-on sukat at eksakto din. Hindi ma-on ang numeric na form
ang pabagu-bago ng isip pagpipilian.

Tingnan din ang: -aklatan, -gamit.

-crossref=listahan
Nagpi-print ng mga cross-reference na talahanayan. Default = wala.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Ang mga keyword na may
ang kanilang mga kahulugan ay ang mga sumusunod:

tawag:
Ang talahanayan ay naglilista ng bawat subprogram na sinusundan ng isang listahan ng mga gawain na tumatawag dito.
Inalis ng listahang ito ang mga module ng library na wala sa call tree ng pangunahing
programa. Naka-alpabeto ang listahan.

pangkaraniwan:
inililista ng talahanayan ang bawat COMMON block na sinusundan ng isang listahan ng mga routine na ina-access
ito. Ang mga nakalistang gawain na ito ay ang mga kung saan ang ilang mga variable sa COMMON
Ang block ay naa-access, hindi lamang ang mga gawaing nagdedeklara ng block. (Sa
alamin kung anong mga gawain ang nagdeklara ng isang COMMON block ngunit huwag gamitin ito, tingnan ang
-gamit bandila.)

mga label:
Inililista ng talahanayan ang bawat label na sinusundan ng isang listahan ng lahat ng mga sanggunian dito. Isang tatakan
Ang sanggunian ay tinutukoy ng numero ng linya at uri ng pahayag ng tinutukoy
pahayag. Ang listahan ng label ay nasa sequential order. Ang mga sanggunian ay
nakalista sa pagkakasunud-sunod na nakatagpo nila sa programa.

Tingnan din ang: -calltree, -sanggunian, -uri-uriin, -symtab, -vcg.

-magpahayag
Kung nakatakda ang flag na ito, lahat ng mga identifier na ang datatype ay hindi idineklara sa bawat module
ililista. Ang flag na ito ay kapaki-pakinabang para sa pagtulong sa paghahanap ng maling spelling ng mga variable na pangalan,
atbp. Ang parehong listahan ay ibibigay kung ang modyul ay naglalaman ng isang IMPLICIT WALA
pahayag. Default = hindi.

Tingnan din ang: -sixchar, -gamit.

-dibisyon
Ibinibigay ang switch na ito upang matulungan ang mga user na makita ang potensyal na paghahati sa pamamagitan ng zero na mga problema. Kung
ang switch na ito ay pinili, bawat dibisyon maliban sa pamamagitan ng isang pare-pareho ay i-flag. (Ito
ay ipinapalagay na ang gumagamit ay sapat na matalino upang hindi hatiin sa isang pare-pareho na kung saan ay
katumbas ng zero!) Default = hindi.

Tingnan din ang: -portability, -pagputol.

-mga error=num
Itakda ang maximum na bilang ng mga mensahe ng error sa isang ``cascade''. Habang sinusuri ang
kasunduan ng mga subprogram na argumento, karaniwang block deklarasyon, at iba pa,
minsan ang isang kaso ay bubuo ng mahabang string ng mga babala. Madalas ganito lang
ay nagpapahiwatig ng ilang iba pang dahilan kaysa sa isang tunay na hindi pagkakatugma ng item-by-item, gaya ng para sa
halimbawa isang variable na nawawala sa isang listahan. Kaya sa mga ganitong pagkakataon ftnchek huminto sa pag-print
ang mga babala pagkatapos maabot ang limitasyon ng kaskad, at ang trailer na ``etc...'' ay
naka-print upang ipahiwatig na mayroong higit pang mga error na hindi nai-print. Kung iisipin mo yan
ang mga babalang ito ay malamang na totoo, gamitin ang setting na ito upang makita ang higit pa sa mga ito.
Turn-on = default = 3, max = 999. Ang halaga ng 0 ay nangangahulugang walang limitasyon.

Ang setting na ito ay hindi nagtatakda ng pangkalahatang limitasyon sa bilang ng mga mensahe ng error na naka-print,
tanging ang numerong naka-print sa alinmang isang cascade. Karamihan sa mga uri ng mga babala at error
ang mga mensahe ay hindi napapailalim sa cascade effect at sa gayon ay hindi apektado nito
setting. Upang i-off ang mga babala sa pangkalahatan, gamitin ang indibidwal na kontrol sa babala
mga pagpipilian o ang -nocheck pagpipilian.

Tingnan din ang: -suriin.

-panlabas
Sanhi ftnchek upang iulat kung ang anumang mga subprogram na ginagamit ng programa ay hindi kailanman
tinukoy. Karaniwan, kung ftnchek ay pinapatakbo sa isang kumpletong programa, bawat isa
subprogram maliban sa mga intrinsic function ay dapat na tinukoy sa isang lugar. Lumiko
off ang switch na ito kung gusto mo lang suriin ang isang subset ng mga file na bahagi ng a
mas malaking kumpletong programa. Susuriin pa rin ang mga argumento ng subprogram
kawastuhan. Default = oo.

Ang -panlabas ang bandila ay pinalitan na ngayon ng -usage=ext-undefined opsyon. Para sa
alang-alang sa kaginhawahan, ang -panlabas ang bandila ay pinanatili, kaya na -noextern ay katumbas
sa -usage=no-ext-undefined pagpipilian Ang -panlabas maaaring magretiro sa huli ang switch.

Tingnan din ang: -aklatan.

-f77=listahan
Gamitin ang setting na ito upang mahuli ang mga extension ng wika na lumalabag sa Fortran 77
Pamantayan. Ang ganitong mga extension ay maaaring maging sanhi ng iyong program na hindi maging portable. Mga halimbawa
isama ang paggamit ng mga salungguhit sa mga variable na pangalan; mga variable na pangalan na mas mahaba sa anim
mga karakter; mga linya ng pahayag na mas mahaba sa 72 character; at hindi karaniwang mga pahayag
tulad ng DO ... ENDDO na istraktura. ftnchek hindi nag-uulat sa paggamit ng
maliliit na titik. Bilang default, naka-off ang lahat ng babala.

Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa mga sinusuportahang extension
sa Fortran 77 Standard. (Ang mga karagdagang detalye tungkol sa mga extension mismo ay
ibinigay sa ibaba sa seksyon sa Mga Extension.) Ang listahan binubuo ng mga keyword na pinaghihiwalay
sa pamamagitan ng mga kuwit o tutuldok. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala tungkol sa hindi karaniwang mga extension, wala upang patayin silang lahat, at Tulungan upang i-print
ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal,
-f77 ay katumbas ng -f77=lahat, at -nof77 ay katumbas ng -f77=wala. Ang babala
mga keyword na may mga kahulugan nito ay ang mga sumusunod:

uri ng pagtanggap:
TANGGAPIN at TYPE I/O na mga pahayag.

array-bounds:
Mga expression na tumutukoy sa mga hangganan ng array na naglalaman ng mga elemento o function ng array
sanggunian.

assignment-stmt:
Mga pahayag ng pagtatalaga na kinasasangkutan ng mga array. Sa Fortran 90, ang isang array ay maaaring
itinalaga sa isa pang hanay ng magkatugmang hugis, o maaaring magtalaga ng scalar sa
isang array. Wala alinman sa mga takdang-aralin na ito ang pinahihintulutan sa Fortran 77.

Ang isang nauugnay na babala ay nangyayari kapag ang isang array ay itinalaga sa isang scalar. Simula noon
ay ilegal din sa Fortran 90, ito ay palaging binabalaan tungkol sa anuman ang
-f77 setting (maliban kung ang lahat ng pagsuri ay naka-off gamit ang -nocheck bandila).

attribute-based-decl:
I-type ang mga deklarasyon sa bagong Fortran 90 attribute-based na istilo. Ang istilong ito ng
ang deklarasyon ay nakikilala sa pamamagitan ng paggamit ng double colon (::) sa pagitan ng
listahan ng mga katangian at ang listahan ng mga ipinahayag na variable. Ang pagpipiliang ito din
kinokontrol ang mga babala para sa paggamit ng Fortran 90 na haba o uri ng mga specifier sa uri
mga deklarasyon. (Bagaman ang mga specifier na ito ay maaaring gamitin sa hindi nakabatay sa katangian
mga deklarasyon, sila ay kinokontrol ng opsyong ito upang maiwasan ang paglaganap ng
-f77 mga pagpipilian.)

awtomatikong-array:
Mga lokal (hindi dummy) na array na may variable na laki. Ang mga ito ay tumutugma sa
arrays na ang storage ay kailangang dynamic na ilaan sa oras ng pagtakbo.

pagtalikod:
Unix backslash escape sa mga string. Ang babalang ito ay ibibigay lamang kung ang
-source=unix-backslash ang setting ay tinukoy upang maging sanhi ng pagtakas
interpretasyon ng backslash..

byte: Deklarasyon ng uri ng data ng BYTE.

case-construct:
Ang SELECT CASE construct.

katangian:
Mga extension sa pamantayan ng Fortran 77 tungkol sa data ng character. Sa kasalukuyan,
kinokontrol lang nito ang mga babala tungkol sa mga variable ng character na idineklara na may zero o
negatibong haba. Sa Fortran 77, lahat ng mga variable ng character ay dapat na positibo
haba. Sa Fortran 90, maaari silang maging zero haba, at mga deklarasyon na
tukuyin ang mga negatibong haba ay pinahihintulutan, nagiging zero para sa ipinahayag
haba. Tandaan: dahil ang mga negatibong tagatukoy ng haba ay maaaring magpahiwatig ng isang programming
error, ibinibigay ang babala tungkol sa mga ito kahit na naka-off ang opsyong ito, at
ay pinipigilan lamang ng -nocheck bandila.

common-subprog-name:
Karaniwang block at subprogram na may parehong pangalan.

construct-name:
Paggamit ng isang construct-name upang lagyan ng label ang isang control statement.

pagpapatuloy:
Higit sa 19 na magkakasunod na linya ng pagpapatuloy.

cpp: Mga direktiba ng Unix C preprocessor sa source code.

cray-pointer:
``Cray pointer'' syntax.

cycle-exit:
Ang mga pahayag ng CYCLE at EXIT.

d-komento:
Nagde-debug ng mga komento na nagsisimula sa D sa source code.

dec-tab:
DEC Fortran style tab-formatted source code. Ang babalang ito ay ibibigay lamang
kung ang -source=dec-tab ang setting ay tinukoy upang maging sanhi ng interpretasyon ng mga tab
sa ganitong istilo.

gawin-enddo:
DO loop extensions: terminal statement label inalis, END DO, at WHILE.

dobleng kumplikado:
Double precision complex datatype.

format-dollarsign:
Dollar sign control code sa FORMAT statement.

format-edit-descr:
Hindi karaniwang mga deskriptor sa pag-edit sa mga pahayag ng FORMAT.

function-noparen:
Kahulugan ng function na walang panaklong.

implicit-wala:
IPLICIT WALA ang pahayag.

isama:
ISAMA ang pahayag.

inline-comment:
Mga inline na komento na nagsisimula sa tandang padamdam.

panloob na listahan-io:
I/O na nakadirekta sa listahan sa o mula sa isang panloob na file.

tunay:
Nonstandard intrinsic functions.

io-mga keyword
Hindi karaniwang mga keyword na ginagamit sa mga I/O statement. Ang mga ito ay nahahati sa tatlong grupo.
Kasama sa unang pangkat ang mga keyword na tinatanggap sa Fortran 90:

ACTION PAD READWRITE
ADVANCE POSITION SIZE
DELIM READ WRITE
EOR
Ang pangalawang pangkat ay binubuo ng mga sumusunod na keyword ng VMS Fortran:

BLOCKSIZE EXTENDSIZE READONLY
BUFFERCOUNT INITIALSIZE RECORDSSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
DEFAULTFILE NAME (in OPEN) SHARED
DISP NOSPANBLOCK TYPE
Itapon ang ORGANISASYON
(Ang keyword na NAME ay pamantayan lamang sa INQUIRE statement.) Ang pangatlo
pangkat ay binubuo ng sumusunod na IBM/MVS keyword:

NUM
Kinokontrol din ng flag na ito ang isang babala tungkol sa paggamit ng ACCESS='APPEND', ibig sabihin
tinanggap ng ilang compiler. Ang halaga ng 'APPEND' ay hindi wasto para sa anumang I/O
specifier sa karaniwang Fortran 77, at sa Fortran 90 'APPEND' ay dapat gamitin
bilang value ng POSITION specifier, hindi ACCESS.

mahabang linya:
Mga pahayag na may makabuluhang code sa nakalipas na 72 column. Ang babalang ito ay ibinigay lamang
kung ang -mga hanay ginamit ang setting upang mapataas ang lapad ng field ng statement.

mahabang pangalan:
Mga identifier na higit sa 6 na character ang haba.

halo-halong karaniwan:
Pinaghalong character at noncharacter na data sa COMMON block.

mixed-expr:
Hindi karaniwang mga kumbinasyon ng uri sa mga expression, halimbawa DOUBLE PRECISION
na may COMPLEX, nagtatalaga ng hollerith sa integer, mga lohikal na operasyon sa mga integer.

pangalan-dollarsign:
Dollar sign na ginamit bilang character sa mga identifier.

pangalan-underscore:
Ginamit ang underscore bilang character sa mga identifier.

Listahan ng pangalan:
NAMELIST na pahayag.

param-implicit-type:
Implicit na pag-type ng isang parameter ayon sa uri ng data ng value na itinalaga. Ito
ang babala ay maaari lamang mangyari kung ang implicit na pag-type ng parameter ay na-on ng
-source=param-implicit-type opsyon, o kung ang PARAMETER na pahayag ay ng
hindi karaniwang anyo na walang panaklong. Kung naka-on ang opsyong ito, anuman
babalaan ang mga pagkakataon kung saan nangyayari ang implicit na pag-type ng parameter. Kung
gusto mong mabigyan ng babala lamang sa mga pagkakataon kung saan ang implicit na uri ng data
ay naiiba sa default na uri, gamitin -portability=param-implicit-type sa halip.
Ayon sa pamantayan ng Fortran 77, ibinibigay ang uri ng data ng isang parameter
sa pamamagitan ng parehong mga panuntunan tulad ng para sa isang variable, at kung kinakailangan ang isang uri ng conversion ay
tapos kapag ang halaga ay itinalaga.

param-intrinsic:
Intrinsic function o exponentiation ng isang real na ginamit upang tukuyin ang halaga ng a
kahulugan ng PARAMETER.

param-noparen:
PARAMETER statement na walang panaklong. Dapat malaman ng gumagamit na ang
Ang semantika ng anyong ito ng pahayag ay naiiba sa pamantayan
form: sa form na ito, kinukuha ng parameter ang uri ng data nito mula sa value
itinalaga, sa halip na magkaroon ng default nitong uri ng data batay sa unang titik
ng pangalan ng parameter. (Ang form na ito ng PARAMETER na pahayag ay ipinakilala
sa pamamagitan ng DEC bago tinukoy ang pamantayan ng Fortran 77, at dapat na iwasan.)

puntero:
Fortran 90 standard pointer-related syntax, kasama ang POINTER, TARGET at
ALLOCATABLE na uri ng mga deklarasyon, ALLOCATE, DEALLOCATE, at NULLIFY na mga pahayag,
at pagtatalaga ng pointer gamit ang =>.

quad-constant:
Quad precision real constants, hal ng form na 1.23Q4.

panipi:
Mga string na nililimitahan ng mga panipi sa halip na mga kudlit.

relops:
Relational (paghahambing) na mga operator na binubuo ng mga bantas, katulad ng: < <= == /=
> >=.

semicolon:
Semicolon ang ginamit bilang statement separator.

pagkakasunud-sunod ng pahayag:
Mga pahayag na wala sa pagkakasunud-sunod na ipinag-uutos ng Pamantayan. Ang pinapayagan
Ang pagkakasunod-sunod ay inilalarawan sa Talahanayan 1 sa seksyon sa Pagbibigay-kahulugan sa Output.

typeless-constant:
Typeless constants, halimbawa Z'19AF'.

laki ng uri:
I-type ang mga deklarasyon na tumutukoy ng laki, halimbawa REAL*8.

variable-format:
Variable repeat specification o laki ng field sa FORMAT. Ito ay sa anyo
< ipahayag >.

vms-io:
Hindi na ginagamit. Ngayon ay may parehong kahulugan bilang ang io-mga keyword keyword

Tingnan din ang: -f90, -f95, -portability, -maganda, -Style, - laki ng salita.

-f90=listahan
Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa mga sinusuportahang extension
sa Fortran 77 Standard na hindi pinagtibay bilang bahagi ng Fortran 90
Pamantayan. Tandaan na ftnchek ay hindi sumusuporta sa buong Fortran 90 na wika.
Gayunpaman, sinusuportahan nito ang ilang karaniwang mga extension sa Fortran 77 na laganap
bago tinukoy ang Fortran 90. Ang ilan sa mga extension na ito ay naging bahagi ng Fortran
90 Standard, ngunit ang iba ay hindi. Ang -f90 Ang setting ay nagbabala lamang tungkol sa huli.
Ibig sabihin, sinasaklaw ng watawat na ito ang mga bagay na hindi legal na Fortran 77 o legal
Fortran 90. Samakatuwid, ang mga babala na kinokontrol ng watawat na ito ay karaniwang isang subset
ng mga babala na kinokontrol ng -f77. Mayroong ilang mga kaso, na inilarawan sa ibaba, kung saan
ang mga pangyayari kung saan ang babala ay ibinigay ay bahagyang naiiba para sa dalawa
mga watawat.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlo
mga espesyal na keyword: lahat upang i-on ang lahat ng mga babala tungkol sa hindi karaniwang mga extension,
wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat ng mga keyword na may a
maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -f90 ay katumbas ng -f90=lahat, at
-nof90 ay katumbas ng -f90=wala.

Ang mga sumusunod na keyword ay may magkaparehong kahulugan para sa -f90 tulad ng -f77. Ang nagbabasa ay
tinutukoy ang mga paliwanag sa ilalim -f77.

uri ng pagtanggap dobleng kumplikado param-noparen
pagtalikod format-dollarsign cray-pointer
byte format-edit-descr quad-constant
cpp function-noparen laki ng uri
d-komento pangalan-dollarsign variable-format
dec-tab param-implicit-type vms-io

Ang mga keyword na medyo naiiba sa katumbas -f77 ang mga keyword ay bilang
Sumusunod.

pagpapatuloy:
Ang limitasyon sa bilang ng mga linya ng pagpapatuloy para sa isang pahayag sa nakapirming pinagmulan
ang form ay pareho, lalo na 19, sa Fortran 90 tulad ng sa Fortran 77. Para sa libreng mapagkukunan
form ang limitasyon ay 39 na linya ng pagpapatuloy, at isang linya na naglalaman ng isang pagpapatuloy
ang marka ay hindi maaaring walang laman o naglalaman lamang ng komento.

tunay:
Ito ay kapareho ng para sa -f77 maliban sa mga intrinsic na function na tinukoy sa
MIL-STD 1753, na lahat ay kasama sa Fortran 90, at sa gayon ay hindi binabalaan
tungkol sa. (Tingnan - intrinsic para sa isang listahan.)

io-mga keyword:
Ito ay kapareho ng para sa -f77 maliban na walang mga babala na ibinigay para sa I/O
mga keyword na karaniwan sa Fortran 90.

mahabang linya:
Bagama't pinapayagan ng Fortran 90 Standard ang mga linyang mas mahaba kaysa sa 72 character
libreng source form, nalalapat pa rin ang paghihigpit na ito sa fixed source form. Sa
libreng source form ang limitasyon sa haba ng linya ay 132 character, at hindi katulad ng fixed
anyo, ftnchek hindi pinapayagan ang limitasyong ito na tumaas.

mixed-expr:
Ito ay kapareho ng para sa -f77 maliban sa mga expression na naghahalo ng pinahabang katumpakan
tunay na may mga kumplikadong uri ng data, na pinahihintulutan sa Fortran 90.

pagkakasunud-sunod ng pahayag:
Ito ay katulad ng katumbas -f77 babala, ngunit nalalapat ang medyo
mas maluwag na mga paghihigpit sa pagkakasunud-sunod ng pahayag ng Fortran 90 Standard. Sa
partikular, pinapayagan ng Fortran 90 ang mga pahayag ng DATA at pag-andar ng pahayag
mga kahulugang ihahalo sa mga pahayag ng espesipikasyon.

typeless-constant:
Sa Fortran 90, binary, octal, at hexadecimal constants ng anyong B'ddd',
Ang O'ddd', at Z'ddd', ayon sa pagkakabanggit, ay pinahihintulutan. Narito ang 'ddd' ay kumakatawan sa isang
string ng mga digit. ftnchek kinikilala ang mga form na ito, pati na rin ang isang variant ng
ang form na X'ddd' para sa isang hexadecimal constant, at iba pang mga variant kung saan ang
base indicator B, O, Z, o X ay sumusunod sa digit na string. Ang mga variant na ito ay
hindi pinagtibay sa Fortran 90, kaya lamang sila ay binigyan ng babala tungkol sa kung kailan ang watawat na ito
binuksan.

Tingnan din ang: -f77, -f95, -portability, -maganda, -Style, - laki ng salita.

-f95=listahan
Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa karaniwang Fortran 77
mga feature na tinanggal mula sa Fortran 95 Standard. hindi katulad ng -f77 at -f90
setting, ang mga babalang ito ay nalalapat sa syntax na legal Fortran 77. Gayunpaman, dahil
ang mga tampok na ito ay tinanggal mula sa Standard, ito ay posible na ang mga programa
na naglalaman ng mga ito ay hindi katanggap-tanggap sa ilang mas bagong compiler.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlo
mga espesyal na keyword: lahat upang i-on ang lahat ng mga babala tungkol sa hindi karaniwang mga extension,
wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat ng mga keyword na may a
maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -f95 ay katumbas ng -f95=lahat, at
-nof95 ay katumbas ng -f95=wala. Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay bilang
Sumusunod.

real-do:
Isang DO variable ng anumang tunay na uri ng numero.

i-pause:
Ang pahayag na PAUSE.

magtalaga:
Ang ASSIGN statement, itinalagang GOTO, o itinalagang format.

h-edit:
Ang H edit descriptor sa isang format.

May isa pang Fortran 77 syntax feature na tinanggal sa Fortran 95, ibig sabihin
sumasanga sa isang ENDIF mula sa labas ng IF block. gayunpaman, ftnchek ay hindi kaya
pag-aralan ang daloy ng programa, at sa gayon ay hindi ito nagbibigay ng babala para dito.

Tingnan din ang: -f77, -f90, -portability, -maganda, -Style, - laki ng salita.

-tulong
Nagpi-print ng listahan ng lahat ng mga opsyon sa command-line na may maikling paglalarawan ng bawat isa
kasama ang default na halaga nito. Ang utos na ito ay magkapareho sa paggana sa ``?''
argumento, at ibinibigay bilang isang kaginhawahan para sa mga sistema kung saan ang tanong
may espesyal na kahulugan ang mark sa command interpreter. Default = hindi.

Ang listahan ng tulong ay nagpi-print din ng numero ng bersyon at antas ng patch ng ftnchek at
abiso sa copyright.

Tandaan: ang mga halagang ``default'' na naka-print sa mga square bracket sa listahan ng tulong ay,
mahigpit na pagsasalita, hindi ang mga built-in na default ngunit ang kasalukuyang mga halaga pagkatapos ng anuman
mga opsyon sa kapaligiran at anumang mga opsyon sa command-line bago ang -tulong may opsyon
naproseso na.

Tingnan din ang: -baguhan, -version, at Tulungan opsyon ng lahat ng setting na kumukuha ng listahan ng
mga keyword.

-identifier-chars=listahan
Tukuyin ang mga hindi alphanumeric na character na maaaring gamitin sa mga identifier. Bilang default,
ftnchek tinatanggap lamang ang dollar sign at salungguhitan bilang mga hindi alphanumeric na character
sa mga pangalan ng identifier. Ang mga tauhan sa listahan palitan ang anumang hanay ng tinanggap
dati nang may bisa ang mga hindi alphanumeric na character. Kaya, kung dollar sign o
Ang salungguhit ay hindi kasama sa listahan, nawala ang kanilang katayuan bilang katanggap-tanggap
character.

Ang pagpipiliang ito ay ibinigay upang paganahin ftnchek upang pangasiwaan ang mga source file na naglalaman ng hindi
karaniwang mga pangalan ng pagkakakilanlan na maaaring kailanganin, halimbawa, upang ma-access ang ilang partikular
mga serbisyo ng operating system. Tingnan ang seksyon sa Mga Limitasyon at Mga Extension para sa
paggamot ng mga identifier na naglalaman ng mga character na ito sa implicit na pag-type.

paggamit -noidentifer-chars pinapatay ang pagtanggap ng mga hindi alphanumeric na character
lahat.

Tingnan din ang: -pinagmulan.

-include=landas
Tinutukoy ang isang direktoryo na hahanapin para sa mga file na tinukoy ng INCLUDE statement.
Hindi tulad ng iba pang mga opsyon sa command-line, ang setting na ito ay pinagsama-sama; iyon ay, kung ito ay
ibinigay ng higit sa isang beses sa command line, ang lahat ng mga direktoryo na tinukoy ay
inilagay sa isang listahan na hahanapin sa parehong pagkakasunud-sunod na ibinigay sa kanila. Ang
pagkakasunud-sunod kung saan ftnchek Ang mga paghahanap para sa isang file na isasama ay: ang kasalukuyang
direktoryo; ang direktoryo na tinukoy ng environment variable na FTNCHEK_INCLUDE kung mayroon man;
ang mga direktoryo na tinukoy ng alinman -isama mga pagpipilian; ang direktoryo na tinukoy ni
variable ng kapaligiran KASAMA; at sa wakas sa isang karaniwang direktoryo sa buong system
(/ usr / isama para sa UNIX, SYS$LIBRARY para sa VMS, at \include para sa MSDOS).

Tingnan din ang: -f77, -pinagmulan.

-intrinsic=listahan
Kinokontrol kung ftnchek kinikilala ang ilang hindi karaniwang mga intrinsic na function bilang
intrinsic. Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Ilan sa
kinokontrol ng mga keyword kung kikilalanin ang ilang partikular na pangkat ng mga function, at iba pa
Kinokontrol ng mga keyword ang inaasahang syntax para sa paggamit ng ilang hindi karaniwang intrinsics.
Magsama ng keyword upang i-on ang pagkilala sa kaukulang hanay ng mga intrinsics o
upang payagan ang kaukulang syntax. Magsama ng keyword na may prefix na hindi- upang patayin
na pagkilala.

May tatlong espesyal na keyword: lahat i-on ang pagkilala sa lahat ng hindi pamantayan
intrinsics (nakalista sa ibaba) at tumatanggap ng alinmang syntax para sa mga may pagkakaiba-iba.
paggamit wala upang patayin ang pagkilala sa lahat ng hindi karaniwang intrinsics maliban sa mga nabanggit
sa ibaba. Gamitin Tulungan upang i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng
bawat isa. Kung listahan ay tinanggal, - intrinsic ay katumbas ng -intrinsic=lahat, at
-nointrinsic ay katumbas ng -intrinsic=wala.

Ang mga hindi karaniwang intrinsic na function na kailangan upang suportahan ang hindi karaniwang pinalawig
Ang mga uri ng data ng precision (double complex at quad precision) ay palaging kinikilala.
Ang intrinsics para sa double complex na uri ng data ay:

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
Ang mga intrinsics para sa quad precision at quad complex na mga uri ay:

CQABS QARCOS QEXT QNINT
CQCOS QARSIN QEXTD QPROD
CQEXP QATAN QFLOAT QREAL
CQLOG QATAN2 QIMAG QSIGN
CQSIN QCMPLX QINT QSIN
CQSQRT QCONJG QLOG QSINH
DBLEQ QCOS QLOG10 QSQRT
IQINT QCOSH QMAX1 QTAN
IQNINT QDIM QMIN1 QTANH
QABS QEXP QMOD SNGLQ
Ang mga keyword na kumokontrol sa pagkilala ng iba pang hindi karaniwang mga intrinsic na function ay
tulad ng sumusunod:

dagdag:
kilalanin ang mga sumusunod na karaniwang magagamit na hindi karaniwang intrinsics (lahat maliban sa
Ang EXIT at LOC ay tinukoy sa MIL-STD 1753):

BTEST IBCLR IEOR ISHFTC
EXIT IBITS IOR LOC
IAND IBSET ISHFT HINDI

Unix: kilalanin ang mga karaniwang intrinsic na function na partikular sa Unix:

I-ABORT ANG GMTIME LTIME SRAND
AT IARGC O SYSTEM
GETARG IRAND RAND TIME
GETENV LSHIFT RSHIFT XOR

vms: kilalanin itong mga karaniwang intrinsic na function na partikular sa VMS:

DATE IDATE SECND TIME

ERRSNS RAN SIZEOF

iargc-no-argument:
tukuyin na ang IARGC ay maaaring gamitin nang walang mga argumento.

iargc-one-argument:
tukuyin na ang IARGC ay maaaring gamitin sa isang argumento.

rand-no-argument:
tukuyin na ang RAND at IRAND ay maaaring gamitin nang walang mga argumento.

rand-one-argument:
tukuyin na ang RAND at IRAND ay maaaring gamitin sa isang argumento.

Ang walang argumento at isang argumento gumagana ang mga keyword tulad ng sumusunod: pag-on sa opsyon
sanhi ftnchek upang tanggapin ang kaukulang syntax para sa invocation ng function,
nang hindi ibinubukod ang posibilidad ng alternatibong syntax. Pag-ikot ng opsyon
off ay nagiging sanhi ng kaukulang syntax upang hindi tanggapin. Kung ang parehong mga pagpipilian ay nakabukas
sabay-sabay (ang default), pagkatapos ay tinatanggap ang alinman sa syntax. Ino-off ang parehong mga opsyon
sabay-sabay ay hindi magiging makabuluhan. Ang mga opsyon na ito ay walang epekto kung kinikilala ng
Naka-off ang Unix intrinsics.

Tandaan na hindi kinokontrol ng setting na ito kung ibibigay ang mga hindi karaniwang babala
tungkol sa mga function na ito. Kinokontrol nito kung ang mga function ay ipinapalagay na
intrinsic o hindi, na tumutukoy kung paano sinusuri ang kanilang paggamit. Kapag gumagana sa
alinman sa mga set na ito ay kasama, ang kanilang mga invocation ay susuriin ayon sa
mga panuntunan para sa mga intrinsic na pag-andar; kung hindi, susuriin sila bilang normal (user-
nakasulat) panlabas na mga pag-andar. Ang mga hindi karaniwang babala ay kinokontrol ng
-f77=intrinsic pagpipilian.

Ang default na halaga ng setting na ito ay katumbas ng -intrinsic=lahat sinundan ng
-intrinsic=no-vms para sa bersyon ng Unix, -intrinsic=no-unix para sa bersyon ng VMS, at
-intrinsic=no-unix,no-vms para sa iba pang mga bersyon.

Tandaan: Sa mga bersyon ng ftnchek bago ang 2.10, ang - intrinsic kinuha ng bandila ang isang numero
argumento sa halip na isang listahan ng mga opsyon. Para sa kapakanan ng mga gumagamit na maaaring nagsulat
script invoking ftnchek sa ganitong paraan, tinatanggap pa rin ang numeric form. Ang
Ang numeric na anyo ng setting ay binubuo ng tatlong digit. Pinipili ng isang digit ang
set ng mga intrinsic na function na susuportahan. Pinipili lamang ng digit na 0 ang Fortran 77
karaniwang intrinsics kasama ang mga kailangan para suportahan ang hindi karaniwang pinalawig na katumpakan
uri ng data. Ang digit 1 ay katumbas ng dagdag, 2 ay katumbas ng dagdag, unix, at
3 ay katumbas ng dagdag, vms. Kinokontrol ng sampung digit ng setting na ito ang syntax
ng RAND intrinsic function, at kinokontrol ng daan-daang digit ang syntax ng
IARGC function. Para sa mga digit na ito, tukuyin ang 0 upang mangailangan ng invocation na may no
argumento, 1 upang mangailangan ng isang argumento, at 2 upang payagan ang alinmang anyo.

Tingnan din ang: -f77.

-aklatan
Ang switch na ito ay ginagamit kapag ang isang bilang ng mga subprogram ay nakapaloob sa isang file, ngunit hindi
lahat ng mga ito ay ginagamit ng application. Karaniwan, ftnchek binabalaan ka kung mayroon man
ang mga subprogram ay tinukoy ngunit hindi kailanman ginagamit. Pipigilan ng switch na ito ang mga babalang ito.
Default = hindi.

Kinokontrol din ng switch na ito kung aling mga subprogram na tawag at COMMON block declarations
sinuri. Kung ang isang file ay binasa kasama ang -aklatan flag sa bisa, ang subprogram na tawag
at KARANIWANG deklarasyon na nakapaloob sa isang gawain sa file na iyon ay susuriin lamang kung
ang routine na iyon ay nasa call tree ng pangunahing programa. Sa kabilang banda, kung ang
-aklatan naka-off ang switch, pagkatapos ftnchek sinusuri ang mga tawag ng bawat gawain sa pamamagitan ng
lahat ng iba pang gawain, hindi alintana kung ang mga gawaing iyon ay maaaring mangyari
hinihingi sa oras ng pagtakbo, at gayundin ang lahat ng COMMON block declarations ay inihambing para sa
kasunduan.

Ang pagkakaiba sa pagitan ng switch na ito at ng -usage=no-ext-unused pagpipilian para sa
subprograms ay ang huli ay pinipigilan lamang ang babala tungkol sa pagiging nakagawian
ipinahayag ngunit hindi ginagamit. Ang -aklatan lumipat nang higit pa at hindi kasama ang hindi nagamit
nakagawiang naproseso habang ito ay may bisa mula sa lahat ng cross-checking ng mga argumento at
COMMON block declarations din.

(Kung walang pangunahing programa saanman sa hanay ng mga file na ftnchek nabasa, kaya
na walang call tree, kung gayon ftnchek maghahanap ng anumang mga gawaing hindi aklatan
na hindi tinatawag ng anumang iba pang gawain, at gamitin ang mga ito bilang mga pamalit sa pangunahing
programa sa pagbuo ng call tree at pagpapasya kung ano ang susuriin. Kung walang ganoong top-
Ang antas ng mga gawaing hindi aklatan ay matatagpuan, pagkatapos ay lahat ng inter-module na tawag at lahat ng COMMON
susuriin ang mga deklarasyon.)

Tingnan din ang: -mga argumento, -calltree, -karaniwan, -panlabas, -gamit.

-Lista
Tinutukoy na ang isang listahan ng Fortran program ay ipi-print na may linya
numero. Kung ftnchek nakakita ng error, ang mensahe ng error ay sumusunod sa linya ng programa
na may caret ( ^ ) na tumutukoy sa lokasyon ng error. Kung walang source listing
hiniling, ftnchek ay magpi-print pa rin ng anumang linya na naglalaman ng error, upang matulungan ang
user sa pagtukoy kung saan naganap ang error. Default = hindi.

Tingnan din ang: -output, \fB-symtab, fB-tahimik.

-makecls=listahan
Maghanda ng isang maayos na na-format na file ng mga deklarasyon ng mga variable, karaniwang mga bloke, at
mga listahan ng namelist, para sa posibleng pagsasama sa source code. Ang mga deklarasyon ay
naka-imbak sa isang file na may parehong pangalan bilang source code, ngunit may extension
binago sa .dcl. Kung walang isinulat na mga deklarasyon sa file, tatanggalin ito sa
bawasan ang kalat mula sa mga walang laman na file.

Kung ang input ay nagmumula sa karaniwang input, sa halip na isang pinangalanang file, ang mga deklarasyon ay
nakasulat sa karaniwang output.

Ang mga variable ay ipinahayag sa alpabetikong pagkakasunud-sunod sa loob ng bawat klase ng deklarasyon at
uri, na may mga variable na integer muna, dahil sa kanilang posibleng paggamit sa array
mga sukat.

Ang mga pahayag ng PARAMETER ay isang pagbubukod sa panuntunan sa pagkakasunud-sunod ng alpabeto, dahil ang
Kinakailangan ng Fortran 77 Standard na ang mga expression na tumutukoy sa mga value ng parameter ay tumutukoy
lamang sa mga constant at natukoy nang mga pangalan ng parameter. Pinipilit nito ang orihinal
source file ng pagkakasunud-sunod ng naturang mga pahayag na mapangalagaan sa mga file ng deklarasyon.

Tahasang deklarasyon ng lahat Ang mga variable ay itinuturing na mahusay na modernong programming
pagsasanay. Sa pamamagitan ng paggamit ng mga opsyon sa compiler upang tanggihan ang mga hindi ipinahayag na variable, mali ang spelling
maaaring makuha ang mga variable na pangalan (o mga pangalan na lumampas sa column 72) sa oras ng pag-compile.
Ang mga tahasang deklarasyon ay lubos ding nagpapadali sa pagbabago ng katumpakan ng floating-point
na may mga filter tulad ng dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L), at
stod(1L). Ang mga programang ito ay may kakayahang baguhin ang mga uri ng tahasang floating-point
uri ng mga deklarasyon, intrinsic function, at constants, ngunit dahil hindi
magsagawa ng mahigpit na lexical at grammatical analysis ng Fortran source code,
hindi sila makakapagbigay ng binagong uri ng mga deklarasyon para sa mga hindi nadeklarang variable. Default
setting = 0, turn-on = 1.

Ang iba't ibang mga opsyon para sa anyo ng file ng mga deklarasyon ay kinokontrol ng listahan,
na binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlong espesyal
keyword: lahat upang i-on ang lahat ng mga opsyon, wala upang patayin silang lahat, at Tulungan sa
i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan is
tinanggal, -makecls ay katumbas ng -makecls=deklarasyon (ibig sabihin, gumawa ng
declarations file gamit ang mga default na opsyon), at -nomakedcls ay katumbas ng
-makecls=wala.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo ng setting na ito
tinatanggap din: ang listahan ay pinalitan ng isang numero na siyang kabuuan ng mga numero
sa panaklong sa tabi ng mga keyword sa sumusunod na listahan. Ang mga keyword ng babala
kasama ang kanilang mga kahulugan ay ang mga sumusunod:

deklarasyon (1):
Sumulat ng file ng deklarasyon. (Ito ay ipinahiwatig ng alinman sa iba pang mga opsyon, at
maaaring tanggalin kung may iba pang opsyon na ibinigay.)

hindi idineklara-lamang (2):
Bilang default, ang lahat ng mga variable ay kasama sa file ng deklarasyon. Kasama nito
opsyon, isama lamang hindi naipahayag mga variable. Ang setting na ito ay kapaki-pakinabang kung ikaw
nais na suriin para sa mga hindi ipinahayag na mga variable, dahil ang Fortran source file kasama ang lahat
ang mga variable na maayos na ipinahayag ay hindi magreresulta sa a .dcl file. Kasama nito
opsyon, karaniwang mga bloke at listahan ng namelist ay hindi isasama sa
file ng deklarasyon, dahil sa kanilang likas na katangian ay hindi sila maaaring hindi ideklara.

siksik (4):
Ang mga deklarasyon ay karaniwang naka-print na maganda upang pumila nang maayos sa karaniwan
mga column, tulad ng sa mga file ng deklarasyon na output ng Extended PFORT Verifier,
pfort(1L). Pinipili ng value ng opsyong ito ang compact na output, nang walang column
pagkakahanay

gamitin-pagpapatuloy-linya (8):
Nagdudulot ng paggamit ng mga linya ng pagpapatuloy kung saan pinapayagan. Ang default ay sa
magsimula ng bagong deklarasyon sa bawat linya. Ang pagpipiliang ito ay angkop na gamitin
Kasama siksik.

mga keyword-maliit na titik (16):
I-output ang mga keyword ng Fortran sa lowercase, sa halip na ang default na uppercase.

vars-and-consts-lowercase (32):
Mga variable at constant ng output sa lowercase, sa halip na default
malaking titik. Ang mga constant string ng character ay hindi apektado ng opsyong ito.

ibukod-sftran3 (64):
Alisin ang mga deklarasyon ng mga internal na variable na integer na ginawa ng SFTRAN3
preprocessor, xsf3(1L), bilang bahagi ng pagsasalin ng structured Fortran
mga pahayag sa ordinaryong Fortran. Ang mga variable na ito ay may anim na character na pangalan ng
ang form NPRddd, NXdddd, N2dddd, at N3dddd, Kung saan d ay isang decimal na digit.
Dahil hindi sila nakikita sa source code ng SFTRAN3, at magbabago kung ang
Ang SFTRAN3 code ay binago, ang mga naturang variable ay hindi dapat tahasang ipahayag.
Sa halip, dapat lang nilang ipagpalagay ang default na Fortran INTEGER na uri ng data batay
sa kanilang unang liham, N.

asterisk-comment (128):
Gumamit ng asterisk bilang character ng komento; ang default ay kung hindi man ay 'C'.

comment-char-lowercase (256):
Gamitin ang 'c' sa halip na 'C' o '*' bilang character ng komento.

suppress-array-dimensions (512):
Pigilan ang dimensyon ng mga array sa mga nabuong deklarasyon. Ang pagpipiliang ito
ay para sa paggamit sa code na kulang sa uri ng mga deklarasyon, upang payagan ang deklarasyon
mga file na ilalagay nang walang pagbabago sa code. Dahil ang code ay magkakaroon
mga pahayag ng dimensyon, na nagdimensyon sa mga variable ng array sa uri
ang mga pahayag ng file ng deklarasyon ay kalabisan. Ang pagpipiliang ito ay dapat gamitin
lamang kasabay ng opsyon 2 = undeclared-only dahil kung hindi man
Ang mga array na may sukat sa isang uri ng pahayag ay mawawala ang kanilang
pagdimensyon.

malayang anyo (1024):
Gumawa ng mga deklarasyon sa libreng source form. Ang mode na ito ay awtomatikong ginagamit kung
ang input source ay libreng form. Gamitin ang opsyong ito para makagawa ng mga deklarasyon sa
libreng form kahit na ang input ay nasa fixed form. Ang mga deklarasyon ng libreng form ay
2 column lang ang naka-indent sa halip na 6, gamitin ang tandang padamdam bilang komento
character, at ipahiwatig ang mga linya ng pagpapatuloy ng isang ampersand sa dulo ng
linyang itutuloy.

Ang mga file ng deklarasyon ay naglalaman ng mga natatanging komento na nagmamarka sa simula at pagtatapos ng
mga deklarasyon para sa bawat yunit ng programa, upang mapadali ang paggamit ng mga macro ng text editor para sa
pagsasama-sama ng mga deklarasyon pabalik sa source code.

Ang ftnchek Kasama sa pamamahagi ang isang programa, dcl2inc, na nagpoproseso ng deklarasyon
mga file upang makagawa ng mga file na naglalaman ng mga deklarasyon ng lahat ng COMMON block, sa isang form
angkop para sa paggamit bilang INCLUDE file. Tingnan ang dcl2inc(1L) man page para sa mga detalye ng
paggamit nito.

Tingnan din ang: -mkhtml.

-mkhtml=listahan
Gumawa ng dokumentasyon ng HTML mula sa pinagmulan. Lumilikha ng mga indibidwal na HTML file mula sa ftnchek
pagsusuri at mga komento sa code. Lahat ng komento kaagad na nauuna at sumusunod sa
Ang function o subroutine na kahulugan ay nakukuha sa HTML file. Walang reformatting ng
isinagawa ang mga source na komento maliban sa pagtanggal ng mga character ng komento ng FORTRAN.
Bilang karagdagan, ang HTML file ay naglilista ng mga lokal na variable na ipinahayag, karaniwang bloke
mga variable na ginamit, mga function at subroutine na tinatawag, I/O unit usage, at iba pa
impormasyon tungkol sa bawat subprogram. Kadalasan ay gusto mo ring tukuyin
-tawag=puno upang lumikha ng root HTML file na CallTree.html. (Marahil ang file na ito ay dapat
pangalanan ang index.html.)

Ang iba't ibang mga opsyon para sa anyo ng mga HTML na file ay kinokontrol ng listahan, Na
binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlong espesyal
keyword: lahat upang i-on ang lahat ng mga opsyon, wala upang patayin silang lahat, at Tulungan sa
i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan is
tinanggal, -mkhtml ay katumbas ng -mkhtml=mga dokumento (ibig sabihin, gumawa ng HTML na dokumento
mga file gamit ang mga default na opsyon), at -nomkhtmls ay katumbas ng -mkhtml=wala.

Para sa kapakanan ng pagiging simple, ang mga pagpipilian para sa -mkhtml ay pareho sa para sa
-makecls maliban sa mga hindi naaangkop. Gayundin, isang numerong anyo ng
maaaring gamitin ang setting na ito, na nabuo bilang kabuuan ng mga numero sa panaklong sa
listahan sa ibaba. Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

dokumento (1):
Lumikha ng mga HTML na dokumento. (Ito ay ipinahiwatig ng alinman sa iba pang mga opsyon, at
maaaring tanggalin kung may iba pang opsyon na ibinigay.)

siksik (4):
Ang mga deklarasyon ay karaniwang naka-print na maganda upang pumila nang maayos sa karaniwan
mga hanay. Pinipili ng value ng opsyong ito ang compact na output, nang walang column
pagkakahanay

gamitin-pagpapatuloy-linya (8):
Nagdudulot ng paggamit ng mga linya ng pagpapatuloy sa halip na magsimula ng bagong deklarasyon
sa bawat linya. Ang pagpipiliang ito ay angkop na gamitin kasama ng siksik.

mga keyword-maliit na titik (16):
I-output ang mga keyword ng Fortran sa lowercase, sa halip na ang default na uppercase.

vars-and-consts-lowercase (32):
Mga variable at constant ng output sa lowercase, sa halip na default
malaking titik. Ang mga constant string ng character ay hindi apektado ng opsyong ito.

ibukod-sftran3 (64):
Alisin ang mga deklarasyon ng mga internal na variable na integer na ginawa ng SFTRAN3
preprocessor, xsf3(1L). (Tingnan -makecls para sa talakayan.)

suppress-array-dimensions (512):
Pigilan ang dimensyon ng mga array sa mga nabuong deklarasyon. Ito ay
karaniwang hindi kanais-nais, ngunit magagamit kung sa ilang kadahilanan ay hindi mo gusto ang
mga sukat ng array na lilitaw sa HTML.

malayang anyo (1024):
Gumawa ng mga variable na deklarasyon sa libreng source form. Ang mode na ito ay
awtomatikong ginagamit kung ang input source ay libreng form. Pangunahing nakakaapekto ito sa
anyo ng mga linya ng pagpapatuloy kung gagamitin ang mga ito.

Tingnan din ang: -calltree, -makecls.

-baguhan
Ang flag na ito ay inilaan upang magbigay ng mas kapaki-pakinabang na output para sa mga nagsisimula. Mayroon itong dalawa
epekto:

(a) nagbibigay ng karagdagang mensahe sa epekto na ang isang function na ginagamit ngunit hindi
tinukoy kahit saan ay maaaring isang array na nakalimutan ng user na ideklara sa a
pahayag ng DIMENSION (dahil ang syntax ng isang array reference ay pareho doon
ng isang sanggunian ng function).

(b) binabago ang anyo ng mga mensahe ng error at babala. Kung ang bandila ay nakabukas
off ng -nonovice, ang mga mensaheng ito ay naka-print sa isang istilo na mas kahawig ng UNIX
linen.

Default = oo.

-output=filename
Ang setting na ito ay ibinibigay para sa kaginhawahan sa mga system na hindi nagpapahintulot ng madali
pag-redirect ng output mula sa mga programa. Kapag ibinigay ang setting na ito, ang output kung saan
karaniwang lumalabas sa screen ay ipapadala sa halip sa pinangalanang file. Tandaan,
gayunpaman, ang mga error sa pagpapatakbo ng ftnchek mismo (hal. wala sa espasyo o hindi
open file) ay ipapadala pa rin sa screen. Ang extension para sa filename ay
opsyonal, at kung walang ibinigay na extension, ang extension .lis gagamitin.

-pointersize=num
Tinutukoy ang laki ng magiging variable ng ``Cray pointer'' num byte. Default = turn-
on = 4 bytes.

Ang laki ng pointer ay ginagamit upang ipaalam ang precision mismatch na mga babala na kinasasangkutan ng pointer
mga variable, halimbawa kapag ang isang pointer ay itinalaga ng isang halaga mula sa isang alokasyon
routine, o ipinasa bilang parameter ng subprogram.

Tingnan din ang: -f77, -portability, -pagputol, - laki ng salita.

-portability=listahan
ftnchek ay magbibigay ng mga babala para sa iba't ibang di-portable na paggamit. Kasama sa mga halimbawa
ang paggamit ng mga tab maliban sa mga komento o sa loob ng mga string, ang paggamit ng Hollerith
constants, at ang pagtutumbas ng mga variable ng iba't ibang uri ng data. Ang pagpipiliang ito
hindi gumagawa ng mga babala para sa mga sinusuportahang extension sa Fortran 77 Standard,
na maaaring magdulot din ng mga problema sa portability. Upang mahuli ang mga iyon, gamitin ang -f77 setting na ito.
Bilang default, naka-off ang lahat ng babala.

Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa posibleng portability
mga problema. Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. meron
tatlong espesyal na keyword: lahat upang i-on ang lahat ng mga babala tungkol sa mga hindi madadala na paggamit,
wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat ng mga keyword na may a
maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -portability ay katumbas ng
-portability=lahat, at -noportability ay katumbas ng -portability=wala. ang
ang mga keyword na may babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

pagtalikod:
Backslash na character sa mga string. Dahil itinuturing ng ilang compiler ang backslash bilang
isang escape character, ang presensya nito ay maaaring magdulot ng mga problema kahit na ito ay ginagamit
sa paraang naaayon sa pamantayan.

karaniwang pagkakahanay:
KARANIWANG mga variable ng block na wala sa pababang pagkakasunud-sunod ng laki ng storage. Ang ilan
kailangan ng mga compiler ang pag-order na ito dahil sa mga kinakailangan sa pag-align ng storage.

hollerith:
Hollerith constants (maliban sa loob ng FORMAT specifications). Ang Hollerith
Ang uri ng data ay isang tampok ng Fortran IV na tinanggal sa Fortran 77
pamantayan. Ito ay pinapalitan ng uri ng data ng character. Pag-iimbak ng Hollerith
ang data sa mga variable ng numeric o lohikal na uri ng data ay hindi madadala dahil sa
magkaibang laki ng salita.

mahabang tali:
String constants, variable, o expression na higit sa 255 char ang haba.

halo-halong katumbas:
Ang mga variable ng iba't ibang uri ng data ay katumbas.

halo-halong laki:
Ang mga variable na idineklara nang may default na katumpakan na ginamit sa mga variable na ibinigay na tahasan
katumpakan, sa mga expression, takdang-aralin, o bilang mga argumento. Halimbawa, kung a
Ang variable na idineklara bilang REAL*8 ay itinuturing na katumbas ng DOUBLE PRECISION.

real-do:
Non-integer DO loop index at mga hangganan. Ang mga ito ay maaaring maging sanhi ng mga resulta ng isang programa sa
depende sa mga katangian ng hardware ng partikular na computer na ginamit.

param-implicit-type:
Implicit na pag-type ng isang parameter ayon sa uri ng data ng value na itinalaga, kung ito
naiiba sa default na uri. Ang babalang ito ay maaari lamang mangyari kung implicit
Ang pag-type ng parameter ay na-on ng -source=param-implicit-type
opsyon, o kung ang PARAMETER statement ay nasa nonstandard form na wala
panaklong. Kung naka-on ang opsyong ito, anumang pagkakataon kung saan implicit
nagaganap ang pag-type ng parameter at kung saan ang implicit na uri ay iba sa
default na uri batay sa unang titik ng pangalan ng parameter, ay babalaan
tungkol sa. Maaaring baguhin ng implicit na pag-type ng parameter ang semantics ng mga statement
kung saan ginagamit ang parameter, na nagiging sanhi ng mga problema sa portability.

tab: Mga tab sa source code. Iba-iba ang interpretasyon sa mga tab ng iba
mga compiler. Isang beses lang ibibigay ang babalang ito, sa dulo ng file.

Tingnan din ang: -f77, -f90, -f95, -maganda, -Style, - laki ng salita.

-maganda=listahan
Kinokontrol ang ilang partikular na mensahe na nauugnay sa hitsura ng source code. Ang mga ito ay nagbabala
tungkol sa mga bagay na maaaring hindi gaanong mabasa ang isang programa o maging mapanlinlang sa mambabasa.
Bilang default, naka-on ang lahat ng babala.

Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa hitsura. Ang
listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil ang lahat ng mga babala ay nakabukas
bilang default, isama ang isang keyword na prefix ng hindi- upang patayin ang isang partikular na babala.
May tatlong espesyal na keyword: lahat upang i-on ang lahat ng mga babala tungkol sa panlilinlang
pagpapakita, wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat ng
mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -maganda is
katumbas ng -maganda=lahat, at -hindi maganda ay katumbas ng -maganda=wala. ang
ang mga keyword na may babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

kahaliling-pagbabalik:
Ang isang RETURN statement ay may pare-parehong tumutukoy sa isang alternatibong return point na iyon
ay wala sa pagitan ng 0 at ang bilang ng mga dummy argument na mga label. Ito ay
legal, at may parehong epekto bilang RETURN na walang kahaliling return
expression, ngunit nagmumungkahi na ang programmer ay nilayon na gumamit ng isang kahalili
ibalik ang label na hindi ibinigay.

naka-embed na espasyo:
Space na naka-embed sa mga variable na pangalan o sa mga multi-character operator gaya ng **.

pagpapatuloy:
Markahan ng pagpapatuloy kasunod ng linya ng komento.

mahabang linya:
Mga linya (maliban sa mga komento) na higit sa 72 column ang lapad (higit sa 72 ay karaniwan
hindi pinansin ng compiler).

nawawalang-espasyo:
Kakulangan ng espasyo sa pagitan ng variable at isang naunang keyword.

maramihang-karaniwan:
COMMON block na idineklara sa maraming pahayag. Walang babala ang ibinibigay kung ang
ang mga pahayag ay magkakasunod maliban sa mga linya ng komento.

multiple-namelist:
Idineklara ang NAMELIST sa maraming pahayag. Walang babala ang ibinibigay kung ang
ang mga pahayag ay magkakasunod maliban sa mga linya ng komento.

mga panaklong:
Mga panaklong sa paligid ng isang variable nang mag-isa. Bilang isang subprogram na argumento, ito
ginagawang expression ang argumento, hindi nababago ng subprogram.

Tandaan na sa libreng source form, ang dagdag na espasyo at nawawalang espasyo ay ipinagbabawal ng
Fortran 90 Standard, at hindi lamang mga paglabag sa istilo. Sa kasong ito ang mga babala
ay pinalitan ng mga mensahe ng error sa syntax, at maaaring i-off lamang sa pamamagitan ng paggamit
-nocheck.

Tingnan din ang: -f77, -portability, -Style.

-proyekto=listahan
ftnchek gagawa ng project file mula sa bawat source file na input habang ito
naka-on ang opsyon. Ang file ng proyekto ay bibigyan ng parehong pangalan bilang ang input
file, ngunit may extension .f or .para sa pinalitan ng .prj. (Kung ang input ay mula sa
karaniwang input, pinangalanan ang file ng proyekto ftnchek.prj.) Default = wala.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlo
mga espesyal na keyword: lahat upang i-on ang lahat ng mga opsyon, wala upang patayin silang lahat, at
Tulungan upang i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung
listahan ay tinanggal, proyekto ay katumbas ng -proyekto=lahat, at -walang proyekto is
katumbas ng -proyekto=wala. Ang mga keyword na may kanilang mga kahulugan ay ang mga sumusunod:

lumikha:
Gumawa ng isang file ng proyekto. Ang default ay hindi upang makagawa ng isang file ng proyekto. Kung
hindi naka-on ang opsyong ito, walang epekto ang ibang mga opsyon.

trim-calls:
I-trim ang dami ng impormasyong nakaimbak sa project file tungkol sa subprogram
mga deklarasyon at tawag. Ito ang default. I-off lang ang opsyong ito sa
mga bihirang sitwasyon. (Tingnan ang talakayan sa ibaba.) Ang halaga ng trimming ay nag-iiba
depende sa -aklatan bandila. Higit pang impormasyon ay pinuputol kung ang flag na iyon ay
binuksan.

trim-common:
I-trim ang bilang ng mga karaniwang block declaration na nakaimbak sa project file.
Ito ang default. I-off lang ang opsyong ito sa mga bihirang sitwasyon. (Tingnan
talakayan sa ibaba.) Walang epekto ang opsyong ito kung ang -aklatan ibinaba ang bandila
off: kapag wala sa library mode, walang trimming ng mga karaniwang block declarations
tapos na anuman ang opsyong ito.

Ang isang project file ay naglalaman ng buod ng impormasyon mula sa source file, para magamit sa
pagsuri ng kasunduan sa mga FUNCTION, SUBROUTINE, at KARANIWANG paggamit sa iba pang mga file.
Pinapayagan nito ang incremental checking, na nakakatipid ng oras sa tuwing mayroon kang isang malaking hanay ng mga
mga file na naglalaman ng mga nakabahaging subroutine, karamihan sa mga ito ay bihirang magbago. Maaari kang tumakbo
ftnchek isang beses sa bawat file na may proyekto flag set, na lumilikha ng mga file ng proyekto.
Kadalasan ay itatakda mo rin ang -aklatan at -noextern mga flag sa oras na ito, sa
sugpuin ang mga mensaheng nauugnay sa pagkakapare-pareho sa iba pang mga file. Mga error message lang
na nauukol sa bawat file sa kanyang sarili ay ipi-print sa oras na ito. Pagkatapos, tumakbo
ftnchek nang walang mga flag na ito sa lahat ng mga file ng proyekto nang magkasama, upang suriin ang pagkakapare-pareho
sa iba't ibang mga file. Ang lahat ng mga mensahe sa loob ng mga indibidwal na file ay gagawin na ngayon
ay tanggalin. Kapag ang isang file ay binago lamang ang isang bagong file ng proyekto ay kailangang gumawa
para rito.

Naturally, kapag ang proyekto naka-on ang opsyon, ftnchek hindi magbabasa ng proyekto
mga file bilang input.

Karaniwan, ang mga pagpipilian sa pag-trim ay dapat iwanang naka-on kapag nilayon mong gumawa ng proyekto
mga file para sa hinaharap na input sa ftnchek. Dahil naka-on ang trimming bilang default, ibig sabihin nito
na nagbibigay lang ng utos proyekto na walang listahan ng opsyon ang inirerekomenda
mode. Ang mga pagpipilian sa trim ay ibinibigay lamang bilang isang kaginhawahan para sa mga nais
gumamit ng mga file ng proyekto para sa mga layunin maliban sa pagsuri sa program gamit ang
ftnchek. Upang magamit ang mga file ng proyekto para sa kanilang nilalayon na layunin, ang mga pagpipilian sa pag-trim ay dapat
hindi patayin.

Ang mga file ng proyekto ay naglalaman lamang ng impormasyong kailangan para sa pagsuri ng kasunduan sa pagitan ng mga file.
Nangangahulugan ito na ang isang file ng proyekto ay walang silbi kung ang lahat ng mga module ng kumpletong programa
ay nakapaloob sa isang file.

Ang isang mas detalyadong talakayan ay ibinibigay sa seksyon sa Paggamit ng Mga File ng Proyekto.

-dalisay
Ipagpalagay na ang mga function ay ``puro'', ibig sabihin, hindi sila magkakaroon ng mga side effect sa pamamagitan ng pagbabago
kanilang mga argumento o variable sa isang COMMON block. Kapag ang watawat na ito ay may bisa,
ftnchek ibabatay nito ang pagpapasiya ng set at ginamit na katayuan ng mga aktwal na argumento
sa pagpapalagay na ang mga argumento na ipinasa sa isang function ay hindi binago. Ito ay
mag-isyu din ng babala kung ang isang function ay nakitang magbago ng alinman sa mga argumento nito o anuman
KARANIWANG variable. Default = oo.

Kapag naka-off ang flag na ito, ang mga aktwal na argumento na ipinasa sa mga function ay hahawakan
sa parehong paraan tulad ng mga aktwal na argumento na ipinasa sa mga subroutine. Ibig sabihin nito ftnchek
ay ipagpalagay na ang mga argumento ay maaaring mabago ng mga function. Walang magiging babala
ibinibigay kung ang isang function ay natagpuan na may mga side effect. Dahil mas mahigpit ang pagsusuri
posible kung ang mga function ay ipinapalagay na puro, dapat mong patayin ang flag na ito kung
ang iyong programa ay talagang gumagamit ng mga function na may mga side effect.

-tahimik
Binabawasan ng opsyong ito ang dami ng output na nauugnay sa normal na operasyon, nang sa gayon
mas maliwanag ang mga mensahe ng error. Ang pagpipiliang ito ay ibinigay para sa kaginhawahan ng
mga user na nagsusuri ng malalaking suite ng mga file. Ang inalis na output ay kinabibilangan ng
mga pangalan ng mga file ng proyekto, at ang mensaheng nag-uulat na walang nakitang mga error sa syntax.
Tinatanggal din nito ang ilang mga blangkong linya na karaniwang kasama para sa kalinawan. (Ilan
ng output na ito ay na-on muli ng -Lista at -symtab mga pagpipilian.) Default = hindi.

Tandaan: ang paraan upang matandaan ang pagkakaiba sa pagitan ng -tahimik at -maikli ay na
-tahimik ay hindi pinipigilan ang anumang impormasyong nauugnay sa babala, samantalang -maikli ang.

Tingnan din ang: -maikli.

-sanggunian
Tinutukoy na ang isang who-calls-who table ay ipi-print. Inililista ng talahanayang ito ang bawat subprogram
na sinusundan ng isang listahan ng mga gawain na tinatawag nito. Ang switch na ito ay katumbas ng
-calltree=reference. Default = hindi.

Inalis ng listahan ng sanggunian ang mga nakagawiang tinatawag ng mga hindi nagamit na module ng library. Kaya ito
naglalaman ng parehong impormasyon tulad ng para sa format ng call-tree, katulad ng hierarchy ng
mga subprogram na tawag, ngunit naka-print sa ibang paraan. Nagpi-print ito ng malawak na una
pagtawid ng puno ng tawag samantalang -calltree=puno nagpi-print ng depth-first
pagtawid.

Tingnan din ang: -calltree, -crossref, -aklatan, -uri-uriin, -symtab, -vcg.

-mga mapagkukunan
Ini-print ang dami ng mga mapagkukunang ginagamit ng ftnchek sa pagproseso ng programa. Ito
Ang listahan ay maaaring maging kapaki-pakinabang sa pagsusuri sa laki at pagiging kumplikado ng isang programa. Maaari itong
makatulong din sa pagpili ng mas malalaking sukat para sa ftnchek's panloob na mga talahanayan kung sila ay masyadong
maliit upang pag-aralan ang isang partikular na programa. Default = hindi.

Sa listahang ito, ang terminong ``laki ng tipak'' ay ang laki ng mga bloke ng memorya
inilaan upang iimbak ang bagay na pinag-uusapan, sa mga yunit ng laki ng isang item, hindi
kinakailangan sa bytes. Kapag napuno ang unang inilaan na espasyo, mas maraming memorya
ay inilalaan sa mga tipak ng ganitong laki. Ang sumusunod ay isang paliwanag ng mga item
nakalimbag:

pinagmulan linya naproseso:
Kabuuang bilang ng mga linya ng code, na may magkakahiwalay na kabuuan para sa mga linya ng pahayag at
mga linya ng komento. Kasama sa mga linya ng komento ang mga linyang may 'C' o '*' sa column 1 din
bilang mga blangkong linya at linya na naglalaman lamang ng isang inline na komento. Mga linya ng pahayag
ay lahat ng iba pang mga linya, kabilang ang mga linya na may inline na komento na sumusunod sa ilan
code. Ang mga linya ng pagpapatuloy ay binibilang bilang mga hiwalay na linya. Kasama sa mga linya
binibilang ang mga file sa tuwing kasama ang file.

total pinatutupad mga pahayag:
Bilang ng mga pahayag sa programa, maliban sa detalye, data, pahayag-
function, FORMAT, ENTRY, at END na mga pahayag.

total numero of mga module:
Ang module ay anumang panlabas na subprogram, kabilang ang pangunahing programa, mga subroutine,
function, at harangan ang mga unit ng data. Ang bilang na ito ay ng mga module na tinukoy sa loob ng
pinagmulan, hindi mga module na isinangguni. Ang mga function ng pahayag ay hindi kasama. A
ang subprogram na may maraming entry point ay binibilang ng isang beses lamang.

total pahayag mga label tinukoy
Bilang ng mga label na naka-attach sa mga pahayag (madalas na tinatawag na mga numero ng pahayag). Ang
ang kabuuang bilang ng label para sa buong programa ay ibinibigay, pati na rin ang maximum
numero sa anumang solong subprogram.

Max pantukoy pangalan mga karakter:
Bilang ng mga character na ginamit para sa pag-imbak ng mga pangalan ng identifier. Ang identifier ay a
variable, subprogram, o karaniwang pangalan ng block. Ang mga lokal na pangalan ay ang mga lokal
mga variable sa isang subprogram, samantalang ang mga pandaigdigang pangalan ay tumutukoy sa subprogram at karaniwan
mga pangalan ng block, pati na rin ang mga dummy argument name at karaniwang variable na pangalan. Aktwal
Ang teksto ng argumento (hanggang 15 character para sa bawat argumento) ay kasama rin dito.
Ang puwang na ginamit para sa mga lokal na pangalan ay hindi mababawi sa dulo ng bawat module, kaya
ang bilang na ito, tulad ng pandaigdigang espasyo, ay lumalaki hanggang sa masuri ang buong programa.
Sa kasamaang palad, maaaring kabilang sa figure na ito ang ilang text na nakaimbak nang higit sa isang beses,
bagama't ginagamit ang isang heuristic na maiiwasan ang mga duplicate sa maraming pagkakataon.

Max token teksto mga karakter:
Ang token ay ang pinakamaliit na syntactic unit ng FORTRAN na wika sa itaas ng antas
ng mga indibidwal na karakter. Halimbawa ang isang token ay maaaring isang variable na pangalan, a
numerical constant, isang naka-quote na text string, o isang character na bantas. Token
ang teksto ay iniimbak habang pinoproseso ang isang module. Para sa mga teknikal na kadahilanan,
ang mga single-character na token ay hindi kasama sa kabuuang ito. Mga bagay na hindi
na kinakatawan sa talahanayan ng simbolo ay maaaring madoble. Ang espasyo para sa token text ay
nabawi sa dulo ng bawat module, kaya ang figure na ito ay kumakatawan sa maximum para sa
alinman sa isang module.

Max lokal simbolo:
Ito ang pinakamalaking bilang ng mga entry sa talahanayan ng lokal na simbolo para sa anumang module.
Kasama sa mga entry sa talahanayan ng lokal na simbolo ang lahat ng mga variable at parameter, karaniwang bloke
mga pangalan, mga function ng pahayag, mga panlabas na subprogram at mga intrinsic na function
sinangguni ng modyul. Ang mga literal na constant ay hindi nakaimbak sa lokal na simbolo
table.

Max global simbolo:
Ito ang bilang ng mga entry sa talahanayan ng global na simbolo sa dulo ng
pagpoproseso. Kasama sa mga entry sa talahanayan ng pandaigdigang simbolo ang panlabas na subprogram at karaniwan
harangan ang mga pangalan. Hindi kasama ang mga intrinsic na function at statement function.

Max numero of mga tokenlist:
Ang listahan ng token ay isang sequence ng mga token na kumakatawan sa aktwal o dummy na argumento
listahan ng isang subprogram, o ang listahan ng mga variable sa isang karaniwang block o namelist.
Samakatuwid ang numerong ito ay kumakatawan sa pinakamalaking kabuuan ng COMMON, TAWAG, NAMELIST at
ENTRY statement at function invocations para sa alinmang module. Ang espasyo ay
nabawi sa dulo ng bawat modyul.

Max token listahan/puno space:
Ito ang pinakamalaking bilang ng mga token sa lahat ng mga listahan ng token at mga puno ng token ng
alinman sa isang module. Nabubuo ang isang token tree kapag sinusuri ang isang expression: bawat isa
Ang operand ay isang dahon ng puno, at ang mga operator ay ang mga node. Samakatuwid ito
Ang numero ay isang sukatan ng pinakamataas na pagiging kumplikado ng isang indibidwal na module. Para sa
halimbawa ang isang module na may maraming mahabang aritmetika expression ay magkakaroon ng mataas
numero. Tandaan na hindi tulad ng token text na inilarawan sa itaas, ang bilang ng mga token ay
independyente sa haba ng mga variable na pangalan o literal na constants sa
mga ekspresyon.

Numero of subprogram mga panawagan:
Ito ang kabuuan ng lahat ng mga module ng bilang ng mga pahayag at function ng CALL
invocations (maliban sa intrinsic functions at statement functions).

Numero of pangkaraniwan harangan ang decls:
Ito ang kabuuan ng lahat ng mga module ng bilang ng mga karaniwang block deklarasyon.
Ibig sabihin, binibilang ang bawat deklarasyon ng block sa ibang module
magkahiwalay. (Pinapayagan ng pamantayan ang maraming deklarasyon ng isang bloke sa loob ng
parehong module; ang mga ito ay binibilang bilang isang deklarasyon lamang dahil sila ay
katumbas ng isang mahabang deklarasyon.)

Numero of ayos Sun. & ang pera ko ptrs:
Ito ang kabuuan ng lahat ng mga module ng bilang ng dimensyon at parameter ng array
kahulugan text string na naka-save para gamitin ng -makecls opsyon. Ang haba ng
ang mga string ng teksto ay hindi binibilang. Ang bawat dimensyon ng isang multidimensional array ay
hiwalay na binibilang.

Ang mga numerong ito ay malinaw na hindi pareho kapag ang mga file ng proyekto ay ginamit bilang kapalit ng
ang orihinal na source code. Kahit na ang mga numero para sa mga pandaigdigang entity ay maaaring magkaiba,
dahil ang ilang kalabisan na impormasyon ay tinanggal sa mga file ng proyekto.

-sixchar
Isa sa mga layunin ng ftnchek programa ay upang matulungan ang mga gumagamit na magsulat ng portable Fortran
mga programa. Ang isang potensyal na mapagkukunan ng nonportability ay ang paggamit ng mga variable na pangalan na
ay mas mahaba sa anim na character. Binabalewala lang ng ilang compiler ang mga dagdag na character.
Ang pag-uugaling ito ay maaaring humantong sa dalawang magkaibang variable na itinuturing na
pareho. Halimbawa, ang mga variable na pinangalanang AVERAGECOST at AVERAGEPRICE ay pareho
sa unang anim na karakter. Kung nais mong mahuli ang mga posibleng salungatan, gamitin
ang watawat na ito. Default = hindi.

Gamitin ang -f77=mahabang pangalan kung gusto mong ilista lahat mga variable na mas mahaba sa anim
mga character, hindi lang iyong mga pares na pareho sa unang anim.

Tingnan din ang: -f77, -portability.

-uri-uriin
Tinutukoy na ang isang pinagsunod-sunod na listahan ng lahat ng mga module na ginamit sa programa ay ipi-print. Ito
list ay nasa ``prerequisite'' order, ibig sabihin, ang bawat module ay naka-print lamang pagkatapos ng lahat ng
na-print ang mga module kung saan ito tinawag. Ito ay tinatawag ding a
``topological sort'' ng call tree. Isang beses lang nakalista ang bawat module. Mga gawain
na wala sa call tree ng pangunahing programa ay tinanggal. Kung meron man
mga cycle sa call graph (ilegal sa standard Fortran) sila ay matutukoy at
nasuri. Default = hindi.

Tingnan din ang: -calltree, -crossref, -sanggunian, -symtab, -vcg.

-pinagmulan=listahan
Kinokontrol ng setting na ito ang ilang mga opsyon tungkol sa anyo ng source code ng Fortran.
Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlo
mga espesyal na keyword: lahat upang i-on ang lahat ng mga opsyon, wala upang patayin silang lahat, at
Tulungan upang i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung
listahan ay tinanggal, -pinagmulan ay katumbas ng -source=lahat, at -walang mapagkukunan ay katumbas
sa -source=wala.

Para sa pagiging tugma sa mga nakaraang bersyon ng ftnchek, isang numerong anyo ng setting na ito
tinatanggap din: ang listahan ay pinalitan ng isang numero na siyang kabuuan ng mga numero
sa panaklong sa tabi ng mga keyword sa sumusunod na listahan. (Ang maayos at libre
ang mga opsyon ay walang mga numerong halaga.) Ang mga babalang keyword kasama ang kanilang mga kahulugan ay
tulad ng sumusunod:

maayos:
Bigyang-kahulugan ang pinagmulan bilang nakapirming anyo (na may mga sinusuportahang extension gaya ng
tandang padamdam para sa mga komento). Ang mga pahayag ay dapat nasa hanay 7 hanggang 72
(maliban kung ang -cols ginamit ang setting upang baguhin ito), at ang mga blangko ay hindi
makabuluhang panlabas na konteksto ng karakter (ngunit binigyan ng babala tungkol sa ilalim ng -maganda
opsyon). Ito ang default na mode maliban kung ang extension ng source file ay .f90
or .F90. ang pagpipiliang ito ay hindi maaaring ibigay kasama ng -source=libre.

libre: Ipaliwanag ang pinagmulan bilang malayang anyo. Ang mga pahayag ay maaaring nasaanman sa mga hanay 1
hanggang 132, ang mga komento ay maaari lamang magsimula sa isang tandang padamdam, at ang mga blangko ay
kinakailangan sa ilang lugar gaya ng sa pagitan ng mga identifier at keyword. Ito ay
ang default na mode kung ang source file extension ay .f90 or .F90. Ang pagpipiliang ito
hindi maaaring ibigay kasama ng -source=fixed or -source=dec-tab

dec-tab (1):
Tanggapin ang DEC-style na tab-formatted source. Isang linya na nagsisimula sa isang paunang tab
ay ituturing bilang isang bagong linya ng pahayag maliban kung ang karakter pagkatapos ng tab ay
isang nonzero digit, kung saan ito ay itinuturing bilang isang linya ng pagpapatuloy. Ang
Ang susunod na column pagkatapos ng tab o continuation mark ay kunin bilang column 7. A
babala ay ibibigay sa kaso kung saan ang linya ay isang pagpapatuloy, kung
-f77=dec-tab ay may bisa.

vms-include (2):
Tanggapin ang VMS-style INCLUDE na mga pahayag. Ang mga ito ay sumusunod sa normal na syntax, ngunit
na may mga sumusunod na karagdagang tampok: (1) ang extension ng file, kung hindi ibinigay,
ang mga default ay pareho sa isang normal na extension ng source file; at (2) ang opsyon
Ang /LIST o /NOLIST ay maaaring idagdag sa pangalan ng kasamang file, upang makontrol ang listahan
ng mga nilalaman nito.

unix-backslash (4):
Pangasiwaan ang UNIX-style backslash escapes sa mga string ng character. Ang pagtakas
susuriin ang sequence kasunod ng backslash ayon sa ANSI
pamantayan para sa mga string sa C: hanggang sa tatlong digit ay nangangahulugan ng isang octal na halaga, isang x
nangangahulugan ng pagsisimula ng hexadecimal constant, alinman sa mga letrang abfnrt
nagpapahiwatig ng mga espesyal na control code, at anumang iba pang karakter (kabilang ang newline)
nagsasaad ng karakter mismo. Kapag ang pagpipiliang source code na ito ay may bisa, a
bibigyan ng babala kung ang -f77=backslash tinukoy ang setting.

Ang default na gawi ay tratuhin ang backslash tulad ng anumang iba pang normal
character, ngunit isang babala tungkol sa portability ay bubuo kung ang
-portability nakatakda ang bandila. Dahil sa ang katunayan na ang ilang mga compiler ay tinatrato ang
backslash sa isang hindi karaniwang paraan, ito ay posible para sa standard-conforming
ang mga program ay hindi ma-portable kung gagamitin nila ang backslash na character sa mga string.

Dahil sa ftnchek hindi gaanong nagagawa ang binibigyang kahulugan na string, ito ay bihira
kinakailangan upang magamit ang pagpipiliang ito. Ito ay kinakailangan upang maiwasan ang huwad
mga babala lamang kung (a) ang program na sinusuri ay gumagamit ng backslash upang mag-embed ng isang
apostrophe o quote mark sa isang string sa halip na gamitin ang karaniwang mekanismo
ng pagdodoble ng delimiter; (b) ang backslash ay ginagamit upang makatakas sa dulo ng-
linya upang ipagpatuloy ang isang string sa maraming linya ng pinagmulan; o (c) a
Gumagamit ang kahulugan ng PARAMETER ng isang intrinsic na string function gaya ng LEN na may ganito
isang string bilang argumento, at ang halagang iyon ay ginamit sa ibang pagkakataon upang tukuyin ang array
mga sukat, atbp.

param-implicit-type (8):
Implicit na pag-type ng isang parameter ayon sa uri ng data ng value na itinalaga. Ang ilan
maaaring payagan ng mga hindi karaniwang compiler ang uri ng data ng value na i-override ang
Fortran 77 default na uri ng isang parameter na nakabatay sa unang titik ng
pangalan ng parameter. Nalalapat lang ang opsyong ito sa mga PARAMETER na pahayag ng
karaniwang anyo na may panaklong. Isang parameter na naging tahasan
na ipinahayag sa isang uri ng pahayag bago ang PARAMETER na pahayag ay hindi apektado
sa pamamagitan ng opsyong ito. Isang babala ang ibibigay sa ilalim ng -f77=param-implicit-type
or -portability=param-implicit-type pagpipilian.

Tandaan na ang implicit na pag-type na ito ay itinuturing na katumbas ng isang tahasang uri
deklarasyon para sa parameter. Samakatuwid, kung gagamitin mo
-makedcls=undeclared-only upang makabuo ng mga deklarasyon lamang ng hindi idineklara
mga variable, ang mga parameter na ito ay hindi isama

dec-param-standard-type (16):
Sundin ang panuntunan ng Fortran 77 para sa pag-type ng data ng mga parameter ng istilo ng DEC Fortran.
Ang mga ito ay ipinahayag gamit ang isang hindi karaniwang anyo ng PARAMETER na pahayag na
walang panaklong. Ayon sa DEC Fortran, tinukoy ng form na ito ang mga parameter
ng pahayag ay mayroong kanilang uri ng data na ibinigay ng uri ng data ng halaga
itinalaga. Gamitin ang opsyong ito para sabihin ftnchek hindi para sundin ang tuntuning ito ngunit
sa halip ay gumamit ng parehong panuntunan tulad ng para sa karaniwang mga pahayag ng PARAMETER. Ito
ang opsyon ay hindi nalalapat sa PARAMETER na mga pahayag ng karaniwang anyo.

Bilang default, ang lahat ng mga pagpipilian sa source code ay naka-off, maliban sa
vms-include opsyon, na naka-on bilang default sa bersyon ng VMS..

Tingnan din ang: -f77, -isama, -portability.

-style=listahan
Nagbibigay ng sobrang piling mga babala tungkol sa laos o makalumang programming
mga konstruksyon. Ang pagpipiliang ito ay kapaki-pakinabang para sa mga pagsisikap na sundin ang isang modernong programming
istilo. (Karamihan sa mga bagay na inirereklamo sa ilalim ng opsyong ito ay ipinagbabawal sa
F subset wika.) By default, lahat babala ay naka off.

Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. May tatlo
mga espesyal na keyword: lahat upang i-on ang lahat ng mga opsyon, wala upang patayin silang lahat, at
Tulungan upang i-print ang listahan ng lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung
listahan ay tinanggal, -Style ay katumbas ng -style=lahat, at -nostyle ay katumbas ng
-style=wala. Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

harangan-kung:
Magreklamo tungkol sa arithmetic IF na pahayag. Tanggapin ang block IF o logical IF (na
kinokontrol ang isang pahayag).

construct-name:
Magreklamo tungkol sa mga hindi pinangalanang block construct: IF, DO, at SELECT CASE. Tandaan na
kung ang pangalan ng construct ay naroroon sa pambungad na pahayag ng isang construct, kung gayon
ito ay kinakailangan na naroroon sa lahat ng iba pang mga bahaging pahayag (ELSE, END IF,
atbp.) ng construct. Sa kasong iyon, isang nawawalang pangalan ng construct sa mga iyon
ang mga pahayag ay bumubuo ng isang error sa syntax anuman ang pagpipiliang ito. Ang layunin
ng pagpipiliang ito ay upang bigyan ng babala kung ang construct ay ganap na kulang sa opsyonal
pangalan.

natatanging-gawin:
Magreklamo kung ang dalawang DO loop ay nagbabahagi ng isang karaniwang pahayag ng terminator.

gawin-buo:
Magreklamo kung ang terminator ng isang DO loop ay anumang bagay maliban sa isang END DO o
MAGPATULOY na pahayag. Ito ang kinakailangan upang matugunan ang loop
ang kahulugan ng Fortran 90 ng isang do-construct.

gawin-enddo:
Magreklamo kung ang terminator ng isang DO loop ay anumang bagay maliban sa isang END DO
pahayag. (I-override ng opsyong ito ang gawin-buo opsyon, pagiging pantay
mas mahigpit.)

end-name:
Magreklamo tungkol sa kawalan ng pangalan ng subprogram sa structured END
mga pahayag.

format-stmt:
Magreklamo tungkol sa pagkakaroon ng mga pahayag ng FORMAT. Tanging ang mga pahayag ng FORMAT
ang kanilang mga sarili ay na-flag, hindi ang mga sanggunian sa kanila sa mga listahan ng I/O.

pumunta: Magreklamo tungkol sa pagkakaroon ng unconditional, computed o assigned GOTO
mga pahayag. Magreklamo din tungkol sa mga alternatibong pagbabalik (ngunit hindi tungkol sa mga label bilang
mga argumento ng subprogram).

may label na-stmt:
Magreklamo tungkol sa pagkakaroon ng mga label (mga numero) sa mga pahayag maliban sa
FORMAT na mga pahayag. (Dahil ang mga pahayag ng FORMAT ay masasabing maginhawa at hindi
madaling inabuso, ang mga reklamo tungkol sa kanila ay kinokontrol ng hiwalay
format-stmt keyword.)

programa-stmt:
Magreklamo tungkol sa kawalan ng isang pahayag ng PROGRAM sa pinuno ng pangunahing
programa.

structured-end:
Magreklamo tungkol sa paggamit ng isang plain END na pahayag upang tapusin ang isang subprogram, sa halip
kaysa sa isang nakabalangkas na pahayag ng END (END PROGRAM, END SUBROUTINE, END FUNCTION,
o END BLOCK DATA).

Tingnan din ang: -f77, -f90, -f95, -maganda, -portability.

-symtab
Ang isang talahanayan ng simbolo ay ipi-print para sa bawat module, na naglilista ng lahat ng mga identifier
nabanggit sa modyul. Ang talahanayan na ito ay nagbibigay ng pangalan ng bawat variable, ang datatype nito,
at ang bilang ng mga sukat para sa mga array. Ang asterisk (*) ay nagpapahiwatig na ang
Ang variable ay tahasang nai-type, sa halip na pinangalanan sa isang tahasang uri
pahayag ng deklarasyon. Inililista din ng talahanayan ang lahat ng mga subprogram na ginagamit ng module,
lahat ng COMMON block ay ipinahayag, atbp. Default = hindi.

Gayundin, para sa bawat module, isang talahanayan ng label ang ipi-print. Inililista ng talahanayan ang bawat label
tinukoy sa modyul; ang linya kung saan tinukoy ang nasabing statement label; at ang
uri ng pahayag (maipapatupad, format, o detalye). Ang mga label ay nakalista sa
sunod-sunod na pagkakasunod-sunod.

Naka-print din ang isang talahanayan na naglalarawan sa mga I/O unit na ginagamit ng module, kasama ng
impormasyon tungkol sa kung paano ginagamit ang mga ito: anong mga operasyon ang ginagawa, kung ang
ang pag-access ay sunud-sunod o direkta, at kung ang I/O ay naka-format o hindi naka-format.

Tingnan din ang: -calltree, -crossref, -Lista, -sanggunian, -uri-uriin, -vcg.

-pagputol=listahan
Magbabala tungkol sa posibleng mga error sa truncation (o roundoff). Karamihan sa mga ito ay may kaugnayan sa
integer arithmetic. Bilang default, naka-on ang lahat ng babala.

Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa posibleng pagputol
mga pagkakamali. Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil lahat
naka-on ang mga babala bilang default, isama ang isang keyword na prefix ni hindi- para patayin a
partikular na babala. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala tungkol sa pagputol, wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng
lahat ng mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -pagputol
ay katumbas ng -truncation=lahat, at -notruncation ay katumbas ng
-truncation=wala. Ang mga keyword ng babala kasama ang kanilang mga kahulugan ay ang mga sumusunod:

int-div-exponent:
paggamit ng resulta ng integer division bilang exponent. Ito ay nagmumungkahi na a
tunay na quotient ay inilaan. Ang isang halimbawa ay ang pagsulat ng X**(1/3) upang suriin
ang cube root ng X. Ang tamang expression ay X**(1./3.).

int-div-real:
Conversion ng isang expression na kinasasangkutan ng isang integer division sa real. Ito
nagmumungkahi na ang isang tunay na quotient ay nilayon.

int-div-zero:
paghahati sa isang integer constant expression na nagbubunga ng resulta ng zero.

int-neg-kapangyarihan:
exponentiation ng isang integer ng isang negatibong integer (na nagbubunga ng zero maliban kung
ang base integer ay 1 sa magnitude). Ito ay nagpapahiwatig na ang isang tunay na batayan ay
nilayon.

pagtataguyod:
awtomatikong conversion ng isang mas mababang dami ng katumpakan sa isa sa mas mataas
katumpakan. Ang pagkawala ng katumpakan para sa mga tunay na variable sa prosesong ito ay
maihahambing sa kaukulang demotion. Walang babala na ibinigay para sa promosyon
ng integer na dami sa real dahil karaniwan itong eksakto.

real-do-index:
paggamit ng isang non-integer DO index sa isang loop na may mga hangganan ng integer. Isang integer DO
index na may tunay na mga hangganan ay palaging binabalaan tungkol sa anuman ang setting na ito.

tunay na subscript:
paggamit ng isang non-integer array subscript.

makabuluhang-bilang:
overspecifying isang solong precision constant. Ito ay maaaring magpahiwatig na ang isang double
katumpakan pare-pareho ay inilaan.

laki-demotion:
awtomatikong pag-convert ng mas mataas na dami ng katumpakan sa isa sa mas mababang katumpakan
ng parehong uri. Ang babalang ito ay nangyayari lamang kapag ang isang tahasang laki ay ginamit sa
pagdedeklara ng uri ng isa o parehong operand sa isang takdang-aralin. Halimbawa, a
babala ay ibibigay kung saan ang isang REAL*8 variable ay nakatalaga sa isang REAL variable,
kung ang default na sukat ng mga salita na 4 ay may bisa. Magbibigay din ng babala kung a
long integer ay itinalaga sa isang mas maikli, halimbawa, kung isang INTEGER
ang expression ay itinalaga sa isang INTEGER*2 variable. May isang pagbubukod sa
ang huling kaso na ito, lalo na kung ang kanang bahagi ng takdang-aralin ay maliit
literal na pare-pareho (mas mababa sa 128). uri-demotion: awtomatikong conversion ng a
mas mataas na katumpakan na dami sa isa sa mas mababang katumpakan ng iba't ibang uri. Ito
Kasama sa babala ang conversion ng mga tunay na dami sa integer, dobleng katumpakan
sa single precision real, at pagtatalaga ng mas mahabang string ng character sa a
mas maikli.

Ang mga babala tungkol sa promosyon at pagbabawas ng tungkulin ay nalalapat din sa mga kumplikadong constants,
isinasaalang-alang ang katumpakan upang maging ang tunay o haka-haka na bahagi. Mga babala tungkol sa
ibinibigay lamang ang mga promosyon at demosyon kapag awtomatikong tapos na ang conversion,
hal sa mga pagpapahayag ng magkahalong katumpakan o sa isang pahayag ng pagtatalaga. Kung intrinsic
Ang mga function tulad ng INT ay ginagamit upang maisagawa ang conversion, walang babala na ibinibigay.

Tingnan din ang: -portability, - laki ng salita.

-gamit=listahan
Magbabala tungkol sa hindi nagamit o posibleng hindi nasimulang mga variable, hindi nagamit na karaniwang mga bloke,
hindi natukoy o hindi nagamit na mga label ng pahayag, at hindi nagamit o hindi natukoy na mga subprogram. Sa pamamagitan ng
default, naka-on ang lahat ng babala.

Nagbibigay ang setting na ito ng detalyadong kontrol sa mga babala tungkol sa posibleng paggamit
mga pagkakamali. Ang listahan binubuo ng mga keyword na pinaghihiwalay ng mga kuwit o tutuldok. Dahil lahat
naka-on ang mga babala bilang default, isama ang isang keyword na prefix ni hindi- para patayin a
partikular na babala. May tatlong espesyal na keyword: lahat upang i-on ang lahat ng
mga babala tungkol sa paggamit, wala upang patayin silang lahat, at Tulungan upang i-print ang listahan ng lahat
ang mga keyword na may maikling paliwanag ng bawat isa. Kung listahan ay tinanggal, -gamit is
katumbas ng -gamit=lahat, at -nousage ay katumbas ng -gamit=wala. Mga ito
sinasaklaw ng mga babala ang apat na pangunahing kategorya ng mga bagay: mga subprogram na dummy argument, karaniwan
mga bloke at variable, subprogram at function, at lokal na variable. Mga babala
isama ang hindi natukoy na mga item, multiply tinukoy na mga item, hindi nagamit na mga item, atbp. Ang babala
mga keyword na may mga kahulugan nito ay ang mga sumusunod:

arg-alias:
ang isang scalar dummy argument ay talagang kapareho ng isa pa at ay (o maaaring maging)
binago. Ang Fortran 77 standard (seksyon 15.9.3.6) ay nagbabawal sa pagbabago ng isang
argumento na may alyas sa iba.

arg-array-alias:
isang dummy argument na isang array o array elemento ay nasa parehong array bilang
isa pa at binago. Ang watawat na ito ay katulad ng arg-alias ngunit nagbibigay
hiwalay na kontrol sa mga argumento ng array. Mas mahirap sabihin kung ang aliasing ay
nagaganap sa kaso ng mga array, kaya kung ftnchek nagbibigay ng napakaraming maling babala,
pinapayagan ng flag na ito ang mga nauugnay sa array na i-off nang hindi pinipigilan
ang mga babala para sa mga scalar.

arg-common-alias:
ang isang scalar dummy argument ay kapareho ng isang karaniwang variable sa subprogram,
at alinman ay binago. Ipinagbabawal din ito ng pamantayang Fortran 77.
Kung hindi eksakto ang karaniwang pagsusuri (tingnan ang -karaniwan setting), mas mahirap
sabihin kung ang aliasing ay nagaganap, kaya ang babala ay ibinigay kung ang variable ay
kahit saan sa isang karaniwang bloke na idineklara ng subprogram.

arg-common-array-alias:
isang dummy argument na isang array o array elemento ay nasa parehong array bilang a
karaniwang variable, at ang alinman ay binago. Kung hindi eksakto ang karaniwang pagsusuri,
ang variable ay maaaring kahit saan sa isang karaniwang bloke na idineklara ng
subprogram.

arg-const-modified:
binabago ng isang subprogram ang isang argumento na isang pare-pareho o isang expression. ganyan
ang isang aksyon ay maaaring magdulot ng maanomalyang pag-uugali ng programa.

arg-hindi ginagamit:
ang isang dummy argument ay ipinahayag ngunit hindi kailanman ginamit. Ito ay katulad ng
var-hindi nagamit keyword na inilarawan sa ibaba, ngunit nalalapat lamang sa mga argumento.

com-block-hindi nagamit:
ang isang karaniwang bloke ay idineklara ngunit wala sa mga variable dito ang ginagamit ng alinman
subprogram. Ang babalang ito ay pinipigilan kung ang karaniwang setting ng pagiging mahigpit ay
0.

com-block-volatile:
ang isang karaniwang bloke ay maaaring mawala ang kahulugan ng mga nilalaman nito kung ang mga karaniwang bloke ay
pabagu-bago ng isip. Ang pagpipiliang ito ay may epekto lamang kung ang -karaniwan=pabagu-bago nakalagay ang bandila
epekto. Tingnan ang talakayan ng -karaniwan setting sa itaas.

com-var-set-hindi nagamit:
ang isang karaniwang variable ay itinalaga ng isang halaga, ngunit ang halaga nito ay hindi ginagamit ng anuman
subprogram. Ang babalang ito ay pinipigilan kung ang karaniwang setting ng pagiging mahigpit ay
0.

com-var-uninitialized:
ang halaga ng karaniwang variable ay ginagamit sa ilang subprogram, ngunit hindi nakatakda
kahit saan. Sa kasamaang palad, ftnchek ay hindi gumagawa ng isang masusing sapat na pagsusuri ng
ang pagkakasunud-sunod ng pagtawag upang malaman kung aling mga gawain ang tinatawag bago ang iba. Kaya
ang mga babala tungkol sa ganitong uri ng error ay ibibigay lamang para sa mga kaso kung saan a
variable ay ginagamit sa ilang routine ngunit hindi nakatakda sa anumang iba pang routine. Sinusuri
ng mga indibidwal na COMMON variable ay ginagawa lamang kung ang -karaniwan ang setting ay 3
(variable ayon sa variable na kasunduan). Ang babalang ito ay pinipigilan kung karaniwan
Ang setting ng pagiging mahigpit ay 0.

com-var-hindi nagamit:
ang isang karaniwang variable ay ipinahayag ngunit hindi ginagamit ng anumang subprogram. Ang babalang ito
ay pinipigilan kung ang karaniwang setting ng pagiging mahigpit ay 0.

do-index-modified:
ang isang variable na index ng isang DO loop ay binago ng ilang pahayag
sa loob ng saklaw ng loop. Pinahihintulutan ng Standard ang isang aktibong DO variable sa
mababago lamang ng mekanismo ng pagdaragdag ng pahayag ng DO.

ext-multiply-defined:
isang panlabas (isang subroutine o function) ay tinukoy ng higit sa isang beses. Kahulugan
ng isang panlabas na paraan na nagbibigay ng katawan ng source code nito.

ext-declared-lamang:
ang isang pangalan ay ipinahayag sa isang EXTERNAL na pahayag sa ilang module, ngunit hindi
tinukoy o ginagamit kahit saan.

ext-undefined:
isang panlabas ay ginagamit (invoked) ngunit hindi tinukoy kahit saan. Ang pagpipiliang ito ay
katumbas ng -panlabas bandila. Kung ang subprogram ay hinihingi ng higit sa
minsan, susuriin pa rin ang mga invocation na iyon para sa consistency.

ext-hindi nagamit:
ang isang panlabas ay tinukoy (ang subprogram body nito ay naroroon) ngunit hindi ito ginagamit.
Ang isang subprogram ay itinuturing na hindi ginagamit kahit na ito ay hinihimok ng iba
subprogram, kung hindi ito matatawag mula sa anumang thread ng execution simula sa
ang pangunahing programa. Ang kasunduan ng mga argumento ng subprogram kasama nito
ang mga invocation ay sinusuri pa rin kahit na ang babalang ito ay naka-off. Kung meron
walang pangunahing programa, kung gayon ang babalang ito ay ibinibigay lamang kung ang subprogram ay hindi
hinihikayat kahit saan. Ang babalang ito ay pinigilan sa library mode, ngunit library
Ang mode ay may karagdagang epekto ng pagsugpo sa pagsusuri ng argumento para sa hindi nagamit
gawain.

label-undefined:
ang isang pahayag ay tumutukoy sa isang label na hindi pa natukoy.

label-hindi ginagamit:
ang isang label ng pahayag ay tinukoy, ngunit hindi kailanman tinukoy.

var-set-hindi nagamit:
ang isang lokal na variable ay itinalaga ng isang halaga, ngunit ang halagang iyon ay hindi ginagamit.

var-uninitialized:
ang halaga ng lokal na variable ay maaaring gamitin bago ito italaga. Minsan
ftnchek nagkakamali sa mga babala tungkol sa lokal na paggamit ng variable. Karaniwan
nagkakamali ito sa pagbibigay ng babala kung saan walang problema, ngunit sa bihira
mga kaso na maaaring mabigo itong magbigay ng babala kung saan umiiral ang problema. Tingnan ang seksyon sa
Mga bug para sa mga halimbawa. Kung ang mga variable ay katumbas, ang panuntunang ginagamit ng ftnchek
na ang isang reference sa anumang variable ay nagpapahiwatig ng parehong reference sa lahat
mga variable na tinutumbasan nito. Para sa mga array, ang panuntunan ay isang reference sa
anumang elemento ng array ay itinuturing bilang isang sanggunian sa lahat ng mga elemento ng array.

var-hindi nagamit:
ang isang lokal na variable ay ipinahayag (halimbawa, sa isang uri ng deklarasyon) ngunit hindi
ginamit sa modyul. Hindi naaangkop sa mga dummy na argumento: mga babala tungkol sa mga ito
ay kinokontrol ng keyword arg-hindi ginagamit inilarawan sa itaas.

Tandaan: Sa mga bersyon ng ftnchek bago ang 2.10, ang -gamit flag ay kumuha ng isang numerong argumento
sa halip na isang listahan ng mga opsyon. Para sa kapakanan ng mga gumagamit na maaaring may nakasulat na mga script
nagsusumamo ftnchek sa ganitong paraan, tinatanggap pa rin ang numeric form. Ang numeric
Ang setting ay binubuo ng tatlong digit. Ang unang digit (daan-daang lugar) ang kumokontrol
mga babala tungkol sa mga subprogram (mga function at subroutine), ang pangalawang digit (sampu
lugar) mga babala tungkol sa mga karaniwang bloke at karaniwang mga variable,, at ang ikatlong digit
(isang lugar) mga babala tungkol sa mga lokal na variable. Kinokontrol ng bawat digit ang mga babala
ayon sa convention na ang ibig sabihin ng 1 ay babala tungkol sa hindi natukoy na mga item at variable
na ginagamit bago itakda, ang ibig sabihin ng 2 ay babala tungkol sa mga item na hindi nagamit, at ang ibig sabihin ng 3
babala tungkol sa parehong uri. Ang mga numerong ito ay na-convert na ngayon sa mga naaangkop na halaga
para sa mga keyword na nakalista sa itaas, maliban sa com-block-volatile, na hindi apektado
sa pamamagitan ng numeric na argumento.

Tingnan din ang: -karaniwan, -magpahayag, -panlabas, -aklatan.

-vcg
Gumawa ng call graph sa anyo ng paglalarawan ng VCG graph. Ang paglalarawang ito ay
nakasulat sa isang hiwalay na file, na may parehong stem bilang ang file na naglalaman ng pangunahing
programa, at panlapi .vcg. Ang file na ito ay maaaring maibigay nang direkta sa xvcg(1L) hanggang
ilarawan sa isip ang call graph. (Kung ang input ay mula sa karaniwang input, kung gayon ang graph
ang paglalarawan ay ipinadala sa karaniwang output.) Ang switch na ito ay katumbas ng
-calltree=vcg. Default = hindi.

Ang paglalarawan ng VCG bilang nilikha ay mas kumplikado kaysa sa kinakailangan. Pinapayagan ng VCG ang mga graph
at mga nested subgraph: bawat subroutine ay ginawa bilang isang subgraph na naka-nest sa loob nito
mga gawain sa pagtawag. Nagbibigay-daan ito sa iyong interactive na magpakita ng mga subgraph o magbuod
Kanila.

Ang -vcg pagpipilian para sa ftnchek ay isinulat ni Dr. Philip Rubini ng Cranfield
Unibersidad, UK.

xvcg ay isang graph visualization tool na tumatakbo sa ilalim ng X windows system. Ito ay
malayang makukuha mula sa ftp.cs.uni-sb.de. Ito ay isinulat ni G. Sander ng
Unibersidad ng Saarland, Alemanya.

Tingnan din ang: -calltree, -crossref, -sanggunian, -uri-uriin.

-version
Ang pagpipiliang ito ay sanhi ftnchek para mag-print ng linyang nagbibigay ng numero ng bersyon, petsa ng paglabas,
at antas ng patch ng programa. Kung walang mga file na ibinigay, pagkatapos ay lalabas ito. Kung ang mga file
ay ibinigay, ang epekto ng opsyong ito ay isama ang antas ng patch (normal
tinanggal) sa bersyong impormasyon na naka-print sa simula ng pagproseso. Default =
no.

Tingnan din ang: -tulong.

-pabagu-bago
Ipagpalagay na ang mga COMMON block ay pabagu-bago ng isip. Default = hindi.

Ang watawat na ito ay pinalitan ng -karaniwan=pabagu-bago, at hindi na dapat gamitin. Maaaring
aalisin sa hinaharap na release ng ftnchek.

Tingnan din ang: -karaniwan, -gamit.

-laki ng salita=num
Tinutukoy ang magiging default na laki ng salita num byte. Ito ang laki ng lohikal at
single-precision numeric variable na hindi binibigyan ng tahasang katumpakan.
(Ang mga tahasang katumpakan para sa mga di-character na variable ay isang extension sa Fortran 77
Standard, at ibinibigay sa pamamagitan ng mga uri ng deklarasyon gaya ng REAL*8 X.) Double-precision
at ang mga kumplikadong variable ay magiging dalawang beses sa halagang ito, at ang dobleng kumplikadong mga variable ay apat
beses. Ang quad-precision constants at intrinsic function na mga resulta ay magiging apat na beses
ang halagang ito. Tandaan na ang mga variable na idineklara bilang REAL*16 ay ituturing na quad
katumpakan lamang kung ang laki ng salita ay 4 bytes. Default = turn-on = 4 bytes.

Ang halaga ng laki ng salita ay hindi mahalaga para sa pagsuri sa mga program na sumusunod sa pamantayan
huwag magdeklara ng mga tahasang katumpakan para sa mga hindi-character na variable o mag-imbak ng Hollerith
data sa mga variable. Hindi rin naaapektuhan ng setting na ito ang default na laki ng character
mga variable, na palaging 1 byte. Ipinapalagay din na sakupin ng mga Hollerith constants
1 byte bawat character.

Ang laki ng salita ay ginagamit upang matukoy kung ang truncation ay nangyayari sa pagtatalaga
mga pahayag, at upang mahuli ang mga precision mismatches sa mga listahan ng argumento ng subprogram at
karaniwang mga listahan ng block. Ang eksaktong mga babala na ibibigay ay depende sa katayuan
ng iba pang mga watawat. Sa ilalim ng parehong -portability=mixed-size at ang -nowordsize bandila,
anumang paghahalo ng tahasan sa mga default na bagay na katumpakan (hindi ang mga expression ng character
kasama) ay binigyan ng babala tungkol sa. Nalalapat ito sa mga expression ng arithmetic na naglalaman ng pareho
mga uri ng mga bagay, at sa mga subprogram na argumento at COMMON variable. Kontrolado
ng -truncation=demotion at pagtataguyod mga opsyon, isang babala ang ibinigay para sa
pagtatalaga ng isang expression sa isang mas maikling variable ng parehong uri, o para sa
pagsulong ng mas mababang halaga ng katumpakan sa mas mataas na katumpakan sa isang arithmetic
pagpapahayag o pahayag ng pagtatalaga.

Pagbibigay ng sukat ng salita na 0, o katumbas nito, gamit -nowordsize nangangahulugan na walang default
ipapalagay ang halaga. Ito ay katumbas ng pagtukoy -portability=mixed-size.
Gamitin ito para maghanap ng mga kaso ng paghahalo ng default at tahasang katumpakan, halimbawa sa pag-flag
mga lugar kung saan ang REAL*8 ay tinuturing na katumbas ng DOUBLE PRECISION.

Tingnan din ang: -pointersize, -portability, -pagputol.

-balutin=co
Kinokontrol ang pagbabalot ng mga mensahe ng error. Mahabang mensahe ng error na dadaan
ang tinukoy na hanay ay hahatiin sa magkakahiwalay na linya sa pagitan ng mga salita ng
mensahe para sa mas madaling mabasa. Kung naka-off sa -nowrap, bawat magkahiwalay na error
ang mensahe ay ipi-print sa isang linya, iiwan ito sa display upang ibalot ang
mensahe o putulin ito. Default = turn-on = 79.

NAGBABAGO ANG MGA DEFAULT


ftnchek may kasamang dalawang mekanismo para sa pagbabago ng mga default na halaga ng lahat ng mga opsyon: sa pamamagitan ng
pagtukoy sa mga variable ng kapaligiran o sa pamamagitan ng paggawa ng file ng mga kagustuhan. Kailan ftnchek nagsisimula,
tinitingnan nito sa kapaligiran nito ang anumang mga variable na ang mga pangalan ay binubuo sa pamamagitan ng prefixing ng
string FTNCHEK_ papunta sa uppercase na bersyon ng pangalan ng opsyon. Kung ang ganitong variable ay
natagpuan, ang halaga nito ay ginagamit upang tukuyin ang default para sa kaukulang switch o setting.
Sa kaso ng mga setting (halimbawa, ang -karaniwan strikto setting) ang halaga ng
Binabasa ang variable ng kapaligiran bilang default na halaga ng setting. Sa kaso ng mga switch, ang
ang default na switch ay kukunin bilang totoo o oo maliban kung ang variable ng kapaligiran ay may halaga
0 o HINDI.

Tandaan na ang pangalan ng variable ng kapaligiran ay dapat na binuo gamit ang full-length na opsyon
pangalan, na dapat nasa uppercase. Halimbawa, upang gumawa ftnchek mag-print ng source listing sa pamamagitan ng
default, itakda ang environment variable na FTNCHEK_LIST sa 1 o YES o anumang bagay maliban sa 0 o
HINDI. Ang mga pangalang FTNCHEK_LIS (hindi ang buong pangalan ng opsyon) o ftnchek_list (maliit na titik) ay
hindi makikilala.

Narito ang ilang mga halimbawa ng kung paano magtakda ng mga variable ng kapaligiran sa iba't ibang mga system. Para sa
pagiging simple, ang lahat ng mga halimbawa ay nagtatakda ng default -Lista lumipat sa YES.

1. UNIX, Bourne shell: $ FTNCHEK_LIST=OO
$ i-export ang FTNCHEK_LIST

2. UNIX, C shell: % setenv FTNCHEK_LIST OO

3. VAX/VMS: $ TUKUYIN ANG FTNCHEK_LIST OO

4. MSDOS: $ SET FTNCHEK_LIST=OO

Pagkatapos iproseso ang anumang mga variable ng kapaligiran, naghahanap ang ftnchek ng isang file ng mga kagustuhan
naglalaman ng mga opsyon at setting. Maghahanap ito sa sumusunod na pagkakasunud-sunod, gamit lamang ang
unang file na natagpuan: (1) .ftnchekrc sa kasalukuyang direktoryo, (2) ftnchek.ini sa kasalukuyang
direktoryo, (3) .ftnchekrc sa home directory ng user, (4) ftnchek.ini sa bahay
direktoryo. Kung ang nasabing file ay matatagpuan, ang mga opsyon na tinukoy dito ay ginagamit bilang mga default sa
lugar ng mga built-in na default at override ang anumang mga default na itinakda sa kapaligiran..

Ang bawat opsyon o setting sa preferences file ay dapat nasa hiwalay na linya. Binibigyan sila
sa parehong anyo tulad ng sa command line, maliban kung walang paunang gitling. Ang mga kagustuhan
Ang file ay maaaring maglaman ng mga blangkong linya at komento. Ang mga komento ay ipinakilala sa anumang punto sa isang linya
sa pamamagitan ng isang space character (blangko o tab) o ang '#' na character, at wawakasan sa pagtatapos ng
Ang linya.

In-override ng mga opsyon sa command-line ang mga default na itinakda sa kapaligiran o sa mga kagustuhan
file, sa parehong paraan tulad ng pag-override nila sa mga built-in na default.

GAMIT PROJECT MGA FILE


Ang seksyong ito ay naglalaman ng detalyadong impormasyon kung paano gamitin ang mga file ng proyekto nang pinakamabisa,
at kung paano maiwasan ang ilang mga pitfalls.

Maaaring hatiin ng isa ang mga tseke ftnchek ginagawa sa dalawang kategorya, lokal at global. Lokal
ang pagsuri ay limitado sa loob ng iisang gawain, at nakakakuha ng mga bagay tulad ng hindi nasimulan
mga variable, hindi sinasadyang pagkawala ng katumpakan sa mga expression ng aritmetika, atbp. Ang ganitong uri ng
maaaring gawin ang pagsusuri sa bawat subprogram nang nakapag-iisa. Higit pa rito, lokal na pagsusuri ng a
hindi kailangang ulitin ang subprogram kapag binago ang ibang subprogram. Global
ang pagsuri ay nakakakuha ng mga bagay tulad ng pagtawag sa isang subroutine na may mga maling uri ng argumento, o
hindi sumasang-ayon sa mga karaniwang block deklarasyon. Nangangailangan ito ng pagtingin sa buong hanay ng
mga subprogram na nakikipag-ugnayan sa isa't isa.

Ang layunin ng mga file ng proyekto ay payagan ang mga lokal na pagsusuri at mga hakbang sa pandaigdigang pagsusuri
maghiwalay. Ipagpalagay na ang bawat subprogram ay nasa sarili nitong source file, maaari kang tumakbo
ftnchek isang beses sa bawat isa na gumawa ng lokal na pagsusuri habang pinipigilan ang pandaigdigang pagsusuri. Pagkatapos
ftnchek maaaring patakbuhin nang isang beses sa lahat ng mga file ng proyekto nang magkasama upang gawin ang pandaigdigang pagsusuri. Ang
ang sample na makefile sa ibaba ay nagpapakita kung paano i-automate ang gawaing ito. Ang ``.f.prj'' target na mga update a
project file para sa isang partikular na file anumang oras na magbago ang source file. Ang impormasyon
na kailangan para sa pandaigdigang pagsusuri ay naka-save sa file ng proyekto. Ginagawa ng ``check'' target ang
pinagsamang global checking. Karaniwang uulitin ng ``make check'' ang ``ftnchek -project''
hakbang lamang sa mga binagong source file, pagkatapos ay gawin ang global check. Halatang malaki ito
bentahe para sa malalaking programa, kapag ang maraming mga subprogram ay bihirang magbago.

Pinakamainam kapag gumagamit ng mga file ng proyekto upang ilagay ang bawat subprogram sa isang hiwalay na source file.
Kung ang bawat source file ay maaaring maglaman ng higit sa isang subprogram, pinapalubha nito ang kahulugan
ng ``local'' at ``global'' checking dahil mayroong ilang inter-module checking na
nakapaloob sa loob ng isang file. ftnchek sinusubukang gawin ang tama sa kasong ito, ngunit mayroon
ilang komplikasyon (inilarawan sa ibaba) dahil sa trade-off sa pagitan ng pag-iwas sa muling paggawa ng cross-
sinusuri at pinapanatili ang impormasyon tungkol sa istruktura ng programa.

Karaniwan, upang magawa ang pinakamaliit na dami ng muling pagsusuri, ang mga file ng proyekto ay dapat gawin gamit ang
ang -aklatan naka-on ang flag at trimming. Sa mode na ito, nai-save ang impormasyon
sa file ng proyekto ay binubuo ng lahat ng mga deklarasyon ng subprogram, lahat ng mga invocation ng subprogram
hindi naresolba ng mga deklarasyon sa parehong file, at isang instance ng bawat COMMON block
deklarasyon. Ito ang pinakamababang halaga ng impormasyon na kailangan upang suriin ang kasunduan sa pagitan
file.

Kung ang source file ay naglalaman ng higit sa isang routine, may ilang posibleng problema na
ay maaaring lumabas mula sa paglikha ng project file sa library mode, dahil ang hierarchy ng pagtawag
sa mga nakagawiang tinukoy sa loob ng file ay nawala. Gayundin, kung ang mga gawain sa file ay gumawa
paggamit ng mga KARANIWANG bloke na ibinabahagi sa mga gawain sa iba pang mga file, hindi magkakaroon
sapat na impormasyong na-save para sa tamang pagsuri ng set at ginamit na katayuan ng COMMON blocks
at KARANIWANG baryabol ayon sa -gamit setting. Samakatuwid kung plano mong gamitin
mga file ng proyekto kapag -gamit naka-on ang checking (na siyang default na sitwasyon), at kung
maramihang mga gawain sa isang file ng proyekto ay nagbabahagi ng mga KARANIWANG bloke sa mga gawain sa iba pang mga file,
ang mga file ng proyekto ay dapat gawin gamit ang -aklatan nakapatay ang bandila. Sa mode na ito,
ftnchek nagse-save, bukod sa impormasyong nakalista sa itaas, isang invocation ng bawat subprogram ni
anumang iba pang subprogram sa parehong file, at lahat ng COMMON block declarations. Ibig sabihin nito
ang file ng proyekto ay magiging mas malaki kaysa sa kinakailangan, at kapag ito ay nabasa, ftnchek maaari
ulitin ang ilang inter-module na pagsusuri na ginawa na nito noong ginawa ang file ng proyekto. Kung
ang bawat file ng proyekto ay naglalaman lamang ng isang module, walang pagkawala ng impormasyon sa paglikha
ang mga file ng proyekto sa library mode.

Dahil sa posibleng pagkawala ng impormasyon na kaakibat ng paglikha ng isang file ng proyekto na may
-aklatan i-flag, sa tuwing babasahin ang file ng proyektong iyon sa ibang pagkakataon, ito ay ituturing
bilang file ng library anuman ang kasalukuyang setting ng -aklatan bandila. Sa kabila
kamay, ang isang proyektong file na ginawa gamit ang library mode ay naka-off ay maaaring basahin sa ibang pagkakataon sa alinman
mode.

Ipinapalagay ng naunang talakayan na ang mga opsyon sa pag-trim ng proyekto setting ay
naka-on kapag ginawa ang file ng proyekto. Ito ang normal na sitwasyon. Ang walang trim
mga pagpipilian ng proyekto ibinibigay ang setting kung sakaling gusto ng isa na gamitin ang mga file ng proyekto
para sa mga layunin maliban sa pagsuri sa programa gamit ang ftnchek. Halimbawa, maaaring magsulat ang isa
isang Perl script upang pag-aralan ang mga file ng proyekto para sa impormasyon tungkol sa kung paano naiiba ang
tinatawag ang mga subprogram. Hindi mo dapat gamitin ang walang trim mga pagpipilian upang harapin ang mga isyu ng
pagkawala ng impormasyon na tinalakay sa itaas, dahil nagiging sanhi sila ng higit pang impormasyon kaysa kinakailangan
nakaimbak. Ginagawa nitong mas malaki at sanhi ang mga file ng proyekto ftnchek na gumawa ng mas maraming trabaho mamaya kapag
binabasa nito ang mga ito upang suriin ang iyong kumpletong programa. Karaniwan, dapat mong gamitin ang -aklatan
opsyon upang kontrolin kung gaano karaming impormasyon ang iimbak para magamit sa ibang pagkakataon ftnchek sa pagsuri sa iyong
programa.

Narito ang isang halimbawa kung paano gamitin ang UNIX gumawa utility upang awtomatikong lumikha ng bago
project file sa bawat oras na ang kaukulang source file ay binago, at upang suriin ang set ng
mga file para sa pagkakapare-pareho. Idagdag ang mga linyang ito sa iyong makefile. Ipinapalagay ng halimbawa na a
Ang macro OBJS ay tinukoy na naglilista ng lahat ng mga pangalan ng object file na ili-link
magkasama upang mabuo ang kumpletong maipapatupad na programa. (Sa makefile na ito, ang mga naka-indent na linya
dapat magsimula sa tab ang bawat isa, hindi blangko.) Kung naglalaman ang anumang source file ng maramihang mga gawain
na nagbabahagi ng mga karaniwang bloke sa kanilang mga sarili, pagkatapos ay dapat alisin ang opsyong no-com-\*
mula sa NOGLOBAL, at/o i-drop ang -library flag.
# sabihin gawin kung ano ang suffix ng file ng proyekto
.MGA PANIPILI: .prj

# pinipigilan ng mga opsyong ito ang mga pandaigdigang pagsusuri.
NOGLOBAL=-usage=no-ext-undefined,no-com-\*

# tell make kung paano gumawa ng .prj file mula sa .f file
.f.prj:
ftnchek -proyekto $(NOGLOBAL) -library $

# i-set up ang macro PRJS na naglalaman ng mga filename ng proyekto
PRJS= $(OBJS:.o=.prj)

Susuriin ng # "make check" ang lahat ng nabago.
suriin: $(PRJS)
ftnchek $(PRJS)

Kapag ang isang programa ay gumagamit ng maraming mga gawain na tinukoy sa isang malaking bilang ng iba't ibang mga source file sa
iba't ibang mga direktoryo, maaari itong maging mahirap na tukuyin ang lahat ng iba't ibang mga file ng proyekto
kinakailangan upang suriin nang maayos ang programa. Upang harapin ang mga ganitong kaso, ftnchek nagbibigay-daan sa proyekto
mga file na pagsasama-samahin sa isang malaking file. Ang nag-iisang file na ito ay maaaring ibigay sa
ftnchek upang magbigay ng impormasyon para sa pagsuri sa paggamit ng anuman o lahat ng mga gawain
tinukoy sa pinagsamang mga file ng proyekto. Kapag gumagamit ng ganoong ``library'' project file, ikaw
baka gusto ftnchekAng mga ulat ng error ni upang idokumento nang eksakto ang pangalan ng file kung saan ang
tinukoy ang tiyak na function. Kung ang iba't ibang source file ay nasa ilang direktoryo, an
ulat ng error na nagbibigay lamang ng pangalan ng file ay maaaring hindi maliwanag, at sa halip ay dapat isama ang
landas patungo sa file. Ang solusyon ay upang lumikha ng bawat isa sa mga indibidwal na mga file ng proyekto sa pamamagitan ng
pagbibigay ng kumpletong path sa source file. Pagkatapos ang kumpletong landas na ito ay lilitaw sa
mga ulat ng error. Halimbawa, ipagpalagay na ang lahat ng library subprogram source file ay
sa mga subdirectory ng isang direktoryo na pinangalanang /util/lib. Pagkatapos ay maaaring ang mga indibidwal na file ng proyekto
unang nilikha ng isang utos tulad ng
hanapin /util/lib -name '*.f' -exec ftnchek -project '{}' ';'
(Posibleng iba pang mga opsyon ang ibibigay sa ftnchek gaya ng tinalakay sa itaas. Gayundin, ang hakbang na ito
sa halip ay maaaring pangasiwaan ng isang binagong panuntunan ng makefile na magbibigay ng kumpletong pinagmulan
path ng file sa halip na ang lokal na pangalan lamang kapag nag-invoke ftnchek.) Susunod, pagdugtungin ang lahat ng
mano-manong mga file ng proyektong ito.
hanapin /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Pagkatapos ay masusuri ang source file ng program gamit ang command
ftnchek prog.f ... -lib ourlib.prj
at isang mensahe ng error na nauugnay sa anumang gawain sa library ay isasama ang buong landas sa
source file ng routine.

Sa kasalukuyan, walang archive utility tulad ng ar upang pamahalaan ang mga nilalaman ng isang concatenated
project file tulad ng nasa larawan sa itaas. Kung ang mga pagbabago ay ginawa sa isa sa
library routines, ang tanging paraan upang i-update ang pinagsamang file ng proyekto ay upang pagsamahin ang lahat
muli ang mga indibidwal na file ng proyekto. Ang ganitong utility ay medyo madaling isulat.
Dapat may gumawa nito at mag-ambag nito sa ftnchek pagsisikap.

AN Halimbawa


Ang sumusunod na simpleng Fortran program ay naglalarawan ng mga mensaheng ibinigay ni ftnchek. ang
Ang programa ay nilayon na tumanggap ng hanay ng mga marka ng pagsusulit at pagkatapos ay kalkulahin ang average para sa
serye.

C AUTHORS: MIKE MYERS AT LUCIA SPAGNUOLO
C PETSA: MAY 8, 1989

C Variable:
C SCORE -> isang hanay ng mga marka ng pagsusulit
C SUM -> kabuuan ng mga marka ng pagsusulit
C COUNT -> counter ng mga markang binasa
CI -> loop counter

REAL FUNCTION COMPAV(SCORE, COUNT)
INTEGER SUM, COUNT, J,ISKOR(5)

DO 30 I = 1,COUNT
SUM = SUM + SCORE(I)
30 MAGPATULOY
COMPAV = SUM/COUNT
END

PROGRAM AVENUM
C
C PANGUNAHING PROGRAMA
C
C AUTHOR: LOIS BIGBIE
C PETSA: MAY 15, 1990
C
C Variable:
C MAXNOS -> maximum na bilang ng mga value ng input
C NUMS -> isang hanay ng mga numero
C COUNT -> eksaktong bilang ng mga halaga ng input
C AVG -> average na ibinalik ng COMPAV
CI -> loop counter
C

PARAMETER(MAXNOS=5)
INTEGER I, COUNT
REAL NUMS(MAXNOS), AVG
COUNT = 0
DO 80 I = 1,MAXNOS
BASAHIN (5,*,END=100) NUMS(I)
COUNT = COUNT + 1
80 MAGPATULOY
100 AVG = COMPAV(NUMS, COUNT)
END

Ang compiler ay hindi nagbibigay ng mga mensahe ng error kapag ang program na ito ay pinagsama-sama. Ngunit narito ang ano
nangyayari kapag ito ay tumatakbo:

$ run average
70
90
85

$

Anong nangyari? Bakit walang nagawa ang programa? Ang sumusunod ay ang output mula sa
ftnchek kapag ginamit ito upang i-debug ang programa sa itaas:

$ ftnchek -list -symtab average

FTNCHEK Bersyon 3.3 Nobyembre 2004

Average ng file.f:

1 C MGA MAY-AKDA: MIKE MYERS AT LUCIA SPAGNUOLO
2 C PETSA: MAY 8, 1989
3
4 C Variable:
5 C SCORE -> isang hanay ng mga marka ng pagsusulit
6 C SUM -> kabuuan ng mga marka ng pagsusulit
7 C COUNT -> counter ng mga markang binasa
8 CI -> loop counter
9
10 REAL FUNCTION COMPAV(SCORE, COUNT)
11 INTEGER SUM, COUNT, J,ISKOR(5)
12
13 DO 30 I = 1,COUNT
14 SUM = SUM + SCORE(I)
15 30 MAGPATULOY
16 COMPAV = SUM/COUNT
^
Babala malapit sa linya 16 col 20: integer quotient expr SUM/COUNT na-convert sa
tunay
17 WAKAS

Module COMPAV: func: real

Mga variable:

Uri ng Pangalan Dims Uri ng Pangalan Dims Pangalan Uri Dims Pangalan Uri Dims
COMPAV real COUNT intg I intg* J intg
SCORE intg 1 SUM intg

* Hindi idineklara ang variable. Ang uri ay tahasang tinukoy.

Babala sa module COMPAV: Ang mga variable ay ipinahayag ngunit hindi kailanman na-refer:
Idineklara ni J sa linya 11

Babala sa module COMPAV: Maaaring gamitin ang mga variable bago itakda:
SUM na ginamit sa linya 14
Itinakda ang SUM sa linya 14

Tinukoy ang mga label ng pahayag:

StmtType ng Linya ng Label
<30> 15 exec

18
19
20 PROGRAM AVENUM
21 C
22 C PANGUNAHING PROGRAMA
23 C
24 C MAY-AKDA: LOIS BIGBIE
25 C PETSA: MAY 15, 1990
26 C
27 C Variable:
28 C MAXNOS -> maximum na bilang ng mga value ng input
29 C NUMS -> isang hanay ng mga numero
30 C COUNT -> eksaktong bilang ng mga halaga ng input
31 C AVG -> average na ibinalik ng COMPAV
32 CI -> loop counter
33 C
34
35 PARAMETER(MAXNOS=5)
36 INTEGER I, COUNT
37 REAL NUMS(MAXNOS), AVG
38 BILANG = 0
39 DO 80 I = 1,MAXNOS
40 BASAHIN (5,*,END=100) NUMS(I)
41 COUNT = COUNT + 1
42 80 MAGPATULOY
43 100 AVG = COMPAV(NUMS, COUNT)
44 WAKAS

Module AVENUM: prog

Mga panlabas na subprogram na isinangguni:

COMPAV: totoo*

Mga variable:

Uri ng Pangalan Dims Uri ng Pangalan Dims Pangalan Uri Dims Pangalan Uri Dims
AVG real COUNT intg I intg MAXNOS intg*
NUMS real 1

* Hindi idineklara ang variable. Ang uri ay tahasang tinukoy.

Babala sa module AVENUM: Nakatakda ang mga variable ngunit hindi kailanman ginamit:
Itinakda ang AVG sa linya 43

I/O Operations:

Unit ID Unit No. Access Form Operation Line
5 SEQ FMTD READ 40

Tinukoy ang mga label ng pahayag:

Label Line StmtType Label Line StmtType
<80> 42 exec <100> 43 exec

0 syntax error ang nakita sa file average.f
6 na babala na inilabas sa file average.f

Babala: Subprogram COMPAV argument type data mismatch sa posisyon 1:
Dummy arg SCORE sa module COMPAV line 10 file average.f ay type intg
Ang aktwal na arg NUMS sa module AVENUM line 43 file average.f ay totoong uri

Ayon sa ftnchek, ang program ay naglalaman ng mga variable na maaaring gamitin bago ang mga ito
nagtalaga ng paunang halaga, at mga variable na hindi kinakailangan. ftnchek nagbabala rin sa
user na ang isang integer quotient ay na-convert sa real. Ito ay maaaring makatulong sa gumagamit sa
nakakakuha ng hindi sinasadyang roundoff error. Mula noong -symtab ibinigay ang bandila, ftnchek mga kopya
out ng isang talahanayan na naglalaman ng mga identifier mula sa lokal na module at ang kanilang kaukulang datatype
at bilang ng mga sukat. Sa wakas, ftnchek nagbabala na ang function na COMPAV ay hindi ginagamit
na may wastong uri ng mga argumento.

may ftnchektulong ni, maaari naming i-debug ang program. Makikita natin na may mga sumusunod
mga error:

1. Dapat ay na-convert sa real ang SUM at COUNT bago gawin ang paghahati.

2. Dapat ay nasimulan sa 0 ang SUM bago pumasok sa loop.

3. Ang AVG ay hindi kailanman na-print pagkatapos makalkula.

4. Dapat ay idineklara ang NUMS na INTEGER sa halip na REAL.

Nakikita rin natin na ako, hindi J, ang dapat na idineklara na INTEGER sa function na COMPAV. Gayundin,
Ang MAXNOS ay hindi idineklara bilang INTEGER, o ang COMPAV bilang REAL, sa programang AVENUM. Ang mga ito ay hindi
mga pagkakamali, ngunit maaari silang magpahiwatig ng kawalang-ingat. Tulad ng nangyari, ang default na uri ng mga ito
ang mga variable ay kasabay ng nilalayong uri.

Narito ang naitama na programa, at ang output nito kapag tumakbo:

C AUTHORS: MIKE MYERS AT LUCIA SPAGNUOLO
C PETSA: MAY 8, 1989
C
C Variable:
C SCORE -> isang hanay ng mga marka ng pagsusulit
C SUM -> kabuuan ng mga marka ng pagsusulit
C COUNT -> counter ng mga markang binasa
CI -> loop counter
C
REAL FUNCTION COMPAV(SCORE, COUNT)
INTEGER SUM, COUNT, I,ISKOR(5)
C
SUM = 0
DO 30 I = 1,COUNT
SUM = SUM + SCORE(I)
30 MAGPATULOY
COMPAV = FLOAT(SUM)/FLOAT(COUNT)
END
C
C
PROGRAM AVENUM
C
C PANGUNAHING PROGRAMA
C
C AUTHOR: LOIS BIGBIE
C PETSA: MAY 15, 1990
C
C Variable:
C MAXNOS -> maximum na bilang ng mga value ng input
C NUMS -> isang hanay ng mga numero
C COUNT -> eksaktong bilang ng mga halaga ng input
C AVG -> average na ibinalik ng COMPAV
CI -> loop counter
C
C
INTEGER MAXNOS
PARAMETER(MAXNOS=5)
INTEGER I, NUMS(MAXNOS), COUNT
TUNAY NA AVG,COMPAV
COUNT = 0
DO 80 I = 1,MAXNOS
BASAHIN (5,*,END=100) NUMS(I)
COUNT = COUNT + 1
80 MAGPATULOY
100 AVG = COMPAV(NUMS, COUNT)
ISULAT(6,*) 'AVERAGE =',AVG
END
$ run average
70
90
85

AVERAGE = 81.66666
$

may ftnchektulong ni, ang aming programa ay isang tagumpay!

PAGHAHulugan ANG oUTPUT


Ang mga mensaheng ibinigay ni ftnchek isama hindi lamang ang mga error sa syntax kundi pati na rin ang mga babala at
mga mensaheng nagbibigay-kaalaman tungkol sa mga bagay na legal na Fortran ngunit maaaring magpahiwatig ng mga pagkakamali o
kawalang-ingat. Karamihan sa mga mensaheng ito ay maaaring i-off sa pamamagitan ng mga opsyon sa command-line. Alin
Ang opsyon ay kumokontrol sa bawat mensahe ay depende sa likas na katangian ng kondisyong binabalaan.
Tingnan ang mga paglalarawan ng mga flag ng command-line sa mga nakaraang seksyon, at ng indibidwal
mga mensahe sa ibaba. Ang bawat mensahe ay nilagyan ng prefix ng isang salita o parirala na nagsasaad ng katangian ng
ang kondisyon at ang kalubhaan nito.

``Error'' ay nangangahulugang isang syntax error. Ang pinakasimpleng uri ng mga error sa syntax ay typographical
mga error, halimbawa hindi balanseng panaklong o maling spelling ng isang keyword. Ang ganitong uri ng
ang error ay nakuha ng parser at lumilitaw na may paglalarawan `` parse error'' o `` syntax
error'' (depende sa bersyon ng generator ng parser at kung ito ay GNU bison or
UNIX yacc). Hindi mapipigilan ang ganitong uri ng mensahe ng error. Magkaroon ng kamalayan na ang ganitong uri ng
mali madalas ang ibig sabihin nito ftnchek ay hindi maayos na binibigyang kahulugan ang pahayag kung saan ang pagkakamali
nangyayari, upang ang mga kasunod na operasyon ng pagsusuri nito ay makompromiso. Dapat mo
alisin ang lahat ng mga error sa syntax bago magpatuloy sa pagbibigay-kahulugan sa iba pang mga mensahe ftnchek
nagbibigay.

Ang ``Babala: Hindi karaniwang syntax'' ay nagpapahiwatig ng extension sa Fortran na iyon ftnchek suporta
ngunit hindi iyon ayon sa Fortran 77 Standard. Ang mga extension na ftnchek tumatanggap
ay inilarawan sa seksyon sa Mga Extension sa ibaba. Isang halimbawa ay ang DO ... ENDDO
pagtatayo. Kung ang isang programa ay gumagamit ng mga extension na ito, ang mga babala ay ibibigay ayon sa
mga pagtutukoy sa ilalim ng -f77 setting. Ang default na pag-uugali ay ang walang mga babala.

Ang ``Babala'' sa ibang mga kaso ay nangangahulugan ng isang kondisyon na kahina-hinala ngunit maaaring o hindi
isang error sa programming. Kadalasan ang mga kundisyong ito ay legal sa ilalim ng pamantayan. Ang ilan ay
ilegal ngunit hindi nasa ilalim ng pamagat ng mga error sa syntax. Ang mga error sa paggamit ay isang halimbawa.
Ang mga ito ay tumutukoy sa posibilidad na ang isang variable ay maaaring gamitin bago ito italaga a
value (karaniwan ay isang error), o ang isang variable ay idineklara ngunit hindi kailanman ginamit (hindi nakakapinsala ngunit
maaaring magpahiwatig ng kawalang-ingat). Ang dami ng pagsuri para sa mga error sa paggamit ay kinokontrol ng
-gamit flag, na tumutukoy sa maximum na halaga ng pagsusuri bilang default.

Ang mga babala sa pagputol ay sumasaklaw sa mga sitwasyon kung saan ang katumpakan ay maaaring mawala nang hindi sinasadya, dahil
halimbawa kapag ang isang double precision value ay itinalaga sa isang tunay na variable. Ang mga babalang ito ay
kinokontrol ng -pagputol setting, na naka-on bilang default.

Ang ``Nonportable usage'' ay nagbabala tungkol sa ilang feature na maaaring hindi tanggapin ng ilang compiler
kahit na hindi ito salungat sa Fortran 77 Standard, o maaaring maging sanhi ng programa
upang gumanap nang iba sa iba't ibang mga platform. Halimbawa, ang pagtutumbas ng tunay at
Ang mga variable ng integer ay karaniwang isang hindi portable na kasanayan. Ang paggamit ng mga extension sa
ang karaniwang wika ay, siyempre, isa pang mapagkukunan ng hindi maaaring dalhin, ngunit ito ay pinangangasiwaan bilang
isang hiwalay na kaso. Upang suriin ang isang programa para sa tunay na portability, pareho ang -portability at ang
-f77 dapat gamitin ang mga bandila. Pareho silang naka-off bilang default. Ang - laki ng salita ang setting ay
ibinigay na suriin lamang ang mga hindi madadala na paggamit na nakadepende sa isang partikular na makina
kasing laki ng salita.

Ang ``Posibleng mapanlinlang na hitsura'' ay ginagamit para sa mga legal na konstruksyon na maaaring hindi ibig sabihin kung ano
sila ay lumilitaw na ibig sabihin sa unang tingin. Halimbawa, ang Fortran ay hindi sensitibo sa blangkong espasyo,
kaya extraneous space sa loob ng variable names o ang kakulangan ng space sa pagitan ng keyword at a
variable ay maaaring maghatid ng maling impresyon sa mambabasa. Maaaring pigilan ang mga mensaheng ito
sa pamamagitan ng pagpatay sa -maganda flag, na naka-on bilang default.

Iba pang mga mensahe na ibinibigay pagkatapos maproseso ang lahat ng mga file, at may kinalaman sa
kasunduan sa pagitan ng mga module, huwag gumamit ng salitang ``babala'' ngunit sa pangkalahatan ay nahuhulog doon
kategorya. Kasama sa mga halimbawa ang hindi pagkakatugma ng uri sa pagitan ng mga katumbas na variable sa iba't ibang
KARANIWANG pagharang ng mga deklarasyon, o sa pagitan ng dummy at aktwal na mga argumento ng isang subprogram. Ang mga ito
ang mga babala ay kinokontrol ng -karaniwan at -mga argumento mga setting ayon sa pagkakabanggit. Bilang default
parehong nakatakda para sa pinakamataas na higpit ng pagsuri.

Ang isa pang pangkat ng mga babala tungkol sa mga kondisyon na kadalasang hindi nakakapinsala ay tumutukoy sa mga kaso kung saan
ang array properties ng isang variable na ipinasa bilang isang subprogram argument ay naiiba sa pagitan ng dalawa
mga gawain. Halimbawa, maaaring maipasa ang isang elemento ng array sa isang subroutine na umaasa sa a
buong hanay. Ito ay isang karaniwang ginagamit na pamamaraan para sa pagproseso ng mga solong hilera o column ng
dalawang-dimensional na array. Gayunpaman, maaari rin itong magpahiwatig ng error sa programming. Ang - hanay
Ang setting ay nagbibigay-daan sa gumagamit na ayusin ang antas ng pagiging mahigpit na gagamitin sa pagsuri nito
uri ng kasunduan sa pagitan ng aktwal at dummy array arguments. Bilang default ang kahigpitan ay
pinakamataas.

Ang ``Oops'' ay nagpapahiwatig ng isang teknikal na problema, ibig sabihin ay isang bug sa loob ftnchek o na nito
ang mga mapagkukunan ay nalampasan.

Kasama sa mga mensahe at babala ng error sa syntax ang filename kasama ang numero ng linya at
numero ng hanay. ftnchek ay may dalawang magkaibang opsyon para sa paglitaw ng mga error na ito
mga mensahe. Kung -baguhan ay may bisa, na siyang default, ang mga mensahe ay nasa istilo
tinatayang normal na Ingles. (Sa default na istilo, ang filename ay hindi naka-print sa mga mensahe
sa loob ng katawan ng programa kung -Lista ay may bisa.) Ang iba pang istilo ng mga mensahe ng error
ay pinili ng -nonovice opsyon. Sa ganitong istilo, ang hitsura ng mga mensahe ay
katulad ng sa UNIX linen programa.

ftnchek ay bulag pa rin sa ilang uri ng mga error sa syntax. Ang dalawang pinakamahalaga ay
detalyadong pagsusuri ng mga pahayag ng FORMAT, at halos anumang bagay na may kinalaman sa kontrol ng
daloy ng pagpapatupad sa pamamagitan ng mga IF, DO, at GOTO na mga pahayag: ibig sabihin, tamang pagpupugad ng kontrol
mga istruktura, pagtutugma ng mga pambungad na pahayag tulad ng KUNG ... THEN sa mga pangwakas na pahayag
tulad ng ENDIF, at ang wastong paggamit ng mga label ng pahayag (mga numero). Karamihan sa mga compiler ay gagawin
mahuli ang mga error na ito. Tingnan ang seksyon sa Mga Limitasyon para sa mas detalyadong talakayan.

If ftnchek ay nagbibigay sa iyo ng isang mensahe ng error sa syntax kapag ang compiler ay hindi, maaaring ito ay dahil
ang iyong programa ay naglalaman ng isang extension sa karaniwang Fortran na tinatanggap ng compiler
ngunit hindi sa pamamagitan ng ftnchek. (Tingnan ang seksyon sa Mga Extension.) Sa isang VAX/VMS system, maaari mong gamitin
ang compiler option /STANDARD para maging sanhi ng compiler na tanggapin lamang ang standard Fortran. Naka-on
karamihan sa UNIX o UNIX-like system, ito ay maaaring magawa sa pamamagitan ng pagtatakda ng bandila -ansi.

Marami sa mga mensaheng ibinigay ni ftnchek ay self-explanatory. Yung mga nangangailangan
karagdagang paliwanag ay nakalista sa ibaba sa alpabetikong pagkakasunud-sunod.

Karaniwan harangan ang PANGALAN: data uri mismatch at posisyon n
Ang n-th variable sa COMMON block ay naiiba sa uri ng data sa dalawang magkaibang
mga deklarasyon ng COMMON block. Bilang default (-karaniwan antas ng pagiging mahigpit 3), ftnchek
ay masyadong mapili tungkol sa COMMON blocks: ang mga variable na nakalista sa mga ito ay dapat na eksaktong tumutugma
ayon sa uri ng data at mga sukat ng array. Ibig sabihin, ang legal na pares ng mga deklarasyon sa
iba't ibang mga module:
KARANIWAN /COM1/ A,B
at
KARANIWAN /COM1/ A(2)
magdudulot ftnchek upang magbigay ng mga babala sa antas ng pagiging mahigpit 3. Ang dalawang deklarasyon na ito
ay legal sa Fortran dahil pareho silang nagdedeklara ng dalawang tunay na variable. Sa pagiging mahigpit
antas 1 o 2, walang babala ang ibibigay sa halimbawang ito, ngunit ang babala ay
ibinigay kung mayroong hindi tugma sa uri ng data, halimbawa, kung ang B ay idineklara na INTEGER.
Kinokontrol ng -karaniwan setting na ito.

Karaniwan harangan ang NAME ay mahaba data uri sumusunod maikli data uri
Ang ilang mga compiler ay nangangailangan ng pag-align ng mga multi-byte na item upang ang bawat item ay magsimula sa isang
address na maramihang laki ng item. Kaya kung ang isang maikli (hal. single-
precision real) item ay sinusundan ng isang mahaba (eg double precision real) item, ang
ang huli ay maaaring hindi nakahanay nang tama. Kinokontrol ng -portability=common-alignment
pagpipilian.

Karaniwan harangan ang NAME ay magkakahalo katangian at hindi karakter mga variable
Ang pamantayan ng ANSI ay nangangailangan na kung anumang variable sa isang COMMON block ay may uri
CHARACTER, kung gayon ang lahat ng iba pang mga variable sa parehong COMMON block ay dapat ding uri
KARAKTER. Kinokontrol ng -f77=mixed-common pagpipilian.

Karaniwan harangan ang PANGALAN: magkakaiba-iba haba
para -karaniwan pagtatakda ng antas 2, ang mensaheng ito ay nangangahulugan na ang isang COMMON block ay idineklara sa
may magkaibang bilang ng mga salita sa dalawang magkaibang subprogram. Ang isang salita ay ang dami
ng imbakan na inookupahan ng isang integer o tunay na variable. Para sa -karaniwan pagtatakda ng antas 3,
nangangahulugan ito na ang dalawang deklarasyon ay may magkaibang bilang ng mga variable, kung saan ang isang
Ang hanay ng anumang laki ay itinuturing na isang variable. Ito ay hindi palaging isang pagkakamali,
ngunit maaaring ipahiwatig nito na may nawawalang variable mula sa isa sa mga listahan. Tandaan na
ayon sa Fortran 77 Standard, ito ay isang error para sa pinangalanang COMMON blocks (ngunit
hindi blangko KARANIWAN) upang magkakaiba sa bilang ng mga salita sa mga deklarasyon sa iba't ibang
mga module. Ibinigay para sa -karaniwan setting 2 o 3.

Error: Masama nabuo lohikal/relasyon opereytor or patuloy

Error: Masama nabuo tunay patuloy
Nahanap ng syntax analyzer ang simula ng isa sa mga espesyal na salita na nagsisimula at
nagtatapos sa isang tuldok (hal. .EQ.), o simula ng isang numeric constant, ngunit hindi
magtagumpay sa paghahanap ng kumpletong item ng ganoong uri.

Error: hindi maaari be madaling iakma laki in module NAME
Ang isang variable ng character ay hindi maaaring ideklara na may laki na may asterisk
mga panaklong maliban kung ito ay isang dummy argument, isang parameter, o ang pangalan ng function
tinukoy sa modyul.

Error: hindi maaari be ipinahayag in SAVE pahayag in module NAME
Tanging ang mga lokal na variable at karaniwang mga bloke ang maaaring ideklara sa isang SAVE na pahayag.

Error: Hindi landas sa ito pahayag
ftnchek ay makakakita ng mga pahayag na hindi pinapansin o nalampasan dahil wala
mahulaan na ruta patungo sa pahayag. Halimbawa, isang walang bilang na pahayag (a
pahayag na walang label ng pahayag), na nagaganap kaagad pagkatapos ng pahayag ng GOTO,
hindi posibleng maisakatuparan.

Error: Parse mali
Nangangahulugan ito na ang parser, na sinusuri ang Fortran program sa mga expression,
mga pahayag, atbp., ay hindi nakahanap ng wastong interpretasyon para sa ilang bahagi
ng isang pahayag sa programa. Kung ang iyong compiler ay hindi nag-uulat ng syntax error sa
sa parehong lugar, ang pinakakaraniwang mga paliwanag ay: (1) paggamit ng extension sa ANSI
karaniwang Fortran na hindi kinikilala ng ftnchek, o (2) ang pahayag ay nangangailangan
mas tumingin sa harap ftnchek gamit (tingnan ang seksyon sa Mga Bug).

TANDAAN: Ang mensaheng ito ay nangangahulugan na ang apektadong pahayag ay hindi binibigyang-kahulugan.
Samakatuwid, posible iyon ftnchekAng kasunod na pagpoproseso ni ay mali, kung
depende ito sa anumang bagay na apektado ng pahayag na ito (mga uri ng deklarasyon, atbp.).

Error: palaugnayan mali
Ito ay kapareho ng ``Error: Parse error'' (tingnan sa itaas). Ito ay nabuo kung ang iyong
na bersyon ng ftnchek ay binuo gamit ang UNIX yacc generator ng parser sa halip na GNU
bison.

Mga tagapagpakilala alin ay hindi kakaiba in una anim tank
Nagbabala na ang dalawang identifier na mas mahaba sa 6 na character ay hindi naiiba sa
unang 6 na character. Ito ay para sa portability: maaaring hindi sila ituring na naiiba
ng ilang compiler. Kinokontrol ng -sixchar pagpipilian.

Nonportable paggamit: argumento katumpakan maaari hindi be itama para tunay tungkulin
Ang katumpakan ng isang argumento na ipinasa sa isang intrinsic na function ay maaaring hindi tama sa
ilang mga computer. Inilabas kapag ang isang numeric na variable ay nagdeklara nang may tahasang katumpakan
(hal. REAL*8 X) ay ipinapasa sa isang partikular na intrinsic function (hal. DSQRT(X)).
Kinokontrol ng -portability=mixed-size at - laki ng salita.

Nonportable paggamit: katangian pare-pareho/variable haba Lumagpas ang 255
Hindi sinusuportahan ng ilang compiler ang mga string ng character na higit sa 255 character ang haba.
Kinokontrol ng -portability=mahabang string.

Nonportable paggamit: talaksan naglalaman ng tabs
ftnchek nagpapalawak ng mga tab upang maging katumbas ng mga puwang hanggang sa susunod na column na a
maramihang ng 8. Iba ang pagtrato ng ilang compiler sa mga tab, at posible rin iyon
Ang mga file na ipinadala sa pamamagitan ng electronic mail ay mako-convert sa mga blangko sa ilang paraan.
Samakatuwid, ang mga file na naglalaman ng mga tab ay maaaring hindi ma-compile nang tama pagkatapos na maging
inilipat ftnchek ay hindi nagbibigay ng mensaheng ito kung nangyayari lamang ang mga tab sa loob ng mga komento
o mga pare-parehong karakter. Kinokontrol ng -portability=tab.

Nonportable paggamit: hindi integer DO silo hangganan
Ang babalang ito ay ibinibigay lamang kapag ang DO index at mga hangganan ay hindi integer. Paggamit ng
Ang mga non-integer na dami sa isang DO statement ay maaaring magdulot ng mga hindi inaasahang error, o iba
mga resulta sa iba't ibang makina, dahil sa mga epekto ng roundoff. Kinokontrol ng
-portability=real-do.

marahil it is an ayos alin ay hindi ipinahayag
Ang mensaheng ito ay idinagdag sa mga babalang nauugnay sa isang function invocation o sa isang
hindi pagkakatugma ng uri ng argumento, kung saan may posibilidad na ang lumalabas na a
function ay talagang sinadya upang maging isang array. Kung nakalimutan ng programmer ang sukat
isang array, ang mga reference sa array ay bibigyang-kahulugan bilang function invocations.
Ang mensaheng ito ay pipigilan kung ang pinag-uusapang pangalan ay lilitaw sa isang EXTERNAL o
INTRINSIC na pahayag. Kinokontrol ng -baguhan pagpipilian.

marahil nakakalito anyo: character nakaraan 72 haligi
Ang programa ay pinoproseso gamit ang lapad ng field ng pahayag sa karaniwang halaga nito
ng 72, at ang ilang hindi blangko na mga character ay natagpuan sa nakalipas na column 72. Sa kasong ito,
ftnchek ay hindi pinoproseso ang mga character sa nakalipas na column 72, at inaabisuhan ang user
na ang pahayag ay maaaring walang kahulugan na tila taglay nito. Ang mga ito
ang mga character ay maaaring nilayon ng programmer na maging makabuluhan, ngunit magiging makabuluhan sila
hindi pinansin ng compiler. Kinokontrol ng -pretty=mahabang linya.

marahil nakakalito anyo: Karaniwan harangan ang ipinahayag in mas marami pang kaysa isa pahayag
Ang nasabing maraming deklarasyon ay legal at may parehong epekto bilang isang pagpapatuloy ng
ang orihinal na deklarasyon ng bloke. Ang babalang ito ay ibinibigay lamang kung ang dalawa
ang mga deklarasyon ay pinaghihiwalay ng isa o higit pang mga intervening na pahayag. Kinokontrol ng
-pretty=multiple-common.

marahil nakakalito anyo: Pagpapatuloy sumusunod puna or blangko linya
ftnchek naglalabas ng babalang mensaheng ito upang alertuhan ang user na ang pagpapatuloy ng a
ang pahayag ay sinasagisag ng mga komento, na ginagawang madaling makaligtaan. Kinokontrol ng
-pretty=pagpapatuloy.

marahil nakakalito anyo: Extraneous mga panaklong
Nagbabala tungkol sa mga panaklong na nakapalibot sa isang variable nang mag-isa sa isang expression. Kapag a
Ang nakakulong na variable ay ipinasa bilang isang argumento sa isang subprogram, ito ay itinuturing bilang
isang expression, hindi bilang isang variable na ang halaga ay maaaring mabago ng tinatawag na routine.
Kinokontrol ng -pretty=panaklong.

Subprogram PANGALAN: argumento data uri mismatch at posisyon n
Ang mga subprogram n-ika aktuwal na argumento (sa CALL o ang paggamit ng isang function)
naiiba sa datatype o precision mula sa n-th dummy argument (sa SUBROUTINE o
deklarasyon ng FUNCTION). Halimbawa, kung tinukoy ng user ang isang subprogram sa pamamagitan ng
SUBROUTINE SUBA(X)
TOTOONG X
at sa ibang lugar ay humihiling ng SUBA sa pamamagitan ng
CALL SUBA(2)
ftnchek ay makikita ang error. Ang dahilan dito ay ang numero 2 ay integer,
hindi totoo. Dapat ay nagsulat ang gumagamit
TUMAWAG SA SUBA(2.0)

Kapag sinusuri ang isang argumento na isang subprogram, ftnchek dapat matukoy
kung ito ay isang function o isang subroutine. Ang mga tuntuning ginagamit ng ftnchek upang gawin ito ay
tulad ng sumusunod: Kung ang subprogram, bukod sa ipinasa bilang isang aktwal na argumento, ay din
direktang ini-invoke sa ibang lugar sa parehong module, pagkatapos ang uri nito ay tinutukoy ng iyon
paggamit. Kung hindi, kung gayon kung ang pangalan ng subprogram ay hindi lilitaw sa isang tahasang
uri ng deklarasyon, ito ay ipinapalagay na isang subroutine; kung ito ay tahasang nai-type ito ay
kinuha bilang isang function. Samakatuwid, ang mga subroutine ay ipinasa bilang aktwal na mga argumento lamang ang kailangan
idineklara ng isang EXTERNAL na pahayag sa calling module, samantalang ang mga function ay dapat
tahasan ding nai-type upang maiwasan ang pagbuo ng mensahe ng error na ito.
Kinokontrol ng -mga argumento setting na ito.

Subprogram PANGALAN: argumento arrayness mismatch at posisyon n
Katulad sa naunang sitwasyon, ngunit ang subprogram dummy argument ay naiiba mula sa
ang katumbas na aktwal na argumento sa bilang ng mga sukat o bilang ng
mga elemento. Kinokontrol ng - hanay Kasama -mga argumento mga setting.

Subprogram PANGALAN: argumento mismatch at posisyon n
Ang isang character na dummy argument ay mas malaki kaysa sa katumbas na aktwal na argumento, o a
Ang Hollerith dummy argument ay mas malaki kaysa sa katumbas na aktwal na argumento.
Kinokontrol ng -mga argumento setting na ito.

Subprogram PANGALAN: argumento paggamit mismatch
ftnchek nakakakita ng posibleng salungatan sa pagitan ng paraan ng paggamit ng isang subprogram ng argumento
at ang paraan kung saan ang argumento ay ibinibigay sa subprogram. Pwede ang conflict
maging isa sa dalawang uri, gaya ng nakabalangkas sa ibaba.

Dummy arg is binago, Tunay arg is const or ipahayag
Ang dummy argument ay isang argumento na pinangalanan sa isang SUBROUTINE o FUNCTION na pahayag at
ginamit sa loob ng subprogram. Ang isang aktwal na argumento ay isang argumento bilang ipinasa sa a
subroutine o function ng tumatawag. ftnchek ay nagsasabi na ang isang dummy argument ay
binago ng subprogram, na nagpapahiwatig na ang halaga nito ay binago sa pagtawag
modyul. Ang katumbas na aktwal na argumento ay hindi dapat isang pare-pareho o pagpapahayag,
ngunit sa halip ay isang variable o array elemento na maaaring lehitimong italaga sa.
Kinokontrol ng -usage=arg-const-modified pagpipilian.

Dummy arg ginamit bago itakda, Tunay arg hindi itakda
Dito maaaring gumamit ng dummy argument sa subprogram bago magkaroon ng value na itinalaga
dito sa pamamagitan ng subprogram. Ang katumbas na aktwal na argumento ay dapat may halaga
itinalaga dito ng tumatawag bago i-invoke ang subprogram. Kinokontrol ng
-usage=var-uninitialized pagpipilian.

Ang babalang ito ay hindi apektado ng -mga argumento setting na ito.

Subprogram NAME invoked hindi pantay-pantay
Narito ang mismatch ay sa pagitan ng datatype ng subprogram mismo bilang ginamit at bilang
tinukoy. Halimbawa, kung idineklara ng user
INTEGER FUNCTION COUNT(A)
at invokes COUNT sa isa pang module bilang
N = COUNT(A)
nang hindi idinedeklara ang datatype nito, magiging default ito sa totoong uri, batay sa una
titik ng pangalan nito. Dapat ay kasama sa module ng pagtawag ang deklarasyon
INTEGER COUNT

Ibinigay para sa -mga argumento setting 2 o 3.

Subprogram PANGALAN: magkakaiba-iba haba argumento mga listahan:
May nakitang hindi pagkakapare-pareho sa pagitan ng bilang ng mga dummy argument (mga parameter)
ang isang subprogram ay mayroon at ang bilang ng mga aktwal na argumento na ibinigay dito sa isang invocation.
ftnchek sinusubaybayan ang lahat ng mga invocation ng mga subprogram (mga pahayag ng CALL at
expression gamit ang mga function) at inihahambing ang mga ito sa mga kahulugan ng
mga subprogram sa ibang lugar sa source code. Ang Fortran compiler ay karaniwang hindi
mahuli ang ganitong uri ng error. Ibinigay para sa -mga argumento setting 1 o 3.

Paiba-iba hindi ipinahayag. uri ay naging tahasang tinukoy
Kapag nagpi-print ng talahanayan ng simbolo para sa isang module, ftnchek mag-flag na may asterisk lahat
mga identifier na hindi tahasang na-type at ipapakita ang datatype na dati
itinalaga sa pamamagitan ng implicit na pag-type. Nagbibigay ito ng suporta para sa mga gumagamit na nais
ipahayag ang lahat ng mga variable ayon sa kinakailangan sa Pascal o ilang iba pang mga wika. Ito
lalabas lamang ang mensahe kapag ang -symtab may bisa ang opsyon. Bilang kahalili, gamitin ang
-magpahayag i-flag kung gusto mong makakuha ng listahan ng lahat ng hindi nadeklarang variable.

Variable ipinahayag pero hindi kailanman isinangguni
Nakikita ang anumang mga identifier na idineklara sa iyong programa ngunit hindi kailanman ginamit,
maaaring mabigyan ng halaga o ma-access ang kanilang halaga. Mga variable sa COMMON
ay hindi kasama. Kinokontrol ng -usage=var-unused pagpipilian.

Variable itakda pero hindi kailanman ginamit
ftnchek aabisuhan ang user kapag ang isang variable ay naitalaga ng isang halaga, ngunit ang
variable ay hindi ginagamit sa programa. Kadalasan ito ay nagreresulta mula sa isang
pangangasiwa. Kinokontrol ng -usage=var-set-unused pagpipilian.

Variable ginamit bago itakda
Ang mensaheng ito ay nagpapahiwatig na ang isang identifier ay ginagamit upang kalkulahin ang isang halaga bago nito
pagpapasimula. Ang ganitong paggamit ay maaaring humantong sa isang hindi tamang halaga na nakalkula, dahil
ang paunang halaga nito ay hindi kontrolado. Kinokontrol ng -usage=var-uninitialized
pagpipilian.

Variable maaari be ginamit bago itakda
Katulad ng ginamit bago itinakda maliban doon ftnchek ay hindi matukoy ang katayuan nito
may kasiguraduhan. ftnchek Ipinapalagay na ang isang variable ay maaaring gamitin bago itakda kung ang una
ang paggamit ng variable ay nangyayari bago ang teksto ng programa sa pagtatalaga nito.
Kinokontrol ng -usage=var-uninitialized pagpipilian.

Babala: DO index is hindi kabuuan
Ang babalang ito ay ibinibigay lamang kapag ang mga hangganan ng DO ay integer, ngunit ang DO index ay hindi.
Maaari itong magpahiwatig ng kabiguan na ideklara ang index bilang isang integer. Kinokontrol ng
-truncation=real-do pagpipilian.

Babala: kabuuan kusyente ipahayag ... na-convert na sa tunay
Ang quotient ng dalawang integer ay nagreresulta sa isang resulta ng uri ng integer, kung saan ang
ang praksyonal na bahagi ay bumaba. Kung ang naturang integer expression na kinasasangkutan ng dibisyon ay
kalaunan ay na-convert sa isang tunay na uri ng data, maaaring ito ay isang tunay na uri ng dibisyon ay naging
sinadya. Kinokontrol ng -truncation=int-div-real pagpipilian.

Babala: Integer kusyente ipahayag ... ginamit in tagapagpatawad
Ang quotient ng dalawang integer ay nagreresulta sa isang resulta ng uri ng integer, kung saan ang
ang praksyonal na bahagi ay bumaba. Kung ang gayong integer na expression ay ginamit bilang isang exponent,
ito ay lubos na malamang na ang isang tunay na uri ng dibisyon ay inilaan. Kinokontrol ng
-truncation=int-div-exponent pagpipilian.

Babala: NAME hindi itakda kailan RETURN nakatagpo
Ang paraan na gumagana sa Fortran ay nagbabalik ng isang halaga ay sa pamamagitan ng pagtatalaga ng halaga sa
pangalan ng function. Ang mensaheng ito ay nagpapahiwatig na ang function ay hindi itinalaga a
halaga bago ang punto kung saan natagpuan ang isang RETURN statement. Samakatuwid ito ay
posible na ang function ay maaaring magbalik ng hindi natukoy na halaga.

Babala: Walang pigil syntax: madaling iakma laki hindi maaari be pinagsama-sama dito
Ipinagbabawal ng Fortran 77 Standard (sec. 6.2.2) ang pagsasama-sama ng mga variable ng character
na ang laki ay isang asterisk sa panaklong, maliban sa isang pahayag ng pagtatalaga.
Kinokontrol ng -f77=mixed-expr.

Babala: Walang pigil palaugnayan : makabuluhan character nakaraan 72 haligi
Ang babalang ito ay ibinigay sa ilalim ng -f77=mahabang linya pagtatakda kung ang -mga hanay mayroon ang setting
ginamit upang palakihin ang lapad ng field ng pahayag, at may kabuluhan ang isang pahayag
text ng program na lampas sa column 72. Binabalewala ng Standard Fortran ang lahat ng text sa mga column na iyon,
ngunit ang ilang mga compiler ay hindi. Kaya ang programa ay maaaring tratuhin nang iba ng
iba't ibang mga compiler.

Babala: Walang pigil palaugnayan : Pahayag Palabas of order.
ftnchek ay makakakita ng mga pahayag na wala sa pagkakasunod-sunod na tinukoy para sa ANSI
standard Fortran 77. Inilalarawan ng talahanayan 1 ang pinapayagang pagkakasunod-sunod ng mga pahayag sa
wika ni Fortran. Ang mga pahayag na wala sa ayos ay gayunpaman ay binibigyang-kahulugan ng
ftnchek, upang maiwasan ang mga ``cascade'' ng mga mensahe ng error. Ang sequence counter ay din
ibinalik upang maiwasan ang pag-uulit ng mensahe ng error para sa isang bloke ng katulad
mga pahayag. Kinokontrol ng -f77=statement-order pagpipilian.

-------------------------------------------------- ------
| | implicit
| parameter |---------------------
| | iba pang detalye
format |----------------|---------------------
at | | pahayag-function
entry | data |---------------------
| | maipapatupad
-------------------------------------------------- ------

Table 1

Babala: Posible dibisyon by wala
Ang mensaheng ito ay naka-print saanman ang paghahati ay ginawa (maliban sa paghahati ng a
pare-pareho). Gamitin ito upang makatulong na mahanap ang isang runtime division sa pamamagitan ng zero na problema. Kinokontrol
by -dibisyon pagpipilian.

Babala: tunay pinutol sa intg
ftnchek ay nakakita ng isang pahayag ng pagtatalaga na may totoong expression sa
kanan, ngunit isang integer variable sa kaliwa. Ang fractional na bahagi ng tunay na halaga
Mawawala. Kung tahasan mong i-convert ang totoong expression sa integer gamit ang
INT o NINT intrinsic function, walang babala na ipi-print. Ang isang katulad na mensahe ay
naka-print kung ang isang double precision expression ay nakatalaga sa isang solong precision
variable, atbp. Kinokontrol ng -truncation=demotion pagpipilian.

Babala: subskrip is hindi kabuuan
Dahil ang mga array subscript ay karaniwang mga integer na dami, ang paggamit ng isang non-integer
expression dito ay maaaring magpahiwatig ng isang error. Kinokontrol ng -truncation=real-subscript
pagpipilian.

Babala: Hindi kilala tunay tungkulin
Ang mensaheng ito ay nagbabala sa gumagamit na ang isang pangalan na ipinahayag sa isang INTRINSIC na pahayag ay
hindi alam sa ftnchek. Marahil ito ay isang hindi karaniwang intrinsic na function, at kaya ang
hindi magiging portable ang program. Ang function ay ituturing ng ftnchek bilang isang gumagamit-
tinukoy na function. Ang babalang ito ay hindi pinipigilan ng anumang opsyon, dahil nakakaapekto ito
ftnchekpagsusuri ng programa. Gayunpaman, kung ang intrinsic function ay nasa isa sa
ang mga sinusuportahang hanay ng hindi karaniwang intrinsics, maaari mong gamitin ang - intrinsic pagtatakda sa
maging sanhi ftnchek upang makilala ito.

LIMITASYON AT KAHALAGAAN


ftnchek tumatanggap ng pamantayang ANSI na Fortran-77 na mga programa na may ilang maliliit na limitasyon at marami
karaniwang mga extension.

Mga hangganan:
Ang mga dummy na argumento sa mga function ng pahayag ay itinuturing na tulad ng mga ordinaryong variable ng
ang programa. Ibig sabihin, ang kanilang saklaw ay ang buong subprogram, hindi lamang ang pahayag
kahulugan ng function.

Ang pagsuri sa mga pahayag ng FORMAT ay maluwag, pinahihintulutan ang mga nawawalang separator (kuwit,
atbp.) sa pagitan ng mga deskriptor ng format sa mga lugar kung saan kinakailangan sila ng Pamantayan, at
pagpayag .d mga field sa mga deskriptor na hindi dapat magkaroon ng mga ito. Nagbabala ito sa ilalim
-f77=format-edit-descr tungkol sa mga hindi karaniwang uri ng descriptor (tulad ng O), at suportado
mga extension.

Mayroong ilang mga extension ng syntactic at Fortran 90 elemento na ftnchek tumatanggap
ngunit napakakaunting pagsusuri. Halimbawa, ang paggamit ng pointer (kung ang
hindi naka-check ang hindi karaniwang syntax ng Cray o ang Fortran 90 syntax) maliban sa set
at ginamit na katayuan. Inaasahan na balang araw ay magkakaroon ng mas masusing pagsusuri
ipinatupad, ngunit sa ngayon ay dapat isaalang-alang ng user ang pagtanggap sa mga syntactic na ito
mga tampok bilang isang kaginhawaan upang paganahin ang pagsuri sa iba pang mga aspeto ng code na iyon
naglalaman ng mga ito. Tingnan ang seksyong Mga Extension para sa mga detalye tungkol sa kung ano ang mga tampok
tinanggap ngunit hindi ganap na nasuri.

Kung ang isang subprogram na ibinigay ng user ay may parehong pangalan bilang isa sa hindi karaniwang intrinsic
mga function na kinikilala ng ftnchek, dapat itong ipahayag sa isang EXTERNAL na pahayag sa
anumang gawain na humihimok nito. Kung hindi, ito ay sasailalim sa normal na pagsusuri
ibinigay sa intrinsic function. Dahil ang nonstandard intrinsics ay hindi
standard, ang EXTERNAL na pahayag na ito ay hindi kinakailangan ng Fortran 77 Standard.
Paggamit ng -intrinsic=wala setting, pagkilala sa karamihan ng hindi karaniwang intrinsics
(maliban lamang sa mga kinakailangan upang suportahan ang dobleng kumplikadong uri ng data) ay maaaring i-on
off. Tingnan ang mga listahan ng mga sinusuportahang hindi karaniwang intrinsic na function sa ilalim ng
talakayan ng - intrinsic setting sa itaas.

Extension:
Ang lahat ng mga extension na ito (maliban sa mga lower-case na character) ay bubuo ng mga babala kung
ang may kaugnayan -f77 nakatakda ang opsyon. Ang ilan sa mga extension na nakalista sa ibaba ay bahagi ng
ang Fortran-90 Standard. Ang mga ito ay ipinahiwatig ng notasyon (F90).

Ang mga tab ay pinahihintulutan, at isinalin sa mga katumbas na blangko na tumutugma sa tab
tumitigil bawat 8 column. Hindi kinikilala ng pamantayan ang mga tab. Tandaan na ang ilan
pinapayagan ng mga compiler ang mga tab, ngunit iba ang pakikitungo sa kanila. Ang paggamot na tinukoy para sa DEC
Maaaring makamit ang FORTRAN gamit ang -source=dec-tab setting na ito.

Ang mga string ay maaaring matanggal sa pamamagitan ng alinman sa mga quote mark o apostrophe. Isang pagkakasunod-sunod ng dalawa
Ang mga delimiter na character ay binibigyang-kahulugan bilang isang naka-embed na delimiter na character.
(F90)

Ang mga string ay maaaring maglaman ng UNIX-style backslash escape sequences. Magiging sila
binibigyang-kahulugan na ganito kung ang -source=unix-backslash ibinigay ang setting. Kung hindi man ang
Ang backslash na character ay ituturing bilang isang normal na karakter sa pag-print.

Ang source code ay maaaring nasa Fortran 90 na libreng format o tradisyonal na nakapirming format.
(F90)

Ang isang semicolon ay pinapayagan bilang isang statement separator. (F90)

Pinahihintulutan ang mga lower case na character, at ini-convert sa loob sa uppercase
maliban sa mga string ng character. Ang pamantayan ay tumutukoy lamang sa malalaking titik, maliban sa
mga komento at mga string. (F90)

Pinahihintulutan ang mga constant ng Hollerith, alinsunod sa Fortran 77 Standard,
apendiks C. Hindi dapat gamitin ang mga ito sa mga expression, o malito sa datatype
KARAKTER.

Ang letrang 'D' (upper o lower case) sa column 1 ay itinuturing bilang simula ng a
komento. Walang opsyon na ituring ang mga naturang linya bilang mga pahayag sa halip na mga komento.

Ang mga pahayag ay maaaring mas mahaba sa 72 mga hanay sa kondisyon na ang setting -mga hanay ay
ginagamit upang madagdagan ang limitasyon. Ayon sa pamantayan, lahat ng teksto mula sa mga hanay 73
hanggang sa 80 ay binabalewala, at walang linya na maaaring mas mahaba sa 80 mga hanay.

Maaaring mas mahaba sa anim na character ang mga variable na pangalan. Ang pamantayan ay tumutukoy sa anim bilang
ang pinakamataas. ftnchek pinahihintulutan ang mga pangalan na hanggang 31 character ang haba (F90).

Maaaring naglalaman ang mga variable na pangalan ng mga underscore at dollar sign (o iba pang hindi alpabetikong
mga character ayon sa tinukoy ng -identifier-chars opsyon). Ang mga karakter na ito ay
tinatrato ang parehong bilang ng mga titik ng alpabeto. Ang default na uri para sa mga variable na nagsisimula
sa mga karakter na ito ay TOTOO. Sa IMPLICIT na uri ng mga pahayag na tumutukoy sa isang hanay ng
character, ang dollar sign ay sumusunod sa Z at sinusundan ng underscore. (Anumang iba pang mga
ang mga character na tinukoy ng gumagamit ay itinuturing na katulad ng dollar sign.) Fortran 90
pinahihintulutan ang mga salungguhit sa mga variable na pangalan.

Ang bersyon ng UNIX ay pinahihintulutan ang pagkakaroon ng mga preprocessor na direktiba, katulad ng mga linya
nagsisimula sa pound sign (#). Ang mga ito ay itinuturing bilang mga komento, maliban sa #line
mga direktiba, na binibigyang-kahulugan, at ginagamit upang itakda ang numero ng linya at pinagmulan
pangalan ng file para sa mga babala at mensahe ng error. Tandaan na ang #include na mga direktiba ay hindi
naproseso ng ftnchek. Ang mga program na gumagamit ng mga ito para sa pagsasama ng mga source file ay dapat na
dumaan sa preprocessor bago i-input sa ftnchek. Gaya ng nabanggit sa ibaba,
ftnchek ay nagpoproseso ng KASAMA na mga pahayag, na may ibang syntax. An
opsyonal na programa, ftnpp(1L) (magagamit nang hiwalay) ay nagbibigay ng preprocessing na
maayos na pinangangasiwaan ang INCLUDE file.

Ang Fortran 90 DO ... ENDDO control structure ay pinahihintulutan. Ang CYCLE at EXIT
tinatanggap ang mga pahayag. Ang lahat ng ito ay maaaring may opsyonal na do-construct na pangalan, ngunit
ang mga pangalan ng construct ay hindi sinusuri para sa pagkakapare-pareho. (F90)

Ang Fortran 90 SELECT CASE construct ay tinatanggap. (F90)

Ang mga pangalan ng construct ay tinatanggap din sa IF, THEN, ELSE, ENDIF at SELECT CASE
mga pahayag. (F90)

Ang ACCEPT at TYPE statements (para sa terminal I/O) ay pinahihintulutan, na may pareho
syntax bilang PRINT.

Ang tinatawag na ``Cray pointer'' syntax ay pinahihintulutan. Ito ay hindi katulad ng
Fortran 90 POINTER na pahayag. Walang tunay na pagsuri sa pahayag ng iba
kaysa sa pangunahing syntax. Ang anyo ng pahayag na ito ay
POINTER (puntero, pointee) [,(puntero, pointee)]
Ang mga variable ng pointer ay itinalaga ng isang uri ng data ng INTEGER *4. Pagsusuri ng paggamit ng
ang mga variable ng pointee ay pinigilan, dahil sa pagsasagawa sila ay hindi direktang naa-access
sa pamamagitan ng mga payo.

Ang mga sumusunod na Fortran 90 pointer related syntaxes ay tinatanggap: ALLOCATABLE,
POINTER, at TARGET na mga pahayag at ang parehong mga katangian sa mga uri ng deklarasyon;
I-ALLOCATE, DEALLOCATE, at NULLIFY ang mga executable statement; takdang-aralin gamit ang pointer
=> operator; at ang mga intrinsic na function na ILAAN at KASULATAN. Maliit na semantiko
Ang pagsuri sa mga variable at pagpapatakbo ng pointer ay ginagawa nang lampas sa pangunahing hanay at ginagamit
katayuan. Halimbawa, walang pagsusuri para sa mga error gaya ng mga nakabitin na pointer,
o paggamit ng mga hindi inilalaang array.

Ang mga pahayag ay maaaring may anumang bilang ng mga linya ng pagpapatuloy. Ang Fortran 77 at Fortran
Pinapayagan ng 90 na pamantayan ang maximum na 19 sa fixed source form. Ang Fortran 90 na pamantayan
nagbibigay-daan sa maximum na 39 sa libreng source form.

Relational (paghahambing) na mga operator na binubuo ng mga bantas, katulad ng: < <= == /= > >=
ay pinapayagan. (F90)

Ang mga inline na komento, na nagsisimula sa tandang padamdam, ay pinahihintulutan. (F90)

Ang NAMELIST I/O ay suportado. Ang syntax ay pareho sa Fortran 90.

Ang mga pahayag ng FORMAT ay maaaring maglaman ng dollar sign upang ipahiwatig ang pagsupil sa karwahe-
bumalik. Ang isang integer na expression na nakapaloob sa mga angle bracket ay maaaring gamitin saanman sa a
FORMAT statement kung saan pinapayagan ng Fortran 77 Standard ang isang integer constant (maliban
para sa haba ng isang Hollerith constant), upang magbigay ng isang run-time na halaga para sa isang pag-uulit
detalye o lapad ng field.

Ang mga hindi karaniwang keyword ay pinapayagan sa mga I/O statement, na tumutugma sa mga nasa VMS
Fortran.

Ang pahayag na IMPLICIT NONE ay sinusuportahan. Ang kahulugan ng pahayag na ito ay iyon
lahat ng mga variable ay dapat na malinaw na ipinahayag ang kanilang mga uri ng data. Sa halip na i-flag ang
paglitaw ng mga naturang variable na may mga mensahe ng error sa syntax, ftnchek naghihintay hanggang sa
dulo ng module, at pagkatapos ay magpi-print ng isang listahan ng lahat ng hindi nadeklarang mga variable, tulad nito
ginagawa para sa -magpahayag opsyon. (F90)

Ang mga uri ng data na INTEGER, REAL, COMPLEX, at LOGICAL ay pinapayagang magkaroon ng opsyonal
pagtutukoy ng katumpakan sa mga deklarasyon ng uri. Halimbawa, ang REAL*8 ay nangangahulugang isang 8-byte
uri ng data ng floating point. Ang REAL*8 datatype ay hindi kinakailangang isaalang-alang
katumbas ng DOUBLE PRECISION, depende sa - laki ng salita setting. Ang Fortran 77
Ang pamantayan ay nagbibigay-daan sa isang detalye ng haba para lamang sa CHARACTER data.

ftnchek ay sumusuporta sa DOUBLE COMPLEX type specification para sa isang kumplikadong dami na
ang tunay at haka-haka na mga bahagi ay dobleng katumpakan. Mixed-mode arithmetic involving
single-precision complex na may double-precision real data, na ipinagbabawal sa ilalim ng
Standard, nagbubunga ng dobleng kumplikadong resulta.

Ang mga pinagsamang uri ng deklarasyon at data-statement-like initializer ay tinatanggap.
Ang mga ito ay may anyo ng karaniwang deklarasyon ng uri ng Fortran 77, na sinusundan ng isang slash-
delimited na listahan ng mga constant na tulad ng ginamit sa isang DATA statement. Isang halimbawa ng
ang syntax ay
INTEGER N / 100 /
Ang bastard form na ito ng pagsisimula ng deklarasyon ay hindi pinagtibay sa Fortran 90. Ang ganyan
ang mga deklarasyon ay dapat isulat gamit ang karaniwang form na inilarawan sa ibaba, na
tinanggap ni ftnchek.

May limitadong suporta para sa Fortran 90 attribute-based na uri ng mga deklarasyon. Ito
ang istilo ng deklarasyon ay nakikilala sa pamamagitan ng paggamit ng dobleng tutuldok (::) sa pagitan ng
listahan ng mga katangian at ang listahan ng mga ipinahayag na variable. Ang mga tampok na sinusuportahan ay maaaring
maging sapat para sa mga baguhang programmer, ngunit hindi pa sapat para sa mga propesyonal na
kalidad ng Fortran 90 na mga programa. Umaasa akong magdagdag ng suporta para sa higit pang mga tampok sa hinaharap
naglalabas. Inaanyayahan ko ang mga boluntaryo na tumulong sa gawaing ito. Tingnan ang ToDo file sa
pamamahagi ng source code para sa mga detalye. Ang mga katangiang kasalukuyang tinatanggap, bukod pa
lahat ng karaniwang uri ng data, ay DIMENSION, EXTERNAL, INTRINSIC, PARAMETER, at SAVE.
Ang bagong anyo ng deklarasyon ay nagpapahintulot din sa pagtatalaga ng mga halaga sa mga variable
ipinahayag. Sa kasalukuyan, ang (LEN=halaga) paraan ng pagtukoy ng mga haba ng character ay din
tinanggap. Mga pagtutukoy ng uri, gamit ang (KIND=halaga) ay na-parse ngunit hindi
naproseso: lahat ng uri ay itinuturing bilang default na uri. Gayundin, mayroong maliit na pag-check
ng mga deklarasyong ito na lampas sa pangunahing syntax.

Maraming karaniwang nakikitang hindi karaniwang intrinsic na function ang ibinibigay. Tingnan ang
talakayan ng - intrinsic para sa isang listahan ng mga function at kung paano kontrolin kung alin ang mga ito
kinikilala

Ang pagsisiyasat ng argumento ay hindi mahigpit para sa mga hindi karaniwang intrinsic na kumukuha ng mga array o
magkahalong uri ng argumento.

ftnchek pinahihintulutan ang INCLUDE na pahayag, na nagiging sanhi ng pagsasama ng teksto ng
ibinigay na file. Ang syntax ay
ISAMA 'filename'
Ito ay katugma sa Fortran 90. Kung ang -source=vms-include ibinigay ang pagpipilian,
ftnchek sumusunod sa mga kombensiyon ng VMS tungkol sa pahayag na ito: ipinapalagay nito a
default na extension ng .para sa kung walang ibinigay na extension ng filename, at pinapayagan ang
qualifier /[NO]LIST kasunod ng filename, upang kontrolin ang listahan ng mga kasama
file. Walang suporta para sa pagsasama ng mga module ng teksto ng VMS.

Sa diagnostic output na may kaugnayan sa mga item na nakapaloob sa isama ang mga file, ang lokasyon ng
ang error ay tinukoy ng parehong lokasyon nito sa isama ang file at ang lokasyon sa
ang parent file kung saan kasama ang file.

ftnchek tumatanggap ng mga pahayag ng PARAMETER na walang panaklong. Ang mga ito ay babalaan
tungkol sa kung ang -f77=param-noparen ibinibigay ang bandila.

ftnchek tumatanggap ng mga kahulugan ng PARAMETER na kinabibilangan ng mga intrinsic na function at
exponentiation ng isang non-integer exponent. Ang parehong mga kasong ito ay ipinagbabawal ng
ang Fortran 77 Standard, at babalaan tungkol sa kung ang -f77=param-intrinsic bandila
ay ibinigay. Kung ang isang intrinsic na value ng function ay isang compile-time integer constant,
ftnchek susuriin ito. Ito ay nagbibigay-daan sa mas mahusay na pagsuri kung ang parameter ay ginagamit sa
pagdedeklara ng mga laki ng array. Pinapayagan ng Fortran 90 ang mga intrinsic na function sa PARAMETER
mga kahulugan.

Ang mga intrinsic na function na sinusuri ay:

ABS IABS DIM IDIM MAX
MAX0 MIN MIN0 MOD SIGN
ISIGN LEN ICHAR INDEX

Ang mga function ng integer argument ay sinusuri lamang kung ang mga argumento ay integer
pare-pareho ang mga expression. (Maaaring may kasamang integer constant, parameter, at
sinusuri ang mga intrinsic function.) Ang function na LEN ay sinusuri kung ang argumento nito ay
isang expression na kinasasangkutan lamang ng character constants at variable na ang haba ay hindi
adjustable. Ang mga function na ICHAR at INDEX ay sinusuri lamang kung ang mga argumento ay
mga pare-pareho ng karakter. ftnchek nagbibigay ng babala kung kailangan nito ng halaga ng ilan
intrinsic function na hindi nasusuri.

BAGONG TAMPOK


Narito ang mga pagbabago mula sa Bersyon 3.2 hanggang Bersyon 3.3:

1. Muling isinulat ang front-end para sa walang limitasyong lookahead, na inaalis ang matagal nang bug
na nagdulot ng maling interpretasyon ng mga pahayag na ang kalabuan ay hindi nalutas sa
ang unang linya.

2. Ang -mkhtml ang opsyon ay magagamit na ngayon sa bersyon ng MS-DOS.

3. Nagdagdag ng suporta para sa Fortran 90 pointer related syntax: ALLOCATE, DEALLOCATE, at NULLIFY
mga pahayag; ang ALLOCATABLE, POINTER at TARGET na mga katangian sa mga uri ng deklarasyon; ang
operator ng pagtatalaga ng pointer => at mga intrinsic na pag-andar na ILAAN at KASULATAN; at
deferred-shape array declarations. Sa kasalukuyan ay tinatanggap ang mga bagong feature na ito ng syntax
ngunit hindi nasuri ng maayos. Ang tampok na ito ay idinagdag ni Robert Landrito.

4. Ang -f77 at -f90 puntero opsyon sa pagkontrol ng mga babala tungkol sa ``Cray pointer'' ay naging
pinalitan ng pangalan sa cray-pointer. ang -f77=pointer ang opsyon ngayon sa halip ay kumokontrol sa mga babala para sa
code na naglalaman ng Fortran 90 pointer-related syntax.

5. Muling ipinatupad -mkhtml pagpoproseso kaya mas mabilis na ito ngayon sa mga source file na naglalaman ng
maraming gawain.

6. Binago ang pag-aayos ng direktoryo ng pagsubok upang hindi na kailangang baguhin
ang pamamahagi upang patakbuhin ang test suite (check.bat) sa ilalim ng MS-DOS.

7. Inayos ang bug sa pagbabasa ng mga setting ng numero sa command line kapag pinaikli ang pangalan ng setting
3 character.

8. Inayos ang bug na nagdudulot ng huwad na babala para sa isang GOTO na tumutukoy sa isang may label na pahayag na END
kapag ang pahayag bago ang WAKAS ay isang FORMAT.

9. Bagong bandila -f77=character upang kontrolin ang mga babala tungkol sa mga extension sa Fortran 77
uri ng data ng character. Kasama sa bagong flag na ito ang suporta para sa mga panuntunan ng Fortran 90 para sa
mga deklarasyon ng variable ng character na nagsusuri sa zero o negatibong haba, na nagpapahintulot
ang mga ito at tinatrato ang mga negatibong halaga ng haba bilang zero.

10. Inayos ang menor de edad na bug sa pag-print ng mga komento at mga blangkong linya kasunod ng huling pahayag ng END
in -Lista mode.

Gamitin ang ftnchek online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad