ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

OnWorks favicon

gfortran-4.8 - ອອນໄລນ໌ຢູ່ໃນຄລາວ

ແລ່ນ gfortran-4.8 ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ gfortran-4.8 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


gfortran - GNU Fortran compiler

ສະຫຼຸບສັງລວມ


gfortran [-c|-S|-E]
[-g] [- ໜ້າ] [-Oລະດັບ]
[-Wເຕືອນ... ] [- pedantic]
[-Idir... ] [-Ldir... ]
[-Dມະຫາພາກ[=defn]...] [-Uມະຫາພາກ]
[-fທາງເລືອກ... ]
[-mທາງ​ເລືອກ​ເຄື່ອງ​... ]
[-o outfile] infile...

ພຽງແຕ່ທາງເລືອກທີ່ເປັນປະໂຫຍດທີ່ສຸດແມ່ນໄດ້ລະບຸໄວ້ຢູ່ທີ່ນີ້; ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບສ່ວນທີ່ເຫຼືອ.

ລາຍລະອຽດ


ໄດ້ gfortran ຄໍາ​ສັ່ງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ທາງ​ເລືອກ​ທັງ​ຫມົດ​ສະ​ຫນັບ​ສະ​ຫນູນ​ໂດຍ​ gcc ຄໍາສັ່ງ. ທາງເລືອກເທົ່ານັ້ນ
ສະເພາະກັບ GNU Fortran ແມ່ນເອກະສານຢູ່ທີ່ນີ້.

ທາງເລືອກ GCC ແລະ GNU Fortran ທັງຫມົດແມ່ນໄດ້ຮັບການຍອມຮັບທັງສອງໂດຍ gfortran ແລະໂດຍ gcc (ເຊັ່ນດຽວກັນກັບໃດໆ
ຄົນຂັບອື່ນໆທີ່ສ້າງຂຶ້ນໃນເວລາດຽວກັນ, ເຊັ່ນ g ++), ນັບຕັ້ງແຕ່ການເພີ່ມ GNU Fortran ກັບ GCC
ການແຈກຢາຍເຮັດໃຫ້ການຍອມຮັບທາງເລືອກ GNU Fortran ໂດຍຜູ້ຂັບຂີ່ທີ່ກ່ຽວຂ້ອງທັງຫມົດ.

ໃນບາງກໍລະນີ, ທາງເລືອກມີຮູບແບບທາງບວກແລະທາງລົບ; ຮູບ​ແບບ​ທາງ​ລົບ​ຂອງ​ -ffoo ຈະ
be -fno-foo. ຄູ່ມືນີ້ເອກະສານພຽງແຕ່ຫນຶ່ງໃນສອງຮູບແບບນີ້, ອັນໃດກໍ່ຕາມບໍ່ແມ່ນ
Default

OPTIONS


ນີ້ແມ່ນບົດສະຫຼຸບຂອງທາງເລືອກທັງຫມົດສະເພາະກັບ GNU Fortran, ຈັດກຸ່ມຕາມປະເພດ.
ຄໍາອະທິບາຍຢູ່ໃນພາກຕໍ່ໄປນີ້.

ຟໍຣັນ ພາສາ ທາງເລືອກໃນການ
- ການ​ຫຼຸດ​ລົງ​ພາຍ​ໃນ​ -fbackslash -fcray-pointer -fd-lines-as-code -fd-lines-as-comments
-fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 -fdollar-ok
-fixed-line-length-n -ffixed-line-length-none -ffree-form -ffree-ຄວາມຍາວແຖວ-n
-ffree-line-length-none -fimplicit-none -finteger-4-integer-8 -fmax-identifier-length
-fmodule-ເອກະຊົນ -fno-fixed-form -fno-range-ກວດ -fopenmp -freal-4-ຈິງ-10
-freal-4-ຈິງ-16 -freal-4-ຈິງ-8 -freal-8-ຈິງ-10 -freal-8-ຈິງ-16 -freal-8-ຈິງ-4
-std=std

ການຜະລິດກ່ອນ ທາງເລືອກໃນການ
-HAS-ຄໍາຖາມ[=ຄໍາຕອບ] -Aຄໍາຖາມ=ຄໍາຕອບ -C -CC -Dມະຫາພາກ[=defn] -H -P -Uມະຫາພາກ -cpp -dD
-dI -dM -dN -dU -fworking-directory -Imultilib dir - ຄໍາ​ນິ​ຍາມ​ ເອກະສານ -iquote -isysroot dir
- ລະບົບ dir -nocpp -nostdinc -undef

Error ແລະ ການ​ເຕືອນ​ໄພ ທາງເລືອກໃນການ
- ເວ​ລາ​ຊິ້ງ - ຝາ -Wampersand - Warray-bounds -Wc-binding-type - ການ​ຕັດ​ຕົວ​ອັກ​ສອນ​
- ການ​ປ່ຽນ​ແປງ​ - ການ​ລົບ​ລ້າງ Wfunction​ -Wimplicit-interface - ຂັ້ນ​ຕອນ​ການ​ວິ​ທີ​ການ​
-Wintrinsic-ເງົາ -Wintrinsics-std -Wline-ຕັດ -Wno-align-commons -Wno-tabs
-Wreal-q-ຄົງທີ່ - ແປກໃຈ - Wunderflow -Wunused-ພາລາມິເຕີ -Wrealloc-lhs Wrealloc-
lhs-ທັງໝົດ -Wtarget-ຕະຫຼອດຊີວິດ -fmax-errors=n -fsyntax ເທົ່ານັ້ນ - pedantic -pedantic ຜິດ​ພາດ​

Debugging ທາງເລືອກໃນການ
-fbacktrace -fdump-fortran-optimized -fdump-fortran-ຕົ້ນສະບັບ -fdump-parse-tree
-ffpe-trap=ບັນຊີລາຍຊື່

Directory ທາງເລືອກໃນການ
-Idir -Jdir -fintrinsic-modules-ເສັ້ນທາງ dir

ການເຊື່ອມຕໍ່ ທາງເລືອກໃນການ
-static-libgfortran

ເວລາແລ່ນ ທາງເລືອກໃນການ
-fconvert=ການປ່ຽນແປງ -fmax-subrecord-length=ຄວາມຍາວ -frecord-marker=ຄວາມຍາວ -fsign-ສູນ

ລະຫັດ ການຜະລິດ ທາງເລືອກໃນການ
-faggressive-function-elimination -fblas-matmul-limit=n -fbounds-ກວດ​ສອບ​
-fcheck-array-temporaries -fcheck=
-fcoarray= -fexternal-blas -ff2c -ffrontend-optimize
-finit-character=n -finit-integer=n -finit-local-ສູນ -finit-logical=
-finit-real= -fmax-array-constructor=n -fmax-stack-var-size=n
-fno-align-commons -fno ອັດ​ຕະ​ໂນ​ມັດ​ -fno-protect-parens -fno-underscoring
-fno-whole-file -fsecond-underscore -fpack ມາຈາກ -frealloc-lhs - ບັງເອີນ
-frepack-arrays -fshort-enums -fstack-arrays

ທາງເລືອກໃນການ ການຄວບຄຸມ ຟໍຣັນ ພາສາ
ຕົວເລືອກຕໍ່ໄປນີ້ຄວບຄຸມລາຍລະອຽດຂອງພາສາ Fortran ທີ່ຍອມຮັບໂດຍ compiler:

-ffree-form
-fixed-form
ລະບຸຮູບແບບທີ່ໃຊ້ໂດຍໄຟລ໌ແຫຼ່ງ. ຮູບແບບຮູບແບບຟຣີໄດ້ຖືກນໍາສະເຫນີໃນ
Fortran 90. ຮູບແບບຄົງທີ່ຖືກນໍາໃຊ້ຕາມປະເພນີໃນໂຄງການ Fortran ເກົ່າ. ເມື່ອ​ໃດ​
ທັງສອງທາງເລືອກບໍ່ໄດ້ລະບຸ, ຮູບແບບແຫຼ່ງແມ່ນຖືກກໍານົດໂດຍການຂະຫຍາຍໄຟລ໌.

- ການ​ຫຼຸດ​ລົງ​ພາຍ​ໃນ​
ທາງເລືອກນີ້ເຮັດໃຫ້ຂະບວນການພາຍໃນທັງຫມົດ (ລວມທັງສ່ວນຂະຫຍາຍສະເພາະ GNU) ເປັນ
ໄດ້ຮັບການຍອມຮັບ. ນີ້ສາມາດເປັນປະໂຫຍດກັບ -std=f95 ເພື່ອບັງຄັບໃຫ້ປະຕິບັດຕາມມາດຕະຖານແຕ່ໄດ້ຮັບ
ການ​ເຂົ້າ​ເຖິງ​ລະ​ດັບ​ອັນ​ເຕັມ​ທີ່​ຂອງ intrinsics ທີ່​ມີ​ຢູ່​ກັບ​ gfortran. ຍ້ອນເຫດນັ້ນ, ທ່ານດຣ.
-Wintrinsics-std ຈະຖືກລະເລີຍ ແລະບໍ່ມີຂັ້ນຕອນທີ່ຜູ້ໃຊ້ກຳນົດເອງທີ່ມີຊື່ດຽວກັນກັບ
ພາຍໃນໃດນຶ່ງຈະຖືກເອີ້ນວ່າ ຍົກເວັ້ນເມື່ອມັນຖືກປະກາດຢ່າງຈະແຈ້ງວ່າ "ພາຍນອກ".

-fd-lines-as-code
-fd-lines-as-comments
ເປີດໃຊ້ການປິ່ນປົວພິເສດສໍາລັບສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍ "d" ຫຼື "D" ໃນແຫຼ່ງແບບຟອມຄົງທີ່.
ຖ້າ -fd-lines-as-code ທາງເລືອກແມ່ນໃຫ້ພວກມັນຖືກປະຕິບັດຄືກັບວ່າຖັນທໍາອິດ
ບັນຈຸຊ່ອງຫວ່າງ. ຖ້າ -fd-lines-as-comments ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​, ພວກ​ເຂົາ​ເຈົ້າ​ໄດ້​ຮັບ​ການ​ປິ່ນ​ປົວ​ເປັນ​
ເສັ້ນສະແດງຄວາມຄິດເຫັນ.

-fdefault-double-8
ກໍານົດປະເພດ "ສອງຄວາມຊັດເຈນ" ເປັນປະເພດກວ້າງ 8 byte. ຖ້າ -fdefault-real-8 ແມ່ນ​ໃຫ້​,
"Double PreCISION" ແທນທີ່ຈະຖືກສົ່ງເສີມເປັນ 16 bytes ຖ້າເປັນໄປໄດ້, ແລະ
-fdefault-double-8 ສາມາດຖືກນໍາໃຊ້ເພື່ອປ້ອງກັນການນີ້. ປະເພດຂອງຄົງທີ່ທີ່ແທ້ຈິງເຊັ່ນ
"1.d0" ຈະບໍ່ຖືກປ່ຽນແປງໂດຍ -fdefault-real-8 ເຖິງແມ່ນວ່າ, ເຊັ່ນດຽວກັນ -fdefault-double-8 ບໍ່
ບໍ່ມີຜົນກະທົບຕໍ່ມັນ.

-fdefault-integer-8
ກຳນົດຈຳນວນເຕັມເລີ່ມຕົ້ນ ແລະປະເພດໂລຈິກເປັນປະເພດກວ້າງ 8 byte. ບໍ່ເຮັດຫຍັງຖ້ານີ້
ເປັນຄ່າເລີ່ມຕົ້ນແລ້ວ. ທາງ​ເລືອກ​ນີ້​ຍັງ​ມີ​ຜົນ​ກະ​ທົບ​ປະ​ເພດ​ຂອງ​ການ​ຄົງ​ທີ່​ຈໍາ​ນວນ​ເຕັມ​ເຊັ່ນ​
42​.

-fdefault-real-8
ກໍານົດປະເພດທີ່ແທ້ຈິງເລີ່ມຕົ້ນເປັນປະເພດກວ້າງ 8 byte. ບໍ່ເຮັດຫຍັງຖ້ານີ້ແມ່ນແລ້ວ
ຄ່າເລີ່ມຕົ້ນ. ຕົວເລືອກນີ້ຍັງມີຜົນກະທົບຕໍ່ປະເພດຂອງຄ່າຄົງທີ່ທີ່ແທ້ຈິງທີ່ບໍ່ແມ່ນສອງເທົ່າເຊັ່ນ 1.0, ແລະ
ສົ່ງເສີມຄວາມກວ້າງເລີ່ມຕົ້ນຂອງ "DOUBLE PRECISION" ເປັນ 16 bytes ຖ້າເປັນໄປໄດ້, ເວັ້ນເສຍແຕ່
"-fdefault-double-8" ແມ່ນໃຫ້, ເຊັ່ນກັນ.

-fdollar-ok
ອະນຸຍາດໃຫ້ $ ເປັນຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວທຳອິດທີ່ຖືກຕ້ອງໃນຊື່ສັນຍາລັກ. ສັນຍາລັກທີ່ເລີ່ມຕົ້ນດ້ວຍ $ ມີ
ປະຕິເສດເນື່ອງຈາກມັນບໍ່ຊັດເຈນວ່າກົດລະບຽບໃດທີ່ຈະນໍາໃຊ້ກັບການພິມ implicit ເປັນທີ່ແຕກຕ່າງກັນ
ຜູ້ຂາຍປະຕິບັດກົດລະບຽບທີ່ແຕກຕ່າງກັນ. ການນໍາໃຊ້ $ ໃນຄໍາຖະແຫຼງ "IMPLICIT" ຍັງຖືກປະຕິເສດ.

-fbackslash
ປ່ຽນການຕີຄວາມໝາຍຂອງ backslashes ໃນຕົວໜັງສືສະຕຣິງຈາກ backslash ດຽວ
ລັກ​ສະ​ນະ​ເປັນ "C​-style​" ຕົວ​ອັກ​ສອນ​ຫນີ​. ການປະສົມປະສານຕໍ່ໄປນີ້ແມ່ນຂະຫຍາຍອອກ
"\a", "\b", "\f", "\n", "\r", "\t", "\v", "\\", ແລະ "\0" ຕໍ່ກັບຕົວອັກສອນ ASCII
ແຈ້ງເຕືອນ, backspace, ຟີດແບບຟອມ, ແຖວໃໝ່, ກັບຄືນ carriage, ແຖບແນວນອນ, ແຖບຕັ້ງ,
backslash, ແລະ NUL, ຕາມລໍາດັບ. ນອກຈາກນັ້ນ, "\x"nn, "\u"nnnn ແລະ​ເຈົ້າ"nnnnnnnn
(ບ່ອນ​ທີ່​ແຕ່​ລະ​ຄົນ n ແມ່ນຕົວເລກເລກຖານສິບຫົກ) ຖືກແປເປັນຕົວອັກສອນ Unicode
ທີ່​ສອດ​ຄ້ອງ​ກັນ​ກັບ​ຈຸດ​ລະ​ຫັດ​ທີ່​ກໍາ​ນົດ​ໄວ້​. ການປະສົມອື່ນໆທັງໝົດຂອງຕົວລະຄອນ
ນຳໜ້າດ້ວຍ \ ບໍ່ໄດ້ຖືກຂະຫຍາຍ.

-fmodule-ເອກະຊົນ
ຕັ້ງຄ່າການເຂົ້າໃຊ້ເລີ່ມຕົ້ນຂອງຫົວໜ່ວຍໂມດູນເປັນ "PRIVATE". ການ​ນໍາ​ໃຊ້​ທີ່​ກ່ຽວ​ຂ້ອງ​
ໜ່ວຍງານຕ່າງໆຈະບໍ່ສາມາດເຂົ້າເຖິງໄດ້ເວັ້ນເສຍແຕ່ຈະຖືກປະກາດຢ່າງຈະແຈ້ງວ່າເປັນ "ສາທາລະນະ".

-fixed-line-length-n
ຕັ້ງຖັນຫຼັງຈາກຕົວອັກສອນໃດນຶ່ງຖືກລະເວັ້ນໃນແຖວຮູບແບບຄົງທີ່ປົກກະຕິໃນ
ໄຟລ໌ແຫຼ່ງ, ແລະໂດຍຜ່ານການທີ່ຊ່ອງໄດ້ຖືກສົມມຸດ (ເປັນຖ້າຫາກວ່າ padded ກັບຄວາມຍາວນັ້ນ) ຫຼັງຈາກ
ປາຍຂອງເສັ້ນຄົງທີ່ສັ້ນ.

ຄ່ານິຍົມສຳລັບ n ປະກອບມີ 72 (ມາດຕະຖານແລະຄ່າເລີ່ມຕົ້ນ), 80 (ຮູບບັດ), ແລະ
132 (ກົງກັບທາງເລືອກ "extended-source" ໃນບາງ compilers ທີ່ນິຍົມ). n ອາດຈະ
ຍັງຈະເປັນ none, ຫມາຍຄວາມວ່າເສັ້ນທັງຫມົດແມ່ນມີຄວາມຫມາຍແລະມີລັກສະນະຢ່າງຕໍ່ເນື່ອງ
constants ບໍ່ເຄີຍມີຊ່ອງ implicit ຕື່ມໃສ່ໃຫ້ເຂົາເຈົ້າຕື່ມຂໍ້ມູນໃສ່ເສັ້ນ.
-ffixed-line-length-0 ຫມາຍ​ຄວາມ​ວ່າ​ສິ່ງ​ດຽວ​ກັນ​ກັບ​ -ffixed-line-length-none.

-ffree-ຄວາມຍາວແຖວ-n
ຕັ້ງຖັນຫຼັງຈາກຕົວລະຄອນໃດຖືກລະເລີຍໃນແຖວແບບບໍ່ເສຍຄ່າແບບປົກກະຕິໃນແຫຼ່ງທີ່ມາ
ໄຟລ໌. ຄ່າເລີ່ມຕົ້ນແມ່ນ 132. n ອາດຈະເປັນ none, ຫມາຍຄວາມວ່າເສັ້ນທັງຫມົດແມ່ນ
ມີຄວາມໝາຍ. -ffree-line-length-0 ຫມາຍ​ຄວາມ​ວ່າ​ສິ່ງ​ດຽວ​ກັນ​ກັບ​ -ffree-line-length-none.

-fmax-identifier-length=n
ລະບຸຄວາມຍາວຕົວລະບຸສູງສຸດທີ່ອະນຸຍາດ. ຄ່າປົກກະຕິແມ່ນ 31 (Fortran 95) ແລະ
63 (Fortran 2003 ແລະ Fortran 2008).

-fimplicit-none
ລະບຸວ່າບໍ່ອະນຸຍາດໃຫ້ພິມແບບຫຍໍ້ໆ, ເວັ້ນເສຍແຕ່ຈະປະຕິເສດໂດຍ "IMPLICIT" ທີ່ຈະແຈ້ງ.
ຖະແຫຼງການ. ນີ້ແມ່ນເທົ່າກັບການເພີ່ມ "ບໍ່ມີ implicit" ໃນການເລີ່ມຕົ້ນຂອງທຸກໆ
ລະບຽບການ.

-finteger-4-integer-8
ສົ່ງເສີມທຸກ "INTEGER(KIND=4)" entities ເປັນ "INTEGER(KIND=8)" entities. ຖ້າ "KIND=8"
ບໍ່ສາມາດໃຊ້ໄດ້, ຫຼັງຈາກນັ້ນຄວາມຜິດພາດຈະຖືກອອກ. ທາງເລືອກນີ້ຄວນຈະຖືກນໍາໃຊ້ຢ່າງລະມັດລະວັງ
ແລະອາດຈະບໍ່ເຫມາະສົມສໍາລັບລະຫັດຂອງທ່ານ. ພື້ນທີ່ຂອງຄວາມກັງວົນທີ່ເປັນໄປໄດ້ລວມມີການໂທຫາ
ຂັ້ນຕອນພາຍນອກ, ການສອດຄ່ອງໃນ "EQUIVALENCE" ແລະ/ຫຼື "ທໍາມະດາ", ການໂຕ້ຕອບທົ່ວໄປ,
BOZ ການ​ປ່ຽນ​ແປງ​ຄົງ​ທີ່​ຕົວ​ອັກ​ສອນ​, ແລະ I/O​. ການກວດກາຂອງກາງ
ການເປັນຕົວແທນຂອງລະຫັດ Fortran ທີ່ຖືກແປ, ຜະລິດໂດຍ -fdump-ຕົ້ນໄມ້-ຕົ້ນສະບັບ, ເປັນ
ແນະນໍາ.

-fcray-pointer
ເປີດໃຊ້ສ່ວນຂະຫຍາຍຕົວຊີ້ Cray, ເຊິ່ງສະຫນອງການທໍາງານຂອງຕົວຊີ້ C-like.

-fopenmp
ເປີດໃຊ້ສ່ວນຂະຫຍາຍ OpenMP. ນີ້ປະກອບມີຄໍາແນະນໍາ OpenMP "!$omp" ໃນຮູບແບບຟຣີ
ແລະ "c$omp", *$omp ແລະ "!$omp" ຄໍາສັ່ງໃນຮູບແບບຄົງທີ່, "!$" ການລວບລວມເງື່ອນໄຂ
sentinels ໃນຮູບແບບຟຣີແລະ "c$", "*$" ແລະ "!$" sentinels ໃນຮູບແບບຄົງທີ່, ແລະໃນເວລາທີ່
ການ​ເຊື່ອມ​ຕໍ່​ຈັດ​ການ​ສໍາ​ລັບ​ຫ້ອງ​ສະ​ຫມຸດ OpenMP runtime ທີ່​ຈະ​ເຊື່ອມ​ຕໍ່​ໃນ​ທາງ​ເລືອກ​ -fopenmp
implies - ບັງເອີນ.

-fno-range-ກວດ
ປິດ​ການ​ໃຊ້​ງານ​ການ​ກວດ​ສອບ​ໄລ​ຍະ​ຜົນ​ຂອງ​ການ​ງ່າຍ​ຂອງ​ການ​ສະ​ແດງ​ອອກ​ຄົງ​ທີ່​ໃນ​ລະ​ຫວ່າງ​ການ​
ການລວບລວມ. ຕົວຢ່າງ, GNU Fortran ຈະໃຫ້ຂໍ້ຜິດພາດໃນເວລາທີ່ລວບລວມເວລາ
simplifying "a = 1. / 0". ດ້ວຍຕົວເລືອກນີ້, ບໍ່ມີຂໍ້ຜິດພາດຈະຖືກມອບໃຫ້ແລະ "a" ຈະເປັນ
ມອບໝາຍຄ່າ "+Infinity". ຖ້າການສະແດງອອກປະເມີນເປັນຄ່າທີ່ຢູ່ນອກ
ຂອບເຂດທີ່ກ່ຽວຂ້ອງຂອງ ["-HUGE()":"HUGE()"], ຫຼັງຈາກນັ້ນການສະແດງອອກຈະຖືກແທນທີ່ດ້ວຍ "-Inf"
ຫຼື "+Inf" ຕາມຄວາມເຫມາະສົມ. ເຊັ່ນດຽວກັນ, "DATA i/Z'FFFFFFFF'/" ຈະເຮັດໃຫ້ເປັນຈຳນວນເຕັມ
overflow ໃນລະບົບສ່ວນໃຫຍ່, ແຕ່ມີ -fno-range-ກວດ ມູນຄ່າຈະ "ອ້ອມຮອບ" ແລະ
"i" ຈະຖືກເລີ່ມຕົ້ນເປັນ -1 ແທນ.

-freal-4-ຈິງ-8
-freal-4-ຈິງ-10
-freal-8-ຈິງ-4
-freal-8-ຈິງ-10
-freal-8-ຈິງ-16
ສົ່ງເສີມທຸກ "REAL(KIND=M)" entities ເປັນ "REAL(KIND=N)" entities. ຖ້າ "REAL(KIND=N)" ແມ່ນ
ບໍ່ສາມາດໃຊ້ໄດ້, ຫຼັງຈາກນັ້ນຄວາມຜິດພາດຈະຖືກອອກ. ທຸກປະເພດທີ່ແທ້ຈິງອື່ນໆແມ່ນບໍ່ໄດ້ຮັບຜົນກະທົບ
ໂດຍທາງເລືອກນີ້. ທາງເລືອກເຫຼົ່ານີ້ຄວນຈະຖືກນໍາໃຊ້ຢ່າງລະມັດລະວັງແລະອາດຈະບໍ່ເຫມາະສົມສໍາລັບ
ລະ​ຫັດ​ຂອງ​ທ່ານ​. ພື້ນທີ່ຂອງຄວາມກັງວົນທີ່ເປັນໄປໄດ້ລວມມີການໂທຫາຂະບວນການພາຍນອກ, ການສອດຄ່ອງ
ໃນ "EQUIVALENCE" ແລະ/ຫຼື "ທໍາມະດາ", ການໂຕ້ຕອບແບບທົ່ວໄປ, ການແປງຕົວຫນັງສືຄົງທີ່ຂອງ BOZ,
ແລະ I/O. ການກວດກາການເປັນຕົວແທນລະດັບປານກາງຂອງ Fortran ແປ
ລະຫັດ, ຜະລິດໂດຍ -fdump-ຕົ້ນໄມ້-ຕົ້ນສະບັບ, ແມ່ນແນະນໍາ.

-std=std
ກໍານົດມາດຕະຖານທີ່ໂຄງການຄາດວ່າຈະສອດຄ່ອງກັບ, ເຊິ່ງອາດຈະເປັນຫນຶ່ງ
f95, f2003, f2008, gnu, ຫຼື legacy. ຄ່າເລີ່ມຕົ້ນສໍາລັບ std is gnu, ເຊິ່ງກໍານົດ
superset ຂອງມາດຕະຖານ Fortran 95 ທີ່ປະກອບມີສ່ວນຂະຫຍາຍທັງຫມົດທີ່ສະຫນັບສະຫນູນໂດຍ
GNU Fortran, ເຖິງແມ່ນວ່າການເຕືອນໄພຈະຖືກມອບໃຫ້ສໍາລັບການຂະຫຍາຍທີ່ລ້າສະໄຫມບໍ່ໄດ້ແນະນໍາ
ສໍາລັບການນໍາໃຊ້ໃນລະຫັດໃຫມ່. ໄດ້ legacy ມູນຄ່າແມ່ນທຽບເທົ່າແຕ່ບໍ່ມີຄໍາເຕືອນສໍາລັບ
ການຂະຫຍາຍທີ່ລ້າສະໄຫມ, ແລະອາດຈະເປັນປະໂຫຍດສໍາລັບໂຄງການເກົ່າທີ່ບໍ່ແມ່ນມາດຕະຖານ. ໄດ້ f95, f2003
ແລະ f2008 ຄຸນຄ່າລະບຸຄວາມສອດຄ່ອງຢ່າງເຂັ້ມງວດກັບ Fortran 95, Fortran 2003 ແລະ
Fortran 2008 ມາດຕະຖານ, ຕາມລໍາດັບ; ຂໍ້ຜິດພາດແມ່ນໃຫ້ສໍາລັບສ່ວນຂະຫຍາຍທັງຫມົດນອກເຫນືອຈາກ
ມາດ​ຕະ​ຖານ​ພາ​ສາ​ທີ່​ກ່ຽວ​ຂ້ອງ​, ແລະ​ຄໍາ​ເຕືອນ​ແມ່ນ​ໄດ້​ຮັບ​ສໍາ​ລັບ​ການ Fortran 77 ລັກ​ສະ​ນະ​ທີ່​
ໄດ້ຖືກອະນຸຍາດແຕ່ລ້າສະໄຫມໃນມາດຕະຖານຕໍ່ມາ. -std=f2008ts ອະນຸຍາດໃຫ້ Fortran 2008
ມາດຕະຖານລວມທັງການເພີ່ມເຕີມຂອງຂໍ້ກໍານົດດ້ານວິຊາການ (TS) 29113 ຕໍ່ໄປ
ຄວາມ​ສາ​ມາດ​ເຮັດ​ວຽກ​ຮ່ວມ​ຂອງ Fortran ກັບ C.

ເປີດນໍາໃຊ້ ແລະ ປັບ ການປຸງແຕ່ງກ່ອນ
ຕົວເລືອກທີ່ກ່ຽວຂ້ອງກັບຕົວປະມວນຜົນກ່ອນ. ເບິ່ງພາກ ການຜະລິດກ່ອນ ແລະ ມີເງື່ອນໄຂ ການລວບລວມ ສໍາລັບການ
ຂໍ້​ມູນ​ລະ​ອຽດ​ເພີ່ມ​ເຕີມ​ກ່ຽວ​ກັບ preprocessing ໃນ​ gfortran.

-cpp
-nocpp
ເປີດໃຊ້ການປະມວນຜົນກ່ອນ. preprocessor ແມ່ນ invoked ອັດຕະໂນມັດຖ້າຫາກວ່າການຂະຫຍາຍໄຟລ໌
is .fpp, .FPP, .F, .FOR, .FTN, .F90, .F95, .F03 or .F08. ໃຊ້ຕົວເລືອກນີ້ເພື່ອດ້ວຍຕົນເອງ
ເປີດໃຊ້ການປະມວນຜົນກ່ອນຂອງໄຟລ໌ Fortran ປະເພດໃດນຶ່ງ.

ເພື່ອປິດການປະມວນຜົນກ່ອນໄຟລ໌ທີ່ມີສ່ວນຂະຫຍາຍທີ່ລະບຸໄວ້ຂ້າງເທິງ, ໃຫ້ໃຊ້ປຸ່ມ
ຮູບ​ແບບ​ທາງ​ລົບ​: -nocpp.

ໂປເຊດເຊີ preprocessor ແມ່ນດໍາເນີນການໃນຮູບແບບພື້ນເມືອງ. ຂໍ້​ຈໍາ​ກັດ​ໃດໆ​ຂອງ​ຮູບ​ແບບ​ໄຟລ​໌​,
ໂດຍ​ສະ​ເພາະ​ແມ່ນ​ຂໍ້​ຈໍາ​ກັດ​ກ່ຽວ​ກັບ​ຄວາມ​ຍາວ​ຂອງ​ເສັ້ນ​, ນໍາ​ໃຊ້​ສໍາ​ລັບ​ການ​ຜະ​ລິດ​ຕະ​ພັນ​ກ່ອນ​ການ​ຜະ​ລິດ​ເຊັ່ນ​ດຽວ​ກັນ​, ສະ​ນັ້ນ​ມັນ​
ອາດຈະແນະນໍາໃຫ້ໃຊ້ -ffree-line-length-none or -ffixed-line-length-none
ຕົວເລືອກ

-dM ແທນທີ່ຈະເປັນຜົນຜະລິດປົກກະຕິ, ສ້າງບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງ '#define' ສໍາລັບທັງຫມົດ.
macros ຖືກກໍານົດໃນລະຫວ່າງການດໍາເນີນການຂອງ preprocessor, ລວມທັງ macro ທີ່ກໍານົດໄວ້ລ່ວງຫນ້າ.
ນີ້ເຮັດໃຫ້ທ່ານມີວິທີການຊອກຫາສິ່ງທີ່ຖືກກໍານົດໄວ້ລ່ວງຫນ້າໃນສະບັບຂອງທ່ານ
ໂປເຊດເຊີກ່ອນ. ສົມມຸດວ່າທ່ານບໍ່ມີໄຟລ໌ foo.f90, ຄໍາສັ່ງ

ແຕະ foo.f90; gfortran -cpp -E -dM foo.f90

ຈະສະແດງ macro ທີ່ກໍານົດໄວ້ກ່ອນທັງຫມົດ.

-dD ຄື -dM ຍົກເວັ້ນໃນສອງດ້ານ: ມັນບໍ່ໄດ້ລວມເອົາ macro ທີ່ກໍານົດໄວ້ກ່ອນ, ແລະມັນ
ຜົນໄດ້ຮັບທັງຄໍາສັ່ງ "#define" ແລະຜົນຂອງການປຸງແຕ່ງກ່ອນ. ທັງ​ສອງ​ປະ​ເພດ​ຂອງ​
ຜົນຜະລິດໄປຫາໄຟລ໌ຜົນຜະລິດມາດຕະຖານ.

-dN ຄື -dD, ແຕ່ປ່ອຍພຽງແຕ່ຊື່ມະຫາພາກ, ບໍ່ແມ່ນການຂະຫຍາຍຂອງມັນ.

-dU ຄື dD ຍົກ​ເວັ້ນ​ແຕ່​ວ່າ​ພຽງ​ແຕ່​ມະ​ໂຄ​ທີ່​ໄດ້​ຮັບ​ການ​ຂະ​ຫຍາຍ​, ຫຼື​ການ​ກໍາ​ນົດ​ຂອງ​ການ​ທົດ​ສອບ​ໃນ​
preprocessor ຄໍາສັ່ງ, ແມ່ນຜົນຜະລິດ; ຜົນຜະລິດແມ່ນຊັກຊ້າຈົນກ່ວາການນໍາໃຊ້ຫຼືການທົດສອບຂອງ
ມະຫາພາກ; ແລະຄໍາສັ່ງ '#undef' ຍັງເປັນຜົນຜະລິດສໍາລັບ macros ທີ່ທົດສອບແຕ່ບໍ່ໄດ້ກໍານົດຢູ່ທີ່
ເວ​ລາ.

-dI ອອກຄໍາສັ່ງ '#include' ນອກເຫນືອຈາກຜົນຂອງການປຸງແຕ່ງກ່ອນ.

-fworking-directory
ເປີດໃຊ້ການສ້າງຕົວໝາຍແຖວໃນຜົນອອກຂອງໂປເຊດເຊີ preprocessor ທີ່ຈະປ່ອຍໃຫ້ compiler ໄດ້
ຮູ້ຈັກໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນໃນເວລາຂອງການປຸງແຕ່ງກ່ອນ. ໃນເວລາທີ່ທາງເລືອກນີ້ແມ່ນ
ເປີດໃຊ້ງານແລ້ວ, ຕົວປະມວນຜົນກ່ອນຈະປ່ອຍອອກມາ, ຫຼັງຈາກເຄື່ອງໝາຍແຖວເບື້ອງຕົ້ນ, ເປັນເຄື່ອງໝາຍແຖວທີສອງ
ກັບໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຕິດຕາມດ້ວຍສອງເຄື່ອງຊ້ອນ. GCC ຈະໃຊ້ອັນນີ້
ໄດເລກະທໍລີ, ເມື່ອມັນມີຢູ່ໃນວັດສະດຸປ້ອນທີ່ປຸງແຕ່ງກ່ອນ, ເປັນໄດເລກະທໍລີທີ່ປ່ອຍອອກມາ
ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຢູ່ໃນບາງຮູບແບບຂໍ້ມູນການດີບັກ. ທາງເລືອກນີ້ແມ່ນ
ເປີດໃຊ້ implicitly ຖ້າຂໍ້ມູນ debugging ຖືກເປີດໃຊ້, ແຕ່ນີ້ສາມາດຖືກຍັບຍັ້ງໄດ້
ແບບຟອມທີ່ຖືກປະຕິເສດ -fno-working-directoryທີ່ຢູ່ ຖ້າຫາກວ່າ -P ທຸງມີຢູ່ໃນຄໍາສັ່ງ
ເສັ້ນ, ທາງເລືອກນີ້ບໍ່ມີຜົນ, ເພາະວ່າບໍ່ມີຄໍາສັ່ງ "#line" ຖືກປ່ອຍອອກມາຢ່າງໃດກໍ່ຕາມ.

-idirafter dir
ຄົ້ນຫາ dir ສໍາ​ລັບ​ການ​ລວມ​ໄຟລ​໌​, ແຕ່​ເຮັດ​ມັນ​ຫຼັງ​ຈາກ​ບັນ​ຊີ​ລາຍ​ການ​ທັງ​ຫມົດ​ທີ່​ລະ​ບຸ​ໄວ້​ກັບ​ -I ແລະ
ໄດເລກະທໍລີລະບົບມາດຕະຖານໝົດແລ້ວ. dir ຖືກປະຕິບັດເປັນລະບົບ
ປະ​ກອບ​ມີ​ລະ​ບົບ​. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຫຼັງຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍ
sysroot ຄໍານໍາຫນ້າ; ເບິ່ງ --sysroot ແລະ -isysroot.

-Imultilib dir
ການນໍາໃຊ້ dir ເປັນໄດເລກະທໍລີຍ່ອຍຂອງໄດເລກະທໍລີທີ່ມີສ່ວນຫົວ C++ ສະເພາະເປົ້າໝາຍ.

- ຄໍາ​ນິ​ຍາມ​ ຄຳ ນຳ ໜ້າ
ລະບຸວ່າ ຄຳ ນຳ ໜ້າ ເປັນຄໍານໍາຫນ້າສໍາລັບການຕໍ່ມາ -iwithprefix ທາງເລືອກ. ຖ້າ ຄຳ ນຳ ໜ້າ
ເປັນຕົວແທນຂອງໄດເລກະທໍລີ, ທ່ານຄວນປະກອບມີ '/' ສຸດທ້າຍ.

-isysroot dir
ທາງເລືອກນີ້ແມ່ນຄ້າຍຄື --sysroot ທາງເລືອກ, ແຕ່ໃຊ້ກັບໄຟລ໌ສ່ວນຫົວເທົ່ານັ້ນ. ເບິ່ງ
--sysroot ທາງ​ເລືອກ​ສໍາ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ​.

-iquote dir
ຄົ້ນຫາ dir ພຽງແຕ່ສໍາລັບໄຟລ໌ header ທີ່ຮ້ອງຂໍດ້ວຍ "#include "file"; ພວກ​ເຂົ້າ​ບໍ່​ແມ່ນ
ຄົ້ນຫາສໍາລັບ "#include ", ກ່ອນທຸກໄດເລກະທໍລີທີ່ລະບຸໂດຍ -I ແລະກ່ອນ
ໄດເລກະທໍລີລະບົບມາດຕະຖານ. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍ
sysroot ຄໍານໍາຫນ້າ; ເບິ່ງ --sysroot ແລະ -isysroot.

- ລະບົບ dir
ຄົ້ນຫາ dir ສໍາລັບໄຟລ໌ header, ຫຼັງຈາກໄດເລກະທໍລີທັງຫມົດທີ່ລະບຸໂດຍ -I ແຕ່ກ່ອນ
ໄດເລກະທໍລີລະບົບມາດຕະຖານ. ໝາຍມັນເປັນລະບົບລະບົບ, ເພື່ອໃຫ້ມັນຄືກັນ
ການປິ່ນປົວພິເສດທີ່ຖືກນໍາໃຊ້ກັບລະບົບມາດຕະຖານ. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ
"=", ຫຼັງຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍຄໍານໍາຫນ້າ sysroot; ເບິ່ງ --sysroot ແລະ -isysroot.

-nostdinc
ຢ່າຄົ້ນຫາໄດເລກະທໍລີລະບົບມາດຕະຖານສໍາລັບໄຟລ໌ສ່ວນຫົວ. ພຽງແຕ່ໄດເລກະທໍລີ
ທ່ານ​ໄດ້​ລະ​ບຸ​ໄວ້​ກັບ​ -I ທາງເລືອກ (ແລະໄດເລກະທໍລີຂອງໄຟລ໌ປະຈຸບັນ, ຖ້າ
ທີ່ເຫມາະສົມ) ຖືກຄົ້ນຫາ.

-undef
ຢ່າກຳນົດມາໂຄຣສະເພາະລະບົບ ຫຼື GCC ສະເພາະໃດໆລ່ວງໜ້າ. ມາດຕະຖານທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
ມະຫາພາກຍັງຄົງຖືກກໍານົດ.

-Aຄາດຄະເນ=ຄໍາຕອບ
ເຮັດການຢືນຢັນກັບ predicate ໄດ້ ຄາດຄະເນ ແລະຕອບ ຄໍາຕອບ. ແບບຟອມນີ້ແມ່ນ
ຕ້ອງການຮູບແບບເກົ່າ -A predicate (ຄໍາຕອບ), ເຊິ່ງຍັງສະຫນັບສະຫນູນ, ເພາະວ່າມັນ
ບໍ່ໄດ້ໃຊ້ຕົວອັກສອນພິເສດຂອງແກະ.

-HAS-ຄາດຄະເນ=ຄໍາຕອບ
ຍົກເລີກການຢືນຢັນກັບ predicate ຄາດຄະເນ ແລະຕອບ ຄໍາຕອບ.

-C ຢ່າປະຖິ້ມຄໍາເຫັນ. ຄໍາເຫັນທັງຫມົດຖືກສົ່ງຜ່ານໄປຫາໄຟລ໌ຜົນຜະລິດ, ຍົກເວັ້ນ
ສໍາ​ລັບ​ຄໍາ​ຄິດ​ເຫັນ​ໃນ​ຄໍາ​ແນະ​ນໍາ​ການ​ປຸງ​ແຕ່ງ​, ທີ່​ຖືກ​ລົບ​ພ້ອມ​ກັບ​ຄໍາ​ແນະ​ນໍາ​.

ທ່ານຄວນກຽມພ້ອມສໍາລັບຜົນຂ້າງຄຽງໃນເວລາທີ່ໃຊ້ -C; ມັນເຮັດໃຫ້ preprocessor ໄດ້
ປະຕິບັດຄໍາຄິດເຫັນເປັນ token ໃນສິດທິຂອງຕົນເອງ. ຕົວຢ່າງ, ຄໍາເຫັນທີ່ປາກົດຢູ່
ການເລີ່ມຕົ້ນຂອງສິ່ງທີ່ຈະເປັນເສັ້ນຄໍາສັ່ງມີຜົນກະທົບຂອງການປ່ຽນເສັ້ນນັ້ນເປັນ
ແຖວແຫຼ່ງທໍາມະດາ, ນັບຕັ້ງແຕ່ token ທໍາອິດຢູ່ໃນເສັ້ນບໍ່ແມ່ນ '#' ອີກຕໍ່ໄປ.

ຄໍາເຕືອນ: ປະຈຸບັນນີ້ຈັດການກັບຄໍາເຫັນແບບ C-Style ເທົ່ານັ້ນ. preprocessor ຍັງບໍ່ທັນໄດ້
ຮັບຮູ້ຄໍາເຫັນແບບ Fortran.

-CC ຢ່າປະຖິ້ມຄໍາເຫັນ, ລວມທັງໃນລະຫວ່າງການຂະຫຍາຍມະຫາພາກ. ນີ້ແມ່ນຄ້າຍຄື -C, ຍົກເວັ້ນ
ຄໍາຄິດຄໍາເຫັນທີ່ມີຢູ່ໃນ macro ຍັງຖືກສົ່ງຜ່ານໄປຫາໄຟລ໌ຜົນຜະລິດທີ່
ມະຫາພາກໄດ້ຖືກຂະຫຍາຍ.

ນອກ​ເຫນືອ​ໄປ​ຈາກ​ຜົນ​ກະ​ທົບ​ຂ້າງ​ຄຽງ​ຂອງ​ -C ທາງເລືອກ, ໄດ້ -CC ທາງເລືອກເຮັດໃຫ້ C++-style ທັງໝົດ
ຄຳເຫັນພາຍໃນມະຫາພາກທີ່ຈະປ່ຽນເປັນຄຳເຫັນແບບ C. ນີ້ແມ່ນເພື່ອປ້ອງກັນບໍ່ໃຫ້ຕໍ່ມາ
ການນໍາໃຊ້ມະຫາພາກຈາກການສະແດງຄວາມຄິດເຫັນທີ່ບໍ່ໄດ້ຕັ້ງໃຈອອກສ່ວນທີ່ເຫຼືອຂອງສາຍແຫຼ່ງ.
ໄດ້ -CC ທາງເລືອກແມ່ນຖືກນໍາໃຊ້ໂດຍທົ່ວໄປເພື່ອສະຫນັບສະຫນູນຄໍາເຫັນ lint.

ຄໍາເຕືອນ: ປະຈຸບັນນີ້ຈັດການກັບຄໍາເຫັນ C- ແລະ C++-Style ເທົ່ານັ້ນ. preprocessor ເຮັດ
ຍັງບໍ່ທັນຮັບຮູ້ຄໍາເຫັນແບບ Fortran.

-Dຊື່
ກໍາ​ນົດ​ຊື່​ເປັນ​ມະ​ຫາ​ພາກ​, ມີ​ຄໍາ​ນິ​ຍາມ 1​.

-Dຊື່=ຄໍານິຍາມ
ເນື້ອໃນຂອງ ຄໍານິຍາມ ແມ່ນ tokenized ແລະປຸງແຕ່ງເປັນຖ້າຫາກວ່າພວກເຂົາເຈົ້າປະກົດວ່າໃນລະຫວ່າງ
ການແປພາສາໄລຍະສາມໃນຄໍາສັ່ງ '#define'. ໂດຍສະເພາະ, ຄໍານິຍາມຈະ
ຈະຖືກຕັດໂດຍຕົວອັກສອນແຖວໃໝ່ທີ່ຝັງໄວ້.

ຖ້າທ່ານກໍາລັງເອີ້ນ preprocessor ຈາກໂຄງການ shell ຫຼື shell, ທ່ານອາດຈະຕ້ອງການ
ເພື່ອໃຊ້ syntax ວົງຢືມຂອງ shell ເພື່ອປົກປ້ອງຕົວອັກສອນເຊັ່ນຊ່ອງທີ່ມີ a
ຄວາມຫມາຍໃນ syntax ຂອງ shell.

ຖ້າທ່ານຕ້ອງການກໍານົດ macro ຄ້າຍຄືຟັງຊັນຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ຂຽນ argument ຂອງມັນ
ລາຍຊື່ທີ່ມີວົງເລັບອ້ອມຂ້າງກ່ອນເຄື່ອງໝາຍເທົ່າກັບ (ຖ້າມີ). ວົງເລັບແມ່ນ
ມີຄວາມຫມາຍສໍາລັບແກະສ່ວນໃຫຍ່, ດັ່ງນັ້ນທ່ານຈະຕ້ອງອ້າງເຖິງທາງເລືອກ. ດ້ວຍ sh ແລະ csh,
"-D'name(args...)=definition'" ເຮັດວຽກ.

-D ແລະ -U ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ຕາມ​ຄໍາ​ສັ່ງ​ທີ່​ເຂົາ​ເຈົ້າ​ໄດ້​ຮັບ​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​. ທັງໝົດ
ໄຟລ໌ imacros ແລະ -include ທາງເລືອກໄຟລ໌ຖືກປະມວນຜົນຫຼັງຈາກທາງເລືອກ -D ແລະ -U ທັງຫມົດ.

-H ພິມຊື່ຂອງແຕ່ລະ header file ທີ່ໃຊ້, ນອກຈາກກິດຈະກໍາປົກກະຕິອື່ນໆ. ແຕ່ລະ
ຊື່ຖືກຫຍໍ້ໜ້າເພື່ອສະແດງໃຫ້ເຫັນວ່າມັນເລິກປານໃດໃນ stack '#include'.

-P ຍັບຍັ້ງການສ້າງຕົວໝາຍແຖວໃນຜົນຜະລິດຈາກໂປຣເຊສເຊີກ່ອນ. ນີ້ອາດຈະເປັນ
ເປັນປະໂຫຍດໃນເວລາທີ່ແລ່ນ preprocessor ກ່ຽວກັບບາງສິ່ງບາງຢ່າງທີ່ບໍ່ແມ່ນລະຫັດ C, ແລະຈະຖືກສົ່ງໄປ
ກັບໂຄງການທີ່ອາດຈະສັບສົນໂດຍ linemarkers.

-Uຊື່
ຍົກເລີກຄໍານິຍາມທີ່ຜ່ານມາຂອງ ຊື່, ບໍ່ວ່າຈະສ້າງຂຶ້ນໃນຫຼືສະຫນອງໃຫ້ກັບ a -D ທາງເລືອກ.

ທາງເລືອກໃນການ to ຮ້ອງຂໍ or ສະກັດກັ້ນ ຄວາມຜິດພາດ ແລະ ຄໍາເຕືອນ
ຂໍ້ຜິດພາດແມ່ນຂໍ້ຄວາມວິນິດໄສທີ່ລາຍງານວ່າ GNU Fortran compiler ບໍ່ສາມາດລວບລວມໄດ້
ຊິ້ນສ່ວນທີ່ກ່ຽວຂ້ອງຂອງລະຫັດແຫຼ່ງ. compiler ຈະສືບຕໍ່ດໍາເນີນການໂຄງການໃນ
ຄວາມພະຍາຍາມທີ່ຈະລາຍງານຄວາມຜິດພາດຕື່ມອີກເພື່ອຊ່ວຍໃນການດີບັກ, ແຕ່ຈະບໍ່ຜະລິດການລວບລວມໃດໆ
ຜົນຜະລິດ.

ຄໍາເຕືອນແມ່ນຂໍ້ຄວາມວິນິດໄສທີ່ລາຍງານການກໍ່ສ້າງທີ່ບໍ່ໄດ້ປະກົດຕົວ
erroneous ແຕ່ມີຄວາມສ່ຽງຫຼືແນະນໍາວ່າມີແນວໂນ້ມທີ່ຈະເປັນ bug ໃນໂຄງການ.
ເວັ້ນເສຍແຕ່ວ່າ - ຄວາມ​ຜິດ​ພາດ​ ຖືກກໍານົດ, ພວກເຂົາບໍ່ໄດ້ປ້ອງກັນການລວບລວມໂຄງການ.

ທ່ານ​ສາ​ມາດ​ຮ້ອງ​ຂໍ​ການ​ເຕືອນ​ໄພ​ສະ​ເພາະ​ຈໍາ​ນວນ​ຫຼາຍ​ໂດຍ​ມີ​ທາງ​ເລືອກ​ໃນ​ການ​ເລີ່ມ​ຕົ້ນ​ -W, ຍົກ​ຕົວ​ຢ່າງ - Wimplicit
ເພື່ອຮ້ອງຂໍການເຕືອນໄພກ່ຽວກັບການປະກາດ implicit. ແຕ່ລະທາງເລືອກການເຕືອນໄພສະເພາະເຫຼົ່ານີ້ຍັງ
ມີຮູບແບບທາງລົບເລີ່ມຕົ້ນ -Wno- ປິດ​ການ​ເຕືອນ​ໄພ​; ຍົກ​ຕົວ​ຢ່າງ, -Wno - implicit.
ຄູ່ມືນີ້ສະແດງພຽງແຕ່ຫນຶ່ງໃນສອງຮູບແບບ, ອັນໃດກໍ່ຕາມບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນ.

ທາງເລືອກເຫຼົ່ານີ້ຄວບຄຸມຈໍານວນແລະປະເພດຂອງຄວາມຜິດພາດແລະຄໍາເຕືອນທີ່ຜະລິດໂດຍ GNU Fortran:

-fmax-errors=n
ຈໍາ​ກັດ​ຈໍາ​ນວນ​ສູງ​ສຸດ​ຂອງ​ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ເພື່ອ​ n, ໃນຈຸດທີ່ GNU Fortran ປະກັນຕົວ
ແທນທີ່ຈະພະຍາຍາມສືບຕໍ່ປະມວນຜົນລະຫັດແຫຼ່ງ. ຖ້າ n ແມ່ນ 0, ບໍ່ມີ
ຈໍາກັດຈໍານວນຂໍ້ຄວາມຄວາມຜິດພາດທີ່ຜະລິດ.

-fsyntax ເທົ່ານັ້ນ
ກວດເບິ່ງລະຫັດສໍາລັບ syntax ຜິດພາດ, ແຕ່ບໍ່ໄດ້ລວບລວມມັນ. ນີ້ຈະສ້າງ
ໄຟລ໌ໂມດູນສໍາລັບແຕ່ລະໂມດູນທີ່ມີຢູ່ໃນລະຫັດ, ແຕ່ບໍ່ມີໄຟລ໌ຜົນຜະລິດອື່ນ.

- pedantic
ອອກຄໍາເຕືອນສໍາລັບການນໍາໃຊ້ການຂະຫຍາຍໄປ Fortran 95. - pedantic ຍັງໃຊ້ໄດ້ກັບ
ພາສາ C ສ້າງບ່ອນທີ່ພວກມັນເກີດຂື້ນໃນໄຟລ໌ແຫຼ່ງ GNU Fortran, ເຊັ່ນການນໍາໃຊ້ \e
ໃນລັກສະນະຄົງທີ່ພາຍໃນຄໍາສັ່ງເຊັ່ນ "#include".

ໂປຣແກຣມ Fortran 95 ທີ່ຖືກຕ້ອງຄວນລວບລວມຢ່າງຖືກຕ້ອງໂດຍມີຫຼືບໍ່ມີທາງເລືອກນີ້.
ຢ່າງໃດກໍຕາມ, ໂດຍບໍ່ມີທາງເລືອກນີ້, ບາງສ່ວນຂະຫຍາຍ GNU ແລະລັກສະນະ Fortran ແບບດັ້ງເດີມ
ໄດ້ຮັບການສະຫນັບສະຫນູນເຊັ່ນດຽວກັນ. ດ້ວຍທາງເລືອກນີ້, ຈໍານວນຫຼາຍຂອງພວກເຂົາຖືກປະຕິເສດ.

ຜູ້ໃຊ້ບາງຄົນພະຍາຍາມໃຊ້ - pedantic ເພື່ອກວດກາເບິ່ງບັນດາໂຄງການເພື່ອຄວາມສອດຄ່ອງ. ທັນທີທີ່ເຂົາເຈົ້າຊອກຫາ
ວ່າມັນບໍ່ໄດ້ເຮັດສິ່ງທີ່ພວກເຂົາຕ້ອງການ --- ມັນພົບເຫັນບາງການປະຕິບັດທີ່ບໍ່ມີມາດຕະຖານ, ແຕ່
ບໍ່​ແມ່ນ​ທັງ​ຫມົດ. ຢ່າງໃດກໍຕາມ, ການປັບປຸງ GNU Fortran ໃນຂົງເຂດນີ້ແມ່ນຍິນດີຕ້ອນຮັບ.

ອັນນີ້ຄວນໃຊ້ຮ່ວມກັບ -std=f95, -std=f2003 or -std=f2008.

-pedantic ຜິດ​ພາດ​
ຄື - pedantic, ຍົກເວັ້ນວ່າຄວາມຜິດພາດແມ່ນຜະລິດແທນທີ່ຈະເປັນການເຕືອນ.

- ຝາ
ເປີດໃຊ້ຕົວເລືອກການເຕືອນໄພທີ່ໃຊ້ທົ່ວໄປກ່ຽວກັບການນໍາໃຊ້ທີ່ພວກເຮົາແນະນໍາໃຫ້ຫຼີກເວັ້ນການ
ແລະທີ່ພວກເຮົາເຊື່ອວ່າແມ່ນງ່າຍທີ່ຈະຫຼີກເວັ້ນ. ປະຈຸບັນນີ້ລວມມີ - ເວ​ລາ​ຊິ້ງ,
-Wampersand, - ການ​ປ່ຽນ​ແປງ​, - ແປກໃຈ, -Wc-binding-type, -Wintrinsics-std,
-Wno-tabs, -Wintrinsic-ເງົາ, -Wline-ຕັດ, -Wtarget-ຕະຫຼອດຊີວິດ, -Wreal-q-ຄົງທີ່
ແລະ - ບໍ່​ໄດ້​ນໍາ​ໃຊ້​.

- ເວ​ລາ​ຊິ້ງ
ເຕືອນກ່ຽວກັບການນາມແຝງທີ່ເປັນໄປໄດ້ຂອງການໂຕ້ຖຽງ dummy. ໂດຍສະເພາະ, ມັນເຕືອນຖ້າຫາກວ່າຄືກັນ
ການໂຕ້ຖຽງຕົວຈິງແມ່ນກ່ຽວຂ້ອງກັບການໂຕ້ຖຽງ dummy ກັບ "INTENT(IN)" ແລະ dummy
ໂຕ້ຖຽງກັບ "INTENT(OUT)" ໃນການໂທດ້ວຍການໂຕ້ຕອບທີ່ຊັດເຈນ.

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະກະຕຸ້ນເຕືອນ.

ການໂຕ້ຕອບ
ແຖບປົກກະຕິຍ່ອຍ(a,b)
integer, intent(in):: ກ
integer, intent(out):: ຂ
ສິ້ນສຸດການເຮັດປະຈຳຍ່ອຍ
ການ​ໂຕ້​ຕອບ​ທີ່​ສິ້ນ​ສຸດ​
ຈຳນວນ :: ກ

ແຖບການໂທ(a,a)

-Wampersand
ເຕືອນກ່ຽວກັບການຂາດ ampersand ໃນຄົງທີ່ຂອງຕົວອັກສອນ. ການເຕືອນໄພໄດ້ຖືກມອບໃຫ້
ກັບ -Wampersand, - pedantic, -std=f95, -std=f2003 ແລະ -std=f2008. ຫມາຍເຫດ: ບໍ່ມີ
ampersand ໃຫ້ຢູ່ໃນລັກສະນະຄົງທີ່ຢ່າງຕໍ່ເນື່ອງ, GNU Fortran ສົມມຸດວ່າສືບຕໍ່ຢູ່ທີ່
ຕົວອັກສອນທີ່ບໍ່ແມ່ນຄໍາຄິດເຫັນທໍາອິດ, ບໍ່ມີຊ່ອງຫວ່າງຫຼັງຈາກ ampersand ທີ່ລິເລີ່ມ
ການສືບຕໍ່.

- Warray-ຊົ່ວ​ຄາວ​
ເຕືອນກ່ຽວກັບ array ຊົ່ວຄາວທີ່ສ້າງຂຶ້ນໂດຍ compiler. ຂໍ້ມູນທີ່ສ້າງຂຶ້ນໂດຍ
ບາງຄັ້ງການເຕືອນໄພນີ້ແມ່ນເປັນປະໂຫຍດໃນການເພີ່ມປະສິດທິພາບ, ເພື່ອຫຼີກເວັ້ນການຊົ່ວຄາວດັ່ງກ່າວ.

-Wc-binding-type
ເຕືອນຖ້າຕົວແປອາດຈະບໍ່ແມ່ນ C interoperable. ໂດຍສະເພາະ, ເຕືອນຖ້າຫາກວ່າ
ຕົວແປໄດ້ຖືກປະກາດໂດຍໃຊ້ປະເພດພາຍໃນທີ່ມີປະເພດເລີ່ມຕົ້ນແທນທີ່ຈະໃຊ້
ຕົວກໍານົດການປະເພດທີ່ກໍານົດສໍາລັບ C interoperability ໃນ "ISO_C_Binding" ພາຍໃນ.
ໂມດູນ. ທາງເລືອກນີ້ແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາ.

- ການ​ຕັດ​ຕົວ​ອັກ​ສອນ​
ເຕືອນເມື່ອການກຳນົດຕົວອັກສອນຈະຕັດສາຍທີ່ກຳນົດໄວ້.

-Wline-ຕັດ
ເຕືອນເມື່ອເສັ້ນລະຫັດແຫຼ່ງຈະຖືກຕັດອອກ. ທາງເລືອກນີ້ແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາ.

- ການ​ປ່ຽນ​ແປງ​
ເຕືອນກ່ຽວກັບການປ່ຽນໃຈເຫລື້ອມໃສ implicit ທີ່ອາດຈະມີການປ່ຽນແປງມູນຄ່າຂອງສະແດງອອກ
ຫຼັງ​ຈາກ​ການ​ປ່ຽນ​ໃຈ​ເຫລື້ອມ​ໃສ​. ບົ່ງບອກໂດຍ - ຝາ.

-Wconversion-extra
ເຕືອນກ່ຽວກັບການແປງ implicit ລະຫວ່າງປະເພດແລະປະເພດຕ່າງໆ.

-Wextra
ເປີດໃຊ້ບາງຕົວເລືອກການເຕືອນສຳລັບການນຳໃຊ້ຄຸນສົມບັດພາສາທີ່ອາດຈະມີບັນຫາ.
ປະຈຸບັນນີ້ປະກອບມີ -Wcompare-ຈິງ ແລະ -Wunused-ພາລາມິເຕີ.

-Wimplicit-interface
ເຕືອນຖ້າຂະບວນການຖືກເອີ້ນໂດຍບໍ່ມີການໂຕ້ຕອບທີ່ຊັດເຈນ. ຫມາຍເຫດນີ້ພຽງແຕ່ການກວດສອບ
ມີການໂຕ້ຕອບທີ່ຈະແຈ້ງ. ມັນບໍ່ໄດ້ກວດເບິ່ງວ່າການໂຕ້ຕອບທີ່ປະກາດ
ມີຄວາມສອດຄ່ອງໃນທົ່ວບັນດາຫົວໜ່ວຍໂຄງການ.

- ຂັ້ນ​ຕອນ​ການ​ວິ​ທີ​ການ​
ເຕືອນຖ້າຫາກວ່າຂັ້ນຕອນການເອີ້ນວ່າທີ່ບໍ່ມີການໂຕ້ຕອບຢ່າງຊັດເຈນຫຼືບໍ່ມີ
ປະກາດວ່າເປັນ "ພາຍນອກ".

-Wintrinsics-std
ເຕືອນຖ້າ gfortran ພົບເຫັນຂະບວນການທີ່ມີຊື່ຄ້າຍຄື intrinsic ບໍ່ມີຢູ່ໃນ
ມາດຕະຖານທີ່ເລືອກໃນປັດຈຸບັນ (ມີ -std) ແລະປະຕິບັດມັນເປັນຂັ້ນຕອນ "ພາຍນອກ" ເພາະວ່າ
ນີ້. - ການ​ຫຼຸດ​ລົງ​ພາຍ​ໃນ​ ສາມາດຖືກນໍາໃຊ້ເພື່ອບໍ່ເຄີຍກະຕຸ້ນພຶດຕິກໍານີ້ແລະສະເຫມີເຊື່ອມຕໍ່
ກັບພາຍໃນໂດຍບໍ່ຄໍານຶງເຖິງມາດຕະຖານທີ່ເລືອກ.

-Wreal-q-ຄົງທີ່
ຜະລິດຄຳເຕືອນຖ້າຕົວໜັງສືຄົງທີ່ທີ່ມີຕົວໜັງສື "q".

- ແປກໃຈ
ຜະລິດຄໍາເຕືອນເມື່ອໂຄງສ້າງລະຫັດ "ສົງໃສ" ຖືກພົບ. ໃນຂະນະທີ່
ທາງດ້ານເຕັກນິກຕາມກົດໝາຍເຫຼົ່ານີ້ປົກກະຕິແລ້ວຊີ້ໃຫ້ເຫັນວ່າມີຄວາມຜິດພາດເກີດຂຶ້ນ.

ໃນປັດຈຸບັນນີ້ເຮັດໃຫ້ເກີດການເຕືອນໄພພາຍໃຕ້ສະຖານະການດັ່ງຕໍ່ໄປນີ້:

· ໂຄງສ້າງ SELECT INTEGER ມີກໍລະນີທີ່ບໍ່ສາມາດຖືກຈັບຄູ່ໄດ້ຕາມທີ່ຕ່ຳກວ່າ
ຄ່າແມ່ນໃຫຍ່ກວ່າມູນຄ່າເທິງຂອງມັນ.

· ໂຄງສ້າງ SELECT LOGICAL ມີສາມກໍລະນີ.

· A Transfer ລະບຸແຫຼ່ງທີ່ສັ້ນກວ່າປາຍທາງ.

·ປະເພດຂອງຜົນຂອງຟັງຊັນຖືກປະກາດຫຼາຍກວ່າຫນຶ່ງຄັ້ງທີ່ມີປະເພດດຽວກັນ. ຖ້າ
- pedantic ຫຼືຮູບແບບການປະຕິບັດຕາມມາດຕະຖານຖືກເປີດໃຊ້, ນີ້ແມ່ນຄວາມຜິດພາດ.

· ຕົວແປ "ລັກສະນະ" ຖືກປະກາດດ້ວຍຄວາມຍາວລົບ.

-Wtabs
ໂດຍຄ່າເລີ່ມຕົ້ນ, ແຖບຖືກຍອມຮັບເປັນຊ່ອງຫວ່າງ, ແຕ່ແຖບບໍ່ແມ່ນສະມາຊິກຂອງ Fortran
ຊຸດຕົວອັກສອນ. ສໍາລັບແຖວຕໍ່ເນື່ອງ, ແຖບທີ່ຕິດຕາມດ້ວຍຕົວເລກລະຫວ່າງ 1 ແລະ 9 ແມ່ນ
ສະຫນັບສະຫນູນ. -Wno-tabs ຈະເຮັດໃຫ້ມີການເຕືອນໄພ ຖ້າພົບແຖບໃດນຶ່ງ. ຫມາຍ​ເຫດ​,
-Wno-tabs ແມ່ນການເຄື່ອນໄຫວສໍາລັບ - pedantic, -std=f95, -std=f2003, -std=f2008 ແລະ - ຝາ.

- Wunderflow
ຜະລິດຄໍາເຕືອນເມື່ອພົບການສະແດງອອກຄົງທີ່ຂອງຕົວເລກ, ເຊິ່ງຜົນໄດ້ຮັບ
UNDERFLOW ໃນລະຫວ່າງການລວບລວມ.

-Wintrinsic-ເງົາ
ເຕືອນຖ້າຫາກວ່າຂະບວນການກໍານົດໂດຍຜູ້ໃຊ້ຫຼືຂະບວນການໂມດູນມີຊື່ດຽວກັນເປັນ
ພາຍໃນ; ໃນກໍລະນີນີ້, ການໂຕ້ຕອບທີ່ຊັດເຈນຫຼື "ພາຍນອກ" ຫຼື "INTRINSIC"
ການປະກາດອາດຈະຈໍາເປັນຕ້ອງໄດ້ຮັບການໂທຕໍ່ມາແກ້ໄຂຕາມທີ່ຕ້ອງການ
ພາຍໃນ / ຂັ້ນຕອນ. ທາງເລືອກນີ້ແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາ.

-Wunused-dummy-ການໂຕ້ຖຽງ
ເຕືອນກ່ຽວກັບການໂຕ້ຖຽງ dummy ທີ່ບໍ່ໄດ້ໃຊ້. ທາງເລືອກນີ້ແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາ.

-Wunused-ພາລາມິເຕີ
ກົງ​ກັນ​ຂ້າມ​ກັບ gccຄວາມ​ຫມາຍ​ຂອງ -Wunused-ພາລາມິເຕີ, gfortranການ​ປະ​ຕິ​ບັດ​ຂອງ​ນີ້​
ທາງເລືອກບໍ່ໄດ້ເຕືອນກ່ຽວກັບການໂຕ້ຖຽງ dummy ທີ່ບໍ່ໄດ້ໃຊ້ (ເບິ່ງ -Wunused-dummy-ການໂຕ້ຖຽງ), ແຕ່ວ່າ
ກ່ຽວກັບຄ່າ "PARAMETER" ທີ່ບໍ່ໄດ້ໃຊ້. -Wunused-ພາລາມິເຕີ ບໍ່ໄດ້ລວມຢູ່ໃນ - ຝາ ແຕ່ແມ່ນ
ບົ່ງບອກໂດຍ - ຝາ -Wextra.

-Walign-commons
ໂດຍຕົວຢ່າງ, gfortran ເຕືອນກ່ຽວກັບໂອກາດໃດໆຂອງຕົວແປທີ່ຖືກ padded ສໍາລັບທີ່ເຫມາະສົມ
ການຈັດວາງພາຍໃນບລັອກ "COMMON". ການເຕືອນໄພນີ້ສາມາດປິດໄດ້ໂດຍຜ່ານ
-Wno-align-commons. ເບິ່ງຕື່ມ -falign-ທົ່ວໄປ.

- ການ​ລົບ​ລ້າງ Wfunction​
ເຕືອນຖ້າຫາກວ່າການໂທຫາການທໍາງານໃດໆຖືກລົບລ້າງໂດຍການເພີ່ມປະສິດທິພາບທີ່ເປີດໃຊ້ງານ
-ffrontend-optimize ທາງເລືອກ.

-Wrealloc-lhs
ເຕືອນໃນເວລາທີ່ compiler ອາດຈະໃສ່ລະຫັດເພື່ອການຈັດສັນຫຼືການຈັດສັນ
array ທີ່ສາມາດຈັດສັນໄດ້ຂອງປະເພດ intrinsic ໃນການມອບຫມາຍພາຍໃນ. ໃນ​ວົງ​ການ​ຮ້ອນ​,
ຄຸນສົມບັດການຈັດສັນ Fortran 2003 ອາດຈະຫຼຸດລົງປະສິດທິພາບ. ຖ້າ array ແມ່ນ
ການຈັດສັນທີ່ມີຮູບຮ່າງທີ່ຖືກຕ້ອງແລ້ວ, ພິຈາລະນານໍາໃຊ້ array-spec ທັງຫມົດ array
(ເຊັ່ນ "(:,:,:)") ສໍາລັບຕົວແປຢູ່ເບື້ອງຊ້າຍມືເພື່ອປ້ອງກັນການຈັດສັນ.
ກວດ. ໃຫ້ສັງເກດວ່າໃນບາງກໍລະນີການເຕືອນໄພແມ່ນສະແດງໃຫ້ເຫັນ, ເຖິງແມ່ນວ່າ compiler ຈະ
ປັບປຸງການຈັດສັນການກວດສອບທັນທີ. ສໍາລັບຕົວຢ່າງ, ໃນເວລາທີ່ເບື້ອງຂວາມືປະກອບດ້ວຍ
ຕົວແປດຽວກັນຄູນດ້ວຍ scalar. ເບິ່ງນຳ -frealloc-lhs.

-Wrealloc-lhs-ທັງໝົດ
ເຕືອນເມື່ອ compiler ໃສ່ລະຫັດເພື່ອການຈັດສັນ ຫຼືການຈັດສັນອັນ
allocatable variable; ນີ້ຮວມເຖິງການຄິດໄລ່ ແລະປະເພດທີ່ໄດ້ມາ.

-Wcompare-ຈິງ
ເຕືອນໃນເວລາທີ່ປຽບທຽບປະເພດທີ່ແທ້ຈິງຫຼືສະລັບສັບຊ້ອນສໍາລັບຄວາມສະເຫມີພາບຫຼືຄວາມບໍ່ສະເຫມີພາບ. ທາງເລືອກນີ້ແມ່ນ
ບົ່ງບອກໂດຍ -Wextra.

-Wtarget-ຕະຫຼອດຊີວິດ
ເຕືອນຖ້າຕົວຊີ້ໃນການມອບໝາຍຕົວຊີ້ອາດຈະຍາວກວ່າເປົ້າໝາຍຂອງມັນ. ນີ້
ທາງເລືອກແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາ.

- ຄວາມ​ຜິດ​ພາດ​
ປ່ຽນຄຳເຕືອນທັງໝົດໃຫ້ເປັນຄວາມຜິດພາດ.

ບາງສ່ວນຂອງເຫຼົ່ານີ້ບໍ່ມີຜົນກະທົບໃນເວລາທີ່ລວບລວມບັນດາໂຄງການທີ່ຂຽນໃນ Fortran.

ທາງເລືອກໃນການ ສໍາລັບການ debugging ຂອງ​ທ່ານ ໂຄງການ or GNU ຟໍຣັນ
GNU Fortran ມີ​ທາງ​ເລືອກ​ພິ​ເສດ​ຕ່າງໆ​ທີ່​ຖືກ​ນໍາ​ໃຊ້​ສໍາ​ລັບ​ການ debugging ໂຄງ​ການ​ຂອງ​ທ່ານ​ຫຼື​
GNU Fortran compiler.

-fdump-fortran-ຕົ້ນສະບັບ
ເອົາໄມ້ຢືນຕົ້ນ parse ພາຍໃນອອກຫຼັງຈາກແປໂຄງການແຫຼ່ງເຂົ້າໄປໃນພາຍໃນ
ການເປັນຕົວແທນ. ພຽງແຕ່ເປັນປະໂຫຍດແທ້ໆສໍາລັບການ debugging GNU Fortran compiler ຕົວຂອງມັນເອງ.

-fdump-fortran-optimized
ສົ່ງອອກຕົ້ນໄມ້ແຍກຫຼັງຈາກການເພີ່ມປະສິດທິພາບດ້ານຫນ້າ. ພຽງແຕ່ເປັນປະໂຫຍດແທ້ໆສໍາລັບການ debugging
GNU Fortran compiler ຕົວຂອງມັນເອງ.

-fdump-parse-tree
ເອົາໄມ້ຢືນຕົ້ນ parse ພາຍໃນອອກຫຼັງຈາກແປໂຄງການແຫຼ່ງເຂົ້າໄປໃນພາຍໃນ
ການເປັນຕົວແທນ. ພຽງແຕ່ເປັນປະໂຫຍດແທ້ໆສໍາລັບການ debugging GNU Fortran compiler ຕົວຂອງມັນເອງ.
ຕົວເລືອກນີ້ຖືກປະຕິເສດ; ໃຊ້ "-fdump-fortran-original" ແທນ.

-ffpe-trap=ບັນຊີລາຍຊື່
ລະບຸລາຍຊື່ຂອງດັກຂໍ້ຍົກເວັ້ນຈຸດລອຍເພື່ອເປີດໃຊ້ງານ. ໃນລະບົບສ່ວນໃຫຍ່, ຖ້າ ກ
ການຍົກເວັ້ນຈຸດທີ່ລອຍຕົວເກີດຂຶ້ນ ແລະໃສ່ກັບດັກສໍາລັບຂໍ້ຍົກເວັ້ນນັ້ນຖືກເປີດໃຊ້ງານ, SIGFPE
ສັນ​ຍານ​ຈະ​ໄດ້​ຮັບ​ການ​ສົ່ງ​ແລະ​ໂຄງ​ການ​ທີ່​ຖືກ​ເອົາ​ລູກ​ອອກ​, ການ​ຜະ​ລິດ​ໄຟລ​໌​ຫຼັກ​ທີ່​ເປັນ​ປະ​ໂຫຍດ​ສໍາ​ລັບ​ການ​
ການດີບັກ. ບັນຊີລາຍຊື່ ແມ່ນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ (ອາດຈະຫວ່າງເປົ່າ) ຕໍ່ໄປນີ້
ຂໍ້ຍົກເວັ້ນ: ທີ່ບໍ່ຖືກຕ້ອງ (ການດຳເນີນການຈຸດລອຍບໍ່ຖືກຕ້ອງ, ເຊັ່ນ "SQRT(-1.0)"), ສູນ
(ການ​ຫານ​ໂດຍ​ສູນ​)​, overflow (ລົ້ນໃນການເຮັດວຽກຈຸດລອຍ), underflow
(underflow ໃນ​ການ​ດໍາ​ເນີນ​ງານ​ຈຸດ​ທີ່​ເລື່ອນ​ໄດ້​)​, ບໍ່ຖືກຕ້ອງ (ການສູນເສຍຄວາມຊັດເຈນໃນລະຫວ່າງ
ການດໍາເນີນງານ), ແລະ ຜິດປົກກະຕິ (ການ​ປະ​ຕິ​ບັດ​ການ​ປະ​ຕິ​ບັດ​ໃນ​ຄ່າ​ຜິດ​ປົກ​ກະ​ຕິ​)​. ຫ້າຄັ້ງທໍາອິດ
ຂໍ້ຍົກເວັ້ນກົງກັບຫ້າຂໍ້ຍົກເວັ້ນ IEEE 754, ໃນຂະນະທີ່ຂໍ້ຍົກເວັ້ນສຸດທ້າຍ (ຜິດປົກກະຕິ)
ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງມາດຕະຖານ IEEE 754 ແຕ່ມີຢູ່ໃນບາງສະຖາປັດຕະຍະກໍາທົ່ວໄປ
ເຊັ່ນ x86.

ສາມຂໍ້ຍົກເວັ້ນທໍາອິດ (ທີ່ບໍ່ຖືກຕ້ອງ, ສູນ, ແລະ overflow) ມັກຈະສະແດງເຖິງຄວາມຮ້າຍແຮງ
ຄວາມຜິດພາດ, ແລະເວັ້ນເສຍແຕ່ວ່າໂຄງການມີຂໍ້ກໍານົດສໍາລັບການຈັດການກັບຂໍ້ຍົກເວັ້ນເຫຼົ່ານີ້,
ການເປີດໃຊ້ໃສ່ກັບດັກສໍາລັບສາມຂໍ້ຍົກເວັ້ນນີ້ແມ່ນອາດຈະເປັນຄວາມຄິດທີ່ດີ.

ຈໍານວນຫຼາຍ, ຖ້າບໍ່ແມ່ນສ່ວນໃຫຍ່, ການດໍາເນີນງານຈຸດທີ່ເລື່ອນໄດ້ສູນເສຍຄວາມແມ່ນຍໍາຍ້ອນການຮອບ,
ແລະເພາະສະນັ້ນ "ffpe-trap=inexact" ມີແນວໂນ້ມທີ່ຈະບໍ່ຫນ້າສົນໃຈໃນການປະຕິບັດ.

ໂດຍຄ່າເລີ່ມຕົ້ນບໍ່ມີການເປີດໃຊ້ດັກຂໍ້ຍົກເວັ້ນ.

-fno-backtrace
ເມື່ອພົບຄວາມຜິດພາດ runtime ຮ້າຍແຮງ ຫຼືສັນຍານອັນຕະລາຍຖືກປ່ອຍອອກມາ
(ຄວາມ​ຜິດ​ພາດ​ການ​ແບ່ງ​ກຸ່ມ​, ຄໍາ​ສັ່ງ​ຜິດ​ກົດ​ຫມາຍ​, ຄວາມ​ຜິດ​ພາດ​ລົດ​ເມ​, ຂໍ້​ຍົກ​ເວັ້ນ​ຈຸດ​ທີ່​ເລື່ອນ​ໄດ້​, ແລະ​
ສັນຍານ POSIX ອື່ນໆທີ່ມີການປະຕິບັດ core), ຫ້ອງສະຫມຸດ Fortran runtime ພະຍາຍາມ
ສົ່ງຜົນຕອບແທນຂອງຄວາມຜິດພາດ. "-fno-backtrace" ປິດການຜະລິດ backtrace.
ທາງເລືອກນີ້ພຽງແຕ່ມີອິດທິພົນຕໍ່ການລວບລວມໂຄງການຕົ້ນຕໍ Fortran.

ທາງເລືອກໃນການ ສໍາລັບການ ລະບົບ ຄົ້ນຫາ
ຕົວເລືອກເຫຼົ່ານີ້ມີຜົນກະທົບແນວໃດ GNU Fortran ຄົ້ນຫາໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍ "INCLUDE"
ຄໍາສັ່ງແລະບ່ອນທີ່ມັນຊອກຫາໂມດູນທີ່ລວບລວມກ່ອນຫນ້ານີ້.

ມັນຍັງມີຜົນກະທົບຕໍ່ເສັ້ນທາງຄົ້ນຫາທີ່ໃຊ້ໂດຍ cpp ເມື່ອໃຊ້ເພື່ອປະມວນຜົນແຫຼ່ງ Fortran ກ່ອນ.

-Idir
ເຫຼົ່ານີ້ມີຜົນກະທົບຕໍ່ການຕີຄວາມຫມາຍຂອງຄໍາສັ່ງ "ລວມ" (ເຊັ່ນດຽວກັນກັບ "#include"
ຄໍາສັ່ງຂອງ cpp preprocessor).

ຍັງສັງເກດວ່າພຶດຕິກໍາທົ່ວໄປຂອງ -I ແລະ "ລວມ" ແມ່ນຂ້ອນຂ້າງຄືກັນກັບຂອງ
-I ດ້ວຍ "#include" ໃນ cpp preprocessor, ກ່ຽວກັບການຊອກຫາ header.gcc
ໄຟລ໌ ແລະສິ່ງອື່ນໆເຊັ່ນ.

ເສັ້ນທາງນີ້ຍັງຖືກນໍາໃຊ້ເພື່ອຄົ້ນຫາ mod ໄຟລ໌ເມື່ອໂມດູນທີ່ລວບລວມໄວ້ກ່ອນຫນ້ານີ້
ຕ້ອງການໂດຍຄໍາຖະແຫຼງ "USE".

-Jdir
ຕົວເລືອກນີ້ກໍານົດບ່ອນທີ່ຈະວາງ mod ໄຟລ໌ສໍາລັບໂມດູນລວບລວມ. ມັນຍັງຖືກເພີ່ມ
ໄປຫາບັນຊີລາຍຊື່ຂອງໄດເລກະທໍລີທີ່ຈະຄົ້ນຫາໂດຍຄໍາຖະແຫຼງ "USE".

ຄ່າເລີ່ມຕົ້ນແມ່ນໄດເລກະທໍລີປະຈຸບັນ.

-fintrinsic-modules-ເສັ້ນທາງ dir
ທາງ​ເລືອກ​ນີ້​ລະ​ບຸ​ທີ່​ຕັ້ງ​ຂອງ​ໂມ​ດູນ intrinsic ທາງ​ສ່ວນ​ຫນ້າ​ຂອງ​ການ​ສັງ​ລວມ​, ຖ້າ​ຫາກ​ວ່າ​ພວກ​ເຂົາ​ບໍ່​ແມ່ນ​
ໃນສະຖານທີ່ເລີ່ມຕົ້ນທີ່ຄາດໄວ້ໂດຍ compiler.

ອິດທິພົນ ໄດ້ ເຊື່ອມຕໍ່ ຂັ້ນ​ຕອນ
ຕົວເລືອກເຫຼົ່ານີ້ເຂົ້າມາຫຼິ້ນເມື່ອ compiler ເຊື່ອມຕໍ່ໄຟລ໌ວັດຖຸເຂົ້າໃນການປະຕິບັດ
ໄຟລ໌ຜົນຜະລິດ. ພວກມັນບໍ່ມີຄວາມຫມາຍຖ້າຜູ້ລວບລວມຂໍ້ມູນບໍ່ໄດ້ເຮັດຂັ້ນຕອນການເຊື່ອມໂຍງ.

-static-libgfortran
ກ່ຽວກັບລະບົບທີ່ສະຫນອງ libgfortran ເປັນຫ້ອງສະຫມຸດທີ່ແບ່ງປັນແລະສະຖິດ, ທາງເລືອກນີ້
ບັງຄັບໃຊ້ສະບັບ static. ຖ້າບໍ່ມີສະບັບພາສາທີ່ແບ່ງປັນ libgfortran ໄດ້ຖືກສ້າງຂຶ້ນ
ເມື່ອ compiler ໄດ້ຖືກກໍານົດ, ທາງເລືອກນີ້ບໍ່ມີຜົນ.

ອິດທິພົນ runtime ພຶດຕິກໍາ
ຕົວເລືອກເຫຼົ່ານີ້ມີຜົນກະທົບຕໍ່ພຶດຕິ ກຳ runtime ຂອງໂຄງການທີ່ລວບລວມດ້ວຍ GNU Fortran.

-fconvert=ການປ່ຽນແປງ
ລະບຸການເປັນຕົວແທນຂອງຂໍ້ມູນສໍາລັບໄຟລ໌ທີ່ບໍ່ມີຮູບແບບ. ຄ່າທີ່ຖືກຕ້ອງສໍາລັບການປ່ຽນໃຈເຫລື້ອມໃສ
ແມ່ນ: native, ຄ່າເລີ່ມຕົ້ນ; ແລກປ່ຽນປະສົບ, swap ລະຫວ່າງ big- ແລະ little-endian; endian ໃຫຍ່, ໃຊ້
big-endian ເປັນຕົວແທນສໍາລັບໄຟລ໌ທີ່ບໍ່ມີຮູບແບບ; ພຽງເລັກນ້ອຍ endian, ໃຊ້ little-endian
ການເປັນຕົວແທນຂອງໄຟລ໌ທີ່ບໍ່ມີຮູບແບບ.

ນີ້ ທາງເລືອກ ມີ an ຜົນກະທົບ ພຽງແຕ່ ໃນເວລາທີ່ ໃຫມ່ in ໄດ້ ຕົ້ນຕໍ ໂຄງການ. ໄດ້ "ແປງ" ຕົວລະບຸ
ແລະ ໄດ້ GFORTRAN_CONVERT_UNIT ສະພາບແວດລ້ອມ ຕົວແປ override ໄດ້ Default ລະບຸ by
-fconvert.

-frecord-marker=ຄວາມຍາວ
ລະບຸຄວາມຍາວຂອງເຄື່ອງໝາຍບັນທຶກສໍາລັບໄຟລ໌ທີ່ບໍ່ມີຮູບແບບ. ຄ່າທີ່ຖືກຕ້ອງສໍາລັບ ຄວາມຍາວ
ແມ່ນ 4 ແລະ 8. ຄ່າເລີ່ມຕົ້ນແມ່ນ 4. ນີ້ is ທີ່ແຕກຕ່າງກັນ ຈາກ ທີ່ຜ່ານມາ ສະບັບ of gfortran,
ເຊິ່ງລະບຸຄວາມຍາວຂອງເຄື່ອງໝາຍບັນທຶກເລີ່ມຕົ້ນຂອງ 8 ໃນລະບົບສ່ວນໃຫຍ່. ຖ້າທ່ານຕ້ອງການ
ອ່ານ ຫຼືຂຽນໄຟລ໌ທີ່ເຂົ້າກັນໄດ້ກັບລຸ້ນກ່ອນໜ້ານີ້ gfortran, ໃຊ້
-frecord-marker=8.

-fmax-subrecord-length=ຄວາມຍາວ
ລະບຸຄວາມຍາວສູງສຸດສໍາລັບບັນທຶກຍ່ອຍ. ຄ່າສູງສຸດທີ່ອະນຸຍາດສໍາລັບຄວາມຍາວແມ່ນ
2147483639, ຊຶ່ງເປັນຄ່າເລີ່ມຕົ້ນ. ພຽງແຕ່ເປັນປະໂຫຍດແທ້ໆສໍາລັບການນໍາໃຊ້ໂດຍ gfortran
ຊຸດກວດ.

-fsign-ສູນ
ເມື່ອເປີດໃຊ້ງານ, ຕົວເລກຈຸດລອຍຕົວຂອງຄ່າສູນທີ່ມີເຄື່ອງໝາຍບິດຖືກຂຽນໄວ້
ເປັນຕົວເລກລົບຢູ່ໃນຮູບແບບຜົນຜະລິດແລະຖືກປະຕິບັດເປັນລົບໃນ "SIGN"
ພາຍໃນ. -fno-sign-zero ບໍ່ໄດ້ພິມເຄື່ອງຫມາຍລົບຂອງຄ່າສູນ (ຫຼືຄ່າ
ມົນເປັນສູນສຳລັບ I/O) ແລະຖືວ່າສູນເປັນຕົວເລກບວກຢູ່ໃນຕົວເຄື່ອງ "SIGN"
ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບ Fortran 77. ຄ່າເລີ່ມຕົ້ນແມ່ນ -fsign-ສູນ.

ທາງເລືອກໃນການ ສໍາລັບການ ລະຫັດ ການຜະລິດ ອະນຸສັນຍາ
ຕົວເລືອກທີ່ບໍ່ຂຶ້ນກັບເຄື່ອງຈັກເຫຼົ່ານີ້ຄວບຄຸມສົນທິສັນຍາການໂຕ້ຕອບທີ່ໃຊ້ໃນລະຫັດ
ການຜະລິດ.

ສ່ວນໃຫຍ່ຂອງພວກເຂົາມີທັງຮູບແບບທາງບວກແລະທາງລົບ; ຮູບ​ແບບ​ທາງ​ລົບ​ຂອງ​ -ffoo ຈະ
-fno-foo. ໃນຕາຕະລາງຂ້າງລຸ່ມນີ້, ມີພຽງແຕ່ຫນຶ່ງໃນແບບຟອມທີ່ຖືກລະບຸໄວ້ --- ຮູບແບບທີ່ບໍ່ແມ່ນ
ຄ່າເລີ່ມຕົ້ນ. ທ່ານສາມາດຄິດອອກຮູບແບບອື່ນໂດຍການຖອນອອກ ບໍ່- ຫຼືເພີ່ມມັນ.

-fno ອັດ​ຕະ​ໂນ​ມັດ​
ປະຕິບັດຕໍ່ແຕ່ລະຫນ່ວຍງານໂຄງການ (ຍົກເວັ້ນສິ່ງທີ່ຫມາຍເປັນ RECURSIVE) ຄືກັບຄໍາຖະແຫຼງການ "SAVE".
ໄດ້ຖືກລະບຸໄວ້ສໍາລັບທຸກໆຕົວແປທ້ອງຖິ່ນແລະອາເຣທີ່ອ້າງອີງຢູ່ໃນມັນ. ບໍ່ມີຜົນກະທົບ
ຕັນທົ່ວໄປ. (ບາງຕົວສັງລວມ Fortran ໃຫ້ທາງເລືອກນີ້ພາຍໃຕ້ຊື່ -static or
- ຊ່ວຍ​ປະ​ຢັດ​.) ຄ່າເລີ່ມຕົ້ນ, ຊຶ່ງເປັນ - ອັດ​ຕະ​ໂນ​ມັດ​, ໃຊ້ stack ສໍາລັບຕົວແປທ້ອງຖິ່ນທີ່ນ້ອຍກວ່າ
ກ່ວາມູນຄ່າທີ່ໃຫ້ໂດຍ -fmax-stack-var-size. ໃຊ້ທາງເລືອກ - ບັງເອີນ ໃຊ້ບໍ່
ຄວາມຊົງຈໍາຄົງທີ່.

-ff2c
ສ້າງລະຫັດທີ່ອອກແບບມາເພື່ອເຂົ້າກັນໄດ້ກັບລະຫັດທີ່ສ້າງຂຶ້ນໂດຍ g77 ແລະ f2c.

ສົນທິສັນຍາການເອີ້ນໃຊ້ໂດຍ g77 (ດັ້ງ​ເດີມ​ປະ​ຕິ​ບັດ​ໃນ​ f2c) ຕ້ອງ​ການ​ຫນ້າ​ທີ່​
ທີ່ກັບຄືນປະເພດຄ່າເລີ່ມຕົ້ນ "REAL" ເພື່ອຕົວຈິງກັບຄືນປະເພດ C "ສອງ" ແລະຫນ້າທີ່
ທີ່ກັບຄືນປະເພດ "COMPLEX" ເພື່ອສົ່ງຄືນຄ່າຜ່ານ argument ພິເສດໃນການໂທ
ລໍາດັບທີ່ຊີ້ໄປຫາບ່ອນເກັບຄ່າກັບຄືນ. ພາຍໃຕ້ GNU ເລີ່ມຕົ້ນ
ການເອີ້ນສົນທິສັນຍາ, ຫນ້າທີ່ດັ່ງກ່າວພຽງແຕ່ສົ່ງຜົນໄດ້ຮັບຂອງພວກເຂົາຕາມທີ່ເຂົາເຈົ້າຕ້ອງການໃນ GNU
C---default "REAL" ຟັງຊັນສົ່ງຄືນຟັງຊັນ C type "float", ແລະ "COMPLEX" functions ກັບຄືນມາ.
ປະເພດ GNU C "ສະລັບສັບຊ້ອນ". ນອກຈາກນັ້ນ, ທາງເລືອກນີ້ຫມາຍເຖິງ -fsecond-underscore
ທາງເລືອກ, ເວັ້ນເສຍແຕ່ -fno-second-underscore ຖືກຮຽກຮ້ອງຢ່າງຈະແຈ້ງ.

ນີ້ບໍ່ມີຜົນຕໍ່ການຜະລິດລະຫັດທີ່ໂຕ້ຕອບກັບ libgfortran
ຫ້ອງສະຫມຸດ.

ລະມັດລະວັງ: ມັນບໍ່ແມ່ນຄວາມຄິດທີ່ດີທີ່ຈະປະສົມລະຫັດ Fortran ລວບລວມກັບ -ff2c ດ້ວຍລະຫັດ
ລວບລວມດ້ວຍຄ່າເລີ່ມຕົ້ນ -fno-f2c ເອີ້ນສົນທິສັນຍາເປັນ, ໂທຫາ "COMPLEX" ຫຼື
ຟັງຊັນ "REAL" ໃນຕອນຕົ້ນລະຫວ່າງພາກສ່ວນໂຄງການທີ່ຖືກລວບລວມດ້ວຍທີ່ແຕກຕ່າງກັນ
ສົນທິສັນຍາການເອີ້ນຈະທໍາລາຍໃນເວລາປະຕິບັດ.

ລະມັດລະວັງ: ນີ້ຈະທໍາລາຍລະຫັດທີ່ຜ່ານຫນ້າທີ່ພາຍໃນຂອງປະເພດມາດຕະຖານ "REAL"
ຫຼື "COMPLEX" ເປັນການໂຕ້ຖຽງຕົວຈິງ, ຍ້ອນວ່າການຈັດຕັ້ງປະຕິບັດຫ້ອງສະຫມຸດໃຊ້ -fno-f2c
ຮຽກ​ຮ້ອງ​ສົນ​ທິ​ສັນ​ຍາ​.

-fno-underscoring
ຢ່າຫັນປ່ຽນຊື່ຂອງນິຕິບຸກຄົນທີ່ລະບຸໄວ້ໃນໄຟລ໌ແຫຼ່ງ Fortran ໂດຍການຕໍ່ທ້າຍ
ຂີດກ້ອງໃຫ້ເຂົາເຈົ້າ.

ກັບ - ການ​ສະ​ຫນອງ​ທຶນ​ ມີຜົນບັງຄັບໃຊ້, GNU Fortran ຕື່ມໃສ່ຈຸດໜຶ່ງໃສ່ຊື່ພາຍນອກ
ທີ່ບໍ່ມີຂີດກ້ອງ. ນີ້ແມ່ນເຮັດເພື່ອຮັບປະກັນຄວາມເຂົ້າກັນໄດ້ກັບລະຫັດທີ່ຜະລິດໂດຍຈໍານວນຫຼາຍ
UNIX Fortran compilers.

ລະມັດລະວັງ: ພຶດຕິກໍາເລີ່ມຕົ້ນຂອງ GNU Fortran ບໍ່ເຂົ້າກັນໄດ້ກັບ f2c ແລະ g77, ກະລຸນາ
ການນໍາໃຊ້ -ff2c ທາງເລືອກຖ້າທ່ານຕ້ອງການໄຟລ໌ວັດຖຸທີ່ລວບລວມດ້ວຍ GNU Fortran
ເຂົ້າກັນໄດ້ກັບລະຫັດວັດຖຸທີ່ສ້າງຂຶ້ນດ້ວຍເຄື່ອງມືເຫຼົ່ານີ້.

ການ ນຳ ໃຊ້ -fno-underscoring ບໍ່ແນະນໍາເວັ້ນເສຍແຕ່ວ່າທ່ານກໍາລັງທົດລອງກັບບັນຫາ
ເຊັ່ນ: ການເຊື່ອມໂຍງຂອງ GNU Fortran ເຂົ້າໄປໃນສະພາບແວດລ້ອມຂອງລະບົບທີ່ມີຢູ່ແລ້ວ (vis-a-vis
ຫ້ອງສະຫມຸດທີ່ມີຢູ່, ເຄື່ອງມື, ແລະອື່ນໆ).

ຍົກຕົວຢ່າງ, ກັບ - ການ​ສະ​ຫນອງ​ທຶນ​, ແລະສົມມຸດວ່າຄ່າເລີ່ມຕົ້ນອື່ນໆເຊັ່ນ -fcase-ຕ່ໍາກວ່າ ແລະ
ວ່າ "j()" ແລະ "max_count()" ແມ່ນຫນ້າທີ່ພາຍນອກໃນຂະນະທີ່ "my_var" ແລະ "lvar" ແມ່ນ.
ຕົວແປທ້ອງຖິ່ນ, ຄໍາຖະແຫຼງເຊັ່ນ

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

ຖືກປະຕິບັດເປັນບາງສິ່ງບາງຢ່າງທີ່ຄ້າຍຄືກັນກັບ:

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

ກັບ -fno-underscoring, ຄໍາຖະແຫຼງດຽວກັນໄດ້ຖືກປະຕິບັດຄື:

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

ການ ນຳ ໃຊ້ -fno-underscoring ອະ​ນຸ​ຍາດ​ໃຫ້​ສະ​ເພາະ​ໂດຍ​ກົງ​ຂອງ​ຊື່​ທີ່​ກໍາ​ນົດ​ໂດຍ​ຜູ້​ໃຊ້​ໃນ​ຂະ​ນະ​ທີ່​
debugging ແລະໃນເວລາທີ່ interfacing ລະຫັດ GNU Fortran ກັບພາສາອື່ນໆ.

ໃຫ້ສັງເກດວ່າພຽງແຕ່ຍ້ອນວ່າຊື່ກົງກັນ ບໍ່ ຫມາຍຄວາມວ່າການໂຕ້ຕອບທີ່ປະຕິບັດໂດຍ
GNU Fortran ສໍາລັບຊື່ພາຍນອກກົງກັບການໂຕ້ຕອບທີ່ປະຕິບັດໂດຍຄົນອື່ນ
ພາສາສໍາລັບຊື່ດຽວກັນນັ້ນ. ນັ້ນແມ່ນ, ໄດ້ຮັບລະຫັດທີ່ຜະລິດໂດຍ GNU Fortran ເພື່ອເຊື່ອມຕໍ່ກັບ
ລະຫັດທີ່ຜະລິດໂດຍ compiler ອື່ນໂດຍໃຊ້ນີ້ຫຼືວິທີການອື່ນໆສາມາດເປັນພຽງແຕ່ a
ສ່ວນຂະຫນາດນ້ອຍຂອງການແກ້ໄຂໂດຍລວມ --- ການໄດ້ຮັບລະຫັດທີ່ສ້າງຂຶ້ນໂດຍທັງສອງ compilers ກັບ
ຕົກລົງກ່ຽວກັບບັນຫາອື່ນນອກຈາກການຕັ້ງຊື່ສາມາດຮຽກຮ້ອງໃຫ້ມີຄວາມພະຍາຍາມທີ່ສໍາຄັນ, ແລະ, ບໍ່ເຫມືອນກັບຊື່
ຄວາມບໍ່ເຫັນດີ, ການເຊື່ອມໂຍງປົກກະຕິບໍ່ສາມາດກວດພົບຄວາມບໍ່ເຫັນດີໃນຂົງເຂດອື່ນໆເຫຼົ່ານີ້.

ນອກຈາກນີ້, ສັງເກດວ່າມີ -fno-underscoring, ການຂາດການໃສ່ຈຸດຊ້ອນທ້າຍແນະນໍາ
ຄວາມເປັນໄປໄດ້ທີ່ແທ້ຈິງທີ່ຊື່ພາຍນອກກໍານົດໂດຍຜູ້ໃຊ້ຈະຂັດກັບຊື່
ໃນຫ້ອງສະຫມຸດລະບົບ, ເຊິ່ງສາມາດເຮັດໃຫ້ການຊອກຫາຂໍ້ບົກພ່ອງທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ, ອ້າງອີງຂ້ອນຂ້າງ
ຄວາມຫຍຸ້ງຍາກໃນບາງກໍລະນີ --- ພວກມັນອາດຈະເກີດຂື້ນໃນເວລາດໍາເນີນໂຄງການ, ແລະສະແດງໃຫ້ເຫັນພຽງແຕ່ເປັນ
ພຶດຕິກໍາ buggy ໃນເວລາແລ່ນ.

ໃນສະບັບໃນອະນາຄົດຂອງ GNU Fortran ພວກເຮົາຫວັງວ່າຈະປັບປຸງການຕັ້ງຊື່ແລະການເຊື່ອມໂຍງບັນຫາດັ່ງນັ້ນ
debugging ສະເຫມີກ່ຽວຂ້ອງກັບການໃຊ້ຊື່ຍ້ອນວ່າພວກເຂົາປາກົດຢູ່ໃນແຫຼ່ງ, ເຖິງແມ່ນວ່າ
ຊື່ທີ່ເຫັນໂດຍ linker ແມ່ນ mangled ເພື່ອປ້ອງກັນການເຊື່ອມໂຍງໂດຍບັງເອີນລະຫວ່າງ
ຂັ້ນຕອນທີ່ມີການໂຕ້ຕອບທີ່ບໍ່ເຂົ້າກັນໄດ້.

-fno-whole-file
ທຸງນີ້ເຮັດໃຫ້ compiler ແກ້ໄຂ ແລະແປແຕ່ລະຂັ້ນຕອນໃນໄຟລ໌
ແຍກຕ່າງຫາກ.

ໂດຍຄ່າເລີ່ມຕົ້ນ, ໄຟລ໌ທັງໝົດຈະຖືກວິເຄາະ ແລະວາງໄວ້ໃນຕົ້ນໄມ້ດ້ານໜ້າອັນດຽວ. ໃນລະຫວ່າງ
ການແກ້ໄຂ, ນອກເຫນືອໄປຈາກການກວດສອບແລະການແກ້ໄຂປົກກະຕິທັງຫມົດ, ການອ້າງອີງເຖິງພາຍນອກ
ຂັ້ນ​ຕອນ​ການ​ທີ່​ຢູ່​ໃນ​ການ​ແກ້​ໄຂ​ຜົນ​ກະ​ທົບ​ໄຟລ​໌​ດຽວ​ກັນ​ຂອງ​ຂັ້ນ​ຕອນ​ນັ້ນ​, ຖ້າ​ຫາກ​ວ່າ​ບໍ່​
ເຮັດແລ້ວ, ແລະການກວດສອບການໂຕ້ຕອບ. ການເອື່ອຍອີງໄດ້ຖືກແກ້ໄຂໂດຍການປ່ຽນແປງ
ຄໍາສັ່ງທີ່ໄຟລ໌ຖືກແປເປັນຕົ້ນໄມ້ backend. ດັ່ງນັ້ນ, ຂັ້ນຕອນ
ທີ່ອ້າງອີງແມ່ນແປກ່ອນການອ້າງອີງແລະການຊໍ້າຊ້ອນຂອງ backend
ການປະກາດຕົ້ນໄມ້ຖືກລົບລ້າງ.

ໄດ້ -fno-whole-file ທາງ​ເລືອກ​ແມ່ນ​ຖືກ​ຍົກ​ເລີກ​ແລະ​ອາດ​ຈະ​ນໍາ​ໄປ​ສູ່​ການ​ລະ​ຫັດ​ຜິດ​ພາດ​.

-fsecond-underscore
ໂດຍຄ່າເລີ່ມຕົ້ນ, GNU Fortran ຕື່ມໃສ່ເຄື່ອງໝາຍຂີດກ້ອງໃສ່ຊື່ພາຍນອກ. ຖ້າທາງເລືອກນີ້ແມ່ນ
GNU Fortran ທີ່ໃຊ້ແລ້ວຕື່ມສອງອັນໃສ່ກັບຊື່ທີ່ມີເຄື່ອງໝາຍຂີດກ້ອງ ແລະໜຶ່ງເຄື່ອງໝາຍຂີດກ້ອງ
ຕໍ່ກັບຊື່ພາຍນອກທີ່ບໍ່ມີຂີດກ້ອງ. GNU Fortran ຍັງຕື່ມສອງອັນໃຕ້ລົງໃສ່
ຊື່ພາຍໃນທີ່ມີເຄື່ອງໝາຍຂີດກ້ອງເພື່ອຫຼີກເວັ້ນການຕັ້ງຊື່ເຂົ້າກັນກັບຊື່ພາຍນອກ.

ຕົວເລືອກນີ້ບໍ່ມີຜົນຖ້າ -fno-underscoring ມີຜົນບັງຄັບໃຊ້. ມັນ​ໄດ້​ຖືກ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ໂດຍ​
-ff2c ທາງເລືອກ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ດ້ວຍຕົວເລືອກນີ້, ຊື່ພາຍນອກເຊັ່ນ "MAX_COUNT" ຖືກປະຕິບັດເປັນ a
ການອ້າງອີງເຖິງສັນຍາລັກພາຍນອກຂອງເວລາເຊື່ອມຕໍ່ "max_count__", ແທນທີ່ຈະເປັນ "max_count_".
ນີ້ແມ່ນຕ້ອງການສໍາລັບການເຂົ້າກັນໄດ້ກັບ g77 ແລະ f2c, ແລະ​ແມ່ນ​ຫມາຍ​ຄວາມ​ວ່າ​ໂດຍ​ການ​ນໍາ​ໃຊ້​
-ff2c ທາງເລືອກ.

-fcoarray=
none
ປິດການຮອງຮັບ coarray; ການ​ນໍາ​ໃຊ້​ການ​ປະ​ກາດ coarray ແລະ​ຄໍາ​ບັນ​ຍາຍ​ການ​ຄວບ​ຄຸມ​ຮູບ​ພາບ​
ຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດໃນການລວບລວມເວລາ. (ຄ່າເລີ່ມຕົ້ນ)

ດຽວ
ໂໝດຮູບດຽວ, ເຊັ່ນ "num_images()" ແມ່ນອັນດຽວສະເໝີ.

lib ການຂະໜານແບບຂະໜານຂອງຫໍສະໝຸດ; ຫ້ອງສະຫມຸດ GNU Fortran coarray ທີ່ເຫມາະສົມ
ຈໍາເປັນຕ້ອງໄດ້ເຊື່ອມຕໍ່.

-fcheck=
ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນ; argument ຈະເປັນບັນຊີລາຍຊື່ທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ
ຂອງຄໍາສໍາຄັນຕໍ່ໄປນີ້.

ທັງຫມົດ ເປີດໃຊ້ການທົດສອບເວລາແລ່ນທັງໝົດຂອງ -fcheck.

array-temps
ເຕືອນໃນເວລາແລ່ນເມື່ອຜ່ານການໂຕ້ແຍ້ງຕົວຈິງທີ່ອາເຣຊົ່ວຄາວຈະຕ້ອງເປັນ
ສ້າງຂຶ້ນ. ຂໍ້ມູນທີ່ສ້າງຂຶ້ນໂດຍການເຕືອນໄພນີ້ບາງຄັ້ງກໍ່ເປັນປະໂຫຍດໃນ
ການເພີ່ມປະສິດທິພາບ, ເພື່ອຫຼີກເວັ້ນການຊົ່ວຄາວດັ່ງກ່າວ.

ໝາຍເຫດ: ມີການພິມຄຳເຕືອນພຽງແຕ່ຄັ້ງດຽວຕໍ່ສະຖານທີ່.

ຂອບເຂດ
ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນສໍາລັບ array subscripts ແລະຕໍ່ກັບການປະກາດ
ຄ່າຕໍ່າສຸດ ແລະສູງສຸດ. ມັນຍັງກວດເບິ່ງຕົວຊີ້ວັດ array ສໍາລັບສົມມຸດຕິຖານແລະ deferred
arrays ຮູບຮ່າງຕໍ່ກັບຂອບເຂດຈັດສັນຕົວຈິງແລະຮັບປະກັນວ່າ string ທັງຫມົດ
ຄວາມຍາວແມ່ນເທົ່າກັນສຳລັບຕົວສ້າງອາເຣຕົວອັກສອນທີ່ບໍ່ມີຕົວແບບຢ່າງຈະແຈ້ງ.

ການກວດສອບບາງຢ່າງຕ້ອງການນັ້ນ -fcheck=ຂອບເຂດ ຖືກກໍານົດໄວ້ສໍາລັບການລວບລວມຂອງຕົ້ນຕໍ
ໂຄງການ.

ຫມາຍເຫດ: ໃນອະນາຄົດນີ້ອາດຈະລວມເອົາແບບຟອມອື່ນໆຂອງການກວດສອບ, ຕົວຢ່າງ, ການກວດສອບ
ການອ້າງອິງ substring.

do ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນສໍາລັບການດັດແກ້ທີ່ບໍ່ຖືກຕ້ອງຂອງການຊໍ້າຄືນຂອງ loop
ຕົວແປ

mem ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນສຳລັບການຈັດສັນໜ່ວຍຄວາມຈຳ. ຫມາຍ​ເຫດ​: ທາງ​ເລືອກ​ນີ້​
ບໍ່ມີຜົນກະທົບຕໍ່ການຈັດສັນທີ່ຊັດເຈນໂດຍໃຊ້ຄໍາຖະແຫຼງ "ALLOCATE", ເຊິ່ງຈະເປັນ
ກວດ​ສອບ​ສະ​ເຫມີ​.

ຕົວຊີ້
ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນສຳລັບຕົວຊີ້ ແລະ ການຈັດສັນ.

ການເອີ້ນຄືນ
ເປີດໃຊ້ການຜະລິດການກວດສອບເວລາແລ່ນສໍາລັບ recursively ເອີ້ນວ່າ subroutines ແລະ
ຟັງຊັນທີ່ບໍ່ໄດ້ຖືກໝາຍວ່າເປັນ recursive. ເບິ່ງນຳ - ບັງເອີນ. ຫມາຍເຫດ: ນີ້
ການກວດສອບບໍ່ໄດ້ເຮັດວຽກສໍາລັບໂຄງການ OpenMP ແລະຖືກປິດໃຊ້ງານຖ້າໃຊ້ຮ່ວມກັນກັບ
- ບັງເອີນ ແລະ -fopenmp.

-fbounds-ກວດ​ສອບ​
ຍົກເລີກນາມແຝງສຳລັບ -fcheck=ຂອບເຂດ.

-fcheck-array-temporaries
ຍົກເລີກນາມແຝງສຳລັບ -fcheck=array-temps.

-fmax-array-constructor=n
ຕົວເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເພີ່ມຂີດຈໍາກັດເທິງທີ່ອະນຸຍາດໃນຕົວສ້າງອາເຣ.
ລະຫັດຂ້າງລຸ່ມນີ້ຕ້ອງການທາງເລືອກນີ້ເພື່ອຂະຫຍາຍ array ໃນເວລາລວບລວມ.

ການທົດສອບໂຄງການ
ບໍ່ມີ implicit
ຈຳນວນເຕັມ j
integer, ພາລາມິເຕີ :: n = 100000
integer, ພາຣາມິເຕີ :: i(n) = (/ (2*j, j = 1, n) /)
ພິມ '(10(I0,1X))', i
ການ​ທົດ​ສອບ​ໂຄງ​ການ​ສິ້ນ​ສຸດ​

ລະມັດລະວັງ: ນີ້ ທາງເລືອກ ສາມາດເຮັດໄດ້ ນໍາໄປສູ່ to ຍາວ ລວບລວມ ເວລາ ແລະ ຫຼາຍເກີນໄປ ຂະຫນາດໃຫຍ່ ຈຸດ​ປະ​ສົງ
ໄຟລ໌.

ຄ່າເລີ່ມຕົ້ນ ສຳ ລັບ n ແມ່ນ 65535.

-fmax-stack-var-size=n
ທາງ​ເລືອກ​ນີ້​ລະ​ບຸ​ຂະ​ຫນາດ​ໃນ bytes ຂອງ​ອາ​ເຣ​ທີ່​ໃຫຍ່​ທີ່​ສຸດ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ໃສ່​ໃນ​
stack; ຖ້າ​ຫາກ​ວ່າ​ຂະ​ຫນາດ​ແມ່ນ​ເກີນ​ຄວາມ​ຊົງ​ຈໍາ static ໄດ້​ຖືກ​ນໍາ​ໃຊ້ (ຍົກ​ເວັ້ນ​ໃນ​ຂັ້ນ​ຕອນ​ການ​ຫມາຍ​ເປັນ
ກັບຄືນມາ). ໃຊ້ທາງເລືອກ - ບັງເອີນ ເພື່ອອະນຸຍາດໃຫ້ສໍາລັບຂັ້ນຕອນ recursive ທີ່ບໍ່ໄດ້
ມີຄຸນລັກສະນະ RECURSIVE ຫຼືສໍາລັບໂຄງການຂະຫນານ. ໃຊ້ -fno ອັດ​ຕະ​ໂນ​ມັດ​ ບໍ່ເຄີຍໃຊ້
stack ໄດ້.

ຕົວເລືອກນີ້ໃນປັດຈຸບັນມີຜົນກະທົບພຽງແຕ່ array ທ້ອງຖິ່ນທີ່ປະກາດດ້ວຍຂອບເຂດຄົງທີ່, ແລະອາດຈະ
ບໍ່ໃຊ້ກັບຕົວແປຕົວອັກສອນທັງໝົດ. ຮຸ່ນ GNU Fortran ໃນອະນາຄົດອາດຈະປັບປຸງນີ້
ພຶດຕິ ກຳ.

ຄ່າເລີ່ມຕົ້ນ ສຳ ລັບ n ແມ່ນ 32768.

-fstack-arrays
ການເພີ່ມທາງເລືອກນີ້ຈະເຮັດໃຫ້ Fortran compiler ໃສ່ array ທ້ອງຖິ່ນທັງຫມົດ, ເຖິງແມ່ນວ່າຂອງ
ບໍ່ຮູ້ຂະໜາດໃສ່ໜ່ວຍຄວາມຈຳ stack. ຖ້າໂຄງການຂອງທ່ານໃຊ້ array ທ້ອງຖິ່ນຂະຫນາດໃຫຍ່ຫຼາຍມັນແມ່ນ
ເປັນໄປໄດ້ວ່າເຈົ້າຈະຕ້ອງຂະຫຍາຍຂີດຈຳກັດເວລາແລ່ນຂອງເຈົ້າສຳລັບໜ່ວຍຄວາມຈຳ stack ໃນບາງອັນ
ລະບົບປະຕິບັດການ. ທຸງນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນໃນລະດັບການເພີ່ມປະສິດທິພາບ - ໄວ.

-fpack ມາຈາກ
ທາງເລືອກນີ້ບອກ GNU Fortran ໃຫ້ຫຸ້ມຫໍ່ສະມາຊິກປະເພດທີ່ໄດ້ມາຢ່າງໃກ້ຊິດເທົ່າທີ່ເປັນໄປໄດ້.
ລະຫັດທີ່ລວບລວມກັບທາງເລືອກນີ້ແມ່ນມີແນວໂນ້ມທີ່ຈະບໍ່ເຂົ້າກັນໄດ້ກັບລະຫັດທີ່ລວບລວມໂດຍບໍ່ມີການ
ທາງເລືອກນີ້, ແລະອາດຈະດໍາເນີນການຊ້າລົງ.

-frepack-arrays
ໃນບາງສະຖານະການ GNU Fortran ອາດຈະຜ່ານພາກສ່ວນ array ທີ່ສົມມຸດຕິຖານຜ່ານ a
ຕົວອະທິບາຍການອະທິບາຍພື້ນທີ່ຄວາມຊົງຈຳທີ່ບໍ່ຕິດກັນ. ທາງເລືອກນີ້ເພີ່ມລະຫັດໃສ່
ຟັງຊັນ prologue ເພື່ອບັນຈຸຂໍ້ມູນຄືນໃໝ່ເຂົ້າໄປໃນບລັອກທີ່ຕິດຕໍ່ກັນໃນເວລາແລ່ນ.

ອັນນີ້ຄວນສົ່ງຜົນໃຫ້ມີການເຂົ້າເຖິງອາເຣໄວຂຶ້ນ. ຢ່າງໃດກໍຕາມ, ມັນສາມາດແນະນໍາ
overhead ທີ່​ສໍາ​ຄັນ​ສໍາ​ລັບ​ການ​ໂທ​ຫນ້າ​ທີ່​, ໂດຍ​ສະ​ເພາະ​ແມ່ນ​ໃນ​ເວ​ລາ​ທີ່​ຂໍ້​ມູນ​ຜ່ານ​ການ​ແມ່ນ​
ບໍ່ຕິດກັນ.

-fshort-enums
ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ໄດ້​ສະ​ຫນອງ​ໃຫ້​ສໍາ​ລັບ​ການ​ເຮັດ​ວຽກ​ຮ່ວມ​ກັນ​ກັບ​ລະ​ຫັດ C ທີ່​ໄດ້​ຖືກ​ສັງ​ລວມ​ກັບ​
-fshort-enums ທາງເລືອກ. ມັນຈະເຮັດໃຫ້ GNU Fortran ເລືອກປະເພດ "INTEGER" ທີ່ນ້ອຍທີ່ສຸດ
ທີ່ກໍານົດໄວ້ enumerator ຈະເຫມາະໃນ, ແລະໃຫ້ enumerators ຂອງຕົນທັງຫມົດປະເພດນີ້.

-fexternal-blas
ທາງເລືອກນີ້ຈະເຮັດໃຫ້ gfortran ສ້າງການໂທໄປຫາຟັງຊັນ BLAS ສໍາລັບບາງ matrix
ການດໍາເນີນງານເຊັ່ນ "MATMUL", ແທນທີ່ຈະໃຊ້ algorithms ຂອງພວກເຮົາເອງ, ຖ້າຂະຫນາດຂອງ
matrices ທີ່​ກ່ຽວ​ຂ້ອງ​ແມ່ນ​ມີ​ຂະ​ຫນາດ​ໃຫຍ່​ກ​່​ວາ​ກໍາ​ນົດ​ໄວ້ (ເບິ່ງ​ -fblas-matmul-limit). ນີ້ອາດຈະເປັນ
ມີກຳໄລຖ້າມີຫ້ອງສະໝຸດ BLAS ຂອງຜູ້ຂາຍທີ່ປັບແຕ່ງແລ້ວ. ຫ້ອງສະຫມຸດ BLAS ຈະ
ຕ້ອງໄດ້ຮັບການລະບຸໃນເວລາເຊື່ອມຕໍ່.

-fblas-matmul-limit=n
ທີ່ສໍາຄັນພຽງແຕ່ໃນເວລາທີ່ -fexternal-blas ມີຜົນບັງຄັບໃຊ້. ການຄູນມາຕຣິກເບື້ອງຂອງ matrices
ມີຂະໜາດໃຫຍ່ກວ່າ (ຫຼືເທົ່າກັບ) n ຈະຖືກປະຕິບັດໂດຍການໂທຫາຫນ້າທີ່ BLAS,
ໃນຂະນະທີ່ຄົນອື່ນຈະຖືກຈັດການໂດຍ gfortran ສູດການຄິດໄລ່ພາຍໃນ. ຖ້າ matrices ມີສ່ວນຮ່ວມ
ບໍ່ແມ່ນສີ່ຫຼ່ຽມມົນ, ການປຽບທຽບຂະຫນາດແມ່ນປະຕິບັດໂດຍສະເລ່ຍ geometric ຂອງ
ຂະຫນາດຂອງການໂຕ້ຖຽງແລະ matrices ຜົນໄດ້ຮັບ.

ຄ່າເລີ່ມຕົ້ນ ສຳ ລັບ n ແມ່ນ 30.

- ບັງເອີນ
ອະນຸຍາດໃຫ້ recursion ທາງອ້ອມໂດຍການບັງຄັບໃຫ້ array ທ້ອງຖິ່ນທັງຫມົດຖືກຈັດສັນຢູ່ໃນ stack.
ທຸງນີ້ບໍ່ສາມາດໃຊ້ຮ່ວມກັບ -fmax-stack-var-size= or -fno ອັດ​ຕະ​ໂນ​ມັດ​.

-finit-local-ສູນ
-finit-integer=n
-finit-real=
-finit-logical=
-finit-character=n
ໄດ້ -finit-local-ສູນ ທາງເລືອກຈະສັ່ງໃຫ້ compiler ເລີ່ມຕົ້ນ "INTEGER", ທ້ອງຖິ່ນ.
ຕົວແປ "REAL", ແລະ "COMPLEX" ເປັນສູນ, ຕົວແປ "LOGICAL" ເປັນ false, ແລະ "CHARACTER"
ຕົວແປເປັນສະຕຣິງຂອງໄບຕ໌ null. ທາງເລືອກໃນການເລີ່ມຕົ້ນທີ່ລະອຽດກວ່າແມ່ນ
ສະຫນອງໃຫ້ໂດຍ -finit-integer=n, -finit-real= (ຊຶ່ງຍັງ
ເລີ່ມຕົ້ນພາກສ່ວນທີ່ແທ້ຈິງແລະຈິນຕະນາການຂອງຕົວແປ "COMPLEX" ທ້ອງຖິ່ນ),
-finit-logical=, ແລະ -finit-character=n (ບ່ອນທີ່ n ເປັນລັກສະນະ ASCII
value) ທາງເລືອກ. ທາງເລືອກເຫຼົ່ານີ້ບໍ່ໄດ້ເລີ່ມຕົ້ນ

· array ຈັດສັນ

· ອົງປະກອບຂອງຕົວແປປະເພດທີ່ໄດ້ມາ

· ຕົວແປທີ່ປາກົດຢູ່ໃນຄໍາຖະແຫຼງ "EQUIVALENCE".

(ຂໍ້ຈໍາກັດເຫຼົ່ານີ້ອາດຈະຖືກໂຍກຍ້າຍອອກໃນການປ່ອຍໃນອະນາຄົດ).

ຫມາຍເຫດວ່າ -finit-real=ນານ ທາງເລືອກເລີ່ມຕົ້ນຕົວແປ "REAL" ແລະ "COMPLEX" ດ້ວຍ a
ງຽບ. ສໍາລັບສັນຍານການນໍາໃຊ້ NaN -finit-real=snan; ສັງເກດວ່າ, ຢ່າງໃດກໍຕາມ, ທີ່ລວບລວມເວລາ
ການເພີ່ມປະສິດທິພາບອາດຈະປ່ຽນພວກມັນເປັນ NaN ທີ່ງຽບໆ ແລະຕ້ອງເປີດໃຊ້ການໃສ່ກັບດັກ
(ເຊັ່ນ: ຜ່ານ -ffpe-ດັກ).

ສຸດທ້າຍ, ໃຫ້ສັງເກດວ່າການເປີດໃຊ້ງານໃດໆ -finit-* ທາງເລືອກຈະປິດສຽງເຕືອນວ່າ
ຈະຖືກປ່ອຍອອກມາໂດຍ - ປະກາດ ສໍາລັບຕົວແປທ້ອງຖິ່ນທີ່ໄດ້ຮັບຜົນກະທົບ.

-falign-ທົ່ວໄປ
ໂດຍຕົວຢ່າງ, gfortran ບັງຄັບໃຫ້ສອດຄ່ອງທີ່ເຫມາະສົມຂອງຕົວແປທັງຫມົດໃນ "COMMON" ຕັນໂດຍ
padding ໃຫ້ເຂົາເຈົ້າຕາມຄວາມຕ້ອງການ. ໃນເວທີສະເພາະໃດຫນຶ່ງ, ນີ້ແມ່ນການບັງຄັບ, ກ່ຽວກັບຄົນອື່ນມັນເພີ່ມຂຶ້ນ
ການປະຕິບັດ. ຖ້າບລັອກ "COMMON" ບໍ່ໄດ້ຖືກປະກາດດ້ວຍປະເພດຂໍ້ມູນທີ່ສອດຄ່ອງ
ຢູ່ທົ່ວທຸກແຫ່ງ, padding ນີ້ສາມາດເຮັດໃຫ້ເກີດບັນຫາ, ແລະ -fno-align-commons ສາມາດຖືກນໍາໃຊ້ເພື່ອ
ປິດການຈັດຮຽງອັດຕະໂນມັດ. ຮູບແບບດຽວກັນຂອງທາງເລືອກນີ້ຄວນຈະຖືກນໍາໃຊ້ສໍາລັບໄຟລ໌ທັງຫມົດ
ທີ່ແບ່ງປັນບລັອກ "COMMON". ເພື່ອຫຼີກເວັ້ນບັນຫາການຈັດຕໍາແຫນ່ງທີ່ອາດຈະເກີດຂື້ນໃນ "COMMON",
ແນະນຳໃຫ້ສັ່ງວັດຖຸຈາກໃຫຍ່ຫານ້ອຍສຸດ.

-fno-protect-parens
ໂດຍຄ່າເລີ່ມຕົ້ນ, ວົງເລັບໃນການສະແດງຜົນແມ່ນເປັນກຽດສໍາລັບທຸກລະດັບການເພີ່ມປະສິດທິພາບດັ່ງກ່າວ
ທີ່ compiler ບໍ່ໄດ້ເຮັດການເຊື່ອມໂຍງໃຫມ່. ການນໍາໃຊ້ -fno-protect-parens ອະນຸຍາດໃຫ້
compiler ເພື່ອຈັດລໍາດັບໃຫມ່ "REAL" ແລະ "COMPLEX" expressions ເພື່ອຜະລິດລະຫັດໄວຂຶ້ນ. ໃຫ້ສັງເກດວ່າ
ສໍາລັບການເພີ່ມປະສິດທິພາບການເຊື່ອມໂຍງຄືນໃຫມ່ -fno-ເຊັນຊື່-ສູນ ແລະ -fno-traping-ຄະນິດສາດ ຕ້ອງການ
ມີຜົນບັງຄັບໃຊ້. ການປົກປ້ອງວົງເລັບຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ, ເວັ້ນເສຍແຕ່ - ໄວ is
ໃຫ້.

-frealloc-lhs
ການຈັດສັນທາງຊ້າຍມືຂອງການມອບໝາຍພາຍໃນແມ່ນອັດຕະໂນມັດ
(re)ຈັດສັນ ຖ້າມັນບໍ່ຖືກຈັດສັນ ຫຼືມີຮູບຮ່າງແຕກຕ່າງກັນ. ທາງເລືອກແມ່ນ
ເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນຍົກເວັ້ນເວລາ -std=f95 ແມ່ນໃຫ້. ເບິ່ງນຳ -Wrealloc-lhs.

-faggressive-function-elimination
ຟັງຊັນທີ່ມີລາຍຊື່ການໂຕ້ແຍ້ງຄືກັນແມ່ນຖືກລົບລ້າງພາຍໃນຄໍາຖະແຫຼງຕ່າງໆ, ໂດຍບໍ່ສົນເລື່ອງ
ຟັງຊັນເຫຼົ່ານີ້ຖືກໝາຍວ່າ "PURE" ຫຼືບໍ່. ຕົວຢ່າງ, ໃນ

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

ມີພຽງແຕ່ການໂທຫາ "f". ທາງເລືອກນີ້ພຽງແຕ່ເຮັດວຽກຖ້າຫາກວ່າ
-ffrontend-optimize ແມ່ນຢູ່ໃນຜົນກະທົບ.

-ffrontend-optimize
ຕົວເລືອກນີ້ປະຕິບັດການເພີ່ມປະສິດທິພາບດ້ານຫນ້າ, ໂດຍອີງໃສ່ການຈັດການພາກສ່ວນຂອງ Fortran
parse tree. ເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນໂດຍໃດກໍ່ຕາມ -O ທາງເລືອກ. ການເພີ່ມປະສິດທິພາບທີ່ເປີດໃຊ້ໂດຍນີ້
ທາງ​ເລືອກ​ລວມ​ເຖິງ​ການ​ລົບ​ລ້າງ​ການ​ໂທ​ຫນ້າ​ທີ່​ດຽວ​ກັນ​ພາຍ​ໃນ​ການ​ສະ​ແດງ​ອອກ​, ການ​ລົບ​
ການໂທຫາ "TRIM" ທີ່ບໍ່ຈໍາເປັນໃນການປຽບທຽບແລະການມອບຫມາຍແລະການປ່ຽນແທນ TRIM(a) ດ້ວຍ
"a(1:LEN_TRIM(a))". ມັນສາມາດຖືກຍົກເລີກການເລືອກໂດຍການລະບຸ -fno-frontend-optimize.

ENVIRONMENT


ໄດ້ gfortran ປະຈຸບັນ compiler ບໍ່ໄດ້ໃຊ້ຕົວແປສະພາບແວດລ້ອມເພື່ອຄວບຄຸມ
ການ​ດໍາ​ເນີນ​ງານ​ຂອງ​ຕົນ​ຂ້າງ​ເທິງ​ແລະ​ນອກ​ຈາກ​ທີ່​ມີ​ຜົນ​ກະ​ທົບ​ການ​ດໍາ​ເນີນ​ງານ​ຂອງ gcc.

ໃຊ້ gfortran-4.8 ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad