EnglishFrenchSpanish

Jalankan server | Ubuntu > | Fedora > |


favorit OnWorks

ftnchek - Online di Cloud

Jalankan ftnchek di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah ftnchek yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


ftnchek - pemeriksa program Fortran 77

RINGKASAN


ftnchek [ -argumen[=daftar] ] [ -Himpunan[=daftar] ]
[ -[tidak]singkat ] [ -calltree[=daftar] ] [ -[tidak]memeriksa ]
[ -kolom[=num] ] [ -umum[=daftar] ]
[ -[tidak]referensi silang[=daftar] ] [ -[tidak]menyatakan ]
[ -[tidak]divisi ] [ -kesalahan[=num] ] [ -[tidak]luar ]
[ -[tidak]f77[=daftar] ] [ -[tidak]f90[=daftar] ]
[ -[tidak]f95[=daftar] ] [ -[tidak]membantu ]
[ -[tidak]pengidentifikasi-karakter[=daftar] ] [ -termasuk=str ]
[ -hakiki[=daftar] ] [ -[tidak]perpustakaan ] [ -[tidak]daftar ]
[ -dibuatcls[=daftar] ] [ -mkhtml[=daftar] ]
[ -[tidak]pemula ] [ -keluaran=str ]
[ -ukuran pointer[=num] ] [ -[tidak]Mudah dibawa[=daftar] ]
[ -[tidak]cukup[=daftar] ] [ -proyek[=daftar] ]
[ -[tidak]murni ] [ -[tidak]tenang ] [ -[tidak]referensi ]
[ -[tidak]sumber daya ] [ -[tidak]enamchar ] [ -[tidak]jenis ]
[ -source[=daftar] ] [ Gaya[=daftar] ] [ -[tidak]simbol ]
[ -[tidak]pemotongan[=daftar] ] [ -penggunaan[=daftar] ]
[ -[tidak]vcg ] [ -[tidak]versi ] [ -[tidak]volatil ]
[ -ukuran kata[=num] ] [ -membungkus[=num] ] [ arsip ... ]

DESKRIPSI


ftnchek (kependekan dari Fortran checker) dirancang untuk mendeteksi kesalahan tertentu dalam Fortran
program yang biasanya tidak dilakukan oleh kompiler. ftnchek tidak terutama dimaksudkan untuk mendeteksi
kesalahan sintaks. Tujuannya adalah untuk membantu pengguna dalam menemukan kesalahan semantik. semantik
kesalahan adalah legal dalam bahasa Fortran tetapi boros atau dapat menyebabkan kesalahan
operasi. Misalnya, variabel yang tidak pernah digunakan dapat menunjukkan beberapa penghilangan dalam
program; variabel yang tidak diinisialisasi mengandung sampah yang dapat menyebabkan hasil yang salah menjadi
dihitung; dan variabel yang tidak dideklarasikan mungkin tidak memiliki tipe yang diinginkan. ftnchek
dimaksudkan untuk membantu pengguna dalam men-debug program Fortran mereka. Ini tidak dimaksudkan
untuk menangkap semua kesalahan sintaks. Ini adalah fungsi dari kompiler. Sebelum menggunakan
ftnchek, pengguna harus memverifikasi bahwa program dikompilasi dengan benar.

Dokumen ini pertama-tama merangkum cara memanggil ftnchek. Bagian itu harus dibaca sebelumnya
mulai menggunakan ftnchek. Bagian selanjutnya menjelaskan ftnchek's pilihan secara lebih rinci, berikan
contoh penggunaannya, dan menjelaskan bagaimana menginterpretasikan outputnya. Bagian terakhir
sebutkan batasan dan bug yang diketahui di ftnchek.

MEMINTA FTNCHEK


ftnchek dipanggil melalui perintah dalam bentuk:

$ ftnchek [-option -option ...] nama file [nama file ...]

Tanda kurung menunjukkan sesuatu yang opsional. Tanda kurung itu sendiri tidak
benar-benar diketik. Opsi di sini adalah sakelar atau pengaturan baris perintah, yang mengontrol
pengoperasian program dan jumlah informasi yang akan dicetak. Jika tidak
ditentukan, tindakan default adalah mencetak pesan kesalahan, peringatan, dan
pesan informasi, tetapi bukan daftar program atau tabel simbol.

Setiap opsi dimulai dengan karakter '-'. (Pada sistem VAX/VMS atau MS-DOS, Anda dapat menggunakan
baik '/' atau '-'.) Demi kesesuaian dengan konvensi yang semakin umum,
opsi juga dapat dimulai dengan '--'. Opsi dijelaskan lebih panjang di bagian berikutnya
bagian.

ftnchek opsi terbagi dalam dua kategori: sakelar, yang benar atau salah, dan
pengaturan, yang memiliki nilai numerik atau string. Nama sakelar diawali dengan 'tidak'
atau 'tidak-' untuk mematikannya: misalnya -tidak murni akan mematikan peringatan tentang fungsi tidak murni.
Awalan 'tidak' juga dapat digunakan dengan pengaturan numerik, yang memiliki efek mematikan
peringatan yang sesuai. Pengaturan yang mengontrol daftar peringatan memiliki sintaks khusus
didiskusikan di bawah. Hanya 3 karakter pertama dari nama opsi (tidak termasuk '-')
perlu disediakan. Tanda titik dua dapat digunakan sebagai pengganti tanda sama dengan untuk numerik atau string
menetapkan tugas; namun, kami hanya menampilkan formulir tanda sama dengan di bawah ini.

Sakelar dan pengaturan yang ftnchek saat ini diakui tercantum di bawah ini. Untuk setiap
opsi, defaultnya adalah nilai yang digunakan jika opsi tidak ditentukan secara eksplisit, sedangkan
turn-on adalah nilai yang digunakan jika opsi diberikan tanpa memberinya nilai.

-argumen=daftar
Kontrol peringatan tentang jenis subprogram dan ketidakcocokan argumen. Default = nyalakan
= semua.

-array=daftar
Kontrol peringatan dalam memeriksa argumen array subprogram. Default = nyalakan =
semua.

-singkat Gunakan format yang lebih pendek untuk beberapa pesan kesalahan. Standar = tidak.

-pohon panggilan=daftar
Menghasilkan hierarki panggilan subprogram dalam salah satu dari 3 format: pohon panggilan teks, panggilan siapa-
siapa dan VCG. Default = tidak ada, nyalakan = pohon, pangkas, sortir.

Jika -mkhtml opsi dipanggil serta tree adalah opsi calltree yang diterapkan, sebuah file
bernama CallTree.html, akan diproduksi menggambarkan pohon dalam format HTML.

-memeriksa Lakukan pengecekan. Standar = ya.

-kolom=num
Setel panjang garis maksimum ke num kolom. (Di luar ini diabaikan.) Turn-on = max =
132. Standar = 72.

-umum=daftar
Tetapkan tingkat keketatan dalam memeriksa blok UMUM. Default = nyalakan = semua.

-crossref=daftar
Cetak daftar referensi silang dari panggilan subprogram, penggunaan label, dan/atau blok UMUM
menggunakan. Standar = tidak ada.

-menyatakan
Cetak daftar semua pengenal yang tipe datanya tidak dideklarasikan secara eksplisit. Bawaan
= tidak.

-divisi
Peringatkan di mana pun pembagian dilakukan (kecuali pembagian dengan konstanta). Standar = tidak.

-kesalahan=num
Tetapkan jumlah maksimum pesan kesalahan per kaskade. Default = nyalakan = 3.

-eksternal
Peringatkan jika subprogram eksternal yang dipanggil tidak pernah ditentukan. Standar = ya.

-f77=daftar
Kontrol peringatan khusus tentang ekstensi yang didukung ke Fortran 77 Standard.
Default = tidak ada, nyalakan = semua.

-f90=daftar
Kontrol peringatan khusus tentang ekstensi yang didukung ke Fortran 77 Standard
yang tidak diadopsi sebagai bagian dari Standar Fortran 90. Default = tidak ada, nyalakan
= semua.

-f95=daftar
Kontrol peringatan khusus tentang fitur standar Fortran 77 yang dihapus dari
Standar Fortran 95. Default = tidak ada, nyalakan = semua.

-bantu Cetak ringkasan perintah. Standar = tidak.

-identifier-chars=daftar
Tentukan karakter non-alfanumerik yang dapat digunakan dalam pengidentifikasi. Standar =
turn-on = tanda dolar dan garis bawah.

-termasuk=path
Tentukan direktori untuk mencari file TERMASUK sebelum mencari di seluruh sistem
direktori. Kumulatif. Default = nyalakan = tidak ada.

-intrinsik=daftar
Kontrol pengobatan fungsi intrinsik tidak standar. Default = semua kecuali vms untuk
Versi Unix, semua kecuali unix untuk versi VMS, semua kecuali unix serta vms untuk yang lain
versi. Hidupkan = semua.

-Perpustakaan
Mulai mode perpustakaan: jangan peringatkan tentang subprogram dalam file yang didefinisikan tetapi
tidak pernah dipakai. Standar = tidak.

-daftar Cetak daftar sumber program. Standar = tidak.

-madecls=daftar
Siapkan file deklarasi. Itu daftar menentukan opsi untuk format ini
mengajukan. Default = tidak ada, turn-on = deklarasi.

-mkhtml=daftar
Buat file dokumen HTML individual dari analisis ftnchek dan komentar kode.
Biasanya Anda juga ingin menentukan -panggilan=pohon untuk membuat file HTML root
CallTree.html. Default = tidak ada, turn-on = dokumen.

-pemula
Berikan output yang cocok untuk pengguna pemula. Standar = ya.

-keluaran=nama file
Kirim output ke file yang diberikan. Default dan turn-on mengirimkan output ke layar.
(Ekstensi nama file default adalah .lis).

-ukuran pointer=num
Atur ukuran variabel ``Cray pointer'' ke num byte. Min = 1, maks = 16.
Default = nyalakan = 4

-portabilitas=daftar
Peringatkan tentang penggunaan non-portabel. Default = tidak ada, nyalakan = semua.

-cantik=daftar
Berikan peringatan untuk kemungkinan munculnya kode sumber yang menyesatkan. Default = putar-
pada = semua.

-proyek=daftar
Buat file proyek (lihat penjelasan di bawah). Standar = tidak.

-murni Asumsikan fungsinya murni, yaitu tidak memiliki efek samping. Standar = ya.

-diam Menghasilkan lebih sedikit keluaran verbose. Standar = tidak.

-referensi
Cetak tabel subprogram yang dirujuk oleh setiap subprogram. Standar = tidak.

-sumber daya
Cetak jumlah sumber daya yang digunakan dalam menganalisis program. Standar = tidak.

-sixchar
Buat daftar nama variabel yang bentrok dengan panjang 6 karakter. Standar = tidak.

-menyortir Cetak daftar subprogram yang diurutkan dalam urutan prasyarat. Standar = tidak.

-sumber=daftar
Pilih opsi pemformatan sumber: formulir tetap atau gratis, format tab DEC Fortran
baris, pernyataan INCLUDE gaya VMS, urutan escape backslash gaya UNIX, dan
pengetikan parameter secara implisit. Default = tidak ada, nyalakan = semua.

-gaya=daftar
Menghasilkan peringatan ekstra pilih-pilih tentang pemrograman usang atau kuno
konstruksi. Default = tidak ada, nyalakan = semua.

-symtab
Cetak tabel simbol dan tabel label untuk setiap subprogram. Standar = tidak.

-pemotongan=daftar
Periksa kemungkinan hilangnya akurasi dengan pemotongan. Default = nyalakan = semua.

-penggunaan=daftar
Kontrol peringatan tentang variabel yang tidak digunakan atau tidak diinisialisasi, blok umum, dll.
Default = nyalakan = semua.

-vcg Menghasilkan format VCG dari grafik panggilan.

-versi
Cetak nomor versi. Standar = tidak.

-tidak stabil
Asumsikan blok COMMON kehilangan definisi antara aktivasi. Standar = tidak. (Usang.
penggunaan -umum = mudah menguap sebagai gantinya.)

-ukuran kata=num
Atur ukuran kata default untuk jumlah numerik menjadi num byte. Default = nyalakan =
4 byte.

-bungkus =num
Setel kolom keluaran untuk membungkus pesan kesalahan panjang dan peringatan ke yang berikutnya
garis. Jika diatur ke 0, matikan pembungkus. Default = nyalakan = 79.

Jika lebih dari satu opsi digunakan, opsi tersebut harus dipisahkan dengan spasi kosong, kecuali pada
sistem seperti VMS di mana opsi dimulai dengan garis miring ( / ). Tidak ada ruang kosong yang boleh ditempatkan
di sekitar tanda sama dengan ( = ) dalam pengaturan. ftnchek "?" akan menghasilkan ringkasan perintah
daftar semua opsi dan pengaturan.

Untuk pengaturan yang mengambil daftar kata kunci, yaitu -argumen, -Himpunan, -calltree, -umum,
-crossref, -f77, -f90, -f95, -hakiki, -dibuatcls, -mkhtml, -portabilitas, -cantik,
-proyek, -source, Gaya, -pemotongan, dan -penggunaan, daftar terdiri dari kata kunci
dipisahkan dengan koma atau titik dua. Jika daftar kata kunci dihilangkan, efeknya adalah untuk mengatur
opsi untuk nilai pengaktifannya (sama seperti ``semua'' dalam banyak kasus). Juga, jika daftarnya adalah
dihilangkan, nama pengaturan dapat diawali dengan tidak or tidak- untuk mematikan semua opsi itu
kontrol. Sebagai contoh, -f77 menyalakan semua peringatan tentang konstruksi tidak standar, sementara
-nof77 mematikan mereka semua. Tiga kata kunci khusus adalah:

membantu Cetak semua kata kunci opsi yang dikontrol oleh pengaturan, dengan singkat
penjelasan tentang maknanya. Kata kunci ini tidak dapat diberikan dalam daftar dengan yang lain
kata kunci.

semua Setel semua opsi. Ini mengaktifkan semua opsi yang dikontrol oleh pengaturan.

tak satupun Hapus semua opsi. Ini mematikan semua opsi yang dikendalikan oleh pengaturan.

Ketiga kata kunci khusus ini harus diberikan secara lengkap. Untuk semua kata kunci lainnya, hanya sebanyak
huruf kata kunci yang diperlukan untuk mengidentifikasinya secara jelas perlu diberikan, atau a
pola wildcard dapat digunakan. Menyertakan kata kunci dalam daftar ternyata yang sesuai
opsi aktif. Sebagai contoh, -f77=intrinsik hanya akan mengaktifkan peringatan tentang penggunaan
fungsi intrinsik yang tidak standar. Awalan kata kunci dengan tidak- mematikan opsinya. Untuk
contoh, -cantik=tidak ada antrean panjang mematikan peringatan tentang garis yang melebihi 72 kolom di
panjang sambil membiarkan semua peringatan lain tentang penampilan yang menyesatkan berlaku. Jika sebuah
pengaturan memiliki default tak satupun, Anda dapat mengaktifkan semua opsi kecuali satu atau dua dengan menggunakan semua
pertama. Sebagai contoh, -f77=semua, tidak termasuk mengaktifkan peringatan tentang semua ekstensi tidak standar
kecuali pernyataan TERMASUK. Jika pengaturan memiliki default semua, Anda dapat mematikan semua peringatan
kecuali satu atau dua dengan menggunakan tak satupun pertama. Sebagai contoh, -pemotongan = tidak ada, penurunan pangkat akan berubah
menonaktifkan semua peringatan terkait presisi kecuali tentang penurunan pangkat. Pola wildcard mengandung
asterisk untuk mewakili string karakter apa pun. Jika pola wildcard digunakan, semua
peringatan yang cocok akan terpengaruh. Jika tidak- diawali dengan pola, semua pencocokan
peringatan dimatikan, jika tidak semuanya dihidupkan. Panjang minimum yang tidak ambigu
aturan tidak berlaku untuk pencocokan karakter pengganti. Misalnya, gunakan -penggunaan=tidak-*var* mematikan
semua peringatan yang berkaitan dengan penggunaan variabel (baik lokal maupun umum). (Pengguna Unix mungkin perlu
kutip opsi apa pun yang mengandung wildcard untuk mencegah Shell mencoba
perluas.) Karakter pengganti hanya dikenali dalam daftar kata kunci peringatan, bukan di atas-
pilihan tingkat itu sendiri.

Ketika ftnchek dimulai, ia mencari variabel lingkungan dan juga untuk preferensi
mengajukan. Opsi apa pun yang ditentukan di lingkungan atau di file preferensi digunakan sebagai
default menggantikan default bawaan. Mereka ditunggangi oleh baris perintah apa pun
pilihan. Lihat bagian tentang mengubah default untuk detail tentang lingkungan
pilihan dan file preferensi.

Saat memberi nama file input, ekstensi bersifat opsional. Jika tidak diberikan perpanjangan,
ftnchek pertama-tama akan mencari file proyek dengan ekstensi .prj, dan akan menggunakannya jika
ada. Jika tidak, maka ftnchek akan mencari file sumber Fortran dengan ekstensi .untuk
untuk sistem VMS, .f untuk sistem UNIX. Lebih dari satu nama file dapat diberikan kepada ftnchek,
dan itu akan memproses modul di semua file seolah-olah mereka berada dalam satu file.

Wildcard diperbolehkan dalam spesifikasi nama file pada baris perintah untuk VMS
dan versi MS-DOS, seperti juga tentu saja di bawah UNIX dan sistem lain yang berfungsi
ekspansi wildcard di prosesor perintah.

Jika tidak ada nama file yang diberikan, ftnchek akan membaca input dari input standar.

PILIHAN


Bagian ini memberikan diskusi yang lebih rinci tentang ftnchek opsi baris perintah. Pilihan
dan nama file dapat diselingi pada baris perintah. Sebagian besar opsi bersifat posisional: masing-masing
opsi tetap berlaku dari titik itu ditemui sampai ditimpa oleh a
nanti berubah. Jadi misalnya, daftar mungkin disembunyikan untuk beberapa file dan tidak untuk
yang lain. Pengecualian adalah: the -hakiki, -ukuran pointer, dan -ukuran kata pengaturan, yang
tidak dapat diubah setelah pemrosesan file input dimulai; itu -argumen, -Himpunan,
-calltree, -umum, -crossref, -eksternal, -referensi, -sumber daya, -menyortir, -vcg, dan -tidak stabil
opsi, di mana tindakan hanya bergantung pada nilai opsi setelah pemrosesan
file masukan selesai; dan -termasuk pengaturan, yang bersifat kumulatif.

Nama opsi dalam daftar berikut ini dalam urutan abjad.

-argumen=daftar
Mengontrol peringatan tentang ketidakcocokan antara argumen subprogram aktual dan dummy,
dan juga tentang ketidaksesuaian antara tipe subprogram yang diharapkan dan yang sebenarnya. (sebenarnya
argumen adalah argumen yang diteruskan ke subprogram oleh pemanggil; argumen dummy adalah
argumen yang diterima oleh subprogram.) Secara default, semua peringatan diaktifkan.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Karena semua ini
peringatan diaktifkan secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan
peringatan tertentu. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan tentang argumen, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar
semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan, -argumen
adalah setara dengan -argumen=semua, dan -noargumen adalah setara dengan -argumen=tidak ada.
Kata kunci peringatan dengan artinya adalah sebagai berikut:

keteraturan:
memperingatkan tentang penggunaan argumen yang tidak konsisten yang merupakan array. Peringatan ini dapat
dikendalikan lebih lanjut oleh -Himpunan pilihan.

mengetik:
memperingatkan tentang argumen dummy dari tipe data yang berbeda dari argumen yang sebenarnya.

jenis fungsi:
peringatkan jika pemanggilan mengasumsikan nilai pengembalian fungsi adalah tipe yang berbeda
daripada yang sebenarnya. Juga memperingatkan jika suatu fungsi dipanggil sebagai subrutin, atau
dan sebaliknya.

jumlah:
memperingatkan tentang menjalankan subprogram dengan jumlah argumen yang berbeda dari
subprogram mengharapkan.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari ini
pengaturan juga diterima: the daftar diganti dengan angka dari 0 sampai 3. Nilai
0 mematikan semua peringatan, 1 hanya menyala jumlah, 2 nyala semua kecuali jumlah,
dan 3 mengaktifkan semua peringatan.

Pengaturan ini tidak berlaku untuk memeriksa pemanggilan fungsi intrinsik atau
fungsi pernyataan, yang hanya dapat dimatikan oleh -nocheck pilihan.

Lihat juga: -Himpunan, -Perpustakaan, -penggunaan.

-array=daftar
Mengontrol tingkat keketatan dalam memeriksa kesepakatan antara aktual dan dummy
argumen subprogram yang berupa array. Peringatan yang dikendalikan oleh pengaturan ini adalah
untuk konstruksi yang mungkin secara sah digunakan oleh programmer yang berpengetahuan luas,
tapi itu sering menunjukkan kesalahan pemrograman. Secara default, semua peringatan diaktifkan
pada.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Karena semua ini
peringatan diaktifkan secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan
peringatan tertentu. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan tentang argumen array, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak
daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan,
-Himpunan adalah setara dengan -array=semua, dan -noarray adalah setara dengan -array=tidak ada. itu
kata kunci peringatan dengan artinya adalah sebagai berikut:

ukuran:
peringatkan jika argumennya berbeda dalam jumlah dimensinya, atau jika yang sebenarnya
argumen adalah elemen array sedangkan argumen dummy adalah seluruh array.

ukuran:
memperingatkan jika kedua argumen adalah array, tetapi mereka berbeda dalam jumlah elemen.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari ini
pengaturan juga diterima: the daftar diganti dengan angka dari 0 sampai 3. Nilai
0 mematikan semua peringatan, 1 hanya menyala ukuran, hanya 2 nyala ukuran, dan
3 mengaktifkan semua peringatan.

Catatan: Peringatan selalu diberikan terlepas dari pengaturan ini jika argumen yang sebenarnya
adalah array sedangkan argumen dummy adalah variabel skalar, atau jika yang sebenarnya
argumen adalah variabel skalar atau ekspresi sedangkan argumen dummy adalah array.
Kasus-kasus ini jarang disengaja. (Untuk mematikan bahkan peringatan ini, gunakan
-argumen=tidak ada susunan.) Tidak ada peringatan yang diberikan jika argumen sebenarnya adalah
elemen array sedangkan argumen dummy adalah variabel skalar. Berdimensi variabel
array dan array berdimensi dengan 1 atau tanda bintang cocok dengan sejumlah array
elemen. Tidak ada pemeriksaan apakah array multi-dimensi setuju dalam ukurannya
masing-masing dimensi secara terpisah.

Lihat juga: -argumen, -Perpustakaan, -penggunaan.

-singkat
Memilih format yang lebih pendek untuk beberapa pesan peringatan. Saat ini, satu-satunya peringatan
dikendalikan oleh bendera ini adalah mereka yang dicetak pada akhir pemrosesan masing-masing
subprogram. Ini termasuk peringatan tentang variabel yang disetel tetapi tidak digunakan atau
digunakan sebelum ditetapkan, nama variabel yang tidak sesuai dengan standar Fortran 77,
dll. (Peringatan ini dapat diredam sepenuhnya tergantung pada flag lain, seperti
itu -penggunaan or -f77 flags.) Dalam format default, setiap variabel terdaftar di a
baris terpisah, bersama dengan nomor baris tempat variabel dideklarasikan, disetel atau
digunakan, sesuai dengan sifat peringatan. Format yang lebih singkat hanya mencantumkan semua
variabel yang peringatannya berlaku, dengan hingga 4 variabel per baris.

Lihat juga: -diam.

-pohon panggilan=daftar
Global ftnchek untuk mencetak struktur panggilan dari program lengkap.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada dua yang spesial
kata kunci: tak satupun untuk mematikan semua opsi, dan membantu untuk mencetak daftar semua
kata kunci dengan penjelasan singkat masing-masing. (Kata kunci semua menyalakan semua
opsi, tetapi biasanya tidak digunakan karena hanya satu format yang harus
ditentukan.) Jika daftar dihilangkan, -calltree adalah setara dengan -calltree=pohon, dan
-nocalltree adalah setara dengan -calltree=tidak ada. Secara default tidak ada grafik panggilan yang dicetak.

Jika opsi -mkhtml dipanggil serta tree adalah opsi calltree yang diterapkan, sebuah file
bernama CallTree.html, juga akan diproduksi menggambarkan pohon dalam format HTML. Ini
file berguna sebagai titik awal untuk menelusuri file HTML yang menjelaskan masing-masing
komponen program.

Kata kunci yang mengontrol format yang digunakan adalah sebagai berikut:

pohon:
menghasilkan grafik panggilan dalam format pohon.

referensi:
menghasilkan grafik panggilan dalam format siapa-panggilan-siapa (sama seperti -referensi mengalihkan).

vcg:
menghasilkan grafik panggilan dalam format VCG (sama seperti -vcg mengalihkan).

Hanya satu format pohon, referensi, atau vcg dapat ditentukan.

Opsi kontrol kata kunci berikut memengaruhi output:

memangkas:
memangkas subpohon berulang (hanya berlaku dengan pohon). Ini defaultnya.

jenis:
mengurutkan anak-anak dari setiap rutinitas ke dalam urutan abjad. Ini adalah default.

Lihat pembahasannya -referensi serta -vcg bendera untuk detail tentang ini
format.

Untuk pohon format, Grafik panggilan dicetak mulai dari program utama,
yang tercantum pada baris pertama di margin kiri. Kemudian pada baris berikut,
setiap rutin yang dipanggil oleh program utama terdaftar, menjorok beberapa spasi, diikuti
oleh subpohon mulai dari rutinitas itu.

Dalam mode default, jika sebuah rutin dipanggil oleh lebih dari satu rutinitas lainnya, itu
subpohon panggilan hanya dicetak saat pertama kali ditemui Kemudian panggilan hanya memberi
nama rutin dan pemberitahuan ``(lihat di atas)''. Agar subpohon dicetak untuk
setiap kemunculan rutin, gunakan opsi tanpa-pangkas.

Perhatikan bahwa pohon panggilan tidak akan lengkap jika salah satu file input adalah proyek
file yang berisi lebih dari satu modul yang dibuat di -Perpustakaan mode. Lihat
pembahasan file proyek di bawah ini.

Poin teknis: Setiap daftar rutinitas yang dipanggil oleh rutinitas tertentu dicetak di
urutan abjad kecuali tidak memilah pilihan diberikan. Jika beberapa program utama
ditemukan, pohon panggilan masing-masing dicetak secara terpisah. Jika tidak ada program utama adalah
ditemukan, laporan untuk efek itu dicetak, dan pohon panggilan dari tingkat atas mana pun
rutinitas non-perpustakaan dicetak. Bendera ini hanya mengontrol pencetakan panggilan
pohon: ftnchek membangun pohon panggilan dalam hal apapun karena digunakan untuk menentukan
modul perpustakaan mana yang akan diperiksa silang. Lihat pembahasannya -Perpustakaan
bendera.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari ini
pengaturan juga diterima: the daftar diganti dengan angka dari 0 hingga 15. Ini
bilangan dibentuk dari 1 untuk pohon format, 2 untuk referensi format, atau 3 untuk vcg
format, ditambah 4 untuk tanpa-pangkas, dan 8 untuk tidak memilah.

Lihat juga: -crossref, -Perpustakaan, -referensi, -menyortir, -symtab, -vcg.

-memeriksa
Sakelar ini disediakan agar kesalahan dan pesan peringatan dapat dimatikan ketika
ftnchek digunakan untuk tujuan selain menemukan bug, seperti membuat deklarasi
atau mencetak pohon panggilan. Ini adalah posisional, jadi setelah mematikan semua centang,
pemeriksaan yang dipilih dapat diaktifkan kembali. Efek dari -nocheck adalah untuk menempatkan semua
sakelar, pengaturan numerik, dan pengaturan yang mengontrol daftar peringatan ke
nilai turn-off, seolah-olah semuanya telah ditentukan dengan awalan -no. Sakelar
dan pengaturan yang menentukan opsi dan mode operasi, daripada mengontrol
peringatan, tidak terpengaruh. Ini adalah -kolom, -crossref, -termasuk, -hakiki,
-Perpustakaan, -daftar, -dibuatcls, -pemula, -keluaran, -ukuran pointer, -proyek, -diam,
-referensi, -sumber daya, -menyortir, -source, -symtab, -vcg, -versi, -ukuran kata, dan
-membungkus. Standar = ya.

Kesalahan penguraian (kesalahan sintaks karena pernyataan yang tidak dikenal atau salah format) tidak
ditekan oleh sakelar ini, karena hasilnya mungkin salah jika ftnchek tidak punya
mengurai program dengan benar.

Ada beberapa kesalahan lain-lain dan pesan peringatan yang tidak dikendalikan oleh
sakelar lainnya, sehingga hanya dapat dimatikan dengan sakelar ini. Perhatikan bahwa menggunakan
-memeriksa berikut -nocheck hanya memiliki efek mengubah peringatan khusus ini
kembali, dan tidak mengembalikan semua cek yang dimatikan. Peringatan ini adalah:

o Modul tidak berisi pernyataan yang dapat dieksekusi.

o Dalam bentuk sumber bebas, ruang yang hilang di mana ruang diperlukan (misalnya antara a
kata kunci dan pengidentifikasi) atau ruang yang ada di mana tidak ada yang diizinkan (mis
pengenal).

o Spesifikasi panjang nol atau negatif dalam deklarasi tipe data formulir
ketik * len.

o Operan tidak valid dalam sebuah ekspresi.

o Array ditugaskan ke skalar.

o Ketik ketidakcocokan antara indeks DO dan batas.

o Blok umum yang tidak ditentukan dideklarasikan dalam pernyataan SAVE.

o Fungsi intrinsik dideklarasikan secara eksplisit dengan tipe yang tidak kompatibel.

o Fungsi intrinsik yang tidak diketahui secara eksplisit dideklarasikan dalam pernyataan INTRINSIC.

o Fungsi intrinsik yang dilewatkan sebagai argumen subprogram tidak dideklarasikan dalam sebuah
pernyataan INTRINSIK.

o Fungsi intrinsik atau fungsi pernyataan dipanggil secara tidak benar.

o Fungsi tidak menetapkan nilai kembalian sebelum pernyataan RETURN.

o Nilai konstanta parameter tidak dievaluasi (ini adalah ftncheksalah, dan itu hanya
memberitahu Anda tentang fakta).

o Titik masuk suatu subprogram kemudian digunakan sebagai nama subprogram yang berbeda.

o Kata kunci tidak dikenal yang digunakan dalam pernyataan I/O.

o Referensi label ilegal (misalnya GOTO mengacu pada pernyataan yang tidak dapat dieksekusi; I/O
pernyataan mengacu pada pernyataan non-format).

Lihat juga: -kesalahan.

-kolom=num
Setel panjang pernyataan maksimum ke num kolom. (Di luar ini diabaikan.) Ini
pengaturan disediakan untuk memungkinkan pemeriksaan program yang mungkin melanggar Fortran
batas standar 72 kolom untuk panjang pernyataan. Menurut
standar, semua karakter melewati kolom 72 diabaikan. Jika pengaturan ini digunakan saat
itu -f77=garis panjang opsi ini berlaku, peringatan akan diberikan untuk setiap baris di
karakter mana yang melewati kolom 72 yang diproses. Hidupkan = maks = 132. Default = 72.

Pengaturan ini tidak menekan peringatan tentang kehadiran karakter di luar
kolom 72. Untuk memproses kode dengan teks program yang bermakna di luar kolom 72, gunakan ini
pengaturan dan pastikan -f77 antrean panjang pilihan tidak aktif. Untuk memproses kode dengan
nomor urut di kolom 73 hingga 80, biarkan pengaturan kolom pada default
nilai dan gunakan -cantik=tidak ada antrean panjang bendera.

Lihat juga: -f77, -cantik.

-umum=daftar
Pengaturan ini mengontrol ketatnya pemeriksaan blok COMMON. Secara default, semua
peringatan kecuali volatil dihidupkan.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Karena sebagian besar dari ini
peringatan diaktifkan secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan
peringatan tertentu. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua kata kunci
dengan penjelasan singkat masing-masing. Jika daftar dihilangkan, -umum adalah setara dengan
-umum = dimensi, tepat, panjang, jenis, dan -tidak umum adalah setara dengan -umum=tidak ada.
Kata kunci peringatan dengan artinya adalah sebagai berikut:

ukuran:
array yang sesuai di setiap deklarasi blok harus setuju dalam ukuran dan
jumlah dimensi. Opsi ini hanya memiliki efek ketika digunakan bersama dengan
tepat.

tepat:
perbandingan dua blok dilakukan variabel-per-variabel daripada hanya
membutuhkan kesepakatan antara lokasi penyimpanan yang sesuai. Gunakan ini jika semua
deklarasi dari blok COMMON yang diberikan seharusnya identik, yaitu a
praktik pemrograman yang baik.

panjangnya:
memperingatkan jika deklarasi yang berbeda dari blok yang sama tidak sama panjang totalnya.
Standar Fortran 77 membutuhkan setiap blok umum bernama, tetapi bukan blok umum kosong,
menjadi panjang yang sama di semua modul program.

mengetik:
di setiap deklarasi blok COMMON yang diberikan, lokasi memori yang sesuai
(kata atau byte) harus setuju dalam tipe data. Jika digunakan bersama-sama dengan tepat, Ini
akan mengharuskan variabel yang sesuai setuju dalam tipe data.

volatil:
Asumsikan bahwa blok COMMON bersifat volatil.

Banyak pemrogram Fortran berasumsi bahwa variabel, baik lokal atau UMUM, adalah:
statis, yaitu sekali diberi nilai, mereka mempertahankan nilai itu secara permanen sampai
diberi nilai yang berbeda oleh program. Namun, sebenarnya Fortran 77
Standar tidak mengharuskan hal ini terjadi. Variabel lokal dapat menjadi
undefined antara aktivasi modul di mana mereka dideklarasikan. Demikian pula,
Blok COMMON dapat menjadi tidak terdefinisi jika tidak ada modul di mana mereka dideklarasikan adalah
aktif. (Istilah teknis untuk entitas dengan perilaku ini adalah ``otomatis'', tetapi
ftnchek menggunakan kata ``volatile'' karena lebih jelas bagi nonspesialis.) Only
Blok COMMON dideklarasikan dalam pernyataan SAVE, atau dideklarasikan di program utama atau di a
blok data subprogram tetap didefinisikan selama program berjalan. Variabel
dan blok UMUM yang dapat menjadi tidak terdefinisi di beberapa titik disebut volatile.

Jika -umum = mudah menguap bendera dihidupkan, ftnchek akan memperingatkan Anda jika menemukan
blok COMMON yang mudah menguap. Jika, pada saat yang sama, -penggunaan=com-block-volatile pilihan
dihidupkan (yang merupakan default), ftnchek akan mencoba memeriksa apakah blok seperti itu
dapat kehilangan status yang ditentukan antara aktivasi modul di mana ia berada
dideklarasikan ftnchek tidak melakukan pekerjaan yang sangat baik ini: aturan yang digunakan adalah untuk melihat
apakah blok dideklarasikan dalam dua subpohon terpisah dari pohon panggilan. Untuk
Misalnya, ini akan terjadi jika dua modul, keduanya dipanggil dari program utama,
membagikan blok COMMON yang mudah menguap. Sebuah blok juga bisa menjadi tidak terdefinisi antara dua
panggilan berturut-turut dari subprogram yang sama, tetapi ftnchek tidak cukup pintar untuk mengatakannya
apakah subprogram dapat dipanggil lebih dari sekali, jadi kasus ini tidak diperiksa.

The -umum = mudah menguap bendera tidak mempengaruhi jalan ftnchek memeriksa penggunaan lokal
variabel.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari ini
pengaturan juga diterima: the daftar diganti dengan angka dari 0 sampai 3. Nilai
0 mematikan semua peringatan, 1 atau lebih besar menyala mengetik, 2 atau lebih besar menyala
panjangnya, dan 3 menyala ukuran serta tepat juga. Bentuk numerik tidak dapat menyala
itu volatil pilihan.

Lihat juga: -Perpustakaan, -penggunaan.

-crossref=daftar
Mencetak tabel referensi silang. Standar = tidak ada.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Kata kunci dengan
pengertian mereka adalah sebagai berikut:

panggilan:
tabel daftar setiap subprogram diikuti oleh daftar rutinitas yang menyebutnya.
Daftar ini menghilangkan modul perpustakaan yang tidak ada di pohon panggilan utama
program. Daftar ini berdasarkan abjad.

umum:
tabel mencantumkan setiap blok UMUM diikuti oleh daftar rutinitas yang mengakses
dia. Rutinitas yang terdaftar ini adalah di mana beberapa variabel dalam COMMON
blok diakses, bukan hanya rutinitas yang mendeklarasikan blok. (Ke
cari tahu rutinitas apa yang mendeklarasikan blok UMUM tetapi tidak menggunakannya, lihat
-penggunaan bendera.)

label:
tabel mencantumkan setiap label diikuti dengan daftar semua referensi untuk itu. Sebuah label
referensi dilambangkan dengan nomor baris dan jenis pernyataan dari referensi
penyataan. Daftar label dalam urutan berurutan. Referensinya adalah
terdaftar dalam urutan mereka ditemui dalam program.

Lihat juga: -calltree, -referensi, -menyortir, -symtab, -vcg.

-menyatakan
Jika flag ini disetel, semua pengidentifikasi yang tipe datanya tidak dideklarasikan di setiap modul
akan terdaftar. Bendera ini berguna untuk membantu menemukan nama variabel yang salah eja,
dll. Daftar yang sama akan diberikan jika modul berisi IMPLICIT NONE
penyataan. Standar = tidak.

Lihat juga: -sixchar, -penggunaan.

-divisi
Sakelar ini disediakan untuk membantu pengguna menemukan pembagian potensial dengan masalah nol. Jika
sakelar ini dipilih, setiap divisi kecuali oleh konstanta akan ditandai. (Dia
diasumsikan bahwa pengguna cukup cerdas untuk tidak membagi dengan konstanta yaitu
sama dengan nol!) Default = tidak.

Lihat juga: -portabilitas, -pemotongan.

-kesalahan=num
Tetapkan jumlah maksimum pesan kesalahan dalam ``kaskade''. Selama pemeriksaan
persetujuan argumen subprogram, deklarasi blok umum, dan sebagainya,
terkadang satu kasus akan menghasilkan serangkaian peringatan yang panjang. Seringkali ini hanya
menunjukkan beberapa penyebab lain selain ketidakcocokan item demi item asli, seperti for
contoh variabel yang hilang dari satu daftar. Jadi dalam kasus seperti itu ftnchek berhenti mencetak
peringatan setelah batas kaskade tercapai, dan trailer ``etc...'' adalah
dicetak untuk menunjukkan bahwa ada lebih banyak kesalahan yang tidak dicetak. Jika Anda berpikir bahwa
peringatan ini kemungkinan asli, gunakan pengaturan ini untuk melihat lebih banyak lagi.
Turn-on = default = 3, max = 999. Nilai 0 berarti tidak ada batasan.

Pengaturan ini tidak menetapkan batas keseluruhan pada jumlah pesan kesalahan yang dicetak,
hanya nomor yang dicetak dalam satu kaskade. Sebagian besar jenis peringatan dan kesalahan
pesan tidak tunduk pada efek kaskade dan karenanya tidak terpengaruh oleh ini
pengaturan. Untuk mematikan peringatan secara umum, gunakan kontrol peringatan individual
pilihan atau -nocheck pilihan.

Lihat juga: -memeriksa.

-eksternal
Global ftnchek untuk melaporkan apakah ada subprogram yang dipanggil oleh program tidak pernah
didefinisikan. Biasanya, jika ftnchek sedang dijalankan pada program yang lengkap, masing-masing
subprogram selain fungsi intrinsik harus didefinisikan di suatu tempat. Berbelok
matikan sakelar ini jika Anda hanya ingin memeriksa subset file yang merupakan bagian dari a
program lengkap yang lebih besar. Argumen subprogram masih akan diperiksa
ketepatan. Standar = ya.

The -eksternal bendera sekarang digantikan oleh -penggunaan=ext-undefined pilihan. Untuk
demi kenyamanan, -eksternal bendera dipertahankan, sehingga -tidak ada eksternal setara
untuk -penggunaan=no-ext-undefined pilihan. Itu -eksternal switch mungkin akan pensiun pada akhirnya.

Lihat juga: -Perpustakaan.

-f77=daftar
Gunakan pengaturan ini untuk menangkap ekstensi bahasa yang melanggar Fortran 77
Standar. Ekstensi tersebut dapat menyebabkan program Anda tidak portabel. Contoh
menyertakan penggunaan garis bawah dalam nama variabel; nama variabel lebih panjang dari enam
karakter; baris pernyataan lebih dari 72 karakter; dan pernyataan tidak standar
seperti struktur DO ... ENDDO. ftnchek tidak melaporkan penggunaan
huruf kecil. Secara default, semua peringatan dimatikan.

Pengaturan ini memberikan kontrol terperinci atas peringatan tentang ekstensi yang didukung
dengan Standar Fortran 77. (Detail lebih lanjut tentang ekstensi itu sendiri adalah
diberikan di bawah ini di bagian Ekstensi.) daftar terdiri dari kata kunci yang dipisahkan
dengan koma atau titik dua. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan tentang ekstensi tidak standar, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak
daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan,
-f77 adalah setara dengan -f77=semua, dan -nof77 adalah setara dengan -f77=tidak ada. Peringatan
kata kunci dengan artinya adalah sebagai berikut:

tipe terima:
Pernyataan ACCEPT dan TYPE I/O.

batas-array:
Ekspresi mendefinisikan batas array yang berisi elemen atau fungsi array
referensi.

tugas-stmt:
Pernyataan tugas yang melibatkan array. Di Fortran 90, sebuah array bisa menjadi
ditugaskan ke array lain dari bentuk yang kompatibel, atau skalar dapat ditugaskan ke
sebuah array. Tak satu pun dari penugasan ini diizinkan di Fortran 77.

Peringatan terkait terjadi ketika array ditetapkan ke skalar. Sejak ini
ilegal juga di Fortran 90, selalu diperingatkan terlepas dari
-f77 pengaturan (kecuali semua pemeriksaan dimatikan dengan -nocheck bendera).

atribut-berbasis-dekl:
Ketik deklarasi dalam gaya berbasis atribut Fortran 90 yang baru. Gaya ini
deklarasi dibedakan dengan penggunaan tanda titik dua (::) di antara
daftar atribut dan daftar variabel yang dideklarasikan. Opsi ini juga
mengontrol peringatan untuk penggunaan panjang Fortran 90 atau penentu jenis dalam tipe
deklarasi. (Meskipun penentu ini dapat digunakan dalam non-atribut berbasis
deklarasi, mereka dikendalikan oleh opsi ini untuk menghindari proliferasi
-f77 pilihan.)

susunan otomatis:
Array lokal (bukan dummy) yang memiliki ukuran variabel. Ini akan sesuai dengan
array yang penyimpanannya harus dialokasikan secara dinamis pada saat run time.

garis miring terbalik:
Garis miring terbalik Unix lolos dalam string. Peringatan ini hanya akan diberikan jika
-sumber=unix-backslash pengaturan ditentukan untuk menyebabkan pelarian
interpretasi garis miring terbalik..

byte: Deklarasi tipe data BYTE.

konstruksi kasus:
Konstruksi SELECT CASE.

karakter:
Ekstensi ke standar Fortran 77 mengenai data karakter. Saat sekarang,
ini hanya mengontrol peringatan tentang variabel karakter yang dideklarasikan dengan nol atau
panjang negatif. Di Fortran 77, semua variabel karakter harus positif
panjang. Di Fortran 90, panjangnya bisa nol, dan deklarasi itu
tentukan panjang negatif yang diizinkan, berubah menjadi nol untuk yang dideklarasikan
panjang. Catatan: karena penentu panjang negatif dapat menunjukkan pemrograman
kesalahan, peringatan tentang mereka diberikan bahkan jika opsi ini dimatikan, dan
hanya ditekan oleh -nocheck bendera.

nama-subprog-umum:
Blok umum dan subprogram memiliki nama yang sama.

nama konstruksi:
Penggunaan nama konstruk untuk melabeli pernyataan kontrol.

kelanjutan:
Lebih dari 19 baris kelanjutan berturut-turut.

cpp: Direktif praprosesor Unix C dalam kode sumber.

penunjuk kosong:
Sintaks ``Cray pointer''.

keluar siklus:
Pernyataan CYCLE dan EXIT.

d-komentar:
Men-debug komentar yang dimulai dengan D dalam kode sumber.

tab-desember:
Kode sumber format-tab gaya DEC Fortran. Peringatan ini hanya akan diberikan
jika -sumber=dec-tab pengaturan ditentukan untuk menyebabkan interpretasi tab
dalam gaya ini.

lakukan-selesai:
Ekstensi loop DO: label pernyataan terminal dihilangkan, END DO, dan WHILE.

kompleks ganda:
Tipe data kompleks presisi ganda.

format-tanda dolar:
Kode kontrol tanda dolar dalam pernyataan FORMAT.

format-edit-descr:
Deskriptor edit tidak standar dalam pernyataan FORMAT.

fungsi-noparen:
Definisi fungsi tanpa tanda kurung.

implisit-tidak ada:
pernyataan IMPLICIT NONE.

memasukkan:
TERMASUK pernyataan.

komentar sebaris:
Komentar sebaris dimulai dengan tanda seru.

daftar-internal-io:
Daftar-diarahkan I/O ke atau dari file internal.

hakiki:
Fungsi intrinsik tidak standar.

io-kata kunci
Kata kunci tidak standar yang digunakan dalam pernyataan I/O. Ini jatuh ke dalam tiga kelompok.
Grup pertama termasuk kata kunci yang diterima di Fortran 90:

TINDAKAN PAD READWRITE
UKURAN POSISI MULAI
DELIM BACA TULIS
EOR
Grup kedua terdiri dari kata kunci VMS Fortran berikut:

BLOCKSIZE EXTENDSIZE HANYA BACA
BUFFERCOUNT INITIALSIZE RECORDSIZE
CARRIAGECONTROL MAXREC RECORDTYPE
NAMA FILE DEFAULT (dalam OPEN) SHARED
TAMPILKAN JENIS NOSPANBLOCK
BUANG ORGANISASI
(Kata kunci NAMA adalah standar hanya dalam pernyataan INQUIRE.) Yang ketiga
group terdiri dari kata kunci IBM/MVS berikut:

NUM
Bendera ini juga mengontrol peringatan tentang penggunaan ACCESS='APPEND', yaitu
diterima oleh beberapa kompiler. Nilai 'APPEND' tidak valid untuk I/O apa pun
specifier dalam standar Fortran 77, dan dalam Fortran 90 'TAMBAHKAN' harus digunakan
sebagai nilai penentu POSISI, bukan ACCESS.

antrean panjang:
Pernyataan dengan kode bermakna melewati 72 kolom. Peringatan ini hanya diberikan
jika -kolom pengaturan telah digunakan untuk menambah lebar bidang pernyataan.

nama panjang:
Pengidentifikasi lebih dari 6 karakter.

campuran-umum:
Data karakter dan non-karakter campuran di blok COMMON.

campuran-ekspr:
Kombinasi tipe tidak standar dalam ekspresi, misalnya PRESISI GANDA
dengan COMPLEX, menugaskan hollerith ke bilangan bulat, operasi logis pada bilangan bulat.

nama-dolarsign:
Tanda dolar digunakan sebagai karakter dalam pengidentifikasi.

nama-garis bawah:
Garis bawah digunakan sebagai karakter dalam pengidentifikasi.

Daftar nama:
pernyataan NAMELIST.

tipe param-implisit:
Pengetikan implisit parameter dengan tipe data dari nilai yang ditetapkan. Ini
peringatan hanya dapat terjadi jika pengetikan parameter implisit telah diaktifkan oleh
-sumber=param-tipe implisit opsi, atau jika pernyataan PARAMETER adalah dari
bentuk tidak baku tanpa tanda kurung. Jika opsi ini diaktifkan, maka apa saja
contoh di mana pengetikan parameter implisit terjadi akan diperingatkan. Jika
Anda ingin diperingatkan hanya dalam kasus di mana tipe data implisit
berbeda dari tipe default, gunakan -portabilitas=param-tipe implisit sebagai gantinya.
Menurut standar Fortran 77, tipe data parameter diberikan
dengan aturan yang sama seperti untuk variabel, dan jika perlu konversi tipe adalah
dilakukan ketika nilai diberikan.

param-intrinsik:
Fungsi intrinsik atau eksponensial dengan real yang digunakan untuk menentukan nilai a
definisi PARAMETER.

param-noparen:
Pernyataan PARAMETER tanpa tanda kurung. Pengguna harus menyadari bahwa
semantik bentuk pernyataan ini berbeda dari standar
form: dalam form ini, parameter mengambil tipe datanya dari nilai
ditugaskan, daripada memiliki tipe data default berdasarkan huruf pertama
dari nama parameter. (Bentuk pernyataan PARAMETER ini diperkenalkan
oleh DEC sebelum standar Fortran 77 ditetapkan, dan harus dihindari.)

petunjuk:
Sintaks terkait pointer standar Fortran 90, termasuk POINTER, TARGET dan
Deklarasi tipe ALLOCATABLE, pernyataan ALLOCATE, DEALLOCATE, dan NULLIFY,
dan penunjukan penunjuk menggunakan =>.

quad-konstanta:
Konstanta real presisi quad, misalnya dalam bentuk 1.23Q4.

tanda kutip:
String dibatasi oleh tanda kutip dan bukan apostrof.

relops:
Operator relasional (perbandingan) yang terdiri dari tanda baca, yaitu: < <= == /=
> >=.

titik koma:
Titik koma digunakan sebagai pemisah pernyataan.

perintah-pernyataan:
Pernyataan di luar urutan yang diamanatkan oleh Standar. yang diperbolehkan
urutan diilustrasikan pada Tabel 1 di bagian Menafsirkan Output.

konstanta tanpa tipe:
Konstanta tanpa tipe, misalnya Z'19AF'.

jenis-ukuran:
Ketik deklarasi yang menentukan ukuran, misalnya REAL*8.

format variabel:
Spesifikasi pengulangan variabel atau ukuran bidang dalam FORMAT. Ini adalah bentuk
< expr >.

vms-io:
Usang. Sekarang memiliki arti yang sama dengan io-kata kunci kata kunci.

Lihat juga: -f90, -f95, -portabilitas, -cantik, Gaya, -ukuran kata.

-f90=daftar
Pengaturan ini memberikan kontrol terperinci atas peringatan tentang ekstensi yang didukung
dengan Standar Fortran 77 yang tidak diadopsi sebagai bagian dari Fortran 90
Standar. Perhatikan bahwa ftnchek tidak mendukung bahasa Fortran 90 penuh.
Namun, itu mendukung beberapa ekstensi umum untuk Fortran 77 yang lazim
sebelum Fortran 90 didefinisikan. Beberapa ekstensi ini menjadi bagian dari Fortran
90 Standar, tetapi yang lain tidak. Itu -f90 pengaturan memperingatkan hanya tentang yang terakhir.
Artinya, bendera ini mencakup hal-hal yang tidak legal Fortran 77 atau legal
Fortran 90. Oleh karena itu, peringatan yang dikendalikan oleh flag ini pada dasarnya adalah subset
dari peringatan yang dikendalikan oleh -f77. Ada beberapa kasus, yang dijelaskan di bawah ini, di mana
keadaan di mana peringatan diberikan sedikit berbeda untuk keduanya
bendera.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga
kata kunci khusus: semua untuk mengaktifkan semua peringatan tentang ekstensi tidak standar,
tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua kata kunci dengan a
penjelasan singkat masing-masing. Jika daftar dihilangkan, -f90 adalah setara dengan -f90=semua, dan
-nof90 adalah setara dengan -f90=tidak ada.

Kata kunci berikut memiliki arti yang identik untuk -f90 seperti untuk -f77. Pembaca adalah
mengacu pada penjelasan di bawah -f77.

tipe terima kompleks ganda param-noparen
garis miring terbalik format-tanda dolar penunjuk kosong
byte format-edit-descr quad-konstanta
cpp fungsi-noparen jenis-ukuran
d-komentar nama-dolarsign format variabel
tab-desember tipe param-implisit vms-io

Kata kunci yang agak berbeda dari yang sesuai -f77 kata kunci adalah sebagai
mengikuti.

kelanjutan:
Batas jumlah baris lanjutan untuk pernyataan di sumber tetap
bentuknya sama yaitu 19, di Fortran 90 seperti di Fortran 77. Untuk sumber gratis
bentuk batasnya adalah 39 baris lanjutan, dan satu baris berisi lanjutan
tanda tidak boleh kosong atau hanya berisi komentar.

hakiki:
Ini sama dengan untuk -f77 kecuali untuk fungsi intrinsik yang didefinisikan dalam
MIL-STD 1753, yang semuanya termasuk dalam Fortran 90, jadi tidak diperingatkan
tentang. (Melihat -hakiki untuk daftar.)

io-kata kunci:
Ini sama dengan untuk -f77 kecuali bahwa tidak ada peringatan yang diberikan untuk I/O
kata kunci yang standar di Fortran 90.

antrean panjang:
Meskipun Standar Fortran 90 memungkinkan baris lebih panjang dari 72 karakter dalam
bentuk sumber bebas, pembatasan ini masih berlaku untuk bentuk sumber tetap. Di
bentuk sumber gratis, batas panjang baris adalah 132 karakter, dan tidak seperti tetap
bentuk, ftnchek tidak mengizinkan batas ini ditingkatkan.

campuran-ekspr:
Ini sama dengan untuk -f77 kecuali untuk ekspresi yang menggabungkan presisi yang diperluas
nyata dengan tipe data kompleks, yang diizinkan di Fortran 90.

perintah-pernyataan:
Ini mirip dengan yang sesuai -f77 peringatan, tetapi menerapkan agak
pembatasan yang lebih longgar pada urutan pernyataan Standar Fortran 90. Di
khusus, Fortran 90 memungkinkan pernyataan DATA dan fungsi pernyataan
definisi untuk dicampur dengan pernyataan spesifikasi.

konstanta tanpa tipe:
Dalam Fortran 90, konstanta biner, oktal, dan heksadesimal berbentuk B'ddd',
O'ddd', dan Z'ddd', masing-masing, diizinkan. Di sini 'ddd' mewakili a
deretan angka. ftnchek mengenali bentuk-bentuk ini, serta varian dari
bentuk X'ddd' untuk konstanta heksadesimal, dan varian lain di mana
indikator dasar B, O, Z, atau X mengikuti string digit. Varian ini adalah
tidak diadopsi di Fortran 90, jadi hanya mereka yang diperingatkan tentang kapan bendera ini
dihidupkan.

Lihat juga: -f77, -f95, -portabilitas, -cantik, Gaya, -ukuran kata.

-f95=daftar
Pengaturan ini memberikan kontrol terperinci atas peringatan tentang standar Fortran 77
fitur yang dihapus dari Fortran 95 Standard. tidak seperti -f77 serta -f90
pengaturan, peringatan ini berlaku untuk sintaks yang legal Fortran 77. Namun, karena
fitur-fitur ini telah dihapus dari Standar, ada kemungkinan bahwa program
berisi mereka tidak akan dapat diterima oleh beberapa kompiler yang lebih baru.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga
kata kunci khusus: semua untuk mengaktifkan semua peringatan tentang ekstensi tidak standar,
tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua kata kunci dengan a
penjelasan singkat masing-masing. Jika daftar dihilangkan, -f95 adalah setara dengan -f95=semua, dan
-nof95 adalah setara dengan -f95=tidak ada. Kata kunci peringatan dengan artinya adalah sebagai
mengikuti.

nyata:
Variabel DO dari semua tipe numerik nyata.

berhenti sebentar:
Pernyataan PAUSE.

menetapkan:
Pernyataan ASSIGN, GOTO yang ditetapkan, atau format yang ditetapkan.

h-edit:
Deskriptor edit H dalam format.

Ada satu lagi fitur sintaks Fortran 77 yang dihapus di Fortran 95, yaitu
bercabang ke ENDIF dari luar blok IF. Namun, ftnchek tidak bisa
menganalisis aliran program, dan karenanya tidak memberikan peringatan untuk ini.

Lihat juga: -f77, -f90, -portabilitas, -cantik, Gaya, -ukuran kata.

-bantu
Mencetak daftar semua opsi baris perintah dengan deskripsi singkat masing-masing
beserta nilai defaultnya. Perintah ini identik fungsinya dengan ``?''
argumen, dan disediakan sebagai kemudahan untuk sistem di mana pertanyaannya
mark memiliki arti khusus bagi penerjemah perintah. Standar = tidak.

Daftar bantuan juga mencetak nomor versi dan tingkat patch dari ftnchek dan
pemberitahuan hak cipta.

Catatan: nilai ``default'' yang dicetak dalam tanda kurung siku dalam daftar bantuan adalah,
sebenarnya, bukan default bawaan tetapi nilai saat ini setelah apa pun
opsi lingkungan dan opsi baris perintah apa pun yang mendahului -bantu pilihan memiliki
telah diproses.

Lihat juga: -pemula, -versi, dan membantu pilihan dari semua pengaturan yang mengambil daftar
kata kunci.

-identifier-chars=daftar
Tentukan karakter non-alfanumerik yang dapat digunakan dalam pengidentifikasi. Secara default,
ftnchek hanya menerima tanda dolar dan garis bawah sebagai karakter non-alfanumerik
dalam nama pengenal. Karakter dalam daftar ganti set apa pun yang diterima
karakter non-alfanumerik sebelumnya berlaku. Jadi, jika tanda dolar atau
garis bawah tidak termasuk dalam daftar, mereka kehilangan statusnya sebagai dapat diterima
karakter.

Opsi ini disediakan untuk mengaktifkan ftnchek untuk menangani file sumber yang berisi non-
nama pengenal standar yang mungkin diperlukan, misalnya, untuk mengakses
layanan sistem operasi. Lihat bagian tentang Batasan dan Ekstensi untuk
perlakuan pengidentifikasi yang mengandung karakter ini dalam pengetikan implisit.

Menggunakan -noidentifer-chars mematikan penerimaan karakter non-alfanumerik
sepenuhnya.

Lihat juga: -source.

-termasuk=path
Menentukan direktori yang akan dicari file yang ditentukan oleh pernyataan INCLUDE.
Tidak seperti opsi baris perintah lainnya, pengaturan ini bersifat kumulatif; yaitu, jika
diberikan lebih dari sekali pada baris perintah, semua direktori yang ditentukan adalah
ditempatkan pada daftar yang akan dicari dalam urutan yang sama seperti yang diberikan. Itu
urutan di mana ftnchek mencari file yang akan dimasukkan adalah: saat ini
direktori; direktori yang ditentukan oleh variabel lingkungan FTNCHEK_INCLUDE jika ada;
direktori yang ditentukan oleh any -termasuk pilihan; direktori yang ditentukan oleh
variabel lingkungan TERMASUK; dan akhirnya di direktori seluruh sistem standar
(/ usr / include untuk UNIX, SYS$LIBRARY untuk VMS, dan \include untuk MSDOS).

Lihat juga: -f77, -source.

-intrinsik=daftar
Mengontrol apakah ftnchek mengakui fungsi intrinsik tidak standar tertentu sebagai
hakiki. Itu daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Beberapa
kata kunci mengontrol apakah akan mengenali kelompok fungsi tertentu, dan lainnya
kata kunci mengontrol sintaks yang diharapkan untuk menjalankan beberapa intrinsik tidak standar.
Sertakan kata kunci untuk mengaktifkan pengenalan set intrinsik yang sesuai atau
untuk memungkinkan sintaks yang sesuai. Sertakan kata kunci yang diawali dengan tidak- mematikan
pengakuan itu.

Ada tiga kata kunci khusus: semua menyalakan pengakuan semua yang tidak standar
intrinsik (tercantum di bawah) dan menerima salah satu sintaks untuk mereka yang memiliki variasi.
penggunaan tak satupun untuk mematikan pengenalan semua intrinsik tidak standar kecuali yang dicatat
di bawah. Menggunakan membantu untuk mencetak daftar semua kata kunci dengan penjelasan singkat tentang
setiap. Jika daftar dihilangkan, -hakiki adalah setara dengan -intrinsik=semua, dan
-nointrinsik adalah setara dengan -intrinsik=tidak ada.

Fungsi intrinsik tidak standar yang diperlukan untuk mendukung perluasan tidak standar
tipe data presisi (kompleks ganda dan presisi quad) selalu dikenali.
Instrinsik untuk tipe data kompleks ganda adalah:

CDABS CDSQRT DREAL ZLOG
CDCOs DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG GAMBAR ZEXP ZCOS
CDSIN
Instrinsik untuk presisi quad dan tipe kompleks quad adalah:

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
Kata kunci yang mengontrol pengenalan fungsi intrinsik tidak standar lainnya adalah
sebagai berikut:

tambahan:
mengenali intrinsik tidak standar yang umum tersedia berikut (semua kecuali
EXIT dan LOC didefinisikan dalam MIL-STD 1753):

IBCLR TERBAIK IEOR ISHFTC
KELUAR IBITS IOR LOC
IAND IBSET ISHFT TIDAK

unix: kenali fungsi intrinsik khusus Unix yang umum ini:

MENGGANTIKAN GMTIME LTIME SRAND
DAN IARGC ATAU SISTEM
GET IRAND RAND WAKTU
GETENV LSHIFT RSHIFT XOR

vms: kenali fungsi intrinsik spesifik VMS yang umum ini:

TANGGAL IDATE WAKTU DETIK

ERRSNS RAN SIZEOF

iargc-tanpa-argumen:
tentukan bahwa IARGC dapat dipanggil tanpa argumen.

iargc-satu-argumen:
tentukan bahwa IARGC dapat dipanggil dengan satu argumen.

rand-no-argument:
tentukan bahwa RAND dan IRAND dapat dipanggil tanpa argumen.

rand-satu-argumen:
tentukan bahwa RAND dan IRAND dapat dipanggil dengan satu argumen.

The tidak ada argumen serta satu argumen kata kunci berfungsi sebagai berikut: mengaktifkan opsi
penyebab ftnchek untuk menerima sintaks yang sesuai untuk pemanggilan fungsi,
tanpa mengecualikan kemungkinan sintaks alternatif. Mengubah pilihan
off menyebabkan sintaks yang sesuai tidak diterima. Jika kedua opsi diputar
aktif sekaligus (default), maka salah satu sintaks diterima. Mematikan kedua opsi
sekaligus tidak akan berarti. Pilihan ini tidak berpengaruh jika pengenalan
Intrinsik Unix telah dimatikan.

Perhatikan bahwa pengaturan ini tidak mengontrol apakah peringatan non-standar dikeluarkan
tentang fungsi-fungsi tersebut. Ini mengontrol apakah fungsi diasumsikan
intrinsik atau tidak, yang menentukan bagaimana penggunaannya diperiksa. Ketika berfungsi di
salah satu dari set ini disertakan, pemanggilannya akan diperiksa sesuai dengan
aturan untuk fungsi intrinsik; jika tidak, mereka akan diperiksa seperti biasa (pengguna-
tertulis) fungsi eksternal. Peringatan non-standar dikendalikan oleh
-f77=intrinsik pilihan.

Nilai default pengaturan ini setara dengan -intrinsik=semua diikuti oleh
-intrinsik=tanpa-vms untuk versi Unix, -intrinsik=tanpa-unix untuk versi VMS, dan
-intrinsik=tanpa-unix,tanpa-vms untuk versi lain.

Catatan: Dalam versi ftnchek sebelum 2.10, -hakiki bendera mengambil angka
argumen alih-alih daftar opsi. Demi pengguna yang mungkin telah menulis
skrip yang dipanggil ftnchek dengan cara ini, bentuk numerik masih diterima. Itu
bentuk numerik dari pengaturan terdiri dari tiga digit. Angka satuan memilih
seperangkat fungsi intrinsik yang akan didukung. Digit 0 hanya memilih Fortran 77
intrinsik standar ditambah yang diperlukan untuk mendukung presisi diperpanjang yang tidak standar
tipe data. Angka 1 sama dengan tambahan, 2 setara dengan ekstra, unix, dan
3 sama dengan ekstra,vms. Angka puluhan dari pengaturan ini mengontrol sintaks
fungsi intrinsik RAND, dan angka ratusan mengontrol sintaks dari
fungsi IARGC. Untuk angka-angka ini, tentukan 0 untuk meminta pemanggilan tanpa no
argumen, 1 untuk meminta satu argumen, dan 2 untuk mengizinkan salah satu bentuk.

Lihat juga: -f77.

-Perpustakaan
Switch ini digunakan ketika sejumlah subprogram terdapat dalam sebuah file, tetapi tidak
semuanya digunakan oleh aplikasi. Biasanya, ftnchek memperingatkan Anda jika ada
subprogram didefinisikan tetapi tidak pernah digunakan. Sakelar ini akan menekan peringatan ini.
Standar = tidak.

Sakelar ini juga mengontrol panggilan subprogram dan deklarasi blok UMUM mana yang
diperiksa. Jika file dibaca dengan -Perpustakaan flag berlaku, subprogram memanggil
dan deklarasi COMMON yang terdapat dalam rutin dalam file itu akan diperiksa hanya jika
rutin itu ada di pohon panggilan program utama. Di sisi lain, jika
-Perpustakaan saklar dimatikan, maka ftnchek memeriksa panggilan dari setiap rutinitas dengan
setiap rutinitas lainnya, terlepas dari apakah rutinitas itu benar-benar terjadi
dipanggil saat run time, dan juga semua deklarasi blok COMMON dibandingkan untuk
persetujuan.

Perbedaan antara sakelar ini dan sakelar -penggunaan=no-ext-unused pilihan untuk
subprogram adalah bahwa yang terakhir hanya menekan peringatan tentang rutinitas yang
dideklarasikan tetapi tidak digunakan. Itu -Perpustakaan sakelar melangkah lebih jauh dan mengecualikan yang tidak digunakan
rutinitas diproses saat berlaku dari semua pemeriksaan silang argumen dan
Deklarasi blok UMUM juga.

(Jika tidak ada program utama di mana pun dalam kumpulan file yang ftnchek telah membaca, jadi
bahwa tidak ada pohon panggilan, maka ftnchek akan mencari rutinitas non-perpustakaan
yang tidak dipanggil oleh rutinitas lain, dan gunakan ini sebagai pengganti main
program dalam membangun pohon panggilan dan memutuskan apa yang harus diperiksa. Jika tidak ada top-
tingkat rutinitas non-perpustakaan ditemukan, kemudian semua panggilan antar-modul dan semua UMUM
deklarasi akan diperiksa.)

Lihat juga: -argumen, -calltree, -umum, -eksternal, -penggunaan.

-daftar
Menentukan bahwa daftar program Fortran akan dicetak dengan baris
angka. Jika ftnchek mendeteksi kesalahan, pesan kesalahan mengikuti baris program
dengan tanda sisipan ( ^ ) yang menentukan lokasi kesalahan. Jika tidak ada daftar sumber adalah
diminta, ftnchek akan tetap mencetak setiap baris yang mengandung kesalahan, untuk membantu
pengguna dalam menentukan di mana kesalahan terjadi. Standar = tidak.

Lihat juga: -keluaran, \fB-symtab, fB-tenang.

-madecls=daftar
Siapkan file deklarasi variabel, blok umum, dan
daftar namelist, untuk kemungkinan penggabungan ke dalam kode sumber. Deklarasi tersebut adalah
disimpan dalam file dengan nama yang sama dengan kode sumber, tetapi dengan ekstensi
diubah menjadi .dcl. Jika tidak ada deklarasi yang ditulis ke file, itu akan dihapus ke
mengurangi kekacauan dari file kosong.

Jika input berasal dari input standar, alih-alih file bernama, maka deklarasi adalah
ditulis ke keluaran standar.

Variabel dideklarasikan dalam urutan abjad dalam setiap kelas deklarasi dan
ketik, dengan variabel integer terlebih dahulu, karena kemungkinan penggunaannya nanti dalam array
ukuran.

Pernyataan PARAMETER adalah pengecualian untuk aturan urutan abjad, karena
Fortran 77 Standard mensyaratkan bahwa ekspresi yang mendefinisikan nilai parameter merujuk
hanya untuk konstanta dan nama parameter yang sudah ditentukan. Ini memaksa yang asli
urutan file sumber dari pernyataan tersebut untuk disimpan dalam file deklarasi.

Deklarasi eksplisit dari semua variabel dianggap sebagai pemrograman modern yang bagus
praktek. Dengan menggunakan opsi kompiler untuk menolak variabel yang tidak dideklarasikan, salah eja
nama variabel (atau nama yang memanjang melewati kolom 72) dapat ditangkap pada waktu kompilasi.
Deklarasi eksplisit juga sangat memudahkan perubahan presisi floating-point
dengan filter seperti dtoq(1L), dtos(1L), fd2s(1L), fs2d(1L), qtod(1L), dan
berdiri(1L). Program-program ini mampu mengubah jenis floating-point eksplisit
deklarasi tipe, fungsi intrinsik, dan konstanta, tetapi karena mereka tidak
melakukan analisis leksikal dan tata bahasa yang ketat dari kode sumber Fortran,
mereka tidak dapat memberikan deklarasi tipe yang dimodifikasi untuk variabel yang tidak dideklarasikan. Bawaan
pengaturan = 0, nyalakan = 1.

Berbagai opsi untuk bentuk file deklarasi dikendalikan oleh daftar,
yang terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga spesial
kata kunci: semua untuk mengaktifkan semua opsi, tak satupun untuk mematikan semuanya, dan membantu untuk
cetak daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar is
dihilangkan, -dibuatcls adalah setara dengan -makedcls=deklarasi (yaitu menghasilkan
deklarasi file menggunakan opsi default), dan -nomakedcls adalah setara dengan
-makedcls=tidak ada.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari pengaturan ini
juga diterima: the daftar diganti dengan suatu bilangan yang merupakan jumlah dari bilangan-bilangan tersebut
dalam tanda kurung di samping kata kunci dalam daftar berikut. Kata kunci peringatan
dengan pengertiannya adalah sebagai berikut:

deklarasi (1):
Tulis file deklarasi. (Ini tersirat oleh salah satu opsi lain, dan
dapat dihilangkan jika ada opsi lain yang diberikan.)

tidak dideklarasikan-saja (2):
Secara default, semua variabel disertakan dalam file deklarasi. Dengan ini
pilihan, sertakan saja tidak diumumkan variabel. Pengaturan ini berguna jika Anda
ingin memeriksa variabel yang tidak dideklarasikan, karena file sumber Fortran dengan semua
variabel yang dideklarasikan dengan benar tidak akan menghasilkan .dcl mengajukan. Dengan ini
opsi, blok umum dan daftar daftar nama tidak akan disertakan dalam
file deklarasi, karena menurut sifatnya mereka tidak dapat dideklarasikan.

padat (4):
Deklarasi biasanya dicetak cantik untuk berbaris rapi bersama
kolom, seperti dalam file deklarasi yang dikeluarkan oleh Extended PFORT Verifier,
usaha(1L). Nilai opsi ini memilih output yang ringkas, tanpa kolom
penjajaran.

gunakan-kelanjutan-baris (8):
Menyebabkan garis lanjutan digunakan jika diizinkan. Standarnya adalah untuk
memulai deklarasi baru pada setiap baris. Opsi ini sesuai untuk digunakan
Bersama padat.

kata kunci-huruf kecil (16):
Keluarkan kata kunci Fortran dalam huruf kecil, bukan huruf besar default.

vars-and-consts-huruf kecil (32):
Variabel keluaran dan konstanta dalam huruf kecil, bukan default
huruf besar. Konstanta string karakter tidak terpengaruh oleh opsi ini.

kecualikan-sftran3 (64):
Abaikan deklarasi variabel integer internal yang dihasilkan oleh SFTRAN3
praprosesor, xsf3(1L), sebagai bagian dari terjemahan Fortran . terstruktur
pernyataan ke Fortran biasa. Variabel-variabel ini memiliki nama enam karakter dari
formulir NPRdddd, NXdddd, N2dddd, dan N3dddd, Di mana d adalah angka desimal.
Karena mereka tidak terlihat dalam kode sumber SFTRAN3, dan akan berubah jika
Kode SFTRAN3 dimodifikasi, variabel tersebut tidak boleh dideklarasikan secara eksplisit.
Sebagai gantinya, mereka seharusnya hanya mengasumsikan tipe data Fortran INTEGER default berbasis
pada huruf awal mereka, N.

tanda bintang-komentar (128):
Gunakan tanda bintang sebagai karakter komentar; defaultnya adalah 'C'.

komentar-char-huruf kecil (256):
Gunakan 'c' sebagai ganti 'C' atau '*' sebagai karakter komentar.

menekan-array-dimensi (512):
Menekan dimensi array dalam deklarasi yang dihasilkan. Pilihan ini
adalah untuk digunakan dengan kode yang tidak memiliki deklarasi tipe, untuk memungkinkan deklarasi
file yang akan dimasukkan tanpa mengubah ke dalam kode. Karena kode akan memiliki
pernyataan dimensi sudah, dimensi variabel array dalam tipe
pernyataan file deklarasi berlebihan. Opsi ini harus digunakan
hanya dalam hubungannya dengan opsi 2 = tidak dideklarasikan-saja karena jika tidak ada
array yang berdimensi dalam pernyataan tipe akan kehilangan
dimensi.

bentuk-bebas (1024):
Menghasilkan deklarasi dalam bentuk sumber gratis. Mode ini secara otomatis digunakan jika
sumber input adalah bentuk bebas. Gunakan opsi ini untuk menghasilkan deklarasi di
bentuk bebas meskipun inputnya dalam bentuk tetap. Deklarasi bentuk bebas adalah
indentasi hanya 2 kolom, bukan 6, gunakan tanda seru sebagai komentar
karakter, dan tunjukkan garis lanjutan dengan ampersand di akhir
garis untuk dilanjutkan.

File deklarasi berisi komentar khusus yang menandai awal dan akhir dari
deklarasi untuk setiap unit program, untuk memfasilitasi penggunaan makro editor teks untuk
menggabungkan deklarasi kembali ke kode sumber.

The ftnchek distribusi meliputi program, dcl2inc, yang memproses deklarasi
file untuk menghasilkan file yang berisi deklarasi semua blok UMUM, dalam bentuk
cocok untuk digunakan sebagai file TERMASUK. Lihat dcl2inc(1L) halaman manual untuk detail
penggunaannya.

Lihat juga: -mkhtml.

-mkhtml=daftar
Menghasilkan dokumentasi HTML dari sumber. Membuat file HTML individual dari ftnchek
analisis dan komentar kode. Semua komentar tepat sebelum dan sesudah
definisi fungsi atau subrutin ditangkap ke file HTML. Tidak ada pemformatan ulang
komentar sumber dilakukan selain pengupasan karakter komentar FORTRAN.
Selain itu, file HTML mencantumkan variabel lokal yang dideklarasikan, blok umum
variabel yang digunakan, fungsi dan subrutin yang dipanggil, penggunaan unit I/O, dan lainnya
informasi tentang setiap subprogram. Biasanya Anda juga ingin menentukan
-panggilan=pohon untuk membuat file HTML root CallTree.html. (Mungkin file ini seharusnya
diberi nama index.html.)

Berbagai pilihan untuk bentuk file HTML dikendalikan oleh daftar, yang
terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga spesial
kata kunci: semua untuk mengaktifkan semua opsi, tak satupun untuk mematikan semuanya, dan membantu untuk
cetak daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar is
dihilangkan, -mkhtml adalah setara dengan -mkhtml=dokumen (yaitu menghasilkan dokumen HTML
file menggunakan opsi default), dan -nomkhtmls adalah setara dengan -mkhtml=tidak ada.

Demi kesederhanaan, opsi untuk -mkhtml sama dengan untuk
-dibuatcls kecuali yang tidak dapat diterapkan. Demikian juga, bentuk numerik dari
pengaturan ini dapat digunakan, dibentuk sebagai jumlah angka dalam tanda kurung di
Daftar di bawah. Kata kunci peringatan dengan artinya adalah sebagai berikut:

dokumen (1):
Buat dokumen HTML. (Ini tersirat oleh salah satu opsi lain, dan
dapat dihilangkan jika ada opsi lain yang diberikan.)

padat (4):
Deklarasi biasanya dicetak cantik untuk berbaris rapi bersama
kolom. Nilai opsi ini memilih output yang ringkas, tanpa kolom
penjajaran.

gunakan-kelanjutan-baris (8):
Menyebabkan garis lanjutan digunakan alih-alih memulai deklarasi baru
pada setiap baris. Opsi ini sesuai untuk digunakan bersama dengan padat.

kata kunci-huruf kecil (16):
Keluarkan kata kunci Fortran dalam huruf kecil, bukan huruf besar default.

vars-and-consts-huruf kecil (32):
Variabel keluaran dan konstanta dalam huruf kecil, bukan default
huruf besar. Konstanta string karakter tidak terpengaruh oleh opsi ini.

kecualikan-sftran3 (64):
Abaikan deklarasi variabel integer internal yang dihasilkan oleh SFTRAN3
praprosesor, xsf3(1L). (Melihat -dibuatcls untuk diskusi.)

menekan-array-dimensi (512):
Menekan dimensi array dalam deklarasi yang dihasilkan. Ini
biasanya tidak diinginkan, tetapi tersedia jika karena alasan tertentu Anda tidak menginginkannya
dimensi array untuk muncul di HTML.

bentuk-bebas (1024):
Menghasilkan deklarasi variabel dalam bentuk sumber bebas. Modus ini adalah
secara otomatis digunakan jika sumber input adalah bentuk bebas. Ini terutama mempengaruhi
bentuk garis lanjutan jika digunakan.

Lihat juga: -calltree, -dibuatcls.

-pemula
Bendera ini dimaksudkan untuk memberikan hasil yang lebih bermanfaat bagi pemula. Ini memiliki dua
efek:

(a) memberikan pesan tambahan yang menyatakan bahwa fungsi yang digunakan tetapi tidak
didefinisikan di mana saja mungkin berupa array yang lupa dideklarasikan oleh pengguna dalam a
Pernyataan DIMENSI (karena sintaks referensi array sama dengan itu
referensi fungsi).

(b) memodifikasi bentuk pesan kesalahan dan peringatan. Jika bendera dikibarkan
off oleh -bukan pemula, pesan-pesan ini dicetak dengan gaya yang lebih mirip UNIX
pita.

Standar = ya.

-keluaran=nama file
Pengaturan ini disediakan untuk kenyamanan pada sistem yang tidak memungkinkan kemudahan
pengalihan output dari program. Ketika pengaturan ini diberikan, output yang
biasanya muncul di layar akan dikirim bukan ke file bernama. Catatan,
Namun, bahwa kesalahan operasional dari ftnchek itu sendiri (misalnya keluar dari ruang atau tidak bisa
file terbuka) masih akan dikirim ke layar. Ekstensi untuk nama file adalah
opsional, dan jika tidak ada ekstensi yang diberikan, ekstensi .lis akan digunakan.

-ukuran pointer=num
Menentukan ukuran variabel ``Cray pointer'' menjadi num byte. Default = putar-
pada = 4 byte.

Ukuran penunjuk digunakan untuk menginformasikan peringatan ketidakcocokan presisi yang melibatkan penunjuk
variabel, misalnya ketika pointer diberi nilai dari alokasi
rutin, atau dilewatkan sebagai parameter subprogram.

Lihat juga: -f77, -portabilitas, -pemotongan, -ukuran kata.

-portabilitas=daftar
ftnchek akan memberikan peringatan untuk berbagai penggunaan non-portabel. Contohnya termasuk
penggunaan tab kecuali dalam komentar atau string di dalam, penggunaan Hollerith
konstanta, dan kesetaraan variabel dari tipe data yang berbeda. Pilihan ini
tidak menghasilkan peringatan untuk ekstensi yang didukung ke Fortran 77 Standard,
yang juga dapat menyebabkan masalah portabilitas. Untuk menangkapnya, gunakan -f77 pengaturan.
Secara default, semua peringatan dimatikan.

Pengaturan ini memberikan kontrol terperinci atas peringatan tentang kemungkinan portabilitas
masalah. Itu daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada
tiga kata kunci khusus: semua untuk mengaktifkan semua peringatan tentang penggunaan nonportabel,
tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua kata kunci dengan a
penjelasan singkat masing-masing. Jika daftar dihilangkan, -portabilitas adalah setara dengan
-portabilitas=semua, dan -noportabilitas adalah setara dengan -portabilitas=tidak ada. itu
kata kunci peringatan dengan artinya adalah sebagai berikut:

garis miring terbalik:
Karakter garis miring terbalik dalam string. Karena beberapa kompiler memperlakukan garis miring terbalik sebagai
karakter pelarian, kehadirannya dapat menyebabkan masalah meskipun digunakan
dengan cara yang sesuai standar.

keselarasan umum:
Variabel blok UMUM tidak dalam urutan ukuran penyimpanan. Beberapa
kompiler memerlukan pemesanan ini karena persyaratan penyelarasan penyimpanan.

hollerith:
Konstanta Hollerith (selain dalam spesifikasi FORMAT). Hollerith
tipe data adalah fitur Fortran IV yang telah dihapus di Fortran 77
standar. Ini digantikan oleh tipe data karakter. Menyimpan Hollerith
data dalam variabel dari tipe data numerik atau logis tidak dapat dibawa-bawa karena
ukuran kata yang berbeda.

tali panjang:
Konstanta string, variabel, atau ekspresi lebih dari 255 karakter.

persamaan campuran:
Variabel dari tipe data yang berbeda setara.

ukuran campuran:
Variabel yang dideklarasikan dengan presisi default digunakan dengan variabel yang diberikan secara eksplisit
presisi, dalam ekspresi, tugas, atau sebagai argumen. Misalnya, jika
variabel yang dideklarasikan sebagai REAL*8 diperlakukan setara dengan DOUBLE PRECISION.

nyata:
Indeks dan batas loop DO non-integer. Ini dapat menyebabkan hasil program menjadi
tergantung pada karakteristik perangkat keras dari komputer tertentu yang digunakan.

tipe param-implisit:
Pengetikan implisit parameter dengan tipe data dari nilai yang ditetapkan, jika itu
berbeda dari tipe default. Peringatan ini hanya dapat terjadi jika implisit
pengetikan parameter telah diaktifkan oleh -sumber=param-tipe implisit
opsi, atau jika pernyataan PARAMETER dalam bentuk tidak standar tanpa
tanda kurung. Jika opsi ini diaktifkan, maka setiap kejadian di mana implisit
pengetikan parameter terjadi dan di mana tipe implisit berbeda dari
tipe default berdasarkan huruf pertama dari nama parameter, akan diperingatkan
tentang. Pengetikan parameter implisit dapat mengubah semantik pernyataan
di mana parameter digunakan, menyebabkan masalah portabilitas.

tab: Tab dalam kode sumber. Tab diinterpretasikan secara berbeda oleh yang berbeda
kompiler. Peringatan ini hanya akan diberikan sekali, di akhir file.

Lihat juga: -f77, -f90, -f95, -cantik, Gaya, -ukuran kata.

-cantik=daftar
Mengontrol pesan tertentu yang terkait dengan tampilan kode sumber. Ini memperingatkan
tentang hal-hal yang mungkin membuat program kurang terbaca atau menipu pembaca.
Secara default, semua peringatan diaktifkan.

Pengaturan ini memberikan kontrol terperinci atas peringatan tentang penampilan. Itu
daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Karena semua peringatan aktif
secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan peringatan tertentu.
Ada tiga kata kunci khusus: semua untuk mengaktifkan semua peringatan tentang menyesatkan
penampilan, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua
kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan, -cantik is
setara dengan -cantik=semua, dan -tidak cantik adalah setara dengan -cantik=tidak ada. itu
kata kunci peringatan dengan artinya adalah sebagai berikut:

alternatif-kembali:
Pernyataan RETURN memiliki konstanta yang menentukan titik balik alternatif yang
tidak antara 0 dan jumlah argumen dummy yang merupakan label. Ini
legal, dan memiliki efek yang sama sebagai PENGEMBALIAN tanpa pengembalian alternatif
ekspresi, tetapi menunjukkan bahwa programmer bermaksud menggunakan alternatif
label pengembalian yang tidak disediakan.

ruang-tertanam:
Spasi disematkan dalam nama variabel atau operator multi-karakter seperti **.

kelanjutan:
Tanda lanjutan mengikuti baris komentar.

antrean panjang:
Garis (kecuali komentar) dengan lebar lebih dari 72 kolom (di atas 72 biasanya
diabaikan oleh kompiler).

ruang yang hilang:
Kurangnya ruang antara variabel dan kata kunci sebelumnya.

banyak-umum:
Blok COMMON dideklarasikan dalam beberapa pernyataan. Tidak ada peringatan yang diberikan jika
pernyataan berurutan kecuali untuk baris komentar.

daftar nama ganda:
NAMELIST dideklarasikan dalam beberapa pernyataan. Tidak ada peringatan yang diberikan jika
pernyataan berurutan kecuali untuk baris komentar.

tanda kurung:
Tanda kurung di sekitar variabel dengan sendirinya. Sebagai argumen subprogram, ini
membuat argumen menjadi ekspresi, tidak dapat dimodifikasi oleh subprogram.

Perhatikan bahwa dalam bentuk sumber gratis, ruang ekstra dan ruang yang hilang dilarang oleh
Fortran 90 Standard, dan bukan hanya pelanggaran gaya. Dalam hal ini peringatan
digantikan oleh pesan kesalahan sintaks, dan hanya dapat dimatikan dengan menggunakan
-nocheck.

Lihat juga: -f77, -portabilitas, Gaya.

-proyek=daftar
ftnchek akan membuat file proyek dari setiap file sumber yang dimasukkan saat ini
opsi diaktifkan. File proyek akan diberi nama yang sama dengan input
file, tetapi dengan ekstensi .f or .untuk digantikan oleh .prj. (Jika masukan dari
input standar, file proyek diberi nama ftnchek.prj.) Default = tidak ada.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga
kata kunci khusus: semua untuk mengaktifkan semua opsi, tak satupun untuk mematikan semuanya, dan
membantu untuk mencetak daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika
daftar dihilangkan, -proyek adalah setara dengan -proyek=semua, dan -tidak ada proyek is
setara dengan -proyek=tidak ada. Kata kunci dengan artinya adalah sebagai berikut:

membuat:
Menghasilkan file proyek. Standarnya adalah tidak menghasilkan file proyek. Jika
opsi ini tidak diaktifkan, opsi lain tidak berpengaruh.

panggilan-pangkas:
Pangkas jumlah informasi yang disimpan dalam file proyek tentang subprogram
deklarasi dan panggilan. Ini adalah default. Matikan opsi ini hanya di
situasi langka. (Lihat diskusi di bawah.) Jumlah pemangkasan bervariasi
tergantung pada -Perpustakaan bendera. Informasi lebih lanjut dipangkas jika bendera itu
dihidupkan.

trim-umum:
Pangkas jumlah deklarasi blok umum yang disimpan dalam file proyek.
Ini adalah default. Matikan opsi ini hanya dalam situasi yang jarang terjadi. (Melihat
diskusi di bawah.) Opsi ini tidak berpengaruh jika -Perpustakaan bendera diputar
off: ketika tidak dalam mode perpustakaan, tidak ada pemangkasan deklarasi blok umum adalah
dilakukan terlepas dari opsi ini.

File proyek berisi ringkasan informasi dari file sumber, untuk digunakan dalam
memeriksa kesepakatan antara FUNCTION, SUBROUTINE, dan penggunaan COMMON di file lain.
Hal ini memungkinkan pemeriksaan tambahan, yang menghemat waktu setiap kali Anda memiliki satu set besar
file yang berisi subrutin bersama, yang sebagian besar jarang berubah. Anda bisa lari
ftnchek sekali pada setiap file dengan -proyek flag set, membuat file proyek.
Biasanya Anda juga akan mengatur -Perpustakaan serta -tidak ada eksternal bendera saat ini, untuk
menekan pesan yang berkaitan dengan konsistensi dengan file lain. Hanya pesan kesalahan
berkaitan dengan setiap file dengan sendirinya akan dicetak saat ini. Setelah itu, lari
ftnchek tanpa tanda-tanda ini pada semua file proyek bersama-sama, untuk memeriksa konsistensi
antara file yang berbeda. Semua pesan internal ke file individual sekarang akan
dihilangkan. Hanya ketika file diubah, file proyek baru perlu dibuat
untuk itu.

Secara alami, ketika -proyek opsi diaktifkan, ftnchek tidak akan membaca proyek
file sebagai masukan.

Biasanya, opsi trim harus dibiarkan aktif saat Anda ingin membuat proyek
file untuk masukan di masa mendatang ke ftnchek. Karena pemangkasan diaktifkan secara default, ini berarti
itu hanya memberi perintah -proyek tanpa daftar opsi yang direkomendasikan
mode. Opsi trim disediakan hanya sebagai kemudahan bagi mereka yang ingin
memanfaatkan file proyek untuk tujuan selain memeriksa program dengan
ftnchek. Untuk menggunakan file proyek untuk tujuan yang dimaksudkan, opsi trim harus
tidak dimatikan.

File proyek hanya berisi informasi yang diperlukan untuk memeriksa kesepakatan antar file.
Ini berarti bahwa file proyek tidak ada gunanya jika semua modul dari program lengkap
terkandung dalam satu file.

Diskusi yang lebih rinci diberikan di bagian Menggunakan File Proyek.

-murni
Asumsikan fungsi adalah ``murni'', yaitu, mereka tidak akan memiliki efek samping dengan memodifikasi
argumen atau variabel mereka dalam blok COMMON. Saat bendera ini berlaku,
ftnchek akan mendasarkan penentuan set dan status yang digunakan dari argumen aktual
dengan asumsi bahwa argumen yang diteruskan ke suatu fungsi tidak diubah. Itu akan
juga mengeluarkan peringatan jika suatu fungsi ditemukan untuk mengubah argumennya atau apa pun
variabel UMUM. Standar = ya.

Saat tanda ini dimatikan, argumen aktual yang diteruskan ke fungsi akan ditangani
dengan cara yang sama seperti argumen aktual yang diteruskan ke subrutin. Ini berarti bahwa ftnchek
akan menganggap bahwa argumen dapat dimodifikasi oleh fungsi. Tidak akan ada peringatan
diberikan jika suatu fungsi ditemukan memiliki efek samping. Karena pemeriksaan yang lebih ketat adalah
mungkin jika fungsi dianggap murni, Anda harus mematikan tanda ini hanya jika
program Anda sebenarnya menggunakan fungsi dengan efek samping.

-diam
Opsi ini mengurangi jumlah output yang berkaitan dengan operasi normal, sehingga
pesan kesalahan lebih jelas. Opsi ini disediakan untuk kenyamanan
pengguna yang memeriksa kumpulan besar file. Keluaran yang dihilangkan termasuk
nama file proyek, dan pesan yang melaporkan bahwa tidak ada kesalahan sintaks yang ditemukan.
Ini juga menghilangkan beberapa baris kosong yang biasanya disertakan untuk kejelasan. (Beberapa
output ini dihidupkan kembali oleh -daftar serta -symtab pilihan.) Default = tidak.

Catatan: cara mengingat perbedaan antara -diam serta -singkat adalah bahwa
-diam tidak menekan informasi terkait peringatan apa pun, sedangkan -singkat tidak.

Lihat juga: -singkat.

-referensi
Menentukan bahwa tabel siapa-panggil-siapa dicetak. Tabel ini mencantumkan setiap subprogram
diikuti oleh daftar rutinitas yang dipanggilnya. Saklar ini setara dengan
-calltree=referensi. Standar = tidak.

Daftar referensi menghilangkan rutinitas yang dipanggil oleh modul perpustakaan yang tidak digunakan. Jadi itu
berisi informasi yang sama dengan format pohon panggilan, yaitu hierarki
panggilan subprogram, tetapi dicetak dengan cara yang berbeda. Ini mencetak yang luas-pertama
traversal pohon panggilan sedangkan -calltree=pohon mencetak kedalaman-pertama
lintas.

Lihat juga: -calltree, -crossref, -Perpustakaan, -menyortir, -symtab, -vcg.

-sumber daya
Mencetak jumlah sumber daya yang digunakan oleh ftnchek dalam mengolah program. Ini
daftar mungkin berguna dalam menganalisis ukuran dan kompleksitas suatu program. Bisa
juga membantu dalam memilih ukuran yang lebih besar untuk ftnchektabel internal jika mereka juga
kecil untuk menganalisis program tertentu. Standar = tidak.

Dalam daftar ini, istilah ``ukuran potongan'' adalah ukuran blok memori
dialokasikan untuk menyimpan barang yang bersangkutan, dalam satuan ukuran satu barang, bukan
tentu dalam byte. Ketika ruang yang awalnya dialokasikan terisi, lebih banyak memori
dialokasikan dalam potongan ukuran ini. Berikut ini adalah penjelasan dari item
dicetak:

sumber baris diproses:
Jumlah total baris kode, dengan total terpisah untuk baris pernyataan dan
baris komentar. Baris komentar termasuk baris dengan 'C' atau '*' di kolom 1 juga
sebagai baris kosong dan baris yang hanya berisi komentar sebaris. Baris pernyataan
semua baris lain, termasuk baris yang memiliki komentar sebaris mengikuti beberapa
kode. Garis lanjutan dihitung sebagai garis terpisah. Garis termasuk
file dihitung setiap kali file disertakan.

Total executable pernyataan:
Jumlah pernyataan dalam program, selain spesifikasi, data, pernyataan-
fungsi, FORMAT, ENTRY, dan pernyataan END.

Total jumlah of modul:
Modul adalah setiap subprogram eksternal, termasuk program utama, subrutin,
fungsi, dan blok unit data. Hitungan ini adalah modul yang ditentukan dalam
sumber, bukan modul yang dirujuk. Fungsi pernyataan tidak disertakan. SEBUAH
subprogram dengan beberapa titik masuk hanya dihitung satu kali.

Total pernyataan label didefinisikan
Jumlah label yang dilampirkan pada pernyataan (sering disebut nomor pernyataan). Itu
jumlah label total untuk seluruh program diberikan, serta maksimum
nomor dalam setiap subprogram tunggal.

max identifier nama karakter:
Jumlah karakter yang digunakan untuk menyimpan nama pengenal. Pengidentifikasi adalah
variabel, subprogram, atau nama blok umum. Nama lokal adalah nama lokal
variabel dalam subprogram, sedangkan nama global mengacu pada subprogram dan umum
nama blok, serta nama argumen dummy dan nama variabel umum. Sebenarnya
teks argumen (hingga 15 karakter untuk setiap argumen) juga disertakan di sini.
Ruang yang digunakan untuk nama lokal tidak dipulihkan di akhir setiap modul, jadi
jumlah ini, seperti ruang global, tumbuh sampai seluruh program dianalisis.
Sayangnya, gambar ini mungkin menyertakan beberapa teks yang disimpan lebih dari sekali,
meskipun heuristik digunakan yang akan menghindari duplikat dalam banyak kasus.

max token teks karakter:
Token adalah unit sintaksis terkecil dari bahasa FORTRAN di atas level
dari karakter individu. Misalnya token dapat berupa nama variabel, a
konstanta numerik, string teks yang dikutip, atau karakter tanda baca. Token
teks disimpan saat modul sedang diproses. Untuk alasan teknis,
token karakter tunggal tidak termasuk dalam total ini. Barang yang tidak
diwakili dalam tabel simbol dapat diduplikasi. Ruang untuk teks token adalah
dipulihkan di akhir setiap modul, jadi angka ini mewakili maksimum untuk
salah satu modul.

max lokal simbol:
Ini adalah jumlah entri terbesar dalam tabel simbol lokal untuk modul apa pun.
Entri tabel simbol lokal mencakup semua variabel dan parameter, blok umum
nama, fungsi pernyataan, subprogram eksternal dan fungsi intrinsik
dirujuk oleh modul. Konstanta literal tidak disimpan dalam simbol lokal
tabel.

max global simbol:
Ini adalah jumlah entri dalam tabel simbol global di akhir
pengolahan. Entri tabel simbol global termasuk subprogram eksternal dan umum
nama blok. Fungsi intrinsik dan fungsi pernyataan tidak disertakan.

max jumlah of daftar token:
Daftar token adalah urutan token yang mewakili argumen aktual atau dummy
daftar subprogram, atau daftar variabel dalam blok umum atau daftar nama.
Oleh karena itu angka ini merupakan jumlah terbesar dari COMMON, CALL, NAMELIST dan
Pernyataan ENTRY dan pemanggilan fungsi untuk satu modul. Ruang adalah
dipulihkan pada akhir setiap modul.

max token daftar/pohon ruang:
Ini adalah jumlah token terbesar di semua daftar token dan pohon token
salah satu modul. Pohon token terbentuk saat menganalisis ekspresi: masing-masing
operand adalah daun dari pohon, dan operator adalah node. Oleh karena itu
number adalah ukuran kompleksitas maksimum dari modul individual. Untuk
Misalnya modul dengan banyak ekspresi aritmatika panjang akan memiliki tinggi
nomor. Perhatikan bahwa tidak seperti teks token yang dijelaskan di atas, jumlah token adalah
independen dari panjang nama variabel atau konstanta literal dalam
ekspresi.

Jumlah of subprogram doa:
Ini adalah jumlah semua modul dari jumlah pernyataan dan fungsi CALL
doa (kecuali fungsi intrinsik dan fungsi pernyataan).

Jumlah of umum blok menyatakan:
Ini adalah jumlah semua modul dari jumlah deklarasi blok umum.
Artinya, setiap deklarasi blok dalam modul yang berbeda dihitung
terpisah. (Standar memungkinkan beberapa deklarasi blok di dalam
modul yang sama; ini dihitung sebagai hanya satu deklarasi karena mereka
setara dengan satu deklarasi panjang.)

Jumlah of susunan redup & berhenti poin:
Ini adalah jumlah dari semua modul dari jumlah dimensi dan parameter array
string teks definisi disimpan untuk digunakan oleh -dibuatcls pilihan. panjang dari
string teks tidak dihitung. Setiap dimensi dari array multidimensi adalah
dihitung secara terpisah.

Angka-angka ini jelas tidak sama ketika file proyek digunakan sebagai pengganti
kode sumber aslinya. Bahkan nomor untuk entitas global mungkin berbeda,
karena beberapa informasi yang berlebihan dihilangkan dalam file proyek.

-sixchar
Salah satu tujuan dari ftnchek program ini untuk membantu pengguna menulis Fortran portabel
program. Salah satu sumber potensi nonportabilitas adalah penggunaan nama variabel yang
lebih dari enam karakter. Beberapa kompiler mengabaikan karakter tambahan.
Perilaku ini berpotensi menyebabkan dua variabel berbeda dianggap sebagai
sama. Misalnya, variabel bernama AVERAGECOST dan AVERAGEPRICE adalah sama
dalam enam karakter pertama. Jika Anda ingin menangkap kemungkinan konflik seperti itu, gunakan
bendera ini. Standar = tidak.

Gunakan -f77=nama panjang kalau mau daftar semua variabel yang lebih panjang dari enam
karakter, bukan hanya pasangan yang sama di enam yang pertama.

Lihat juga: -f77, -portabilitas.

-menyortir
Menentukan bahwa daftar terurut dari semua modul yang digunakan dalam program akan dicetak. Ini
list dalam urutan ``prasyarat'', yaitu setiap modul hanya dicetak setelah semua
modul dari yang disebut telah dicetak. Ini juga disebut
``pengurutan topologi'' dari pohon panggilan. Setiap modul terdaftar hanya sekali. Rutinitas
yang tidak ada dalam pohon panggilan program utama dihilangkan. Jika ada
siklus dalam grafik panggilan (ilegal dalam Fortran standar) mereka akan terdeteksi dan
didiagnosis. Standar = tidak.

Lihat juga: -calltree, -crossref, -referensi, -symtab, -vcg.

-sumber=daftar
Pengaturan ini mengontrol opsi tertentu tentang bentuk kode sumber Fortran.
The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga
kata kunci khusus: semua untuk mengaktifkan semua opsi, tak satupun untuk mematikan semuanya, dan
membantu untuk mencetak daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika
daftar dihilangkan, -source adalah setara dengan -sumber=semua, dan -tidak ada sumber setara
untuk -sumber=tidak ada.

Untuk kompatibilitas dengan versi sebelumnya dari ftnchek, bentuk numerik dari pengaturan ini
juga diterima: the daftar diganti dengan suatu bilangan yang merupakan jumlah dari bilangan-bilangan tersebut
dalam tanda kurung di samping kata kunci dalam daftar berikut. (Itu tetap serta gratis
pilihan tidak memiliki nilai numerik.) Kata kunci peringatan dengan artinya adalah
sebagai berikut:

tetap:
Menafsirkan sumber sebagai bentuk tetap (dengan ekstensi yang didukung seperti
tanda seru untuk komentar). Pernyataan harus di kolom 7 sampai 72
(kecuali jika -kol pengaturan telah digunakan untuk mengubah ini), dan yang kosong tidak
konteks karakter luar yang signifikan (tetapi diperingatkan tentang di bawah -cantik
pilihan). Ini adalah mode default kecuali ekstensi file sumber adalah .f90
or .F90. opsi ini tidak dapat diberikan bersamaan dengan -sumber=gratis.

gratis: Menafsirkan sumber sebagai bentuk bebas. Pernyataan bisa di mana saja di kolom 1
ke 132, komentar hanya bisa dimulai dengan tanda seru, dan yang kosong adalah
diperlukan di beberapa tempat seperti antara pengidentifikasi dan kata kunci. Ini
mode default jika ekstensi file sumber adalah .f90 or .F90. Pilihan ini
tidak dapat diberikan bersamaan dengan -sumber=tetap or -sumber=dec-tab

tab-desember (1):
Terima sumber berformat tab gaya DEC. Garis yang dimulai dengan tab awal
akan diperlakukan sebagai baris pernyataan baru kecuali karakter setelah tab adalah
digit bukan nol, dalam hal ini diperlakukan sebagai garis lanjutan. Itu
kolom berikutnya setelah tab atau tanda lanjutan diambil sebagai kolom 7. A
peringatan akan diberikan dalam kasus di mana garis merupakan kelanjutan, jika
-f77=tab-des sedang berlaku.

vms-termasuk (2):
Terima pernyataan INCLUDE gaya VMS. Ini mengikuti sintaks normal, tapi
dengan fitur tambahan berikut: (1) ekstensi file, jika tidak diberikan,
defaultnya sama dengan ekstensi file sumber normal; dan (2) pilihan
/LIST atau /NOLIST dapat ditambahkan ke nama file yang disertakan, untuk mengontrol daftar
dari isinya.

unix-backslash (4):
Menangani pelarian backslash gaya UNIX dalam string karakter. Pelarian
urutan setelah garis miring terbalik akan dievaluasi menurut ANSI
standar untuk string dalam C: hingga tiga digit menandakan nilai oktal, sebuah x
menandakan awal dari konstanta heksadesimal, salah satu huruf abfnrt
menandakan kode kontrol khusus, dan karakter lainnya (termasuk baris baru)
menandakan karakter itu sendiri. Ketika opsi kode sumber ini berlaku, a
peringatan akan diberikan jika -f77=garis miring terbalik pengaturan ditentukan.

Perilaku default adalah memperlakukan backslash seperti normal lainnya
karakter, tetapi peringatan tentang portabilitas akan dihasilkan jika
-portabilitas bendera ditetapkan. Karena fakta bahwa beberapa kompiler memperlakukan
garis miring terbalik dengan cara yang tidak standar, dimungkinkan untuk memenuhi standar
program menjadi non-portabel jika mereka menggunakan karakter garis miring terbalik dalam string.

Sejak ftnchek tidak berbuat banyak dengan string yang ditafsirkan, jarang
diperlukan untuk menggunakan opsi ini. Hal ini diperlukan untuk menghindari palsu
peringatan hanya jika (a) program yang diperiksa menggunakan garis miring terbalik untuk menyematkan
apostrof atau tanda kutip dalam string alih-alih menggunakan mekanisme standar
menggandakan pembatas; (b) garis miring terbalik digunakan untuk menghindari akhir
baris untuk melanjutkan string di beberapa baris sumber; atau (c) a
Definisi PARAMETER menggunakan fungsi string intrinsik seperti LEN dengan
string sebagai argumen, dan nilai itu kemudian digunakan untuk mendefinisikan array
dimensi, dll.

tipe param-implisit (8):
Pengetikan implisit parameter dengan tipe data dari nilai yang ditetapkan. Beberapa
kompiler non-standar dapat mengizinkan tipe data dari nilai untuk menimpa
Fortran 77 tipe default dari parameter yang didasarkan pada huruf pertama dari
nama parameternya. Opsi ini hanya berlaku untuk pernyataan PARAMETER dari
bentuk standar yang memiliki tanda kurung. Sebuah parameter yang telah secara eksplisit
dideklarasikan dalam pernyataan tipe sebelum pernyataan PARAMETER tidak terpengaruh
oleh opsi ini. Peringatan akan diberikan di bawah -f77=param-tipe implisit
or -portabilitas=param-tipe implisit pilihan.

Perhatikan bahwa pengetikan implisit ini diperlakukan setara dengan tipe eksplisit
deklarasi parameter. Karena itu, jika Anda menggunakan
-makedcls=tidak dideklarasikan-saja untuk menghasilkan deklarasi hanya dari yang tidak dideklarasikan
variabel, parameter ini akan tidak termasuk.

dec-param-tipe standar (16):
Ikuti aturan Fortran 77 untuk pengetikan data parameter gaya DEC Fortran.
Ini dideklarasikan menggunakan bentuk tidak standar dari pernyataan PARAMETER yang:
tidak memiliki tanda kurung. Menurut DEC Fortran, parameter ditentukan oleh formulir ini
pernyataan memiliki tipe data yang diberikan oleh tipe data nilainya
ditugaskan. Gunakan opsi ini untuk memberi tahu ftnchek untuk tidak mengikuti aturan ini tapi
alih-alih menggunakan aturan yang sama seperti untuk pernyataan PARAMETER standar. Ini
opsi tidak berlaku untuk pernyataan PARAMETER dalam bentuk standar.

Secara default, semua opsi kode sumber ini dimatikan, kecuali untuk
vms-termasuk opsi, yang aktif secara default di versi VMS..

Lihat juga: -f77, -termasuk, -portabilitas.

-gaya=daftar
Memberikan peringatan ekstra pilih-pilih tentang pemrograman usang atau kuno
konstruksi. Opsi ini berguna untuk upaya mengikuti pemrograman modern
gaya. (Sebagian besar hal yang dikeluhkan di bawah opsi ini dilarang di
F bagian bahasa.) By bawaan, semua peringatan adalah berbalik mati.

The daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Ada tiga
kata kunci khusus: semua untuk mengaktifkan semua opsi, tak satupun untuk mematikan semuanya, dan
membantu untuk mencetak daftar semua kata kunci dengan penjelasan singkat masing-masing. Jika
daftar dihilangkan, Gaya adalah setara dengan -gaya=semua, dan -nostyle adalah setara dengan
-gaya=tidak ada. Kata kunci peringatan dengan artinya adalah sebagai berikut:

blok-jika:
Mengeluh tentang pernyataan IF aritmatika. Terima blok IF atau IF logis (yang
mengontrol satu pernyataan).

nama konstruksi:
Mengeluh tentang konstruksi blok yang tidak disebutkan namanya: IF, DO, dan SELECT CASE. Perhatikan bahwa
jika nama konstruk ada pada pernyataan pembukaan konstruk, maka
itu harus ada pada semua pernyataan komponen lainnya (ELSE, END IF,
dll) dari konstruksi. Dalam hal ini, nama konstruksi yang hilang pada itu
pernyataan menghasilkan kesalahan sintaks terlepas dari opsi ini. Tujuan
dari opsi ini adalah untuk memperingatkan jika konstruk benar-benar tidak memiliki opsional
Nama.

berbeda-lakukan:
Mengeluh jika dua loop DO berbagi pernyataan terminator yang sama.

lakukan-konstruksi:
Mengeluh jika terminator dari loop DO adalah apa pun selain END DO atau
pernyataan LANJUTKAN. Ini adalah persyaratan agar loop terpenuhi
definisi Fortran 90 dari do-construct.

lakukan-selesai:
Mengeluh jika terminator dari loop DO adalah apa pun selain END DO
penyataan. (Opsi ini mengesampingkan lakukan-konstruksi pilihan, menjadi genap
lebih ketat.)

nama akhir:
Keluhan tentang tidak adanya nama subprogram pada END terstruktur
pernyataan.

format-stmt:
Mengeluh tentang adanya pernyataan FORMAT. Hanya pernyataan FORMAT
sendiri ditandai, bukan referensi untuk mereka dalam daftar I/O.

goto: Mengeluh tentang keberadaan GOTO tanpa syarat, dihitung atau ditugaskan
pernyataan. Juga mengeluh tentang pengembalian alternatif (tetapi bukan tentang label sebagai
argumen subprogram).

berlabel-stmt:
Mengeluh tentang adanya label (angka) pada pernyataan selain
pernyataan FORMAT. (Karena pernyataan FORMAT bisa dibilang nyaman dan tidak
mudah disalahgunakan, keluhan tentang mereka dikendalikan oleh yang terpisah
format-stmt kata kunci.)

program-stmt:
Pengaduan tidak adanya pernyataan PROGRAM di kepala pusat
program.

terstruktur-akhir:
Mengeluh tentang penggunaan pernyataan END biasa untuk mengakhiri subprogram, bukan
daripada pernyataan AKHIR terstruktur (AKHIR PROGRAM, AKHIR SUBROUTIN, FUNGSI AKHIR,
atau DATA BLOK AKHIR).

Lihat juga: -f77, -f90, -f95, -cantik, -portabilitas.

-symtab
Tabel simbol akan dicetak untuk setiap modul, mencantumkan semua pengenal
disebutkan dalam modul. Tabel ini memberikan nama setiap variabel, tipe datanya,
dan jumlah dimensi untuk array. Tanda bintang (*) menunjukkan bahwa
variabel telah diketik secara implisit, daripada diberi nama dalam tipe eksplisit
pernyataan deklarasi. Tabel juga mencantumkan semua subprogram yang dipanggil oleh modul,
semua blok COMMON dideklarasikan, dll. Default = no.

Juga, untuk setiap modul, tabel label akan dicetak. Tabel mencantumkan setiap label
didefinisikan dalam modul; garis di mana label pernyataan tersebut didefinisikan; dan
jenis pernyataan (dapat dieksekusi, format, atau spesifikasi). Label tercantum di
urutan berurutan.

Juga dicetak adalah tabel yang menjelaskan unit I/O yang digunakan oleh modul, bersama dengan
informasi tentang bagaimana mereka digunakan: operasi apa yang dilakukan, apakah
akses berurutan atau langsung, dan apakah I/O diformat atau tidak.

Lihat juga: -calltree, -crossref, -daftar, -referensi, -menyortir, -vcg.

-pemotongan=daftar
Peringatkan tentang kemungkinan kesalahan pemotongan (atau pembulatan). Sebagian besar terkait dengan
aritmatika bilangan bulat. Secara default, semua peringatan diaktifkan.

Pengaturan ini memberikan kontrol terperinci atas peringatan tentang kemungkinan pemotongan
kesalahan. Itu daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Sejak semua
peringatan diaktifkan secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan
peringatan tertentu. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan tentang pemotongan, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar
semua kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan, -pemotongan
adalah setara dengan -pemotongan=semua, dan -notruncation adalah setara dengan
-pemotongan=tidak ada. Kata kunci peringatan dengan artinya adalah sebagai berikut:

int-div-eksponen:
penggunaan hasil pembagian bilangan bulat sebagai eksponen. Hal ini menunjukkan bahwa
hasil bagi yang sebenarnya dimaksudkan. Contohnya adalah menulis X**(1/3) untuk dievaluasi
akar pangkat tiga dari X. Ekspresi yang benar adalah X**(1./3.).

int-div-nyata:
Konversi ekspresi yang melibatkan pembagian bilangan bulat ke real. Ini
menunjukkan bahwa hasil bagi nyata dimaksudkan.

int-div-nol:
pembagian dalam ekspresi konstanta bilangan bulat yang menghasilkan hasil nol.

int-neg-power:
eksponensial bilangan bulat dengan bilangan bulat negatif (yang menghasilkan nol kecuali
bilangan bulat dasar adalah 1 besarnya). Hal ini menunjukkan bahwa basis nyata adalah
dimaksudkan.

promosi:
konversi otomatis dari kuantitas presisi yang lebih rendah ke salah satu yang lebih tinggi
presisi. Hilangnya akurasi untuk variabel nyata dalam proses ini adalah
sebanding dengan penurunan pangkat yang sesuai. Tidak ada peringatan yang diberikan untuk promosi
dari jumlah bilangan bulat ke real karena ini biasanya eksak.

real-do-indeks:
penggunaan indeks DO non-integer dalam satu lingkaran dengan batas integer. Sebuah bilangan bulat DO
indeks dengan batas nyata selalu diperingatkan terlepas dari pengaturan ini.

real-subscript:
penggunaan subskrip array non-integer.

sosok penting:
overspecifying konstanta presisi tunggal. Ini mungkin menunjukkan bahwa double
konstanta presisi dimaksudkan.

penurunan ukuran:
konversi otomatis dari kuantitas presisi yang lebih tinggi ke presisi yang lebih rendah
dari jenis yang sama. Peringatan ini hanya terjadi ketika ukuran eksplisit digunakan dalam
mendeklarasikan jenis satu atau kedua operan dalam tugas. Misalnya,
peringatan akan dikeluarkan di mana variabel NYATA*8 ditugaskan ke variabel NYATA,
jika ukuran kata default 4 berlaku. Sebuah peringatan juga dikeluarkan jika
integer panjang ditugaskan ke yang lebih pendek, misalnya, jika INTEGER
ekspresi ditugaskan ke variabel INTEGER*2. Ada satu pengecualian untuk
kasus terakhir ini, yaitu jika sisi kanan tugas kecil
konstanta literal (kurang dari 128). penurunan tipe: konversi otomatis dari a
kuantitas presisi yang lebih tinggi ke salah satu presisi yang lebih rendah dari jenis yang berbeda. Ini
peringatan termasuk konversi jumlah nyata ke bilangan bulat, presisi ganda
ke presisi tunggal nyata, dan penetapan string karakter yang lebih panjang ke a
yang lebih pendek.

Peringatan tentang promosi dan penurunan pangkat juga berlaku untuk konstanta kompleks,
mempertimbangkan presisi menjadi bagian nyata atau imajiner. Peringatan tentang
promosi dan penurunan pangkat hanya diberikan ketika konversi dilakukan secara otomatis,
misalnya dalam ekspresi presisi campuran atau dalam pernyataan tugas. Jika intrinsik
fungsi seperti INT digunakan untuk melakukan konversi, tidak ada peringatan yang diberikan.

Lihat juga: -portabilitas, -ukuran kata.

-penggunaan=daftar
Peringatkan tentang variabel yang tidak digunakan atau mungkin tidak diinisialisasi, blok umum yang tidak digunakan,
label pernyataan yang tidak ditentukan atau tidak digunakan, dan subprogram yang tidak digunakan atau tidak ditentukan. Oleh
default, semua peringatan diaktifkan.

Pengaturan ini memberikan kontrol terperinci atas peringatan tentang kemungkinan penggunaan
kesalahan. Itu daftar terdiri dari kata kunci yang dipisahkan dengan koma atau titik dua. Sejak semua
peringatan diaktifkan secara default, sertakan kata kunci yang diawali dengan tidak- untuk mematikan
peringatan tertentu. Ada tiga kata kunci khusus: semua untuk mengaktifkan semua
peringatan tentang penggunaan, tak satupun untuk mematikan semuanya, dan membantu untuk mencetak daftar semua
kata kunci dengan penjelasan singkat masing-masing. Jika daftar dihilangkan, -penggunaan is
setara dengan -penggunaan=semua, dan -nousage adalah setara dengan -penggunaan=tidak ada. Ini
peringatan mencakup empat kategori utama objek: argumen dummy subprogram, umum
blok dan variabel, subprogram dan fungsi, dan variabel lokal. Peringatan
termasuk item yang tidak ditentukan, kalikan item yang ditentukan, item yang tidak digunakan, dll. Peringatan
kata kunci dengan artinya adalah sebagai berikut:

arg-alias:
argumen dummy skalar sebenarnya sama dengan yang lain dan (atau mungkin)
diubah. Standar Fortran 77 (bagian 15.9.3.6) melarang modifikasi dan
argumen yang beralias ke yang lain.

arg-array-alias:
argumen dummy yang merupakan array atau elemen array berada dalam array yang sama dengan
lain dan dimodifikasi. Bendera ini mirip dengan arg-alias tapi menyediakan
kontrol terpisah atas argumen array. Lebih sulit untuk mengetahui apakah aliasing itu
terjadi dalam kasus array, jadi jika ftnchek memberikan terlalu banyak peringatan palsu,
flag ini memungkinkan yang terkait array dimatikan tanpa menekan
peringatan untuk skalar.

arg-umum-alias:
argumen dummy skalar sama dengan variabel umum dalam subprogram,
dan keduanya dimodifikasi. Ini juga dilarang oleh standar Fortran 77.
Jika pemeriksaan umum tidak tepat (lihat -umum pengaturan), lebih sulit untuk
beri tahu apakah aliasing sedang terjadi, jadi peringatan diberikan jika variabelnya adalah
di mana saja di blok umum yang dideklarasikan oleh subprogram.

arg-common-array-alias:
argumen dummy yang merupakan array atau elemen array berada dalam array yang sama dengan a
variabel umum, dan salah satunya dimodifikasi. Jika pemeriksaan umum tidak tepat,
variabel dapat berada di mana saja dalam blok umum yang dideklarasikan oleh
subprogram.

arg-const-modified:
subprogram memodifikasi argumen yang merupakan konstanta atau ekspresi. Seperti
suatu tindakan dapat menyebabkan perilaku program yang tidak normal.

arg-tidak terpakai:
argumen dummy dideklarasikan tetapi tidak pernah digunakan. Ini mirip dengan
var-tidak terpakai kata kunci yang dijelaskan di bawah, tetapi hanya berlaku untuk argumen.

com-block-tidak digunakan:
blok umum dideklarasikan tetapi tidak ada variabel di dalamnya yang digunakan oleh
subprogram. Peringatan ini ditekan jika pengaturan keketatan yang umum adalah
0.

com-block-volatile:
blok umum dapat kehilangan definisi isinya jika blok umum adalah
tidak stabil. Opsi ini hanya berpengaruh jika -umum = mudah menguap bendera masuk
memengaruhi. Lihat pembahasannya -umum pengaturan di atas.

com-var-set-unused:
variabel umum diberi nilai, tetapi nilainya tidak digunakan oleh siapa pun
subprogram. Peringatan ini ditekan jika pengaturan keketatan yang umum adalah
0.

com-var-tidak diinisialisasi:
nilai variabel umum digunakan dalam beberapa subprogram, tetapi tidak disetel
di mana saja. Sayangnya, ftnchek tidak melakukan analisis yang cukup menyeluruh tentang
urutan panggilan untuk mengetahui rutinitas mana yang dipanggil sebelum yang lain. Jadi
peringatan tentang jenis kesalahan ini hanya akan diberikan untuk kasus-kasus di mana a
variabel digunakan dalam beberapa rutinitas tetapi tidak diatur dalam rutinitas lainnya. memeriksa
variabel UMUM individu dilakukan hanya jika -umum pengaturannya adalah 3
(variabel dengan kesepakatan variabel). Peringatan ini ditekan jika yang umum
pengaturan keketatan adalah 0.

com-var-tidak digunakan:
variabel umum dideklarasikan tetapi tidak digunakan oleh subprogram apa pun. Peringatan ini
ditekan jika pengaturan keketatan umum adalah 0.

do-index-dimodifikasi:
variabel yang merupakan indeks dari loop DO dimodifikasi oleh beberapa pernyataan
dalam jangkauan loop. Standar mengizinkan variabel DO aktif untuk
dimodifikasi hanya dengan mekanisme kenaikan dari pernyataan DO.

ext-multiply-didefinisikan:
eksternal (subrutin atau fungsi) didefinisikan lebih dari sekali. Definisi
dari sarana eksternal yang menyediakan badan kode sumbernya.

ext-declared-only:
sebuah nama dideklarasikan dalam pernyataan EKSTERNAL di beberapa modul, tetapi tidak
didefinisikan atau digunakan di mana saja.

ex-undefined:
eksternal digunakan (dipanggil) tetapi tidak didefinisikan di mana pun. Pilihan ini adalah
setara dengan -luar bendera. Jika subprogram dipanggil lebih dari
sekali, pemanggilan tersebut masih akan diperiksa konsistensinya.

bekas tidak terpakai:
eksternal didefinisikan (badan subprogramnya ada) tetapi tidak digunakan.
Subprogram dianggap tidak digunakan bahkan jika dipanggil oleh yang lain
subprogram, jika tidak dapat dipanggil dari utas eksekusi apa pun yang dimulai dengan
program utama. Kesesuaian argumen subprogram dengan
pemanggilan masih dicentang meskipun peringatan ini dimatikan. Jika ada
tidak ada program utama, maka peringatan ini dikeluarkan hanya jika subprogram tidak
dipanggil di mana saja. Peringatan ini ditekan dalam mode perpustakaan, tetapi perpustakaan
mode memiliki efek tambahan untuk menekan pemeriksaan argumen untuk yang tidak digunakan
rutinitas.

label-tidak terdefinisi:
pernyataan mengacu pada label yang belum didefinisikan.

label-tidak terpakai:
label pernyataan didefinisikan, tetapi tidak pernah dirujuk.

var-set-tidak digunakan:
variabel lokal diberi nilai, tetapi nilai itu tidak digunakan.

var-tidak diinisialisasi:
nilai variabel lokal dapat digunakan sebelum ditetapkan. Kadang-kadang
ftnchek membuat kesalahan dalam peringatan tentang penggunaan variabel lokal. Biasanya
itu salah di sisi memberikan peringatan di mana tidak ada masalah, tetapi jarang terjadi
kasus itu mungkin gagal untuk memperingatkan di mana masalahnya memang ada. Lihat bagian di
Bug untuk contoh. Jika variabel ekivalen, aturan yang digunakan oleh ftnchek
adalah bahwa referensi ke variabel apa pun menyiratkan referensi yang sama ke semua
variabel yang setara dengannya. Untuk array, aturannya adalah referensi ke
setiap elemen array diperlakukan sebagai referensi ke semua elemen array.

var-tidak terpakai:
variabel lokal dideklarasikan (misalnya, dalam deklarasi tipe) tetapi tidak
digunakan dalam modul. Tidak berlaku untuk argumen dummy: peringatan tentang mereka
dikendalikan oleh kata kunci arg-tidak terpakai dijelaskan di atas.

Catatan: Dalam versi ftnchek sebelum 2.10, -penggunaan bendera mengambil argumen numerik
alih-alih daftar opsi. Demi pengguna yang mungkin telah menulis skrip
memohon ftnchek dengan cara ini, bentuk numerik masih diterima. numerik
pengaturan terdiri dari tiga digit. Digit pertama (ratusan tempat) mengontrol
peringatan tentang subprogram (fungsi dan subrutin), digit kedua (puluhan
tempat) peringatan tentang blok umum dan variabel umum,, dan digit ketiga
(tempat satu) peringatan tentang variabel lokal. Setiap digit mengontrol peringatan
menurut konvensi bahwa 1 berarti memperingatkan tentang item dan variabel yang tidak ditentukan
yang digunakan sebelum disetel, 2 berarti memperingatkan tentang item yang tidak digunakan, dan 3 berarti
memperingatkan tentang kedua jenis. Angka-angka ini sekarang dikonversi ke nilai yang sesuai
untuk kata kunci yang tercantum di atas, kecuali untuk com-block-volatile, yang tidak terpengaruh
oleh argumen numerik.

Lihat juga: -umum, -menyatakan, -eksternal, -Perpustakaan.

-vcg
Menghasilkan grafik panggilan dalam bentuk deskripsi grafik VCG. Deskripsi ini adalah
ditulis ke file terpisah, dengan batang yang sama dengan file yang berisi file utama
program, dan akhiran .vcg. File ini dapat diberikan langsung ke xvcg(1L) ke
memvisualisasikan grafik panggilan. (Jika input dari input standar, maka grafik
deskripsi dikirim ke output standar.) Sakelar ini setara dengan
-calltree=vcg. Standar = tidak.

Deskripsi VCG yang dibuat lebih kompleks dari yang seharusnya. VCG memungkinkan grafik
dan subgraf bersarang: setiap subrutin dibuat sebagai subgraf yang bersarang di dalam
rutinitas menelepon. Ini memungkinkan Anda untuk menampilkan subgraf atau meringkas secara interaktif
Mereka.

The -vcg pilihan untuk ftnchek ditulis oleh Dr. Philip Rubini dari Cranfield
Universitas, Inggris.

xvcg adalah alat visualisasi grafik yang berjalan di bawah sistem X windows. Dia
tersedia secara bebas dari ftp.cs.uni-sb.de. Itu ditulis oleh G. Sander dari
Universitas Saarland, Jerman.

Lihat juga: -calltree, -crossref, -referensi, -menyortir.

-versi
Pilihan ini menyebabkan ftnchek untuk mencetak baris yang memberikan nomor versi, tanggal rilis,
dan tingkat patch program. Jika tidak ada file yang diberikan, maka akan keluar. Jika file
diberikan, efek dari opsi ini adalah memasukkan level tambalan (biasanya
dihilangkan) dalam informasi versi yang dicetak pada awal pemrosesan. Standar =
tidak.

Lihat juga: -bantu.

-tidak stabil
Asumsikan bahwa blok COMMON bersifat volatil. Standar = tidak.

Bendera ini digantikan oleh -umum = mudah menguap, dan tidak boleh digunakan lagi. Mungkin
dieliminasi dalam rilis mendatang dari ftnchek.

Lihat juga: -umum, -penggunaan.

-ukuran kata=num
Menentukan ukuran kata default menjadi num byte. Ini adalah ukuran logika dan
variabel numerik presisi tunggal yang tidak diberikan presisi eksplisit.
(Presisi eksplisit untuk variabel non-karakter adalah perpanjangan dari Fortran 77
Standar, dan diberikan oleh deklarasi tipe seperti REAL*8 X.) Presisi ganda
dan variabel kompleks akan menjadi dua kali nilai ini, dan variabel kompleks ganda empat
waktu. Konstanta presisi quad dan hasil fungsi intrinsik akan menjadi empat kali
nilai ini. Perhatikan bahwa variabel yang dideklarasikan sebagai REAL*16 akan dianggap sebagai quad
presisi hanya jika ukuran kata adalah 4 byte. Default = nyalakan = 4 byte.

Nilai ukuran kata tidak masalah untuk memeriksa program yang memenuhi standar yang
jangan mendeklarasikan presisi eksplisit untuk variabel non-karakter atau menyimpan Hollerith
data dalam variabel. Pengaturan ini juga tidak mempengaruhi ukuran default karakter
variabel, yang selalu 1 byte. Konstanta Hollerith juga diasumsikan menempati
1 byte per karakter.

Ukuran kata digunakan untuk menentukan apakah pemotongan terjadi dalam penugasan
pernyataan, dan untuk menangkap ketidakcocokan presisi dalam daftar argumen subprogram dan
daftar blokir umum. Peringatan pasti yang dikeluarkan akan tergantung pada status
dari bendera lainnya. Di bawah keduanya -portabilitas=ukuran campuran dan -tidak ada ukuran kata bendera,
setiap pencampuran eksplisit dengan objek presisi default (ekspresi karakter tidak
termasuk) diperingatkan. Ini berlaku untuk ekspresi aritmatika yang mengandung keduanya
jenis objek, dan untuk argumen subprogram dan variabel UMUM. Di bawah kendali
dari -pemotongan = penurunan pangkat serta promosi pilihan, peringatan diberikan untuk
penugasan ekspresi ke variabel yang lebih pendek dari tipe yang sama, atau for
promosi nilai presisi yang lebih rendah ke presisi yang lebih tinggi dalam aritmatika
ekspresi atau pernyataan tugas.

Memberikan ukuran kata 0, atau setara, menggunakan -tidak ada ukuran kata berarti tidak ada default
nilai akan diasumsikan. Ini setara dengan menentukan -portabilitas=ukuran campuran.
Gunakan untuk menemukan kasus pencampuran default dan presisi eksplisit, misalnya untuk menandai
tempat di mana REAL*8 diperlakukan setara dengan PRESISI GANDA.

Lihat juga: -ukuran pointer, -portabilitas, -pemotongan.

-bungkus =col
Mengontrol pembungkusan pesan kesalahan. Pesan kesalahan panjang yang akan lewat
kolom yang ditentukan akan dipecah menjadi baris terpisah di antara kata-kata
pesan untuk keterbacaan yang lebih baik. Jika dimatikan dengan -sekarang, masing-masing kesalahan terpisah
pesan akan dicetak pada satu baris, menyerahkannya ke layar untuk membungkusnya
pesan atau potong. Default = nyalakan = 79.

MENGUBAH THE DEFAULT


ftnchek mencakup dua mekanisme untuk mengubah nilai default dari semua opsi: dengan
mendefinisikan variabel lingkungan atau dengan membuat file preferensi. Kapan ftnchek mulai,
itu terlihat di lingkungannya untuk setiap variabel yang namanya disusun dengan awalan
string FTNCHEK_ ke versi huruf besar dari nama opsi. Jika variabel seperti itu adalah
ditemukan, nilainya digunakan untuk menentukan default untuk sakelar atau pengaturan yang sesuai.
Dalam hal pengaturan (misalnya, -umum pengaturan keketatan) nilai
variabel lingkungan dibaca sebagai nilai pengaturan default. Dalam kasus sakelar,
sakelar default akan dianggap benar atau ya kecuali variabel lingkungan memiliki nilai
0 atau TIDAK.

Perhatikan bahwa nama variabel lingkungan harus dibuat dengan opsi full-length
nama, yang harus dalam huruf besar. Misalnya untuk membuat ftnchek cetak daftar sumber dengan
default, atur variabel lingkungan FTNCHEK_LIST ke 1 atau YA atau apa pun selain 0 atau
TIDAK. Nama FTNCHEK_LIS (bukan nama opsi lengkap) atau ftnchek_list (huruf kecil) akan
tidak diakui.

Berikut adalah beberapa contoh cara mengatur variabel lingkungan pada berbagai sistem. Untuk
kesederhanaan, semua contoh mengatur default -daftar beralih ke YA.

1. UNIX, cangkang Bourne: $ FTNCHEK_LIST=YA
$ ekspor FTNCHEK_LIST

2. UNIX, C shell: % setenv FTNCHEK_LIST YA

3. VAX/VMS: $ DEFINE FTNCHEK_LIST YA

4. MSDOS: $ SET FTNCHEK_LIST=YA

Setelah memproses variabel lingkungan apa pun, ftnchek mencari file preferensi
berisi opsi dan pengaturan. Ini akan mencari dalam urutan berikut, hanya menggunakan
file pertama ditemukan: (1) .ftnchekrc di direktori saat ini, (2) ftnchek.ini pada saat ini
direktori, (3) .ftnchekrc di direktori home pengguna, (4) ftnchek.ini di rumah
direktori. Jika file seperti itu ditemukan, opsi yang ditentukan di dalamnya digunakan sebagai default di
tempat default bawaan dan mengesampingkan pengaturan default apa pun di lingkungan..

Setiap opsi atau pengaturan dalam file preferensi harus berada pada baris terpisah. Mereka diberikan
dalam bentuk yang sama seperti pada baris perintah, kecuali tanpa tanda hubung awal. Preferensi
file dapat berisi baris dan komentar kosong. Komentar diperkenalkan pada titik mana pun dalam satu baris
dengan karakter spasi (kosong atau tab) atau karakter '#', dan diakhiri dengan akhir
garis.

Opsi baris perintah mengesampingkan pengaturan default di lingkungan atau di preferensi
file, dengan cara yang sama seperti mereka menimpa default bawaan.

MENGGUNAKAN PROYEK FILE


Bagian ini berisi informasi terperinci tentang cara menggunakan file proyek secara paling efektif,
dan bagaimana menghindari beberapa jebakan.

Seseorang dapat membagi cek ftnchek menjadi dua kategori, lokal dan global. Lokal
pemeriksaan dibatasi dalam satu rutinitas, dan menangkap hal-hal seperti tidak diinisialisasi
variabel, kehilangan presisi yang tidak diinginkan dalam ekspresi aritmatika, dll
pengecekan dapat dilakukan pada setiap subprogram secara mandiri. Selanjutnya, pemeriksaan lokal a
subprogram tidak perlu diulang ketika beberapa subprogram lain diubah. Global
pengecekan menangkap hal-hal seperti memanggil subrutin dengan tipe argumen yang salah, atau
tidak setuju dalam deklarasi blok umum. Itu membutuhkan melihat seluruh rangkaian
subprogram yang saling berinteraksi.

Tujuan dari file proyek adalah untuk memungkinkan pemeriksaan lokal dan langkah pemeriksaan global untuk
terpisah. Dengan asumsi bahwa setiap subprogram ada dalam file sumbernya sendiri, Anda dapat menjalankan
ftnchek sekali pada masing-masing untuk melakukan pengecekan lokal sambil menekan pengecekan global. Kemudian
ftnchek dapat dijalankan sekali pada semua file proyek bersama-sama untuk melakukan pemeriksaan global. Itu
contoh makefile di bawah ini menunjukkan cara mengotomatisasi tugas ini. Target ``.f.prj'' diperbarui sebagai
file proyek untuk file tertentu setiap kali file sumber berubah. Informasi
diperlukan untuk pemeriksaan global disimpan dalam file proyek. Target ``periksa'' melakukan
pemeriksaan global gabungan. Biasanya ``make check'' akan mengulang ``ftnchek -project''
langkah hanya pada file sumber yang diubah, lalu lakukan pemeriksaan global. Ini jelas besar
keuntungan untuk program besar, ketika banyak subprogram jarang jika pernah berubah.

Yang terbaik saat menggunakan file proyek untuk menempatkan setiap subprogram dalam file sumber yang terpisah.
Jika setiap file sumber mungkin berisi lebih dari satu subprogram, itu akan memperumit definisi
pemeriksaan ``lokal'' dan ``global'' karena ada beberapa pemeriksaan antar-modul yang
terkandung di dalam sebuah file. ftnchek mencoba melakukan hal yang benar dalam kasus ini, tetapi ada
beberapa komplikasi (dijelaskan di bawah) karena trade-off antara menghindari melakukan ulang
memeriksa dan melestarikan informasi tentang struktur program.

Biasanya, untuk melakukan pemeriksaan ulang paling sedikit, file proyek harus dibuat dengan
itu -Perpustakaan bendera berlaku dan pemangkasan diaktifkan. Dalam mode ini, informasi disimpan
dalam file proyek terdiri dari semua deklarasi subprogram, semua doa subprogram
tidak diselesaikan dengan deklarasi dalam file yang sama, dan satu instance dari setiap blok UMUM
pernyataan. Ini adalah jumlah minimum informasi yang diperlukan untuk memeriksa kesepakatan antara
file.

Jika file sumber berisi lebih dari satu rutin, ada beberapa kemungkinan masalah yang
dapat muncul dari pembuatan file proyek dalam mode perpustakaan, karena hierarki panggilan
di antara rutinitas yang ditentukan dalam file hilang. Juga, jika rutinitas dalam file membuat
penggunaan blok UMUM yang dibagikan dengan rutinitas di file lain, tidak akan ada
informasi yang cukup disimpan untuk pemeriksaan yang benar dari set dan status yang digunakan dari blok UMUM
dan variabel UMUM menurut -penggunaan pengaturan. Karena itu jika Anda berencana untuk menggunakan
file proyek ketika -penggunaan pemeriksaan dihidupkan (yang merupakan situasi default), dan jika
beberapa rutinitas dalam satu file proyek berbagi blok UMUM dengan rutinitas di file lain,
file proyek harus dibuat dengan -Perpustakaan bendera dimatikan. Dalam mode ini,
ftnchek menyimpan, selain informasi yang tercantum di atas, satu pemanggilan setiap subprogram oleh
subprogram lain dalam file yang sama, dan semua deklarasi blok UMUM. Ini berarti bahwa
file proyek akan lebih besar dari yang diperlukan, dan ketika dibaca, ftnchek mungkin
ulangi beberapa pemeriksaan antar-modul yang sudah dilakukan ketika file proyek dibuat. Jika
setiap file proyek hanya berisi satu modul, tidak ada kehilangan informasi dalam pembuatan
file proyek dalam mode perpustakaan.

Karena kemungkinan hilangnya informasi yang diakibatkan oleh pembuatan file proyek dengan
-Perpustakaan bendera berlaku, setiap kali file proyek itu dibaca nanti, itu akan diperlakukan
sebagai file perpustakaan terlepas dari pengaturan saat ini -Perpustakaan bendera. Di sisi lain
Di sisi lain, file proyek yang dibuat dengan mode perpustakaan dimatikan dapat dibaca nanti di kedua
mode.

Diskusi sebelumnya mengasumsikan bahwa opsi pemangkasan dari -proyek pengaturan adalah
diaktifkan saat file proyek dibuat. Ini adalah situasi normal. Itu tanpa-pangkas
opsi dari -proyek pengaturan disediakan jika seseorang ingin menggunakan file proyek
untuk tujuan selain memeriksa program dengan ftnchek. Misalnya, seseorang dapat menulis
skrip Perl untuk menganalisis file proyek untuk informasi tentang bagaimana perbedaannya
subprogram disebut. Anda tidak harus menggunakan tanpa-pangkas pilihan untuk menangani masalah
kehilangan informasi yang dibahas di atas, karena mereka menyebabkan lebih banyak informasi daripada yang diperlukan
disimpan. Ini membuat file proyek lebih besar dan menyebabkan ftnchek untuk melakukan lebih banyak pekerjaan nanti ketika
itu membaca mereka untuk memeriksa program lengkap Anda. Biasanya, Anda harus menggunakan -Perpustakaan
opsi untuk mengontrol berapa banyak informasi yang akan disimpan untuk digunakan nanti oleh ftnchek dalam memeriksa Anda
program.

Berikut adalah contoh cara menggunakan UNIX membuat utilitas untuk secara otomatis membuat yang baru
file proyek setiap kali file sumber yang sesuai diubah, dan untuk memeriksa set
file untuk konsistensi. Tambahkan baris-baris ini ke makefile Anda. Contoh mengasumsikan bahwa
OBJS makro telah ditentukan yang mencantumkan semua nama file objek yang akan ditautkan
bersama-sama untuk membentuk program yang dapat dieksekusi lengkap. (Dalam makefile ini, garis indentasi
masing-masing harus dimulai dengan tab, bukan kosong.) Jika ada file sumber yang berisi banyak rutinitas
yang berbagi blok umum di antara mereka sendiri, maka opsi no-com-\* harus dihapus
dari NOGLOBAL, dan/atau jatuhkan flag -library.
# beri tahu make apa akhiran file proyek itu
.SUFFIX: .prj

# opsi ini menekan pemeriksaan global.
NOGLOBAL=-penggunaan=no-ext-undefined,no-com-\*

# beri tahu cara membuat file .prj dari file .f
.f.prj:
ftnchek -proyek $(NOGLOBAL) -library $

# mengatur PRJS makro yang berisi nama file proyek
PRJS= $(OBJS:.o=.prj)

# "make check" akan memeriksa semua yang telah diubah.
cek: $(PRJS)
ftnchek $(PRJS)

Ketika sebuah program menggunakan banyak rutinitas yang didefinisikan dalam sejumlah besar file sumber yang berbeda di
direktori yang berbeda, mungkin rumit untuk menentukan semua file proyek yang berbeda
diperlukan untuk memeriksa program dengan benar. Untuk menangani kasus seperti itu, ftnchek memungkinkan proyek
file yang akan digabungkan menjadi satu file besar. File tunggal ini kemudian dapat diberikan kepada
ftnchek untuk memberikan informasi untuk memeriksa penggunaan salah satu atau semua rutinitas
didefinisikan dalam file proyek gabungan. Saat menggunakan file proyek ``library'' seperti itu, Anda
mungkin mau ftncheklaporan kesalahan untuk mendokumentasikan dengan tepat nama file tempat
fungsi tertentu didefinisikan. Jika berbagai file sumber berada di beberapa direktori, dan
laporan kesalahan yang hanya memberikan nama file mungkin ambigu, dan sebaiknya menyertakan
jalur ke file. Solusinya adalah membuat masing-masing file proyek individu dengan
memberikan path lengkap ke file sumber. Kemudian jalur lengkap ini akan muncul di
laporan kesalahan. Misalnya, anggaplah semua file sumber subprogram perpustakaan adalah:
dalam subdirektori dari direktori bernama /util/lib. Kemudian file proyek individu bisa
pertama dibuat dengan perintah seperti
temukan /util/lib -nama '*.f' -exec ftnchek -project '{}' ';'
(Mungkin opsi lain akan diberikan untuk ftnchek seperti yang dibahas di atas. Juga, langkah ini
dapat ditangani sebagai gantinya oleh aturan makefile yang direvisi yang akan menyediakan sumber lengkap
jalur file alih-alih hanya nama lokal saat dipanggil ftnchek.) Selanjutnya, gabungkan semua
file proyek ini secara manual.
temukan /util/lib -name '*.prj' -exec cat '{}' ';' > ourlib.prj
Kemudian file sumber program dapat diperiksa dengan menggunakan perintah
ftnchek prog.f ... -lib ourlib.prj
dan pesan kesalahan yang terkait dengan rutinitas perpustakaan apa pun akan menyertakan jalur lengkap ke
file sumber rutin.

Saat ini, tidak ada utilitas arsip seperti ar untuk mengelola konten gabungan
file proyek seperti pada ilustrasi di atas. Jika perubahan dilakukan pada salah satu
rutinitas perpustakaan, satu-satunya cara untuk memperbarui file proyek gabungan adalah dengan menggabungkan semua
file proyek individu sekali lagi. Utilitas seperti itu akan sangat mudah untuk ditulis.
Seseorang harus melakukannya dan berkontribusi untuk ftnchek usaha.

AN CONTOH


Program Fortran sederhana berikut mengilustrasikan pesan yang diberikan oleh ftnchek. itu
program dimaksudkan untuk menerima serangkaian nilai tes dan kemudian menghitung rata-rata untuk
series.

C PENULIS: MIKE MYERS DAN LUCIA SPAGNUOLO
C TANGGAL: 8 MEI 1989

Variabel C:
C SCORE -> serangkaian nilai ujian
C SUM -> jumlah nilai ujian
C COUNT -> penghitung skor dibaca
CI -> penghitung putaran

COMPAV FUNGSI NYATA (SCORE, COUNT)
JUMLAH INTEGER, JUMLAH, J,SCORE(5)

LAKUKAN 30 I = 1,COUNT
SUM = SUM + SKOR(I)
30 LANJUTKAN
COMPAV = SUM/COUNT
AKHIR

PROGRAM AVENUM
C
C PROGRAM UTAMA
C
C PENULIS: LOIS BIGBIE
C TANGGAL: 15 MEI 1990
C
Variabel C:
C MAXNOS -> jumlah maksimum nilai input
C NUMS -> array angka
C COUNT -> jumlah nilai input yang tepat
C AVG -> rata-rata yang dikembalikan oleh COMPAV
CI -> penghitung putaran
C

PARAMETER(MAXNOS=5)
INTEGER I, COUNT
ANGKA NYATA (MAXNOS), AVG
JUMLAH = 0
LAKUKAN 80 I = 1,MAXNOS
BACA (5,*,AKHIR=100) NUMS(I)
JUMLAH = JUMLAH + 1
80 LANJUTKAN
100 AVG = COMPAV(NUMS, COUNT)
AKHIR

Kompilator tidak memberikan pesan kesalahan saat program ini dikompilasi. Namun inilah yang
terjadi ketika dijalankan:

$ menjalankan rata-rata
70
90
85

$

Apa yang terjadi? Mengapa program tidak melakukan apa-apa? Berikut ini adalah output dari
ftnchek ketika digunakan untuk men-debug program di atas:

$ ftnchek -daftar -symtab rata-rata

FTNCHEK Versi 3.3 November 2004

Rata-rata file.f:

1 C PENULIS: MIKE MYERS DAN LUCIA SPAGNUOLO
2 C TANGGAL: 8 MEI 1989
3
4 Variabel C:
5 C SKOR -> serangkaian nilai ujian
6 C SUM -> jumlah nilai ujian
7 C COUNT -> penghitung skor dibaca
8 CI -> penghitung putaran
9
10 FUNGSI NYATA COMPAV(SCORE,COUNT)
11 INTEGER SUM,COUNT,J,SCORE(5)
12
13 LAKUKAN 30 I = 1,COUNT
14 SUM = SUM + SKOR(I)
15 30 LANJUTKAN
16 COMPAV = SUM/COUNT
^
Peringatan di dekat baris 16 col 20: hasil bagi bilangan bulat expr SUM/COUNT dikonversi ke
nyata
17 SELESAI

Modul COMPAV: fungsi: nyata

Variabel:

Nama Tipe Meredup Nama Tipe Meredup Nama Tipe Meredup Nama Tipe Meredup
COMPAV real COUNT intg I intg* J intg
SCORE intg 1 SUM intg

* Variabel tidak dideklarasikan. Jenis telah didefinisikan secara implisit.

Peringatan dalam modul COMPAV: Variabel dideklarasikan tetapi tidak pernah dirujuk:
J dideklarasikan pada baris 11

Peringatan dalam modul COMPAV: Variabel dapat digunakan sebelum disetel:
SUM digunakan pada baris 14
SUM ditetapkan pada baris 14

Label pernyataan didefinisikan:

Label Baris StmtType
<30> 15 eksekutif

18
19
20 PROGRAM AVENUM
21 C
PROGRAM UTAMA 22 C
23 C
24 C PENULIS: LOIS BIGBIE
25 C TANGGAL: 15 MEI 1990
26 C
27 Variabel C:
28 C MAXNOS -> jumlah maksimum nilai input
29 C NUMS -> array angka
30 C COUNT -> jumlah nilai input yang tepat
31 C AVG -> rata-rata yang dikembalikan oleh COMPAV
32 CI -> penghitung putaran
33 C
34
35 PARAMETER(MAXNOS=5)
36 INTEGER I, COUNT
37 ANGKA NYATA (MAXNOS), AVG
38 JUMLAH = 0
39 DO 80 I = 1,MAXNOS
40 BACA (5,*,AKHIR=100) NUMS(I)
41 JUMLAH = JUMLAH + 1
42 80 LANJUTKAN
43 100 AVG = COMPAV(NUMS, COUNT)
44 SELESAI

Modul AVENUM: prog

Subprogram eksternal yang dirujuk:

COMPAV: nyata*

Variabel:

Nama Tipe Meredup Nama Tipe Meredup Nama Tipe Meredup Nama Tipe Meredup
AVG real COUNT intg I intg MAXNOS intg*
NUMS nyata 1

* Variabel tidak dideklarasikan. Jenis telah didefinisikan secara implisit.

Peringatan dalam modul AVENUM: Variabel disetel tetapi tidak pernah digunakan:
AVG disetel pada baris 43

Operasi I/O:

ID Unit Nomor Unit. Jalur Operasi Formulir Akses
5 SEQ FMTD BACA 40

Label pernyataan didefinisikan:

Label Baris StmtType Label Baris StmtType
<80> 42 eksekutif <100> 43 eksekutif

0 kesalahan sintaks terdeteksi di file average.f
6 peringatan dikeluarkan di file average.f

Peringatan: Tipe data argumen COMPAV subprogram tidak cocok pada posisi 1:
Dummy arg SCORE dalam modul COMPAV baris 10 file average.f bertipe intg
Arg NUMS aktual dalam modul AVENUM baris 43 file average.f adalah tipe real

Menurut ftnchek, program berisi variabel yang dapat digunakan sebelum variabel tersebut
diberi nilai awal, dan variabel yang tidak diperlukan. ftnchek juga memperingatkan
pengguna bahwa hasil bagi bilangan bulat telah diubah menjadi nyata. Ini dapat membantu pengguna dalam
menangkap kesalahan pembulatan yang tidak diinginkan. Sejak -symtab bendera diberikan, ftnchek cetakan
keluar tabel yang berisi pengidentifikasi dari modul lokal dan tipe data yang sesuai
dan jumlah dimensi. Akhirnya, ftnchek memperingatkan bahwa fungsi COMPAV tidak digunakan
dengan jenis argumen yang tepat.

Dengan ftnchekbantuan, kami dapat men-debug program. Kita dapat melihat bahwa ada yang berikut:
kesalahan:

1. SUM dan COUNT harus diubah menjadi real sebelum melakukan pembagian.

2. SUM seharusnya diinisialisasi ke 0 sebelum memasuki loop.

3. AVG tidak pernah dicetak setelah dihitung.

4. NUMS seharusnya dideklarasikan INTEGER bukan REAL.

Kita juga melihat bahwa I, bukan J, seharusnya dideklarasikan INTEGER dalam fungsi COMPAV. Juga,
MAXNOS tidak dinyatakan sebagai INTEGER, atau COMPAV sebagai REAL, dalam program AVENUM. Ini bukan
kesalahan, tetapi mereka mungkin menunjukkan kecerobohan. Seperti yang terjadi, tipe default dari ini
variabel bertepatan dengan tipe yang diinginkan.

Berikut adalah program yang dikoreksi, dan outputnya saat dijalankan:

C PENULIS: MIKE MYERS DAN LUCIA SPAGNUOLO
C TANGGAL: 8 MEI 1989
C
Variabel C:
C SCORE -> serangkaian nilai ujian
C SUM -> jumlah nilai ujian
C COUNT -> penghitung skor dibaca
CI -> penghitung putaran
C
COMPAV FUNGSI NYATA (SCORE, COUNT)
JUMLAH INTEGER,JUMLAH,I,SCORE(5)
C
JUMLAH = 0
LAKUKAN 30 I = 1,COUNT
SUM = SUM + SKOR(I)
30 LANJUTKAN
PERUSAHAAN = FLOAT(SUM)/FLOAT(COUNT)
AKHIR
C
C
PROGRAM AVENUM
C
C PROGRAM UTAMA
C
C PENULIS: LOIS BIGBIE
C TANGGAL: 15 MEI 1990
C
Variabel C:
C MAXNOS -> jumlah maksimum nilai input
C NUMS -> array angka
C COUNT -> jumlah nilai input yang tepat
C AVG -> rata-rata yang dikembalikan oleh COMPAV
CI -> penghitung putaran
C
C
INTEGER MAXNOS
PARAMETER(MAXNOS=5)
INTEGER I, NUMS(MAXNOS), COUNT
AVG NYATA, COMPAV
JUMLAH = 0
LAKUKAN 80 I = 1,MAXNOS
BACA (5,*,AKHIR=100) NUMS(I)
JUMLAH = JUMLAH + 1
80 LANJUTKAN
100 AVG = COMPAV(NUMS, COUNT)
TULIS(6,*) 'RATA-RATA =',AVG
AKHIR
$ menjalankan rata-rata
70
90
85

RATA-RATA = 81.66666
$

Dengan ftnchek's membantu, program kami adalah sukses!

INTERPRETASI THE KELUARAN


Pesan yang diberikan oleh ftnchek termasuk tidak hanya kesalahan sintaks tetapi juga peringatan dan
pesan informasi tentang hal-hal yang Fortran hukum tetapi yang mungkin menunjukkan kesalahan atau
kecerobohan. Sebagian besar pesan ini dapat dimatikan dengan opsi baris perintah. Yang
pilihan mengontrol setiap pesan tergantung pada sifat dari kondisi yang diperingatkan.
Lihat deskripsi flag baris perintah di bagian sebelumnya, dan masing-masing
pesan di bawah. Setiap pesan diawali dengan kata atau frasa yang menunjukkan sifat
kondisi dan tingkat keparahannya.

``Error'' berarti kesalahan sintaks. Jenis kesalahan sintaks yang paling sederhana adalah tipografi
kesalahan, misalnya tanda kurung tidak seimbang atau salah mengeja kata kunci. Jenis ini
kesalahan ditangkap oleh parser dan muncul dengan deskripsi ``parse error'' atau ``sintaksis
error'' (tergantung pada versi generator parser dan apakah itu GNU banteng or
UNIX yacc). Jenis pesan kesalahan ini tidak dapat ditekan. Ketahuilah bahwa jenis
kesalahan sering berarti bahwa ftnchek belum menafsirkan dengan benar pernyataan di mana kesalahannya
terjadi, sehingga operasi pemeriksaan berikutnya akan terganggu. Anda harus
hilangkan semua kesalahan sintaks sebelum melanjutkan untuk menafsirkan pesan lain ftnchek
memberi.

``Peringatan: Sintaks tidak standar'' menunjukkan ekstensi ke Fortran yang ftnchek mendukung
tapi itu tidak sesuai dengan Standar Fortran 77. Ekstensi yang ftnchek menerima
dijelaskan di bagian Ekstensi di bawah ini. Salah satu contohnya adalah DO ... ENDDO
konstruksi. Jika sebuah program menggunakan ekstensi ini, peringatan akan diberikan sesuai dengan
spesifikasi di bawah -f77 pengaturan. Perilaku default adalah tidak memberikan peringatan.

``Peringatan'' dalam kasus lain berarti suatu kondisi yang mencurigakan tetapi mungkin atau mungkin tidak
kesalahan pemrograman. Seringkali kondisi ini legal di bawah standar. Beberapa adalah
ilegal tetapi tidak termasuk dalam kategori kesalahan sintaksis. Kesalahan penggunaan adalah salah satu contohnya.
Ini merujuk pada kemungkinan bahwa suatu variabel dapat digunakan sebelum ditetapkan sebagai
nilai (umumnya kesalahan), atau bahwa variabel dideklarasikan tetapi tidak pernah digunakan (tidak berbahaya tetapi
mungkin menunjukkan kecerobohan). Jumlah pemeriksaan kesalahan penggunaan dikendalikan oleh
-penggunaan flag, yang menentukan jumlah maksimum pemeriksaan secara default.

Peringatan pemotongan mencakup situasi di mana akurasi mungkin hilang secara tidak sengaja, karena:
contoh ketika nilai presisi ganda ditetapkan ke variabel nyata. Peringatan ini adalah
dikendalikan oleh -pemotongan pengaturan, yang aktif secara default.

``Nonportable usage'' memperingatkan tentang beberapa fitur yang mungkin tidak diterima oleh beberapa kompiler
meskipun tidak bertentangan dengan Standar Fortran 77, atau yang dapat menyebabkan program
untuk tampil berbeda pada platform yang berbeda. Misalnya, persamaan nyata dan
variabel integer biasanya merupakan praktik non-portabel. Penggunaan ekstensi untuk
bahasa standar, tentu saja, merupakan sumber non-portabilitas lain, tetapi ini ditangani sebagai
kasus terpisah. Untuk memeriksa program untuk portabilitas yang sebenarnya, keduanya: -portabilitas dan
-f77 bendera harus digunakan. Keduanya dimatikan secara default. Itu -ukuran kata pengaturan adalah
disediakan untuk memeriksa hanya penggunaan nonportabel yang bergantung pada mesin tertentu
ukuran kata.

``Penampilan yang mungkin menyesatkan'' digunakan untuk konstruksi hukum yang mungkin tidak berarti apa
mereka tampaknya berarti pada pandangan pertama. Misalnya, Fortran tidak peka terhadap ruang kosong,
begitu asing ruang dalam nama variabel atau kurangnya ruang antara kata kunci dan a
variabel dapat menyampaikan kesan yang salah kepada pembaca. Pesan-pesan ini dapat ditekan
dengan mematikan -cantik bendera, yang aktif secara default.

Pesan lain yang diberikan setelah semua file diproses, dan ada hubungannya dengan
kesepakatan antar modul, tidak menggunakan kata ``peringatan'' tetapi umumnya termasuk dalam hal itu
kategori. Contohnya termasuk jenis ketidakcocokan antara variabel yang sesuai di berbeda
Deklarasi blok COMMON, atau antara argumen dummy dan aktual dari subprogram. Ini
peringatan dikendalikan oleh -umum serta -argumen pengaturan masing-masing. Secara default
keduanya diatur untuk pemeriksaan ketat maksimum.

Kelompok peringatan lain tentang kondisi yang seringkali tidak berbahaya merujuk pada kasus-kasus di mana
properti array dari variabel yang diteruskan sebagai argumen subprogram berbeda di antara keduanya
rutinitas. Misalnya, elemen array mungkin diteruskan ke subrutin yang mengharapkan a
seluruh susunan. Ini adalah teknik yang umum digunakan untuk memproses satu baris atau kolom dari
array dua dimensi. Namun, itu juga bisa menunjukkan kesalahan pemrograman. Itu -Himpunan
pengaturan memungkinkan pengguna untuk menyesuaikan tingkat keketatan yang akan digunakan dalam memeriksa ini
jenis kesepakatan antara argumen array aktual dan dummy. Secara default, keketatannya adalah
maksimum.

``Ups'' menunjukkan masalah teknis, artinya ada bug di ftnchek atau itu
sumber daya telah terlampaui.

Pesan kesalahan sintaks dan peringatan termasuk nama file bersama dengan nomor baris dan
nomor kolom. ftnchek memiliki dua opsi berbeda untuk munculnya kesalahan ini
pesan. Jika -pemula berlaku, yang merupakan default, pesannya bergaya
mendekati bahasa Inggris normal. (Dalam gaya default, nama file tidak dicetak dalam pesan
dalam tubuh program jika -daftar sedang berlaku.) Gaya pesan kesalahan lainnya
dipilih oleh -bukan pemula pilihan. Dalam gaya ini, tampilan pesannya adalah
mirip dengan UNIX pita program.

ftnchek masih buta terhadap beberapa jenis kesalahan sintaks. Dua yang paling penting adalah
pemeriksaan rinci dari pernyataan FORMAT, dan hampir semua hal yang berkaitan dengan pengendalian
aliran eksekusi melalui pernyataan IF, DO, dan GOTO: yaitu kontrol bersarang yang benar
struktur, pencocokan pernyataan pembuka seperti IF ... THEN dengan pernyataan penutup
seperti ENDIF, dan penggunaan label pernyataan (angka) yang tepat. Sebagian besar kompiler akan
menangkap kesalahan ini. Lihat bagian tentang Keterbatasan untuk diskusi yang lebih rinci.

If ftnchek memberi Anda pesan kesalahan sintaks ketika kompiler tidak, mungkin karena
program Anda berisi ekstensi ke Fortran standar yang diterima oleh kompiler
tapi tidak dengan ftnchek. (Lihat bagian tentang Ekstensi.) Pada sistem VAX/VMS, Anda dapat menggunakan
opsi kompiler /STANDARD menyebabkan kompiler hanya menerima Fortran standar. Pada
sebagian besar sistem mirip UNIX atau UNIX, ini dapat dicapai dengan menyetel flag -ansi.

Banyak pesan yang diberikan oleh ftnchek cukup jelas. Mereka yang membutuhkan beberapa
penjelasan tambahan tercantum di bawah ini dalam urutan abjad.

Umum blok NAMA: data mengetik ketidakcocokan at posisi n
The nVariabel -th di blok COMMON berbeda dalam tipe data di dua yang berbeda
deklarasi blok COMMON. Secara default (-umum tingkat keketatan 3), ftnchek
sangat pilih-pilih tentang blok UMUM: variabel yang tercantum di dalamnya harus sama persis
menurut tipe data dan dimensi array. Artinya, pasangan hukum deklarasi di
modul yang berbeda:
UMUM /COM1/ A,B
serta
UMUM /COM1/ A(2)
akan menyebabkan ftnchek untuk memberikan peringatan pada tingkat keketatan 3. Kedua deklarasi ini
legal di Fortran karena keduanya mendeklarasikan dua variabel nyata. Pada ketegasan
level 1 atau 2, tidak ada peringatan yang diberikan dalam contoh ini, tetapi peringatannya adalah
diberikan jika ada ketidakcocokan tipe data, misalnya, jika B dideklarasikan INTEGER.
Dikontrol oleh -umum pengaturan.

Umum blok NAMA memiliki panjang data mengetik berikut pendek data mengetik
Beberapa kompiler memerlukan penyelarasan item multi-byte sehingga setiap item dimulai pada
alamat yang merupakan kelipatan dari ukuran item. Jadi jika pendek (misalnya tunggal-
item presisi nyata) diikuti oleh item panjang (misalnya presisi ganda nyata), the
terakhir mungkin tidak disejajarkan dengan benar. Dikontrol oleh -portabilitas=penyelarasan umum
pilihan.

Umum blok NAMA memiliki campur aduk karakter serta bukan karakter variabel
Standar ANSI mensyaratkan bahwa jika ada variabel dalam blok COMMON bertipe
CHARACTER, maka semua variabel lain di blok COMMON yang sama juga harus bertipe
KARAKTER. Dikontrol oleh -f77=campuran-umum pilihan.

Umum blok NAMA: bervariasi panjangnya
Untuk -umum pengaturan level 2, pesan ini berarti bahwa blok UMUM dideklarasikan ke
memiliki jumlah kata yang berbeda dalam dua subprogram yang berbeda. Sebuah kata adalah jumlah
penyimpanan yang ditempati oleh satu bilangan bulat atau variabel nyata. Untuk -umum pengaturan tingkat 3,
artinya kedua deklarasi memiliki jumlah variabel yang berbeda, dimana an
array dengan ukuran berapa pun dianggap sebagai satu variabel. Ini belum tentu kesalahan,
tetapi ini mungkin menunjukkan bahwa ada variabel yang hilang dari salah satu daftar. Perhatikan bahwa
menurut Standar Fortran 77, ini adalah kesalahan untuk blok COMMON bernama (tapi
tidak kosong UMUM) untuk membedakan jumlah kata dalam deklarasi di berbeda
modul. Diberikan untuk -umum pengaturan 2 atau 3.

Kesalahan: Sangat dibentuk logis/relasional operator or konstan

Kesalahan: Sangat dibentuk nyata konstan
Penganalisis sintaks telah menemukan awal dari salah satu kata khusus yang dimulai dan
diakhiri dengan periode (misalnya .EQ.), atau awal dari konstanta numerik, tetapi tidak
berhasil menemukan item lengkap semacam itu.

Kesalahan: tidak bisa be disesuaikan ukuran in modul NAMA
Variabel karakter tidak dapat dideklarasikan dengan ukuran yang merupakan tanda bintang di
kurung kecuali itu adalah argumen dummy, parameter, atau nama fungsi
didefinisikan dalam modul.

Kesalahan: tidak bisa be menyatakan in MENYIMPAN pernyataan in modul NAMA
Hanya variabel lokal dan blok umum yang dapat dideklarasikan dalam pernyataan SAVE.

Kesalahan: Tidak path untuk ini pernyataan
ftnchek akan mendeteksi pernyataan yang diabaikan atau dilewati karena tidak ada
rute yang dapat diperkirakan ke pernyataan. Misalnya, pernyataan tak bernomor (a
pernyataan tanpa label pernyataan), terjadi segera setelah pernyataan GOTO,
tidak mungkin bisa dieksekusi.

Kesalahan: dompet kesalahan
Ini berarti bahwa parser, yang menganalisis program Fortran menjadi ekspresi,
pernyataan, dll., tidak dapat menemukan interpretasi yang valid untuk beberapa bagian
pernyataan dalam program. Jika kompiler Anda tidak melaporkan kesalahan sintaks di
tempat yang sama, penjelasan yang paling umum adalah: (1) penggunaan ekstensi ke ANSI
Fortran standar yang tidak dikenali oleh ftnchek, atau (2) pernyataan tersebut membutuhkan
lebih melihat ke depan daripada ftnchek menggunakan (lihat bagian tentang Bugs).

CATATAN: Pesan ini berarti bahwa pernyataan yang terpengaruh tidak ditafsirkan.
Oleh karena itu, mungkin saja ftnchekPemrosesan selanjutnya akan salah, jika
itu tergantung pada hal-hal yang dipengaruhi oleh pernyataan ini (jenis deklarasi, dll.).

Kesalahan: Sintaksis kesalahan
Ini sama dengan ``Error: Parse error'' (lihat di atas). Ini dihasilkan jika Anda
versi ftnchek dibangun menggunakan UNIX yacc generator parser daripada GNU
banteng.

Pengidentifikasi yang adalah tidak unik in pertama enam tank
Memperingatkan bahwa dua pengenal yang lebih panjang dari 6 karakter tidak berbeda dalam
6 karakter pertama. Ini untuk portabilitas: mereka mungkin tidak dianggap berbeda
oleh beberapa kompiler. Dikontrol oleh -sixchar pilihan.

Tidak dapat dibawa-bawa pemakaian: argumen ketelitian mungkin tidak be benar untuk hakiki fungsi
Ketepatan argumen yang diteruskan ke fungsi intrinsik mungkin salah pada
beberapa komputer. Dikeluarkan ketika variabel numerik dideklarasikan dengan presisi eksplisit
(misalnya REAL*8 X) diteruskan ke fungsi intrinsik tertentu (misalnya DSQRT(X)).
Dikontrol oleh -portabilitas=ukuran campuran serta -ukuran kata.

Tidak dapat dibawa-bawa pemakaian: karakter konstan/variabel panjangnya melebihi 255
Beberapa kompiler tidak mendukung string karakter yang panjangnya lebih dari 255 karakter.
Dikontrol oleh -portabilitas = tali panjang.

Tidak dapat dibawa-bawa pemakaian: fillet mengandung tab
ftnchek memperluas tab agar setara dengan spasi hingga kolom berikutnya yaitu a
kelipatan 8. Beberapa kompiler memperlakukan tab secara berbeda, dan mungkin juga
file yang dikirim melalui surat elektronik akan memiliki tab yang diubah menjadi kosong dalam beberapa cara.
Oleh karena itu file yang berisi tab mungkin tidak dikompilasi dengan benar setelah
ditransfer. ftnchek tidak memberikan pesan ini jika tab hanya muncul dalam komentar
atau konstanta karakter. Dikontrol oleh -portabilitas=tab.

Tidak dapat dibawa-bawa pemakaian: bukan bilangan bulat DO lingkaran batas
Peringatan ini hanya diberikan ketika indeks dan batas DO bukan bilangan bulat. Penggunaan
kuantitas non-integer dalam pernyataan DO dapat menyebabkan kesalahan tak terduga, atau berbeda
hasil pada mesin yang berbeda, karena efek pembulatan. Dikontrol oleh
-portabilitas=kerja nyata.

Mungkin it is an susunan yang adalah tidak menyatakan
Pesan ini ditambahkan ke peringatan yang terkait dengan pemanggilan fungsi atau ke
ketidakcocokan tipe argumen, di mana ada kemungkinan bahwa apa yang tampak seperti a
fungsi sebenarnya dimaksudkan untuk menjadi array. Jika programmer lupa dimensi
array, referensi ke array akan ditafsirkan sebagai pemanggilan fungsi.
Pesan ini akan disembunyikan jika nama yang dimaksud muncul di EKSTERNAL atau
pernyataan INTRINSIK. Dikendalikan oleh -pemula pilihan.

Mungkin menyesatkan penampilan: karakter lalu 72 kolom
Program sedang diproses dengan lebar bidang pernyataan pada nilai standarnya
dari 72, dan beberapa karakter tidak kosong telah ditemukan melewati kolom 72. Dalam hal ini,
ftnchek tidak memproses karakter melewati kolom 72, dan memberi tahu pengguna
bahwa pernyataan itu mungkin tidak memiliki arti yang tampaknya dimilikinya. Ini
karakter mungkin dimaksudkan oleh programmer untuk menjadi signifikan, tetapi mereka akan menjadi
diabaikan oleh kompiler. Dikontrol oleh -cantik = antrean panjang.

Mungkin menyesatkan penampilan: Umum blok menyatakan in lebih dari satu pernyataan
Pernyataan ganda semacam itu sah dan memiliki efek yang sama sebagai kelanjutan dari
deklarasi asli dari blok. Peringatan ini hanya diberikan jika keduanya
deklarasi dipisahkan oleh satu atau lebih pernyataan yang mengintervensi. Dikontrol oleh
-cantik=banyak-umum.

Mungkin menyesatkan penampilan: Kelanjutan berikut komentar or kosong line
ftnchek mengeluarkan pesan peringatan ini untuk mengingatkan pengguna bahwa kelanjutan dari a
pernyataan diselingi dengan komentar, sehingga mudah untuk diabaikan. Dikontrol oleh
-cantik=lanjutan.

Mungkin menyesatkan penampilan: Asing tanda kurung
Memperingatkan tentang tanda kurung yang mengelilingi variabel dengan sendirinya dalam sebuah ekspresi. Ketika sebuah
variabel dalam kurung dilewatkan sebagai argumen ke subprogram, itu diperlakukan sebagai
ekspresi, bukan sebagai variabel yang nilainya dapat diubah oleh rutin yang disebut.
Dikontrol oleh -cantik = tanda kurung.

Subprogram NAMA: argumen data mengetik ketidakcocokan at posisi n
Subprogramnya n-th argumen aktual (dalam CALL atau penggunaan fungsi)
berbeda dalam tipe data atau presisi dari n-Argumen dummy (dalam SUBROUTINE atau
deklarasi FUNGSI). Misalnya, jika pengguna mendefinisikan subprogram dengan:
SUBRUTIN SUBA(X)
X NYATA
dan di tempat lain memanggil SUBA dengan
PANGGILAN SUBA(2)
ftnchek akan mendeteksi kesalahan. Alasannya di sini adalah bahwa angka 2 adalah bilangan bulat,
tidak nyata. Pengguna seharusnya menulis
HUBUNGI SUBA(2.0)

Saat memeriksa argumen yang merupakan subprogram, ftnchek harus bisa menentukan
apakah itu fungsi atau subrutin. Aturan yang digunakan oleh ftnchek untuk melakukan ini adalah
sebagai berikut: Jika subprogram, selain dilewatkan sebagai argumen aktual, juga
dipanggil langsung di tempat lain dalam modul yang sama, maka tipenya ditentukan oleh itu
penggunaan. Jika tidak, maka jika nama subprogram tidak muncul secara eksplisit
deklarasi tipe, diasumsikan sebagai subrutin; jika diketik secara eksplisit adalah
diambil sebagai fungsi. Oleh karena itu, subrutin yang diteruskan sebagai argumen aktual hanya perlu
dideklarasikan oleh pernyataan EKSTERNAL dalam modul panggilan, sedangkan fungsi harus
juga harus diketik secara eksplisit untuk menghindari munculnya pesan kesalahan ini.
Dikontrol oleh -argumen pengaturan.

Subprogram NAMA: argumen keteraturan ketidakcocokan at posisi n
Mirip dengan situasi sebelumnya, tetapi argumen dummy subprogram berbeda dari
argumen aktual yang sesuai dalam jumlah dimensi atau jumlah
elemen. Dikontrol oleh -Himpunan Bersama -argumen pengaturan.

Subprogram NAMA: argumen ketidakcocokan at posisi n
Argumen dummy karakter lebih besar dari argumen aktual yang sesuai, atau a
Argumen dummy Hollerith lebih besar dari argumen aktual yang sesuai.
Dikontrol oleh -argumen pengaturan.

Subprogram NAMA: argumen pemakaian ketidakcocokan
ftnchek mendeteksi kemungkinan konflik antara cara subprogram menggunakan argumen
dan cara argumen dipasok ke subprogram. Konflik bisa
menjadi salah satu dari dua jenis, seperti yang diuraikan di bawah ini.

tiruan arg is diubah, Sebenarnya arg is const or expr
Argumen dummy adalah argumen seperti yang disebutkan dalam pernyataan SUBROUTINE atau FUNCTION dan
digunakan dalam subprogram. Argumen aktual adalah argumen yang diteruskan ke a
subrutin atau fungsi oleh pemanggil. ftnchek mengatakan bahwa argumen dummy adalah
dimodifikasi oleh subprogram, menyiratkan bahwa nilainya diubah dalam panggilan
modul. Argumen aktual yang sesuai tidak boleh berupa konstanta atau ekspresi,
melainkan variabel atau elemen larik yang dapat ditetapkan secara sah.
Dikendalikan oleh -penggunaan=arg-const-modified pilihan.

tiruan arg bekas sebelum set, Sebenarnya arg tidak set
Di sini argumen dummy dapat digunakan dalam subprogram sebelum memiliki nilai yang ditetapkan
untuk itu oleh subprogram. Argumen aktual yang sesuai harus memiliki nilai
ditugaskan untuk itu oleh pemanggil sebelum menjalankan subprogram. Dikendalikan oleh
-penggunaan=var-tidak diinisialisasi pilihan.

Peringatan ini tidak terpengaruh oleh -argumen pengaturan.

Subprogram NAMA dipanggil tidak konsisten
Di sini ketidakcocokan antara tipe data dari subprogram itu sendiri seperti yang digunakan dan sebagai
didefinisikan. Misalnya, jika pengguna menyatakan
JUMLAH FUNGSI INTEGER (A)
dan memanggil COUNT di modul lain sebagai
N = JUMLAH(A)
tanpa mendeklarasikan tipe datanya, itu akan default ke tipe sebenarnya, berdasarkan yang pertama
huruf namanya. Modul panggilan harus menyertakan deklarasi
JUMLAH INTEGER

Diberikan untuk -argumen pengaturan 2 atau 3.

Subprogram NAMA: bervariasi panjangnya argumen daftar:
Telah ditemukan inkonsistensi antara jumlah argumen dummy (parameter)
sebuah subprogram memiliki dan jumlah argumen aktual yang diberikan dalam sebuah doa.
ftnchek melacak semua permintaan subprogram (pernyataan CALL dan
ekspresi menggunakan fungsi) dan membandingkannya dengan definisi dari
subprogram di tempat lain dalam kode sumber. Kompiler Fortran biasanya tidak
menangkap jenis kesalahan ini. Diberikan untuk -argumen pengaturan 1 atau 3.

Variabel tidak dideklarasikan Tipe memiliki menjadi secara implisit didefinisikan
Saat mencetak tabel simbol untuk sebuah modul, ftnchek akan menandai dengan tanda bintang semua
pengidentifikasi yang tidak diketik secara eksplisit dan akan menampilkan tipe data yang
ditugaskan melalui pengetikan implisit. Ini memberikan dukungan bagi pengguna yang ingin
mendeklarasikan semua variabel seperti yang diperlukan dalam Pascal atau beberapa bahasa lain. Ini
pesan hanya muncul ketika -symtab opsi berlaku. Sebagai alternatif, gunakan
-menyatakan tandai jika Anda ingin mendapatkan daftar semua variabel yang tidak dideklarasikan.

Variabel menyatakan tapi tak pernah direferensikan
Mendeteksi pengenal apa pun yang dideklarasikan dalam program Anda tetapi tidak pernah digunakan,
baik untuk diberi nilai atau agar nilainya diakses. Variabel dalam COMMON
dikecualikan. Dikendalikan oleh -penggunaan=var-tidak digunakan pilihan.

Variabel set tapi tak pernah bekas
ftnchek akan memberi tahu pengguna ketika variabel telah diberi nilai, tetapi
variabel tidak digunakan dalam program. Biasanya ini hasil dari
kelalaian. Dikendalikan oleh -penggunaan=var-set-tidak digunakan pilihan.

Variabel bekas sebelum set
Pesan ini menunjukkan bahwa pengenal digunakan untuk menghitung nilai sebelum
inisialisasi. Penggunaan tersebut dapat menyebabkan nilai yang salah dihitung, karena
nilai awalnya tidak terkontrol. Dikendalikan oleh -penggunaan=var-tidak diinisialisasi
pilihan.

Variabel mungkin be bekas sebelum set
Mirip dengan yang digunakan sebelum disetel kecuali itu ftnchek tidak dapat menentukan statusnya
dengan kepastian. ftnchek mengasumsikan variabel dapat digunakan sebelum disetel jika yang pertama
penggunaan variabel terjadi sebelum teks program untuk penugasannya.
Dikendalikan oleh -penggunaan=var-tidak diinisialisasi pilihan.

Peringatan: DO indeks is tidak bilangan bulat
Peringatan ini hanya diberikan ketika batas DO adalah bilangan bulat, tetapi indeks DO tidak.
Ini mungkin menunjukkan kegagalan untuk mendeklarasikan indeks menjadi bilangan bulat. Dikontrol oleh
-truncation=kerja nyata pilihan.

Peringatan: bilangan bulat hasil bagi expr ... dikonversi untuk nyata
Hasil bagi dua bilangan bulat menghasilkan hasil tipe bilangan bulat, di mana
bagian pecahan dijatuhkan. Jika ekspresi bilangan bulat yang melibatkan pembagian adalah
kemudian diubah menjadi tipe data nyata, mungkin saja pembagian tipe nyata telah
disengaja. Dikontrol oleh -truncation=int-div-real pilihan.

Peringatan: Bilangan bulat hasil bagi expr ... bekas in eksponen
Hasil bagi dua bilangan bulat menghasilkan hasil tipe bilangan bulat, di mana
bagian pecahan dijatuhkan. Jika ekspresi bilangan bulat seperti itu digunakan sebagai eksponen,
sangat mungkin bahwa divisi tipe nyata dimaksudkan. Dikontrol oleh
-truncation=int-div-exponent pilihan.

Peringatan: NAMA tidak set ketika KEMBALI ditemui
Cara fungsi di Fortran mengembalikan nilai adalah dengan menetapkan nilai ke
nama fungsi. Pesan ini menunjukkan bahwa fungsi tersebut tidak ditetapkan sebagai
nilai sebelum titik di mana pernyataan RETURN ditemukan. Oleh karena itu
kemungkinan bahwa fungsi tersebut dapat mengembalikan nilai yang tidak ditentukan.

Peringatan: Tidak standar sintaksis: disesuaikan ukuran tidak bisa be bersambung
Standar Fortran 77 (bagian 6.2.2) melarang penggabungan variabel karakter
yang ukurannya adalah tanda bintang dalam tanda kurung, kecuali dalam pernyataan penugasan.
Dikontrol oleh -f77=eksperimen campuran.

Peringatan: Tidak standar sintaksis : penting karakter lalu 72 kolom
Peringatan ini diberikan di bawah -f77=garis panjang pengaturan jika -kolom pengaturan memiliki
telah digunakan untuk menambah lebar bidang pernyataan, dan pernyataan memiliki makna
teks program di luar kolom 72. Fortran Standar mengabaikan semua teks di kolom tersebut,
tetapi beberapa kompiler tidak. Dengan demikian program dapat diperlakukan secara berbeda oleh
compiler yang berbeda.

Peringatan: Tidak standar sintaksis : Pernyataan di luar of ketertiban.
ftnchek akan mendeteksi pernyataan yang keluar dari urutan yang ditentukan untuk ANSI
standar Fortran 77. Tabel 1 mengilustrasikan urutan pernyataan yang diizinkan dalam
bahasa Fortran. Pernyataan-pernyataan yang tidak teratur tetap ditafsirkan oleh
ftnchek, untuk mencegah ``kaskade'' pesan kesalahan. Penghitung urutan juga
digulung kembali untuk mencegah pengulangan pesan kesalahan untuk blok yang serupa
pernyataan. Dikendalikan oleh -f77=perintah-pernyataan pilihan.

-------------------------------------------------- ------
| | implisit
| parameter |----------
| | spesifikasi lainnya
format |---------------|---------------------
dan | | pernyataan-fungsi
entri | data |---------------------
| | dapat dieksekusi
-------------------------------------------------- ------

Tabel 1

Peringatan: Mungkin divisi by nol
Pesan ini dicetak di mana pun pembagian dilakukan (kecuali pembagian dengan a
konstan). Gunakan untuk membantu menemukan pembagian runtime dengan masalah nol. Terkendali
by -divisi pilihan.

Peringatan: nyata terpotong untuk intg
ftnchek telah mendeteksi pernyataan penugasan yang memiliki ekspresi nyata pada
kanan, tetapi variabel integer di sebelah kiri. Bagian pecahan dari nilai sebenarnya
akan hilang. Jika Anda secara eksplisit mengonversi ekspresi real ke integer menggunakan
INT atau fungsi intrinsik NINT, tidak ada peringatan yang akan dicetak. Pesan serupa adalah
dicetak jika ekspresi presisi ganda ditetapkan ke presisi tunggal
variabel, dll. Dikendalikan oleh -pemotongan = penurunan pangkat pilihan.

Peringatan: subskrip is tidak bilangan bulat
Karena subskrip array biasanya merupakan kuantitas integer, penggunaan non-integer
ekspresi di sini mungkin menandakan kesalahan. Dikontrol oleh -truncation=subskrip nyata
pilihan.

Peringatan: tidak diketahui hakiki fungsi
Pesan ini memperingatkan pengguna bahwa nama yang dideklarasikan dalam pernyataan INTRINSIC adalah
tidak diketahui ftnchek. Mungkin itu adalah fungsi intrinsik yang tidak standar, jadi
program tidak akan portabel. Fungsi tersebut akan diperlakukan oleh ftnchek sebagai pengguna-
fungsi yang ditentukan. Peringatan ini tidak ditekan oleh opsi apa pun, karena itu memengaruhi
ftnchekanalisis program tersebut. Namun, jika fungsi intrinsik adalah salah satu dari
set intrinsik tidak standar yang didukung, Anda dapat menggunakan -hakiki pengaturan untuk
sebab ftnchek untuk mengenalinya.

PEMBATASAN DAN EKSTENSI


ftnchek menerima program Fortran-77 standar ANSI dengan beberapa keterbatasan kecil dan banyak
ekstensi umum.

keterbatasan:
Argumen dummy dalam fungsi pernyataan diperlakukan seperti variabel biasa dari
program. Artinya, ruang lingkup mereka adalah seluruh subprogram, bukan hanya pernyataan
definisi fungsi.

Pemeriksaan pernyataan FORMAT lemah, menoleransi pemisah yang hilang (koma,
dll.) antara deskriptor format di tempat-tempat di mana Standar mengharuskannya, dan
memungkinkan .d bidang pada deskriptor yang seharusnya tidak memilikinya. Itu memperingatkan di bawah
-f77=format-edit-descr tentang jenis deskriptor tidak standar (seperti O), dan didukung
ekstensi.

Ada beberapa ekstensi sintaksis dan elemen Fortran 90 yang ftnchek menerima
tetapi melakukan sangat sedikit pemeriksaan. Misalnya, penggunaan pointer (apakah
sintaks Cray tidak standar atau sintaks Fortran 90) tidak dicentang selain untuk set
dan status yang digunakan. Diharapkan suatu hari nanti akan ada pemeriksaan yang lebih teliti
diimplementasikan, tetapi untuk saat ini pengguna harus mempertimbangkan penerimaan sintaksis ini
fitur hanya sebagai kemudahan untuk mengaktifkan pemeriksaan aspek lain dari kode yang
berisi mereka. Lihat bagian Ekstensi untuk mengetahui secara spesifik tentang fitur apa itu
diterima tetapi tidak sepenuhnya diperiksa.

Jika subprogram yang disediakan pengguna memiliki nama yang sama dengan salah satu intrinsik tidak standar
fungsi yang dikenali oleh ftnchek, itu harus dideklarasikan dalam pernyataan EKSTERNAL di
setiap rutinitas yang memanggilnya. Jika tidak, itu akan diperiksa secara normal
diberikan pada fungsi intrinsik. Karena intrinsik tidak standar tidak
standar, pernyataan EKSTERNAL ini tidak disyaratkan oleh Standar Fortran 77.
Menggunakan -intrinsik=tidak ada pengaturan, pengakuan sebagian besar intrinsik tidak standar
(kecuali hanya yang diperlukan untuk mendukung tipe data kompleks ganda) dapat diaktifkan
mati. Lihat daftar fungsi intrinsik tidak standar yang didukung di bawah
diskusi tentang -hakiki pengaturan di atas.

Ekstensi:
Semua ekstensi ini (kecuali karakter huruf kecil) akan menghasilkan peringatan jika
yang relevan -f77 pilihan diatur. Beberapa ekstensi yang tercantum di bawah ini adalah bagian dari
Standar Fortran-90. Ini ditunjukkan oleh notasi (F90).

Tab diizinkan, dan diterjemahkan ke dalam kosong yang setara yang sesuai dengan tab
berhenti setiap 8 kolom. Standar tidak mengenali tab. Perhatikan bahwa beberapa
kompiler mengizinkan tab, tetapi memperlakukannya secara berbeda. Perawatan yang ditentukan untuk DEC
FORTRAN dapat dicapai dengan menggunakan -sumber=dec-tab pengaturan.

String dapat dibatasi oleh tanda kutip atau apostrof. Urutan dua
karakter pembatas diinterpretasikan sebagai karakter pembatas tertanam tunggal.
(F90)

String mungkin berisi urutan escape backslash gaya UNIX. Mereka akan
diartikan demikian jika -sumber=unix-backslash pengaturan diberikan. Jika tidak,
karakter garis miring terbalik akan diperlakukan sebagai karakter pencetakan normal.

Kode sumber dapat dalam format gratis Fortran 90 atau format tetap tradisional.
(F90)

Titik koma diperbolehkan sebagai pemisah pernyataan. (F90)

Karakter huruf kecil diizinkan, dan diubah secara internal menjadi huruf besar
kecuali dalam string karakter. Standar menentukan huruf besar saja, kecuali dalam
komentar dan string. (F90)

Konstanta Hollerith diizinkan, sesuai dengan Standar Fortran 77,
lampiran C. Mereka tidak boleh digunakan dalam ekspresi, atau bingung dengan tipe data
KARAKTER.

Huruf 'D' (huruf besar atau kecil) pada kolom 1 diperlakukan sebagai awal dari a
komentar. Tidak ada pilihan untuk memperlakukan baris seperti itu sebagai pernyataan alih-alih komentar.

Pernyataan boleh lebih dari 72 kolom asalkan pengaturannya -kolom adalah
digunakan untuk meningkatkan batas. Menurut standar, semua teks dari kolom 73
melalui 80 diabaikan, dan tidak ada baris yang lebih panjang dari 80 kolom.

Nama variabel boleh lebih panjang dari enam karakter. Standar menentukan enam sebagai
maksimal. ftnchek mengizinkan nama hingga 31 karakter (F90).

Nama variabel dapat berisi garis bawah dan tanda dolar (atau non-abjad lainnya)
karakter seperti yang ditentukan oleh -pengidentifikasi-karakter pilihan). Karakter-karakter tersebut adalah
diperlakukan sama dengan huruf alfabet. Tipe default untuk variabel awal
dengan karakter ini adalah NYATA. Dalam pernyataan tipe IMPLICIT yang menentukan kisaran
karakter, tanda dolar mengikuti Z dan diikuti oleh garis bawah. (Ada yang lain
karakter yang ditentukan pengguna diperlakukan sama dengan tanda dolar.) Fortran 90
mengizinkan garis bawah dalam nama variabel.

Versi UNIX mentolerir keberadaan preprocessor directives, yaitu lines
diawali dengan tanda pound (#). Ini diperlakukan sebagai komentar, kecuali untuk #line
arahan, yang ditafsirkan, dan digunakan untuk mengatur nomor baris dan sumber
nama file untuk peringatan dan pesan kesalahan. Perhatikan bahwa arahan #include bukan
diproses oleh ftnchek. Program yang menggunakannya untuk menyertakan file sumber harus
melewati preprocessor sebelum dimasukkan ke ftnchek. Seperti disebutkan di bawah ini,
ftnchek tidak memproses pernyataan TERMASUK, yang memiliki sintaks yang berbeda. Sebuah
program opsional, ftnpp(1L) (tersedia secara terpisah) menyediakan pra-pemrosesan yang
menangani file TERMASUK dengan benar.

Struktur kontrol Fortran 90 DO ... ENDDO diizinkan. SIKLUS dan KELUAR
pernyataan diterima. Semua ini mungkin memiliki nama do-construct opsional, tapi
nama konstruksi tidak diperiksa konsistensinya. (F90)

Konstruk Fortran 90 SELECT CASE diterima. (F90)

Nama konstruksi juga diterima di IF, THEN, ELSE, ENDIF dan SELECT CASE
pernyataan. (F90)

Pernyataan ACCEPT dan TYPE (untuk terminal I/O) diperbolehkan, dengan
sintaks sebagai PRINT.

Sintaks yang disebut ``Cray pointer'' ditoleransi. Ini tidak sama dengan
Pernyataan Fortran 90 POINTER. Tidak ada pemeriksaan nyata dari pernyataan lainnya
daripada sintaks dasar. Bentuk pernyataan tersebut adalah
penunjuk (petunjuk, pointee) [,(petunjuk, pointee)]
Variabel pointer diberi tipe data INTEGER *4. Pemeriksaan penggunaan
variabel pointee ditekan, karena dalam praktiknya mereka diakses secara tidak langsung
melalui pointer.

Sintaks terkait Fortran 90 pointer berikut diterima: ALLOCATABLE,
POINTER, dan pernyataan TARGET dan atribut yang sama dalam deklarasi tipe;
ALOCATE, DEALLOCATE, dan NULLIFY pernyataan yang dapat dieksekusi; penunjukan penunjuk menggunakan
=> operator; dan fungsi intrinsik ALOCATED dan ASSOCIATED. Semantik kecil
pemeriksaan variabel pointer dan operasi dilakukan di luar set dasar dan digunakan
status. Misalnya, tidak ada pemeriksaan untuk kesalahan seperti penunjuk yang menggantung,
atau penggunaan array yang tidak terisi.

Pernyataan mungkin memiliki sejumlah baris kelanjutan. Fortran 77 dan Fortran
90 standar memungkinkan maksimal 19 dalam bentuk sumber tetap. Standar Fortran 90
memungkinkan maksimal 39 dalam bentuk sumber gratis.

Operator relasional (perbandingan) yang terdiri dari tanda baca, yaitu: < <= == /= > >=
diijinkan. (F90)

Komentar sebaris, dimulai dengan tanda seru, diizinkan. (F90)

NAMELIST I/O didukung. Sintaksnya sama seperti di Fortran 90.

Pernyataan FORMAT dapat berisi tanda dolar untuk menunjukkan penekanan pengangkutan-
kembali. Ekspresi bilangan bulat yang diapit tanda kurung sudut dapat digunakan di mana saja dalam a
Pernyataan FORMAT di mana Standar Fortran 77 memungkinkan konstanta bilangan bulat (kecuali
untuk panjang konstanta Hollerith), untuk memberikan nilai run-time untuk pengulangan
spesifikasi atau lebar bidang.

Kata kunci tidak standar diperbolehkan dalam pernyataan I/O, sesuai dengan yang ada di VMS
Fortran.

Pernyataan IMPLICIT NONE didukung. Arti dari pernyataan ini adalah
semua variabel harus memiliki tipe data yang dideklarasikan secara eksplisit. Alih-alih menandai
kemunculan variabel tersebut dengan pesan kesalahan sintaks, ftnchek menunggu sampai
akhir modul, dan kemudian mencetak daftar semua variabel yang tidak dideklarasikan, seperti itu
lakukan untuk -menyatakan pilihan. (F90)

Tipe data INTEGER, REAL, COMPLEX, dan LOGICAL diperbolehkan memiliki pilihan
spesifikasi presisi dalam deklarasi tipe. Misalnya, REAL*8 berarti 8-byte
tipe data titik mengambang. Tipe data REAL*8 belum tentu dipertimbangkan
setara dengan PRESISI GANDA, tergantung pada -ukuran kata pengaturan. Fortran 77
Standar memungkinkan spesifikasi panjang hanya untuk data CHARACTER.

ftnchek mendukung spesifikasi tipe GANDA KOMPLEKS untuk kuantitas kompleks yang
bagian nyata dan imajiner adalah presisi ganda. Aritmatika mode campuran yang melibatkan
kompleks presisi tunggal dengan data nyata presisi ganda, dilarang di bawah
Standar, menghasilkan hasil kompleks ganda.

Deklarasi tipe gabungan dan inisialisasi seperti pernyataan data diterima.
Ini memiliki bentuk deklarasi tipe Fortran 77 standar, diikuti oleh garis miring
daftar konstanta yang dibatasi seperti yang digunakan dalam pernyataan DATA. Contoh dari
sintaks adalah
INTEGER N / 100 /
Bentuk deklarasi inisialisasi bajingan ini tidak diadopsi di Fortran 90
deklarasi harus ditulis menggunakan formulir standar yang dijelaskan di bawah ini, yaitu:
diterima oleh ftnchek.

Ada dukungan terbatas untuk deklarasi tipe berbasis atribut Fortran 90. Ini
gaya deklarasi dibedakan dengan penggunaan tanda titik dua (::) di antara
daftar atribut dan daftar variabel yang dideklarasikan. Fitur yang didukung mungkin
memadai untuk programmer pemula, tetapi belum cukup untuk profesional-
program Fortran 90 berkualitas. Saya berharap dapat menambahkan dukungan untuk lebih banyak fitur di masa mendatang
rilis. Saya mengundang relawan untuk membantu dalam tugas ini. Lihat file ToDo di
distribusi kode sumber untuk detailnya. Atribut yang saat ini diterima, selain itu
semua tipe data yang biasa, adalah DIMENSION, EXTERNAL, INTRINSIC, PARAMETER, dan SAVE.
Bentuk deklarasi yang baru juga memungkinkan pemberian nilai ke variabel
dinyatakan. Saat ini, (LEN=nilai) bentuk menentukan panjang karakter juga
diterima. Spesifikasi jenis, menggunakan (KIND=nilai) diuraikan tetapi tidak
diproses: semua jenis diperlakukan sebagai jenis default. Juga, ada sedikit pemeriksaan
dari deklarasi ini di luar sintaks dasar.

Banyak fungsi intrinsik tidak standar yang umum ditemukan disediakan. Lihat
diskusi tentang -hakiki untuk daftar fungsi dan cara mengontrol mana yang
diakui.

Pemeriksaan argumen tidak ketat untuk intrinsik tidak standar yang menggunakan array atau
jenis argumen campuran.

ftnchek mengizinkan pernyataan TERMASUK, yang menyebabkan pencantuman teks dari
file yang diberikan. Sintaksnya adalah
TERMASUK 'nama file'
Ini kompatibel dengan Fortran 90. Jika -sumber=vms-include pilihan diberikan,
ftnchek mengikuti konvensi VMS sehubungan dengan pernyataan ini: ia mengasumsikan a
ekstensi default dari .untuk jika tidak ada ekstensi nama file yang diberikan, dan mengizinkan
qualifier /[NO]LIST mengikuti nama file, untuk mengontrol daftar yang disertakan
mengajukan. Tidak ada dukungan untuk menyertakan modul teks VMS.

Dalam keluaran diagnostik yang berkaitan dengan item yang terkandung dalam file termasuk, lokasi
kesalahan ditentukan oleh lokasinya di file sertakan dan lokasi di
file induk tempat file tersebut disertakan.

ftnchek menerima pernyataan PARAMETER yang tidak memiliki tanda kurung. Ini akan diperingatkan
tentang jika -f77=param-noparen bendera diberikan.

ftnchek menerima definisi PARAMETER yang melibatkan fungsi intrinsik dan
eksponen oleh eksponen non-bilangan bulat. Kedua kasus ini dilarang oleh
Standar Fortran 77, dan akan diperingatkan jika -f77=param-intrinsik bendera
diberikan. Jika nilai fungsi intrinsik adalah konstanta integer waktu kompilasi,
ftnchek akan mengevaluasinya. Ini memungkinkan pemeriksaan yang lebih baik jika parameter digunakan dalam
mendeklarasikan ukuran array. Fortran 90 memungkinkan fungsi intrinsik di PARAMETER
definisi.

Fungsi intrinsik yang dievaluasi adalah:

ABS IABS DIM IDIM MAX
TANDA MOD MAX0 MIN MIN0
ISI LEN ICHAR INDEKS

Fungsi argumen integer dievaluasi hanya jika argumennya integer
ekspresi konstan. (Ini mungkin melibatkan konstanta bilangan bulat, parameter, dan
dievaluasi fungsi intrinsik.) Fungsi LEN dievaluasi jika argumennya adalah
ekspresi yang hanya melibatkan konstanta karakter dan variabel yang panjangnya tidak
disesuaikan. Fungsi ICHAR dan INDEX dievaluasi hanya jika argumennya adalah
konstanta karakter. ftnchek memberikan peringatan jika membutuhkan nilai beberapa
fungsi intrinsik yang tidak dievaluasi.

BARU FITUR


Berikut adalah perubahan dari Versi 3.2 ke Versi 3.3:

1. Front-end telah ditulis ulang untuk tampilan depan tanpa batas, menghilangkan bug lama
yang menyebabkan interpretasi yang salah dari pernyataan yang ambiguitasnya tidak diselesaikan dalam
baris pertama.

2. Itu -mkhtml pilihan sekarang tersedia dalam versi MS-DOS.

3. Dukungan tambahan untuk sintaks terkait Fortran 90 pointer: ALLOCATE, DEALLOCATE, dan NULLIFY
pernyataan; atribut ALLOCATABLE, POINTER dan TARGET dalam deklarasi tipe; itu
operator penugasan pointer => dan fungsi intrinsik ALOCATED dan ASSOCIATED; dan
deklarasi array bentuk-deferred. Saat ini fitur sintaks baru ini diterima
tetapi tidak diperiksa dengan benar. Fitur ini ditambahkan oleh Robert Landrito.

4. Itu -f77 serta -f90 petunjuk opsi pengontrolan peringatan tentang ``Cray pointer'' telah
diganti namanya menjadi penunjuk kosong. itu -f77=penunjuk opsi sekarang sebagai gantinya mengontrol peringatan untuk
kode yang berisi sintaksis terkait penunjuk Fortran 90.

5. Diimplementasikan kembali -mkhtml pemrosesan sehingga sekarang jauh lebih cepat pada file sumber yang berisi
banyak rutinitas.

6. Mengubah susunan direktori pengujian sehingga tidak perlu lagi diubah
distribusi untuk menjalankan test suite (cek.bat) di bawah MS-DOS.

7. Memperbaiki bug dalam membaca pengaturan numerik pada baris perintah saat mengatur nama disingkat menjadi
3 karakter.

8. Memperbaiki bug yang menyebabkan peringatan palsu untuk GOTO yang mengacu pada pernyataan END berlabel
ketika pernyataan sebelum END adalah FORMAT.

9. Bendera baru -f77=karakter untuk mengontrol peringatan tentang ekstensi ke Fortran 77
tipe data karakter. Mendampingi bendera baru ini adalah dukungan untuk aturan Fortran 90 untuk
deklarasi variabel karakter yang mengevaluasi ke nol atau panjang negatif, memungkinkan
mereka dan memperlakukan nilai panjang negatif sebagai nol.

10. Memperbaiki bug kecil dalam pencetakan komentar dan baris kosong setelah pernyataan AKHIR terakhir
in -daftar mode.

Gunakan ftnchek online menggunakan layanan onworks.net


Ad


Ad