ນີ້ແມ່ນຄໍາສັ່ງ 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