EnglishFrenchGermanItalianPortugueseRussianSpanish

ไอคอน Fav ของ OnWorks

mips64-linux-gnuabi64-gfortran-5 - ออนไลน์ในคลาวด์

เรียกใช้ mips64-linux-gnuabi64-gfortran-5 ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง mips64-linux-gnuabi64-gfortran-5 ที่สามารถทำงานในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


gfortran - คอมไพเลอร์ GNU Fortran

เรื่องย่อ


เกรฟทราน [-c|-S|-E]
[-g] [-pg] [-Oระดับ]
[-Wเตือน...] [-อวดดี]
[-Idir...] [-Ldir... ]
[-Dแมโคร[=defn]...] [-Uแมโคร]
[-fตัวเลือก... ]
[-mตัวเลือกเครื่อง... ]
[-o outfile] infile...

เฉพาะตัวเลือกที่มีประโยชน์ที่สุดเท่านั้นที่แสดงไว้ที่นี่ ดูด้านล่างสำหรับส่วนที่เหลือ

DESCRIPTION


พื้นที่ปลูก กฟอร์ทราน คำสั่งรองรับตัวเลือกทั้งหมดที่รองรับโดย gcc สั่งการ. ตัวเลือกเท่านั้น
เฉพาะสำหรับ GNU Fortran ได้รับการบันทึกไว้ที่นี่

ตัวเลือก GCC และ GNU Fortran ทั้งหมดได้รับการยอมรับทั้งโดย กฟอร์ทราน และโดย gcc (เช่นเดียวกับใดๆ
ไดรเวอร์อื่น ๆ ที่สร้างขึ้นในเวลาเดียวกันเช่น g ++) ตั้งแต่เพิ่ม GNU Fortran ให้กับ GCC
การกระจายช่วยให้ยอมรับตัวเลือก GNU Fortran โดยไดรเวอร์ที่เกี่ยวข้องทั้งหมด

ในบางกรณี ออปชั่นมีรูปแบบเชิงบวกและเชิงลบ รูปแบบเชิงลบของ -foo จะ
be -fno-foo. คู่มือนี้จัดทำเอกสารเพียงหนึ่งในสองแบบฟอร์มนี้ แล้วแต่แบบใดไม่ใช่
ค่าเริ่มต้น.

OPTIONS


นี่คือบทสรุปของตัวเลือกทั้งหมดเฉพาะสำหรับ GNU Fortran โดยจัดกลุ่มตามประเภท
คำอธิบายอยู่ในส่วนต่อไปนี้

ฟอร์แทรน ภาษา Options
-fall-intrinsics -fbackslash -fcray-ตัวชี้ -fd-lines-as-code -fd-lines-as-comments
-fdefault-ดับเบิ้ล-8 -fdefault-จำนวนเต็ม-8 -fdefault-real-8 -fdollar-โอเค
-ffixed-line-length-n -ffixed-line-length-none -ffree-form -ffree-สายยาว-n
-ffree-line-length-none -fimplicit-ไม่มี -finteger-4-integer-8 -fmax-ตัวระบุความยาว
-fmodule-ส่วนตัว -ffixed-form -fno-range-check -fopenacc -fopenmp -freal-4-real-10
-freal-4-real-16 -freal-4-real-8 -freal-8-real-10 -freal-8-real-16 -freal-8-real-4
-std=มาตรฐาน

กระบวนการเตรียมการผลิต Options
-NS-คำถาม[=คำตอบ] -Aคำถาม=คำตอบ -C - ปชช -Dแมโคร[=defn] -H -P -Uแมโคร -cpp -dD
-dI -dM -dN -dU -fworking-ไดเรกทอรี -imultilib dir -iprefix ไฟล์ -iquote -isysroot dir
-isystem dir -nocpp -nostdinc -undef

ความผิดพลาด และ การเตือน Options
-วาเลียซิง -ผนัง -แวมเพอร์แซนด์ -Warray ขอบเขต -Wc-binding-type -Wcharacter-ตัดทอน
-Wconversion -Wfunction-กำจัด -Wimplicit-อินเทอร์เฟซ -Wimplicit-ขั้นตอน
-Wintrinsic-เงา -Wuse-โดยไม่ต้อง-only -Wintrinsics-std -Wline-ตัดสาย
-Wno-align-คอมมอนส์ -Wno-แท็บ -Wreal-q-ค่าคงที่ - เซอร์ไพรส์ -วันเดอร์โฟลว์
-Wunused-พารามิเตอร์ -Wrealloc-lhs -Wrealloc-lhs-all -Wtarget-อายุการใช้งาน -fmax-errors=n
-fsyntax-only -อวดดี -pedantic-ข้อผิดพลาด

การแก้จุดบกพร่อง Options
-fbacktrace -fdump-fortran-optimized -fdump-fortran-ดั้งเดิม -fdump-parse-tree
-ffpe-กับดัก=รายการ -ffpe-สรุป=รายการ

ไดเรกทอรี Options
-Idir -Jdir -fintrinsic-modules-เส้นทาง dir

ลิงค์ Options
-static-libgfortran

Runtime Options
-fconvert=การแปลง -fmax-subrecord-length=ความยาว -frecord-marker=ความยาว -fsign-ศูนย์

รหัส รุ่น Options
-faggressive-ฟังก์ชั่น-กำจัด -fblas-matmul-limit=n -fbounds-check
-fcheck-array-temporaries -fcheck=
-fcoarray= -fexternal-blas -ff2c -ffrontend-เพิ่มประสิทธิภาพ
-finit-ตัวละคร=n -finit-integer=n -finit-local-ศูนย์ -finit-ตรรกะ=
-finit-real= -fmax-array-constructor=n -fmax-stack-var-size=n
-fno-align-คอมมอนส์ -fno-อัตโนมัติ -fno-protect-ผู้ปกครอง -fno-ขีดเส้นใต้
-fsecond-ขีดล่าง -fpack-มาจาก -frealloc-lhs -frecursive -frepack-อาร์เรย์
-fshort-enums -fstack-อาร์เรย์

Options การควบคุม ฟอร์แทรน ภาษาถิ่น
ตัวเลือกต่อไปนี้ควบคุมรายละเอียดของภาษาถิ่น Fortran ที่คอมไพเลอร์ยอมรับ:

-ffree-form
-ffixed-form
ระบุเลย์เอาต์ที่ใช้โดยไฟล์ต้นทาง เลย์เอาต์แบบฟรีฟอร์มถูกนำมาใช้ใน
Fortran 90 รูปแบบคงที่ถูกใช้ในโปรแกรม Fortran ที่เก่ากว่า เมื่อไหร่
ไม่ได้ระบุตัวเลือกใด ๆ แบบฟอร์มต้นทางถูกกำหนดโดยนามสกุลไฟล์

-fall-intrinsics
ตัวเลือกนี้ทำให้โพรซีเดอร์ที่แท้จริงทั้งหมด (รวมถึงส่วนขยายเฉพาะของ GNU) เป็น
เป็นที่ยอมรับ สิ่งนี้มีประโยชน์กับ -std=f95 เพื่อบังคับให้ปฏิบัติตามมาตรฐาน แต่ได้รับ
เข้าถึงเต็มรูปแบบของ intrinsics ที่มีอยู่กับ กฟอร์ทราน. เป็นผลให้,
-Wintrinsics-std จะถูกละเว้นและไม่มีขั้นตอนที่ผู้ใช้กำหนดที่มีชื่อเดียวกับ
Intrinsic ใดๆ จะถูกเรียก ยกเว้นเมื่อมีการประกาศอย่างชัดแจ้งว่า "EXTERNAL"

-fd-lines-as-code
-fd-lines-as-comments
เปิดใช้งานการดูแลพิเศษสำหรับบรรทัดที่ขึ้นต้นด้วย "d" หรือ "D" ในแหล่งที่มาของรูปแบบคงที่
ถ้า -fd-lines-as-code ตัวเลือกจะได้รับการปฏิบัติเสมือนกับคอลัมน์แรก
มีช่องว่าง ถ้า -fd-lines-as-comments ให้ตัวเลือก พวกเขาจะถือว่าเป็น
บรรทัดความคิดเห็น

-fdollar-โอเค
อนุญาต $ เป็นอักขระที่ไม่ใช่ตัวแรกที่ถูกต้องในชื่อสัญลักษณ์ สัญลักษณ์ที่ขึ้นต้นด้วย $ เป็น
ถูกปฏิเสธเนื่องจากไม่มีความชัดเจนว่าจะใช้กฎข้อใดกับการพิมพ์โดยปริยายว่าต่างกัน
ผู้ขายใช้กฎที่แตกต่างกัน โดยใช้ $ ในคำสั่ง "IMPLICIT" ก็ถูกปฏิเสธเช่นกัน

-fbackslash
เปลี่ยนการตีความแบ็กสแลชในตัวอักษรสตริงจากแบ็กสแลชเดี่ยว
อักขระเป็นอักขระหลีก "สไตล์ C" มีการขยายชุดค่าผสมต่อไปนี้
"\a", "\b", "\f", "\n", "\r", "\t", "\v", "\\", และ "\0" ให้กับอักขระ ASCII
alert, Backspace, การป้อนแบบฟอร์ม, การขึ้นบรรทัดใหม่, การขึ้นบรรทัดใหม่, แท็บแนวนอน, แท็บแนวตั้ง,
แบ็กสแลชและ NUL ตามลำดับ นอกจากนี้ "\x"nn, "\ยู"NNNN และคุณ"nnnnnnnn
(ซึ่งแต่ละ n เป็นเลขฐานสิบหก) แปลเป็นอักขระ Unicode
สอดคล้องกับจุดรหัสที่ระบุ การรวมอักขระอื่น ๆ ทั้งหมด
นำหน้าด้วย \ ไม่ได้ขยาย

-fmodule-ส่วนตัว
ตั้งค่าการเข้าถึงเริ่มต้นของเอนทิตีโมดูลเป็น "ส่วนตัว" เกี่ยวข้องกับการใช้งาน
เอนทิตีจะไม่สามารถเข้าถึงได้เว้นแต่จะได้รับการประกาศอย่างชัดแจ้งว่าเป็น "สาธารณะ"

-ffixed-line-length-n
ตั้งค่าคอลัมน์หลังจากที่อักขระถูกละเว้นในบรรทัดรูปแบบคงที่ทั่วไปใน
ไฟล์ต้นทางและช่องว่างที่จะถือว่า (ราวกับว่าถูกบุด้วยความยาวนั้น) หลังจาก
ส่วนปลายของเส้นรูปแบบคงที่แบบสั้น

ค่านิยมสำหรับ n รวม 72 (มาตรฐานและค่าเริ่มต้น), 80 (ภาพการ์ด) และ
132 (สอดคล้องกับตัวเลือก "ขยายแหล่งที่มา" ในคอมไพเลอร์ยอดนิยมบางตัว) n อาจ
ยังเป็น ไม่มีหมายความว่าทั้งบรรทัดมีความหมายและอักขระต่อเนื่อง
ค่าคงที่ไม่เคยมีช่องว่างโดยปริยายต่อท้ายเพื่อกรอกบรรทัด
-ffixed-line-length-0 หมายถึงสิ่งเดียวกับ -ffixed-line-length-none.

-ffree-สายยาว-n
ตั้งค่าคอลัมน์หลังจากที่อักขระถูกละเว้นในบรรทัดรูปแบบอิสระทั่วไปในซอร์ส
ไฟล์. ค่าเริ่มต้นคือ 132 n อาจจะ ไม่มีหมายความว่าทั้งเส้นคือ
มีความหมาย -ffree-line-length-0 หมายถึงสิ่งเดียวกับ -ffree-line-length-none.

-fmax-ตัวระบุความยาว=n
ระบุความยาวตัวระบุสูงสุดที่อนุญาต ค่าทั่วไปคือ 31 (Fortran 95) และ
63 (Fortran 2003 และ Fortran 2008)

-fimplicit-ไม่มี
ระบุว่าไม่อนุญาตให้พิมพ์โดยนัย เว้นแต่จะถูกแทนที่ด้วย "IMPLICIT" อย่างชัดแจ้ง
งบ. นี่เทียบเท่ากับการเพิ่ม "ไม่มีนัยสำคัญ" ที่จุดเริ่มต้นของทุก ๆ
ขั้นตอน

-fcray-ตัวชี้
เปิดใช้งานส่วนขยายตัวชี้ Cray ซึ่งมีฟังก์ชันตัวชี้แบบ C

-fopenacc
เปิดใช้งานส่วนขยาย OpenACC ซึ่งรวมถึงคำสั่ง OpenACC "!$acc" ในรูปแบบอิสระ
และคำสั่ง "c$acc", *$acc และ "!$acc" ในรูปแบบคงที่ การคอมไพล์แบบมีเงื่อนไข "!$"
ยามในรูปแบบอิสระและ "c$", "*$" และ "!$" ยามในรูปแบบคงที่และเมื่อ
การลิงก์จะจัดการให้ไลบรารีรันไทม์ OpenACC เชื่อมโยงเข้ามา

โปรดทราบว่านี่เป็นคุณลักษณะทดลอง ไม่สมบูรณ์ และอาจเปลี่ยนแปลงได้ในอนาคต
เวอร์ชันของ GCC ดูhttps://gcc.gnu.org/wiki/OpenACC> สำหรับข้อมูลเพิ่มเติม

-fopenmp
เปิดใช้งานส่วนขยาย OpenMP ซึ่งรวมถึงคำสั่ง OpenMP "!$omp" ในรูปแบบอิสระ
และคำสั่ง "c$omp", *$omp และ "!$omp" ในรูปแบบคงที่, "!$" การรวบรวมแบบมีเงื่อนไข
ยามในรูปแบบอิสระและ "c$", "*$" และ "!$" ยามในรูปแบบคงที่และเมื่อ
การลิงก์จะจัดการให้ไลบรารีรันไทม์ OpenMP เชื่อมโยงเข้ามา ตัวเลือก -fopenmp
หมายถึง -frecursive.

-fno-range-check
ปิดใช้งานการตรวจสอบช่วงของผลลัพธ์ของการลดความซับซ้อนของนิพจน์คงที่ระหว่าง
การรวบรวม ตัวอย่างเช่น GNU Fortran จะแสดงข้อผิดพลาดในขณะคอมไพล์เมื่อ
ทำให้ "a = 1 / 0" ง่ายขึ้น ด้วยตัวเลือกนี้ จะไม่มีข้อผิดพลาดเกิดขึ้น และ "a" จะเป็น
กำหนดค่า "+Infinity" หากนิพจน์ประเมินเป็นค่าภายนอก
ช่วงที่เกี่ยวข้องของ ["-HUGE()":"HUGE()"] จากนั้นนิพจน์จะถูกแทนที่ด้วย "-Inf"
หรือ "+Inf" ตามความเหมาะสม ในทำนองเดียวกัน "DATA i/Z'FFFFFFFF'/" จะส่งผลให้เป็นจำนวนเต็ม
ล้นในระบบส่วนใหญ่ แต่ด้วย -fno-range-check ค่าจะ "ล้อมรอบ" และ
"i" จะถูกตั้งค่าเริ่มต้นเป็น -1 แทน

-fdefault-จำนวนเต็ม-8
ตั้งค่าจำนวนเต็มและประเภทตรรกะเริ่มต้นเป็นประเภทกว้าง 8 ไบต์ ตัวเลือกนี้ด้วย
มีผลกับชนิดของค่าคงที่จำนวนเต็มเช่น 42 ไม่เหมือนกับ -finteger-4-integer-8มันไม่ it
ไม่ส่งเสริมตัวแปรด้วยการประกาศชนิดที่ชัดเจน

-fdefault-real-8
ตั้งค่าประเภทจริงเริ่มต้นเป็นประเภทกว้าง 8 ไบต์ ตัวเลือกนี้ยังมีผลกับชนิดของ
ค่าคงที่จริงที่ไม่ใช่สองเท่าเช่น 1.0 และส่งเสริมความกว้างเริ่มต้นของ "DOUBLE
PRECISION" ถึง 16 ไบต์ถ้าเป็นไปได้ เว้นแต่จะได้รับ "-fdefault-double-8" ด้วย
-freal-4-real-8จะไม่ส่งเสริมตัวแปรด้วยการประกาศชนิดที่ชัดเจน

-fdefault-ดับเบิ้ล-8
ตั้งค่าประเภท "DOUBLE PRECISION" เป็นประเภทกว้าง 8 ไบต์ อย่าทำอะไรเลยถ้ามันเป็นไปแล้ว
ค่าเริ่มต้น ถ้า -fdefault-real-8 จะได้รับ "DOUBLE PRECISION" แทนเป็น
เลื่อนระดับเป็น 16 ไบต์ถ้าเป็นไปได้และ -fdefault-ดับเบิ้ล-8 สามารถใช้เพื่อป้องกันสิ่งนี้
ชนิดของค่าคงที่จริงเช่น "1.d0" จะไม่ถูกเปลี่ยนโดย -fdefault-real-8 แม้ว่า
เช่นกัน -fdefault-ดับเบิ้ล-8 ไม่ส่งผลกระทบต่อมัน

-finteger-4-integer-8
เลื่อนระดับเอนทิตี "INTEGER(KIND=4)" ทั้งหมดให้เป็นเอนทิตี "INTEGER(KIND=8)" ถ้า "KIND=8"
ใช้งานไม่ได้ จะเกิดข้อผิดพลาด ควรใช้ตัวเลือกนี้อย่างระมัดระวัง
และอาจไม่เหมาะกับรหัสของคุณ พื้นที่ที่น่าเป็นห่วงรวมถึงการโทรไปที่
ขั้นตอนภายนอก, การจัดตำแหน่งใน "EQUIVALENCE" และ/หรือ "COMMON", อินเทอร์เฟซทั่วไป,
การแปลงค่าคงที่ตามตัวอักษร BOZ และ I/O การตรวจสอบระดับกลาง
การแสดงรหัส Fortran ที่แปลแล้ว ผลิตโดย -fdump-tree-ดั้งเดิม, เป็น
ข้อเสนอแนะ

-freal-4-real-8
-freal-4-real-10
-freal-4-real-16
-freal-8-real-4
-freal-8-real-10
-freal-8-real-16
เลื่อนระดับเอนทิตี "REAL(KIND=M)" ทั้งหมดเป็นเอนทิตี "REAL(KIND=N)" ถ้า "REAL(KIND=N)" เป็น
ไม่พร้อมใช้งานแล้วจะมีการแสดงข้อผิดพลาด ประเภทที่แท้จริงอื่น ๆ ทั้งหมดจะไม่ได้รับผลกระทบ
โดยตัวเลือกนี้ ควรใช้ตัวเลือกเหล่านี้ด้วยความระมัดระวังและอาจไม่เหมาะกับ
รหัสของคุณ ประเด็นที่น่าเป็นห่วง ได้แก่ การเรียกร้องให้ดำเนินการภายนอก การจัดตำแหน่ง
ใน "EQUIVALENCE" และ/หรือ "COMMON", อินเทอร์เฟซทั่วไป, การแปลงค่าคงที่ตามตัวอักษร BOZ,
และ I/O การตรวจสอบการแสดงสื่อกลางของ Fortran . ที่แปลแล้ว
รหัสผลิตโดย -fdump-tree-ดั้งเดิม, ขอแนะนำ

-std=มาตรฐาน
ระบุมาตรฐานที่โปรแกรมคาดว่าจะปฏิบัติตามซึ่งอาจเป็นหนึ่งใน
f95, f2003, f2008, ละมังอาฟริกาหัวคล้ายวัว,หรือ มรดก. ค่าเริ่มต้นสำหรับ มาตรฐาน is ละมังอาฟริกาหัวคล้ายวัวซึ่งระบุว่า
superset ของมาตรฐาน Fortran 95 ที่มีส่วนขยายทั้งหมดที่รองรับโดย
GNU Fortran แม้ว่าจะไม่มีคำเตือนสำหรับส่วนขยายที่ล้าสมัยก็ตาม
เพื่อใช้ในรหัสใหม่ NS มรดก มีค่าเท่ากัน แต่ไม่มีคำเตือนสำหรับ
ส่วนขยายที่ล้าสมัย และอาจมีประโยชน์สำหรับโปรแกรมเก่าที่ไม่ได้มาตรฐาน NS f95, f2003
และ f2008 ค่าระบุความสอดคล้องอย่างเคร่งครัดกับ Fortran 95, Fortran 2003 และ
มาตรฐาน Fortran 2008 ตามลำดับ; มีข้อผิดพลาดสำหรับส่วนขยายทั้งหมดที่อยู่นอกเหนือ
มาตรฐานภาษาที่เกี่ยวข้องและมีการเตือนสำหรับฟีเจอร์ Fortran 77 ที่
ได้รับอนุญาตแต่ล้าสมัยในมาตรฐานในภายหลัง -std=f2008ts อนุญาตให้ Fortran 2008
มาตรฐานรวมถึงการเพิ่มข้อกำหนดทางเทคนิค (TS) 29113 ในต่อไป
การทำงานร่วมกันของ Fortran กับ C และ TS 18508 ในคุณสมบัติคู่ขนานเพิ่มเติมใน
ฟอร์ทราน.

ทำให้สามารถ และ ปรับแต่ง การประมวลผลล่วงหน้า
ตัวเลือกที่เกี่ยวข้องกับตัวประมวลผลล่วงหน้า ดูหัวข้อ กระบวนการเตรียมการผลิต และ เงื่อนไข การรวบรวม for
ข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับการประมวลผลล่วงหน้าใน กฟอร์ทราน.

-cpp
-nocpp
เปิดใช้งานการประมวลผลล่วงหน้า ตัวประมวลผลล่วงหน้าจะถูกเรียกใช้โดยอัตโนมัติหากนามสกุลไฟล์
is .fpp, .FPP, .F, .สำหรับ, .FTN, .F90, .F95, .F03 or .F08. ใช้ตัวเลือกนี้เพื่อด้วยตนเอง
เปิดใช้งานการประมวลผลล่วงหน้าของไฟล์ Fortran ชนิดใดก็ได้

ในการปิดใช้งานการประมวลผลไฟล์ล่วงหน้าที่มีนามสกุลใด ๆ ที่ระบุไว้ข้างต้น ให้ใช้ปุ่ม
รูปแบบเชิงลบ: -nocpp.

พรีโปรเซสเซอร์ทำงานในโหมดดั้งเดิม ข้อจำกัดของรูปแบบไฟล์
โดยเฉพาะขีดจำกัดความยาวบรรทัด ใช้สำหรับเอาต์พุตที่ประมวลผลล่วงหน้าด้วย ดังนั้น
อาจแนะนำให้ใช้ -ffree-line-length-none or -ffixed-line-length-none
ตัวเลือก

-dM แทนที่จะสร้างเอาต์พุตปกติ ให้สร้างรายการคำสั่ง '#define' สำหรับ .ทั้งหมด
มาโครที่กำหนดไว้ระหว่างการดำเนินการของตัวประมวลผลล่วงหน้า รวมถึงมาโครที่กำหนดไว้ล่วงหน้า
วิธีนี้จะช่วยให้คุณค้นพบว่ามีอะไรที่กำหนดไว้ล่วงหน้าในเวอร์ชันของ
พรีโปรเซสเซอร์ สมมติว่าคุณไม่มีไฟล์ foo.f90, คำสั่ง

แตะ foo.f90; gfortran -cpp -E -dM foo.f90

จะแสดงมาโครที่กำหนดไว้ล่วงหน้าทั้งหมด

-dD ชอบ -dM ยกเว้นในสองประการ: ไม่รวมมาโครที่กำหนดไว้ล่วงหน้า และมัน
ส่งออกทั้งคำสั่ง "#define" และผลลัพธ์ของการประมวลผลล่วงหน้า ทั้งสองแบบ
เอาต์พุตไปที่ไฟล์เอาต์พุตมาตรฐาน

-dN ชอบ -dDแต่ให้แสดงเฉพาะชื่อมาโคร ไม่ใช่ส่วนขยาย

-dU ชอบ dD ยกเว้นเฉพาะมาโครที่ขยายออกหรือทดสอบความชัดเจนใน
คำสั่งของตัวประมวลผลล่วงหน้าเป็นเอาต์พุต เอาต์พุตล่าช้าจนกว่าการใช้งานหรือการทดสอบของ
มาโคร; และคำสั่ง '#undef' ก็จะถูกส่งออกสำหรับมาโครที่ทดสอบแต่ไม่ได้กำหนดไว้ที่
เวลา.

-dI เอาต์พุตคำสั่ง '#include' นอกเหนือจากผลลัพธ์ของการประมวลผลล่วงหน้า

-fworking-ไดเรกทอรี
เปิดใช้งานการสร้าง linemarkers ในเอาต์พุตตัวประมวลผลล่วงหน้าที่จะให้คอมไพเลอร์
ทราบไดเร็กทอรีการทำงานปัจจุบันในขณะที่ประมวลผลล่วงหน้า เมื่อตัวเลือกนี้คือ
เปิดใช้งาน ตัวประมวลผลล่วงหน้าจะปล่อยตัวทำเครื่องหมายเส้นที่สองหลังจากตัวทำเครื่องหมายเริ่มต้น
ด้วยไดเร็กทอรีการทำงานปัจจุบันตามด้วยสแลชสองตัว GCC จะใช้สิ่งนี้
ไดเร็กทอรี เมื่อมีอยู่ในอินพุตที่ประมวลผลล่วงหน้า ดังไดเร็กทอรีที่ปล่อยออกมาเป็น
ไดเร็กทอรีการทำงานปัจจุบันในรูปแบบข้อมูลการดีบักบางรูปแบบ ตัวเลือกนี้คือ
เปิดใช้งานโดยปริยายหากเปิดใช้งานข้อมูลการดีบัก แต่สิ่งนี้สามารถยับยั้งได้ด้วย
แบบฟอร์มปฏิเสธ -fno-working-ไดเรกทอรี. หาก -P มีแฟล็กอยู่ในคำสั่ง
บรรทัด ตัวเลือกนี้ไม่มีผล เนื่องจากไม่มีคำสั่ง "#line" ออกมาแต่อย่างใด

-idirafter dir
ค้นหา dir สำหรับรวมไฟล์ แต่ทำหลังจากไดเร็กทอรีทั้งหมดที่ระบุด้วย -I และ
ไดเร็กทอรีระบบมาตรฐานหมดแล้ว dir ถือเป็นระบบ
รวมไดเรกทอรี หาก dir ขึ้นต้นด้วย "=" ดังนั้น "=" จะถูกแทนที่ด้วย
คำนำหน้า sysroot; ดู --sysroot และ -isysroot.

-imultilib dir
ใช้ dir เป็นไดเร็กทอรีย่อยของไดเร็กทอรีที่มีส่วนหัว C++ เฉพาะเป้าหมาย

-iprefix อุปสรรค
ระบุ อุปสรรค เป็นคำนำหน้าต่อไป -iwithprefix ตัวเลือก. ถ้า อุปสรรค
หมายถึงไดเร็กทอรี คุณควรใส่ '/' สุดท้าย

-isysroot dir
ตัวเลือกนี้เหมือนกับ --sysroot ตัวเลือก แต่ใช้กับไฟล์ส่วนหัวเท่านั้น ดู
--sysroot ตัวเลือกสำหรับข้อมูลเพิ่มเติม

-iquote dir
ค้นหา dir สำหรับไฟล์ส่วนหัวที่ขอด้วย "#include "file" เท่านั้น; พวกเขาจะไม่
ค้นหา "#include ", ก่อนไดเร็กทอรีทั้งหมดที่ระบุโดย -I และก่อนที่จะ
ไดเร็กทอรีระบบมาตรฐาน ถ้า dir ขึ้นต้นด้วย "=" จากนั้น "=" จะถูกแทนที่ด้วย
คำนำหน้า sysroot; ดู --sysroot และ -isysroot.

-isystem dir
ค้นหา dir สำหรับไฟล์ส่วนหัวหลังจากไดเร็กทอรีทั้งหมดที่ระบุโดย -I แต่ก่อนที่
ไดเร็กทอรีระบบมาตรฐาน ทำเครื่องหมายว่าเป็นไดเร็กทอรีระบบ เพื่อให้ไดเร็กทอรีเหมือนกัน
การดูแลเป็นพิเศษตามที่ใช้กับไดเร็กทอรีระบบมาตรฐาน ถ้า dir เริ่มต้นด้วย
"=" จากนั้น "=" จะถูกแทนที่ด้วยคำนำหน้า sysroot; ดู --sysroot และ -isysroot.

-nostdinc
อย่าค้นหาไดเรกทอรีระบบมาตรฐานสำหรับไฟล์ส่วนหัว เฉพาะไดเรกทอรี
คุณได้ระบุด้วย -I ตัวเลือก (และไดเร็กทอรีของไฟล์ปัจจุบัน if
เหมาะสม) ถูกค้น

-undef
อย่ากำหนดมาโครเฉพาะระบบหรือเฉพาะ GCC ไว้ล่วงหน้า มาตรฐานที่กำหนดไว้ล่วงหน้า
มาโครยังคงกำหนดไว้

-Aคำกริยา=คำตอบ
ยืนยันด้วยภาคแสดง คำกริยา และตอบ คำตอบ. แบบฟอร์มนี้คือ
ต้องการรูปแบบที่เก่ากว่า -A เพรดิเคต (คำตอบ) ซึ่งยังคงได้รับการสนับสนุนเพราะมัน
ไม่ใช้อักขระพิเศษของเชลล์

-NS-คำกริยา=คำตอบ
ยกเลิกการยืนยันด้วยภาคแสดง คำกริยา และตอบ คำตอบ.

-C อย่าทิ้งความคิดเห็น ความคิดเห็นทั้งหมดจะถูกส่งผ่านไปยังไฟล์ที่ส่งออก ยกเว้น
สำหรับความคิดเห็นในคำสั่งที่ประมวลผลแล้ว ซึ่งจะถูกลบไปพร้อมกับคำสั่งนั้น

คุณควรเตรียมพร้อมสำหรับผลข้างเคียงเมื่อใช้ -C; มันทำให้พรีโปรเซสเซอร์ไป
ถือว่าความคิดเห็นเป็นโทเค็นในสิทธิของตนเอง ตัวอย่างเช่น ความคิดเห็นที่ปรากฏที่
จุดเริ่มต้นของสิ่งที่จะเป็น directive line มีผลกับการเปลี่ยนบรรทัดนั้นให้เป็น an
บรรทัดต้นทางธรรมดา เนื่องจากโทเค็นแรกในบรรทัดไม่ใช่ '#' อีกต่อไป

คำเตือน: ขณะนี้จัดการความคิดเห็น C-Style เท่านั้น ตัวประมวลผลล่วงหน้ายังไม่ได้
รับรู้ความคิดเห็นสไตล์ Fortran

- ปชช อย่าละทิ้งความคิดเห็น รวมทั้งระหว่างการขยายมาโคร ประมาณนี้ค่ะ -Cยกเว้น
ความคิดเห็นที่อยู่ภายในแมโครนั้นจะถูกส่งผ่านไปยังไฟล์เอาต์พุตด้วยโดยที่
มาโครถูกขยาย

นอกจากผลข้างเคียงของ -C ตัวเลือก, - ปชช ตัวเลือกทำให้เกิดสไตล์ C ++ ทั้งหมด
ความคิดเห็นภายในมาโครที่จะแปลงเป็นความคิดเห็นแบบ C เพื่อป้องกันภายหลัง
การใช้มาโครนั้นจากการแสดงความคิดเห็นส่วนที่เหลือของบรรทัดต้นทางโดยไม่ตั้งใจ
พื้นที่ปลูก - ปชช โดยทั่วไปจะใช้ตัวเลือกเพื่อสนับสนุนความคิดเห็นที่เป็นผ้าสำลี

คำเตือน: ขณะนี้จัดการความคิดเห็นสไตล์ C- และ C++ เท่านั้น ตัวประมวลผลล่วงหน้าทำ
ยังไม่รู้จักความคิดเห็นสไตล์ Fortran

-Dชื่อ
กำหนดชื่อล่วงหน้าเป็นมาโคร โดยมีคำจำกัดความ 1

-Dชื่อ=คำนิยาม
เนื้อหาของ คำนิยาม ถูก tokenized และประมวลผลราวกับว่ามันปรากฏขึ้นระหว่าง
ขั้นตอนการแปลที่สามในคำสั่ง '#define' โดยเฉพาะอย่างยิ่ง คำจำกัดความจะ
ถูกตัดทอนด้วยอักขระขึ้นบรรทัดใหม่แบบฝัง

หากคุณกำลังเรียกใช้ตัวประมวลผลล่วงหน้าจากเชลล์หรือโปรแกรมที่คล้ายเชลล์ คุณอาจต้อง
เพื่อใช้ไวยากรณ์การอ้างอิงของเชลล์เพื่อปกป้องอักขระเช่นช่องว่างที่มี
ความหมายในไวยากรณ์ของเชลล์

หากคุณต้องการกำหนดมาโครที่เหมือนฟังก์ชันบนบรรทัดคำสั่ง ให้เขียนอาร์กิวเมนต์ของมัน
รายการที่มีวงเล็บล้อมรอบก่อนเครื่องหมายเท่ากับ (ถ้ามี) วงเล็บคือ
มีความหมายกับเชลล์ส่วนใหญ่ ดังนั้น คุณจะต้องอ้างอิงตัวเลือก ด้วย sh และ csh
"-D'name(args...)=definition'" ใช้งานได้

-D และ -U ตัวเลือกจะได้รับการประมวลผลตามลำดับที่ได้รับบนบรรทัดคำสั่ง ทั้งหมด
ไฟล์ -imacros และตัวเลือกไฟล์ -include จะได้รับการประมวลผลหลังจากตัวเลือก -D และ -U ทั้งหมด

-H พิมพ์ชื่อของแต่ละไฟล์ส่วนหัวที่ใช้ นอกเหนือจากกิจกรรมปกติอื่นๆ แต่ละ
มีการเยื้องชื่อเพื่อแสดงว่าสแต็ก '#include' อยู่ลึกเพียงใด

-P ยับยั้งการสร้างเส้นในเอาต์พุตจากตัวประมวลผลล่วงหน้า นี่อาจจะเป็น
มีประโยชน์เมื่อรันตัวประมวลผลล่วงหน้าในสิ่งที่ไม่ใช่รหัส C และจะถูกส่ง
ไปยังโปรแกรมที่อาจสับสนโดยตัวทำเครื่องหมายเส้น

-Uชื่อ
ยกเลิกคำจำกัดความก่อนหน้าของ ชื่อสร้างขึ้นในหรือจัดให้มี -D ตัวเลือก

Options ไปยัง ขอ or ปราบปราม ข้อผิดพลาด และ คำเตือน
ข้อผิดพลาดคือข้อความวินิจฉัยที่รายงานว่าคอมไพเลอร์ GNU Fortran ไม่สามารถคอมไพล์ได้
ซอร์สโค้ดที่เกี่ยวข้อง คอมไพเลอร์จะทำการประมวลผลโปรแกรมต่อไปใน
ความพยายามที่จะรายงานข้อผิดพลาดเพิ่มเติมเพื่อช่วยในการดีบัก แต่จะไม่สร้างคอมไพล์ใด ๆ
เอาท์พุต

คำเตือนเป็นข้อความวินิจฉัยที่รายงานการก่อสร้างที่ไม่อยู่ในเนื้อแท้
ผิดพลาดแต่มีความเสี่ยงหรือมีแนวโน้มว่าจะมีจุดบกพร่องในโปรแกรม
เว้นแต่ -Werror ระบุไว้ ไม่ได้ป้องกันการคอมไพล์ของโปรแกรม

คุณสามารถขอคำเตือนเฉพาะมากมายพร้อมตัวเลือกเริ่มต้น -W, ตัวอย่างเช่น -Wimplicit
เพื่อขอคำเตือนเกี่ยวกับการประกาศโดยนัย แต่ละตัวเลือกการเตือนเฉพาะเหล่านี้ด้วย
มีรูปแบบเชิงลบเริ่มต้น -ไม่- เพื่อปิดคำเตือน ตัวอย่างเช่น, -Wno-โดยปริยาย.
คู่มือนี้แสดงรายการเพียงหนึ่งในสองแบบฟอร์ม แล้วแต่ว่ากรณีใดไม่ใช่ค่าเริ่มต้น

ตัวเลือกเหล่านี้ควบคุมจำนวนและประเภทของข้อผิดพลาดและคำเตือนที่สร้างโดย GNU Fortran:

-fmax-errors=n
จำกัดจำนวนข้อความแสดงข้อผิดพลาดสูงสุดไว้ที่ nณ จุดที่ GNU Fortran ประกันตัว
แทนที่จะพยายามประมวลผลซอร์สโค้ดต่อไป ถ้า n คือ 0 ไม่มี
จำกัดจำนวนข้อความแสดงข้อผิดพลาดที่ผลิต

-fsyntax-only
ตรวจสอบโค้ดเพื่อหาข้อผิดพลาดทางไวยากรณ์ แต่อย่าคอมไพล์มันจริงๆ สิ่งนี้จะทำให้เกิด
ไฟล์โมดูลสำหรับแต่ละโมดูลมีอยู่ในโค้ด แต่ไม่มีไฟล์เอาต์พุตอื่น

-อวดดี
ออกคำเตือนสำหรับการใช้ส่วนขยายของ Fortran 95 -อวดดี ยังใช้กับ
โครงสร้างภาษาซีซึ่งเกิดขึ้นในไฟล์ต้นฉบับของ GNU Fortran เช่นการใช้ \e
ในค่าคงที่อักขระภายในคำสั่งเช่น "#include"

โปรแกรม Fortran 95 ที่ถูกต้องควรคอมไพล์อย่างเหมาะสมโดยมีหรือไม่มีตัวเลือกนี้
อย่างไรก็ตาม หากไม่มีตัวเลือกนี้ ส่วนขยาย GNU บางรายการและฟีเจอร์ Fortran ดั้งเดิม
ได้รับการสนับสนุนเช่นกัน ด้วยตัวเลือกนี้ หลายคนถูกปฏิเสธ

ผู้ใช้บางคนลองใช้ -อวดดี เพื่อตรวจสอบความสอดคล้องของโปรแกรม ในไม่ช้าพวกเขาก็พบ
ว่ามันไม่ได้ทำในสิ่งที่พวกเขาต้องการ---พบการปฏิบัติที่ไม่เป็นมาตรฐานบางอย่าง แต่
ไม่ทั้งหมด. อย่างไรก็ตาม ยินดีรับการปรับปรุง GNU Fortran ในพื้นที่นี้

ควรใช้ร่วมกับ -std=f95, -std=f2003 or -std=f2008.

-pedantic-ข้อผิดพลาด
ชอบ -อวดดียกเว้นว่ามีการสร้างข้อผิดพลาดมากกว่าการเตือน

-ผนัง
เปิดใช้งานตัวเลือกคำเตือนที่ใช้กันทั่วไปเกี่ยวกับการใช้งานที่เราแนะนำให้หลีกเลี่ยง
และเราเชื่อว่าหลีกเลี่ยงได้ง่าย ซึ่งรวมถึง -วาเลียซิง,
-แวมเพอร์แซนด์, -Wconversion, - เซอร์ไพรส์, -Wc-binding-type, -Wintrinsics-std,
-Wno-แท็บ, -Wintrinsic-เงา, -Wline-ตัดสาย, -Wtarget-อายุการใช้งาน, -Wreal-q-ค่าคงที่
และ -Wunused.

-วาเลียซิง
เตือนเกี่ยวกับนามแฝงที่เป็นไปได้ของอาร์กิวเมนต์จำลอง โดยเฉพาะจะเตือนถ้าเหมือนกัน
อาร์กิวเมนต์จริงเชื่อมโยงกับอาร์กิวเมนต์จำลองที่มี "INTENT(IN)" และ dummy
อาร์กิวเมนต์ด้วย "INTENT(OUT)" ในการเรียกด้วยอินเทอร์เฟซที่ชัดเจน

ตัวอย่างต่อไปนี้จะทริกเกอร์คำเตือน

อินเตอร์เฟซ
แถบงานย่อย (a,b)
integer, เจตนา (ใน) :: a
จำนวนเต็ม, เจตนา(ออก) :: b
สิ้นสุดรูทีนย่อย
สิ้นสุดอินเทอร์เฟซ
จำนวนเต็ม :: a

แถบโทร (a,a)

-แวมเพอร์แซนด์
เตือนเกี่ยวกับเครื่องหมายและหายไปในค่าคงที่อักขระต่อเนื่อง คำเตือนจะได้รับ
กับ -แวมเพอร์แซนด์, -อวดดี, -std=f95, -std=f2003 และ -std=f2008. หมายเหตุ: ไม่มี
เครื่องหมายและที่กำหนดในค่าคงที่อักขระต่อเนื่อง GNU Fortran จะถือว่าความต่อเนื่องอยู่ที่
อักขระตัวแรกที่ไม่มีความคิดเห็นและไม่ใช่ช่องว่างหลังเครื่องหมายและที่เริ่มต้น
ความต่อเนื่อง

-Warray-ชั่วคราว
เตือนเกี่ยวกับอาร์เรย์ชั่วคราวที่สร้างโดยคอมไพเลอร์ ข้อมูลที่สร้างโดย
คำเตือนนี้มีประโยชน์ในบางครั้งในการเพิ่มประสิทธิภาพ เพื่อหลีกเลี่ยงเหตุการณ์ชั่วคราวดังกล่าว

-Wc-binding-type
เตือนหากตัวแปรอาจไม่สามารถทำงานร่วมกันได้กับ C โดยเฉพาะอย่างยิ่ง เตือนว่า
ตัวแปรได้รับการประกาศโดยใช้ประเภทที่แท้จริงกับชนิดเริ่มต้นแทนการใช้
พารามิเตอร์ชนิดที่กำหนดไว้สำหรับการทำงานร่วมกันของ C ใน "ISO_C_Binding" ที่แท้จริง
โมดูล. ตัวเลือกนี้มีความหมายโดย -ผนัง.

-Wcharacter-ตัดทอน
เตือนเมื่อการกำหนดอักขระจะตัดทอนสตริงที่กำหนด

-Wline-ตัดสาย
เตือนเมื่อบรรทัดซอร์สโค้ดจะถูกตัดทอน ตัวเลือกนี้มีความหมายโดย -ผนัง. สำหรับ
ซอร์สโค้ดรูปแบบอิสระ ค่าเริ่มต้นคือ -Werror=line-truncation เช่นนั้นการตัดทอน
ถูกรายงานว่าเป็นข้อผิดพลาด

-Wconversion
เตือนเกี่ยวกับการแปลงโดยนัยที่อาจเปลี่ยนค่าของนิพจน์
หลังการแปลง โดยนัยโดย -ผนัง.

-Wconversion-พิเศษ
เตือนเกี่ยวกับการแปลงโดยนัยระหว่างประเภทและประเภทต่างๆ ตัวเลือกนี้ไม่
ไม่ บ่งบอกถึง -Wconversion.

-Wextra
เปิดใช้งานตัวเลือกคำเตือนบางอย่างสำหรับการใช้งานคุณลักษณะภาษาที่อาจมีปัญหา
ซึ่งปัจจุบันรวมถึง -Wcompare-reals และ -Wunused-พารามิเตอร์.

-Wimplicit-อินเทอร์เฟซ
เตือนถ้าโพรซีเดอร์ถูกเรียกโดยไม่มีอินเตอร์เฟสที่ชัดเจน หมายเหตุนี่เป็นเพียงการตรวจสอบ
ว่ามีอินเทอร์เฟซที่ชัดเจน ไม่ได้ตรวจสอบว่าอินเทอร์เฟซที่ประกาศไว้
มีความสอดคล้องกันในหน่วยโปรแกรม

-Wimplicit-ขั้นตอน
เตือนหากมีการเรียกโพรซีเดอร์ที่ไม่มีอินเทอร์เฟซที่ชัดเจนหรือไม่เคยมี
ประกาศเป็น "ภายนอก"

-Wintrinsics-std
เตือนถ้า กฟอร์ทราน พบโพรซีเดอร์ที่ชื่อว่า intrinsic ที่ไม่มีใน
มาตรฐานที่เลือกในปัจจุบัน (ด้วย -std) และถือเป็นขั้นตอน "ภายนอก" เพราะ
ของสิ่งนี้ -fall-intrinsics สามารถใช้เพื่อไม่ให้เกิดพฤติกรรมนี้และเชื่อมโยงเสมอ
สู่ระดับภายในโดยไม่คำนึงถึงมาตรฐานที่เลือก

-Wreal-q-ค่าคงที่
สร้างคำเตือนหากค่าคงที่ตามตัวอักษรจริงมีอักษรชี้กำลัง "q"

- เซอร์ไพรส์
สร้างคำเตือนเมื่อพบโครงสร้างโค้ด "น่าสงสัย" ในขณะที่
ในทางเทคนิคแล้ว สิ่งเหล่านี้มักบ่งชี้ว่ามีข้อผิดพลาดเกิดขึ้น

ปัจจุบันนี้สร้างคำเตือนภายใต้สถานการณ์ต่อไปนี้:

* โครงสร้าง INTEGER SELECT มี CASE ที่ไม่สามารถจับคู่กับด้านล่างได้
มีค่ามากกว่าค่าบน

* โครงสร้าง LOGICAL SELECT มีคำสั่ง CASE สามคำสั่ง

* A TRANSFER ระบุแหล่งที่มาที่สั้นกว่าปลายทาง

* ประเภทของผลลัพธ์ของฟังก์ชันถูกประกาศมากกว่าหนึ่งครั้งด้วยประเภทเดียวกัน ถ้า
-อวดดี หรือเปิดใช้งานโหมดที่เป็นไปตามมาตรฐาน ซึ่งเป็นข้อผิดพลาด

* ตัวแปร "CHARACTER" ถูกประกาศด้วยความยาวติดลบ

-Wtabs
ตามค่าเริ่มต้น แท็บจะถือเป็นช่องว่าง แต่แท็บไม่ใช่สมาชิกของ Fortran
ชุดตัวอักษร. สำหรับบรรทัดต่อเนื่อง แท็บตามด้วยตัวเลขระหว่าง 1 ถึง 9 is
ได้รับการสนับสนุน. -Wtabs จะทำให้มีการออกคำเตือนหากพบแท็บ บันทึก,
-Wtabs มีการใช้งานสำหรับ -อวดดี, -std=f95, -std=f2003, -std=f2008, -std=f2008ts และ
-ผนัง.

-วันเดอร์โฟลว์
สร้างคำเตือนเมื่อพบนิพจน์คงที่ที่เป็นตัวเลข ซึ่งให้ผลลัพธ์เป็น
UNDERFLOW ระหว่างการรวบรวม เปิดใช้งานโดยค่าเริ่มต้น

-Wintrinsic-เงา
เตือนหากขั้นตอนที่ผู้ใช้กำหนดหรือขั้นตอนโมดูลมีชื่อเดียวกับ an
แท้จริง; ในกรณีนี้ อินเทอร์เฟซที่ชัดเจนหรือ "EXTERNAL" หรือ "INTRINSIC"
อาจจำเป็นต้องประกาศเพื่อรับสายในภายหลังเพื่อแก้ไขไปยังที่ต้องการ
ภายใน/ขั้นตอน ตัวเลือกนี้มีความหมายโดย -ผนัง.

-Wuse-โดยไม่ต้อง-only
เตือนหากคำสั่ง "ใช้" ไม่มีตัวระบุ "เท่านั้น" และนำเข้าทั้งหมดโดยปริยาย
หน่วยงานสาธารณะของโมดูลที่ใช้

-Wunused-ดัมมี่-อาร์กิวเมนต์
เตือนเกี่ยวกับอาร์กิวเมนต์จำลองที่ไม่ได้ใช้ ตัวเลือกนี้มีความหมายโดย -ผนัง.

-Wunused-พารามิเตอร์
ตรงกันข้ามกับ gccความหมายของ -Wunused-พารามิเตอร์, กฟอร์ทรานการดำเนินการนี้
ตัวเลือกไม่เตือนเกี่ยวกับอาร์กิวเมนต์จำลองที่ไม่ได้ใช้ (ดู -Wunused-ดัมมี่-อาร์กิวเมนต์) แต่
เกี่ยวกับค่า "PARAMETER" ที่ไม่ได้ใช้ -Wunused-พารามิเตอร์ มีความหมายโดย -Wextra ถ้ายัง
-Wunused or -ผนัง ถูกนำมาใช้.

-Walign-คอมมอนส์
โดยค่าเริ่มต้น กฟอร์ทราน เตือนเกี่ยวกับโอกาสใด ๆ ของตัวแปรที่ถูกเสริมเพื่อความเหมาะสม
การจัดตำแหน่งภายในบล็อก "COMMON" คำเตือนนี้สามารถปิดได้ผ่าน
-Wno-align-คอมมอนส์. ดูเพิ่มเติม -falign-commons.

-Wfunction-กำจัด
เตือนหากการเรียกใช้ฟังก์ชันใด ๆ ถูกกำจัดโดยการปรับให้เหมาะสมที่เปิดใช้งานโดย
-ffrontend-เพิ่มประสิทธิภาพ ตัวเลือก

-Wrealloc-lhs
เตือนเมื่อคอมไพเลอร์อาจแทรกโค้ดสำหรับการจัดสรรหรือการจัดสรรใหม่ของan
ตัวแปรอาร์เรย์ที่จัดสรรได้ของประเภทที่แท้จริงในการมอบหมายที่แท้จริง ในลูปร้อน
คุณลักษณะการจัดสรรใหม่ของ Fortran 2003 อาจลดประสิทธิภาพการทำงาน ถ้าอาร์เรย์เป็น
จัดสรรแล้วด้วยรูปทรงที่ถูกต้อง ลองใช้ทั้งอาร์เรย์อาร์เรย์-spec
(เช่น "(:,:,:)") สำหรับตัวแปรทางด้านซ้ายมือเพื่อป้องกันการจัดสรรใหม่
ตรวจสอบ. โปรดทราบว่าในบางกรณี คำเตือนจะปรากฏขึ้น แม้ว่าคอมไพเลอร์จะ
เพิ่มประสิทธิภาพการตรวจสอบการจัดสรรใหม่ ตัวอย่างเช่น เมื่อทางด้านขวามือประกอบด้วย
ตัวแปรเดียวกันคูณด้วยสเกลาร์ ดูสิ่งนี้ด้วย -frealloc-lhs.

-Wrealloc-lhs-all
เตือนเมื่อคอมไพเลอร์แทรกโค้ดสำหรับการจัดสรรหรือการจัดสรรใหม่ของan
ตัวแปรที่จัดสรรได้ ซึ่งรวมถึงสเกลาร์และประเภทที่ได้รับ

-Wcompare-reals
เตือนเมื่อเปรียบเทียบประเภทจริงหรือซับซ้อนสำหรับความเท่าเทียมกันหรือความไม่เท่าเทียมกัน ตัวเลือกนี้คือ
หมายถึงโดย -Wextra.

-Wtarget-อายุการใช้งาน
เตือนหากตัวชี้ในการกำหนดตัวชี้อาจยาวกว่าเป้าหมาย นี้
ตัวเลือกมีนัยโดย -ผนัง.

-Wzerotrip
เตือนหากทราบว่าลูป "DO" เรียกใช้งานเป็นศูนย์ ณ เวลาคอมไพล์ ตัวเลือกนี้คือ
หมายถึงโดย -ผนัง.

-Werror
เปลี่ยนคำเตือนทั้งหมดเป็นข้อผิดพลาด

สิ่งเหล่านี้บางส่วนไม่มีผลเมื่อรวบรวมโปรแกรมที่เขียนใน Fortran

Options for การแก้จุดบกพร่อง ธุรกิจ โครงการ or GNU ฟอร์แทรน
GNU Fortran มีตัวเลือกพิเศษมากมายที่ใช้สำหรับการดีบักโปรแกรมของคุณหรือ
คอมไพเลอร์ GNU Fortran

-fdump-fortran-ดั้งเดิม
ส่งออกแผนผังการแยกวิเคราะห์ภายในหลังจากแปลโปรแกรมต้นทางเป็น internal
การเป็นตัวแทน มีประโยชน์จริง ๆ สำหรับการดีบักคอมไพเลอร์ GNU Fortran เท่านั้น

-fdump-fortran-optimized
ส่งออกแผนผังการแยกวิเคราะห์หลังจากการเพิ่มประสิทธิภาพส่วนหน้า มีประโยชน์จริงๆสำหรับการดีบักเท่านั้น
คอมไพเลอร์ GNU Fortran เอง

-fdump-parse-tree
ส่งออกแผนผังการแยกวิเคราะห์ภายในหลังจากแปลโปรแกรมต้นทางเป็น internal
การเป็นตัวแทน มีประโยชน์จริง ๆ สำหรับการดีบักคอมไพเลอร์ GNU Fortran เท่านั้น
ตัวเลือกนี้เลิกใช้แล้ว ใช้ "-fdump-fortran-original" แทน

-ffpe-กับดัก=รายการ
ระบุรายการกับดักข้อยกเว้นทศนิยมที่จะเปิดใช้งาน ในระบบส่วนใหญ่ ถ้า a
เกิดข้อยกเว้นจุดทศนิยมและเปิดใช้งานกับดักสำหรับข้อยกเว้นนั้น SIGFPE
สัญญาณจะถูกส่งและโปรแกรมถูกยกเลิกสร้างไฟล์หลักที่เป็นประโยชน์สำหรับ
การแก้จุดบกพร่อง รายการ เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค (อาจว่างเปล่า) ต่อไปนี้
ข้อยกเว้น: โมฆะ (การดำเนินการทศนิยมไม่ถูกต้อง เช่น "SQRT(-1.0)") เป็นศูนย์
(การหารด้วยศูนย์), ล้น (ล้นในการดำเนินการจุดลอยตัว) ล้น
(อันเดอร์โฟลว์ในการดำเนินการจุดลอยตัว) ไม่แน่นอน (สูญเสียความแม่นยำระหว่าง
การดำเนินงาน) และ ผิดปกติ (ดำเนินการด้วยค่าดีนอร์มอล) ห้าคนแรก
ข้อยกเว้นสอดคล้องกับข้อยกเว้น IEEE 754 ห้ารายการในขณะที่ข้อยกเว้นสุดท้าย (ผิดปกติ)
ไม่ได้เป็นส่วนหนึ่งของมาตรฐาน IEEE 754 แต่มีอยู่ในสถาปัตยกรรมทั่วไปบางตัว
เช่น x86

ข้อยกเว้นสามข้อแรก (โมฆะ, เป็นศูนย์และ ล้น) มักบ่งบอกว่าจริงจัง
ข้อผิดพลาด และเว้นแต่โปรแกรมจะมีข้อกำหนดสำหรับจัดการกับข้อยกเว้นเหล่านี้
การเปิดใช้งานกับดักสำหรับข้อยกเว้นทั้งสามนี้น่าจะเป็นความคิดที่ดี

การดำเนินการจุดลอยตัวจำนวนมากนั้นสูญเสียความแม่นยำเนื่องจากการปัดเศษ
และด้วยเหตุนี้ "ffpe-trap=inexact" จึงไม่น่าสนใจในทางปฏิบัติ

โดยค่าเริ่มต้น จะไม่มีการเปิดใช้งานกับดักข้อยกเว้น

-ffpe-สรุป=รายการ
ระบุรายการข้อยกเว้นทศนิยม ซึ่งสถานะแฟล็กถูกพิมพ์ไปที่
"ERROR_UNIT" เมื่อเรียกใช้ "STOP" และ "ERROR STOP" รายการ สามารถเป็นได้ทั้ง ไม่มี, ทั้งหมด หรือ
รายการที่คั่นด้วยเครื่องหมายจุลภาคของข้อยกเว้นต่อไปนี้: โมฆะ, เป็นศูนย์, ล้น, ล้น,
ไม่แน่นอน และ ผิดปกติ. (ดู -ffpe-กับดัก เพื่ออธิบายข้อยกเว้น)

โดยค่าเริ่มต้น สรุปสำหรับข้อยกเว้นทั้งหมดแต่ ไม่แน่นอน จะแสดง

-fno-backtrace
เมื่อพบข้อผิดพลาดรันไทม์ที่ร้ายแรงหรือส่งสัญญาณถึงตาย
(ความผิดพลาดในการแบ่งส่วน, คำสั่งที่ผิดกฎหมาย, ข้อผิดพลาดของบัส, ข้อยกเว้นทศนิยม และ
สัญญาณ POSIX อื่น ๆ ที่มีการดำเนินการ แกน) ไลบรารีรันไทม์ของ Fortran พยายาม
ส่งออก backtrace ของข้อผิดพลาด "-fno-backtrace" ปิดใช้งานการสร้าง backtrace
ตัวเลือกนี้มีผลกับการรวบรวมโปรแกรมหลักของ Fortran เท่านั้น

Options for ไดเรกทอรี ค้นหา
ตัวเลือกเหล่านี้ส่งผลต่อวิธีที่ GNU Fortran ค้นหาไฟล์ที่ระบุโดย "INCLUDE"
คำสั่งและตำแหน่งที่จะค้นหาโมดูลที่รวบรวมไว้ก่อนหน้านี้

นอกจากนี้ยังส่งผลต่อเส้นทางการค้นหาที่ใช้โดย cpp เมื่อใช้เพื่อพรีโพรเซสแหล่งที่มาของ Fortran

-Idir
สิ่งเหล่านี้ส่งผลต่อการตีความคำสั่ง "INCLUDE" (เช่นเดียวกับ "#include"
คำสั่งของ cpp พรีโปรเซสเซอร์)

พึงทราบด้วยว่าพฤติกรรมทั่วไปของ -I และ "INCLUDE" ก็แทบจะเหมือนกับของ
-I ด้วย "#include" ใน cpp ตัวประมวลผลล่วงหน้า เกี่ยวกับการมองหา header.gcc
ไฟล์และสิ่งอื่น ๆ ดังกล่าว

เส้นทางนี้ยังใช้ในการค้นหา .mod ไฟล์เมื่อโมดูลที่คอมไพล์ก่อนหน้านี้คือ
กำหนดโดยคำสั่ง "ใช้"

-Jdir
ตัวเลือกนี้ระบุตำแหน่งที่จะวาง .mod ไฟล์สำหรับโมดูลที่คอมไพล์แล้ว นอกจากนี้ยังเพิ่ม
ไปที่รายการไดเร็กทอรีเพื่อค้นหาด้วยคำสั่ง "USE"

ค่าดีฟอลต์คือไดเร็กทอรีปัจจุบัน

-fintrinsic-modules-เส้นทาง dir
ตัวเลือกนี้ระบุตำแหน่งของโมดูลภายในที่คอมไพล์ล่วงหน้าแล้ว หากไม่ใช่
ในตำแหน่งเริ่มต้นที่คอมไพเลอร์คาดหวัง

ที่มีอิทธิพลต่อ การเชื่อมโยง ขั้นตอน
ตัวเลือกเหล่านี้จะมีผลเมื่อคอมไพเลอร์เชื่อมโยงไฟล์อ็อบเจ็กต์เข้ากับไฟล์ปฏิบัติการ
ไฟล์ที่ส่งออก สิ่งเหล่านี้ไม่มีความหมายหากคอมไพเลอร์ไม่ได้ทำขั้นตอนลิงก์

-static-libgfortran
เกี่ยวกับระบบที่ให้บริการ libgfortran เป็นไลบรารีที่ใช้ร่วมกันและแบบสแตติก ตัวเลือกนี้
บังคับให้ใช้เวอร์ชันคงที่ หากไม่มีเวอร์ชันที่ใช้ร่วมกันของ libgfortran ถูกสร้างขึ้น
เมื่อคอมไพเลอร์ได้รับการกำหนดค่า ตัวเลือกนี้จะไม่มีผลใดๆ

ที่มีอิทธิพลต่อ รันไทม์ พฤติกรรม
ตัวเลือกเหล่านี้ส่งผลต่อการทำงานรันไทม์ของโปรแกรมที่คอมไพล์ด้วย GNU Fortran

-fconvert=การแปลง
ระบุการแสดงข้อมูลสำหรับไฟล์ที่ไม่ได้จัดรูปแบบ ค่าที่ถูกต้องสำหรับการแปลง
คือ: พื้นเมือง, ค่าเริ่มต้น; แลกเปลี่ยน, สลับระหว่าง big- และ little-endian; บิ๊กเอนด์, ใช้
การแสดง big-endian สำหรับไฟล์ที่ไม่ได้จัดรูปแบบ น้อย endian, ใช้ little-endian
การแสดงสำหรับไฟล์ที่ไม่ได้จัดรูปแบบ

ตัวเลือก มี an ผล เท่านั้น เมื่อ มือสอง in หลัก โครงการ พื้นที่ปลูก "แปลง" ตัวระบุ
และ GFORTRAN_CONVERT_UNIT สิ่งแวดล้อม ตัวแปร แทนที่ ผิดนัด ที่ระบุไว้ by
-fconvert.

-frecord-marker=ความยาว
ระบุความยาวของตัวทำเครื่องหมายบันทึกสำหรับไฟล์ที่ไม่ได้จัดรูปแบบ ค่าที่ถูกต้องสำหรับ ความยาว
คือ 4 และ 8 ค่าเริ่มต้นคือ 4 is ต่าง ราคาเริ่มต้นที่ ก่อน รุ่น of กฟอร์ทราน,
ซึ่งระบุความยาวเครื่องหมายบันทึกเริ่มต้นเป็น 8 ในระบบส่วนใหญ่ ถ้าคุณต้องการ
อ่านหรือเขียนไฟล์ที่เข้ากันได้กับ . เวอร์ชันก่อนหน้า กฟอร์ทราน, ใช้
-frecord-marker=8.

-fmax-subrecord-length=ความยาว
ระบุความยาวสูงสุดสำหรับเรกคอร์ดย่อย ค่าความยาวสูงสุดที่อนุญาตคือ
2147483639 ซึ่งเป็นค่าเริ่มต้นเช่นกัน มีประโยชน์จริง ๆ สำหรับการใช้งานโดย gfortran . เท่านั้น
ชุดทดสอบ

-fsign-ศูนย์
เมื่อเปิดใช้งาน จะมีการเขียนเลขทศนิยมของค่าศูนย์ด้วยชุดบิตเครื่องหมาย
เป็นจำนวนลบในเอาต์พุตที่จัดรูปแบบและถือเป็นค่าลบใน "SIGN"
ภายใน -fno-sign-ศูนย์ ไม่พิมพ์เครื่องหมายลบของค่าศูนย์ (หรือค่า
ปัดเศษเป็นศูนย์สำหรับ I/O) และถือว่าศูนย์เป็นจำนวนบวกใน "SIGN" intrinsic
เพื่อความเข้ากันได้กับ Fortran 77 ค่าเริ่มต้นคือ -fsign-ศูนย์.

Options for รหัส รุ่น การประชุม
ตัวเลือกที่ไม่ขึ้นกับเครื่องเหล่านี้จะควบคุมระเบียบอินเทอร์เฟซที่ใช้ในโค้ด
รุ่น

ส่วนใหญ่มีทั้งรูปแบบบวกและลบ รูปแบบเชิงลบของ -foo อยากจะเป็น
-fno-foo. ในตารางด้านล่าง มีเพียงแบบฟอร์มเดียวเท่านั้นที่แสดง---แบบฟอร์มที่ไม่ใช่
ค่าเริ่มต้น. คุณสามารถหาแบบฟอร์มอื่นได้โดยการลบ ที่ไม่มี หรือเพิ่ม

-fno-อัตโนมัติ
ปฏิบัติต่อแต่ละหน่วยโปรแกรม (ยกเว้นที่ทำเครื่องหมายเป็น RECURSIVE) เหมือนกับว่าคำสั่ง "SAVE"
ถูกระบุสำหรับตัวแปรโลคัลทุกตัวและอาร์เรย์ที่อ้างอิงในนั้น ไม่ส่งผลกระทบ
บล็อกทั่วไป (คอมไพเลอร์ Fortran บางตัวมีตัวเลือกนี้ภายใต้ชื่อ -คงที่ or
- บันทึก.) ค่าเริ่มต้น ซึ่งก็คือ -fautomatic, ใช้ stack สำหรับตัวแปรท้องถิ่นที่มีขนาดเล็กลง
กว่าค่าที่กำหนดโดย -fmax-stack-var-size. ใช้ตัวเลือก -frecursive ใช้ no
หน่วยความจำแบบคงที่

-ff2c
สร้างรหัสที่ออกแบบมาให้เข้ากันได้กับรหัสที่สร้างโดย g77 และ f2c.

แบบแผนการเรียกที่ใช้โดย g77 (เริ่มดำเนินการใน f2c) ต้องการฟังก์ชั่น
ประเภทการส่งคืนเริ่มต้น "REAL" เพื่อคืนค่าประเภท C "double" และ functions
ที่ส่งคืนประเภท "COMPLEX" เพื่อคืนค่าผ่านอาร์กิวเมนต์พิเศษในการเรียก
ลำดับที่ชี้ไปยังตำแหน่งที่จะเก็บค่าส่งคืน ภายใต้ค่าเริ่มต้น GNU
เรียกอนุสัญญา ฟังก์ชันดังกล่าวจะส่งกลับผลลัพธ์ตามที่ควรจะเป็นใน GNU
C --- ฟังก์ชัน "REAL" เริ่มต้นจะคืนค่าประเภท C "float" และฟังก์ชัน "COMPLEX" จะส่งคืน
GNU C ประเภท "ซับซ้อน" นอกจากนี้ ตัวเลือกนี้หมายถึง -fsecond-ขีดล่าง
ตัวเลือก เว้นแต่ -fno-วินาที-ขีดล่าง ร้องขออย่างชัดแจ้ง

สิ่งนี้ไม่ส่งผลกระทบต่อการสร้างรหัสที่เชื่อมต่อกับ libgfortran
ห้องสมุด.

ข้อควรระวัง: ไม่ควรผสมโค้ด Fortran ที่คอมไพล์ด้วย -ff2c ด้วยรหัส
เรียบเรียงโดยค่าเริ่มต้น -fno-f2c เรียกอนุสัญญาว่า เรียก "COMPLEX" หรือ
ฟังก์ชัน "REAL" เริ่มต้นระหว่างส่วนของโปรแกรมที่คอมไพล์ด้วย different
การเรียกประชุมจะหยุดชะงักในเวลาดำเนินการ

ข้อควรระวัง: การดำเนินการนี้จะทำลายโค้ดที่ส่งผ่านฟังก์ชันที่แท้จริงของประเภทเริ่มต้น "REAL"
หรือ "COMPLEX" เป็นอาร์กิวเมนต์จริง เนื่องจากการใช้งานไลบรารีใช้ the -fno-f2c
เรียกประชุม

-fno-ขีดเส้นใต้
ห้ามเปลี่ยนชื่อเอนทิตีที่ระบุในไฟล์ต้นทาง Fortran โดยผนวก
ขีดเส้นใต้ให้พวกเขา

กับ -ระดมทุน โดยมีผลบังคับ GNU Fortran ต่อท้ายหนึ่งขีดกับชื่อภายนอก
โดยไม่มีขีดเส้นใต้ สิ่งนี้ทำเพื่อให้แน่ใจว่าเข้ากันได้กับรหัสที่สร้างโดยหลาย ๆ คน
คอมไพเลอร์ UNIX Fortran

คำเตือน: พฤติกรรมเริ่มต้นของ GNU Fortran ไม่เข้ากันกับ f2c และ g77โปรด
ใช้ -ff2c ตัวเลือกถ้าคุณต้องการให้ไฟล์อ็อบเจ็กต์คอมไพล์ด้วย GNU Fortran เป็น
เข้ากันได้กับรหัสวัตถุที่สร้างด้วยเครื่องมือเหล่านี้

การใช้งานของ -fno-ขีดเส้นใต้ ไม่แนะนำเว้นแต่คุณกำลังทดลองกับปัญหา
เช่นการรวม GNU Fortran เข้ากับสภาพแวดล้อมของระบบที่มีอยู่ (vis-a-vis
ไลบรารี เครื่องมือ และอื่นๆ ที่มีอยู่)

ตัวอย่างเช่นด้วย -ระดมทุนและสมมติว่า "j()" และ "max_count()" เป็น
ฟังก์ชั่นภายนอกในขณะที่ "my_var" และ "lvar" เป็นตัวแปรโลคัลคำสั่งเช่น

ฉัน = J() + MAX_COUNT (MY_VAR, LVAR)

ถูกนำไปใช้เป็นสิ่งที่คล้ายกับ:

ผม = j_() + max_count__(&my_var__, &lvar);

กับ -fno-ขีดเส้นใต้, คำสั่งเดียวกันถูกนำมาใช้เป็น:

ผม = j() + max_count(&my_var, &lvar);

การใช้งานของ -fno-ขีดเส้นใต้ อนุญาตให้ระบุชื่อที่ผู้ใช้กำหนดได้โดยตรงในขณะที่
การดีบักและเมื่อเชื่อมต่อโค้ด GNU Fortran กับภาษาอื่น

โปรดทราบว่าเพียงเพราะชื่อตรงกันไม่ ไม่ หมายความว่าส่วนต่อประสานที่ดำเนินการโดย
GNU Fortran สำหรับชื่อภายนอกตรงกับอินเทอร์เฟซที่ใช้งานโดยผู้อื่น
ภาษาสำหรับชื่อเดียวกันนั้น นั่นคือการรับโค้ดที่สร้างโดย GNU Fortran เพื่อเชื่อมโยงไปยัง
รหัสที่สร้างโดยคอมไพเลอร์อื่นโดยใช้วิธีนี้หรือวิธีอื่นใดสามารถเป็นได้เท่านั้น
ส่วนเล็ก ๆ ของวิธีแก้ปัญหาโดยรวม---รับรหัสที่สร้างโดยคอมไพเลอร์ทั้งสองถึง
เห็นด้วยกับประเด็นอื่นนอกเหนือจากการตั้งชื่ออาจต้องใช้ความพยายามอย่างมาก และแตกต่างจากการตั้งชื่อ
ความขัดแย้ง โดยปกติผู้เชื่อมโยงไม่สามารถตรวจพบความขัดแย้งในด้านอื่น ๆ เหล่านี้ได้

นอกจากนี้ โปรดทราบว่าด้วย -fno-ขีดเส้นใต้ขาดการขีดเส้นใต้แนะนำ
ความเป็นไปได้ที่แท้จริงที่ชื่อภายนอกที่ผู้ใช้กำหนดจะขัดแย้งกับชื่อ
ในไลบรารีระบบ ซึ่งอาจทำให้ค้นหาจุดบกพร่องที่อ้างอิงที่ไม่ได้รับการแก้ไขได้ค่อนข้างมาก
ยากในบางกรณี---อาจเกิดขึ้นที่รันไทม์ของโปรแกรม และแสดงเฉพาะเป็น
พฤติกรรมบั๊กกี้ในเวลาทำงาน

ในเวอร์ชันต่อๆ ไปของ GNU Fortran เราหวังว่าจะปรับปรุงการตั้งชื่อและการเชื่อมโยงปัญหาเพื่อให้
การดีบักมักเกี่ยวข้องกับการใช้ชื่อตามที่ปรากฏในแหล่งที่มา แม้ว่า
ชื่อที่เห็นโดยตัวเชื่อมโยงจะถูกทำลายเพื่อป้องกันการเชื่อมโยงโดยไม่ได้ตั้งใจระหว่าง
ขั้นตอนที่มีอินเทอร์เฟซที่เข้ากันไม่ได้

-fsecond-ขีดล่าง
โดยค่าเริ่มต้น GNU Fortran จะเพิ่มขีดล่างให้กับชื่อภายนอก หากตัวเลือกนี้คือ
ใช้ GNU Fortran ต่อท้ายสองขีดล่างชื่อที่มีขีดล่างและขีดล่างหนึ่งอัน
กับชื่อภายนอกที่ไม่มีขีดล่าง GNU Fortran ยังต่อท้ายสองขีดล่างเพื่อ
ชื่อภายในที่มีขีดล่างเพื่อหลีกเลี่ยงการตั้งชื่อที่ขัดแย้งกับชื่อภายนอก

ตัวเลือกนี้ไม่มีผลถ้า -fno-ขีดเส้นใต้ มีผลบังคับใช้ มันมีความหมายโดย
-ff2c ตัวเลือก

มิฉะนั้น ด้วยตัวเลือกนี้ ชื่อภายนอก เช่น "MAX_COUNT" จะถูกนำไปใช้เป็น a
อ้างอิงถึงสัญลักษณ์ภายนอกเวลาลิงก์ "max_count__" แทนที่จะเป็น "max_count_"
สิ่งนี้จำเป็นสำหรับความเข้ากันได้กับ g77 และ f2cและมีความหมายโดยนัยโดยใช้
-ff2c ตัวเลือก

-fcoarray=
ไม่มี
ปิดใช้งานการสนับสนุน coarray; ใช้การประกาศ coarray และคำสั่งควบคุมภาพ
จะทำให้เกิดข้อผิดพลาดในการคอมไพล์ (ค่าเริ่มต้น)

เดียว
โหมดภาพเดี่ยว เช่น "num_images()" เป็นโหมดเดียวเสมอ

lib การขนาน coarray แบบใช้ไลบรารี ไลบรารี coarray ของ GNU Fortran ที่เหมาะสม
จะต้องมีการเชื่อมโยง

-fcheck=
เปิดใช้งานการสร้างการตรวจสอบรันไทม์ อาร์กิวเมนต์จะเป็นรายการที่คั่นด้วยจุลภาค
ของคีย์เวิร์ดต่อไปนี้

ทั้งหมด เปิดใช้งานการทดสอบรันไทม์ทั้งหมดของ -fcheck.

array-temps
เตือนเมื่อรันไทม์เมื่อส่งอาร์กิวเมนต์จริง อาร์เรย์ชั่วคราวต้องเป็น
สร้างขึ้น ข้อมูลที่สร้างโดยคำเตือนนี้บางครั้งอาจมีประโยชน์ใน
การเพิ่มประสิทธิภาพเพื่อหลีกเลี่ยงการชั่วคราวดังกล่าว

หมายเหตุ: คำเตือนจะพิมพ์เพียงครั้งเดียวต่อสถานที่

ขอบเขต
เปิดใช้งานการสร้างการตรวจสอบรันไทม์สำหรับตัวห้อยอาร์เรย์และเทียบกับการประกาศ
ค่าต่ำสุดและสูงสุด นอกจากนี้ยังตรวจสอบดัชนีอาร์เรย์สำหรับการสันนิษฐานและรอการตัดบัญชี
อาร์เรย์รูปร่างเทียบกับขอบเขตที่จัดสรรจริงและทำให้มั่นใจว่าสตริงทั้งหมด
ความยาวเท่ากันสำหรับตัวสร้างอาร์เรย์อักขระโดยไม่มี typespec ที่ชัดเจน

การตรวจสอบบางอย่างกำหนดให้ -fcheck=ขอบเขต ถูกตั้งค่าสำหรับการรวบรวมของ main
โครงการ

หมายเหตุ: ในอนาคตอาจรวมถึงการตรวจสอบในรูปแบบอื่นด้วย เช่น การตรวจสอบ
การอ้างอิงสตริงย่อย

do เปิดใช้งานการสร้างการตรวจสอบรันไทม์สำหรับการแก้ไขการวนซ้ำที่ไม่ถูกต้อง
ตัวแปร

Mem เปิดใช้งานการสร้างการตรวจสอบรันไทม์สำหรับการจัดสรรหน่วยความจำ หมายเหตุ: ตัวเลือกนี้
ไม่มีผลกับการจัดสรรอย่างชัดเจนโดยใช้คำสั่ง "ALLOCATE" ซึ่งจะเป็น
ตรวจสอบอยู่เสมอ

ตัวชี้
เปิดใช้งานการสร้างการตรวจสอบรันไทม์สำหรับพอยน์เตอร์และการจัดสรร

การเรียกซ้ำ
เปิดใช้งานการสร้างการตรวจสอบรันไทม์สำหรับรูทีนย่อยที่เรียกซ้ำและ
ฟังก์ชันที่ไม่ได้ทำเครื่องหมายเป็นแบบเรียกซ้ำ ดูสิ่งนี้ด้วย -frecursive. หมายเหตุ: นี้
การตรวจสอบไม่ทำงานสำหรับโปรแกรม OpenMP และถูกปิดใช้งานหากใช้ร่วมกับ
-frecursive และ -fopenmp.

-fbounds-check
เลิกใช้นามแฝงสำหรับ -fcheck=ขอบเขต.

-fcheck-array-temporaries
เลิกใช้นามแฝงสำหรับ -fcheck=array-temps.

-fmax-array-constructor=n
สามารถใช้ตัวเลือกนี้เพื่อเพิ่มขีดจำกัดบนที่อนุญาตในตัวสร้างอาร์เรย์
โค้ดด้านล่างต้องใช้ตัวเลือกนี้เพื่อขยายอาร์เรย์ในเวลาคอมไพล์

ทดสอบโปรแกรม
โดยนัยไม่มี
จำนวนเต็ม j
จำนวนเต็ม พารามิเตอร์ :: n = 100000
จำนวนเต็ม พารามิเตอร์ :: i(n) = (/ (2*j, j = 1, n) /)
พิมพ์ '(10(I0,1X))', i
สิ้นสุดการทดสอบโปรแกรม

ข้อควรระวัง: ตัวเลือก สามารถ นำ ไปยัง ยาว รวบรวม ครั้ง และ เหลือล้น ใหญ่ วัตถุ
ไฟล์

ค่าเริ่มต้นสำหรับ n คือ 65535

-fmax-stack-var-size=n
ตัวเลือกนี้ระบุขนาดเป็นไบต์ของอาร์เรย์ที่ใหญ่ที่สุดที่จะวางบน
ซ้อนกัน; หากใช้หน่วยความจำสแตติกเกินขนาด (ยกเว้นในขั้นตอนที่ทำเครื่องหมายเป็น
ซ้ำ). ใช้ตัวเลือก -frecursive เพื่อให้มีขั้นตอนแบบเรียกซ้ำซึ่งไม่
มีแอตทริบิวต์ RECURSIVE หรือสำหรับโปรแกรมคู่ขนาน ใช้ -fno-อัตโนมัติ ที่ไม่เคยใช้
กอง

ปัจจุบันตัวเลือกนี้มีผลเฉพาะกับอาร์เรย์ในพื้นที่ที่ประกาศด้วยขอบเขตคงที่และอาจจะ
ใช้ไม่ได้กับตัวแปรอักขระทั้งหมด GNU Fortran รุ่นต่อๆ ไปอาจช่วยปรับปรุงสิ่งนี้
พฤติกรรม

ค่าเริ่มต้นสำหรับ n คือ 32768

-fstack-อาร์เรย์
การเพิ่มตัวเลือกนี้จะทำให้คอมไพเลอร์ Fortran ใส่อาร์เรย์ในเครื่องทั้งหมด แม้กระทั่งอาร์เรย์ของ
ขนาดที่ไม่รู้จักลงในหน่วยความจำสแต็ก หากโปรแกรมของคุณใช้อาร์เรย์ภายในเครื่องที่มีขนาดใหญ่มาก แสดงว่าเป็น
เป็นไปได้ว่าคุณจะต้องขยายขีด จำกัด รันไทม์สำหรับหน่วยความจำสแต็กในบางส่วน
ระบบปฏิบัติการ. แฟล็กนี้เปิดใช้งานโดยค่าเริ่มต้นที่ระดับการปรับให้เหมาะสม -Ofast.

-fpack-มาจาก
ตัวเลือกนี้บอกให้ GNU Fortran แพ็คสมาชิกประเภทที่ได้รับให้ใกล้เคียงที่สุด
รหัสที่คอมไพล์ด้วยตัวเลือกนี้มักจะเข้ากันไม่ได้กับโค้ดที่คอมไพล์โดยไม่มี
ตัวเลือกนี้และอาจทำงานช้าลง

-frepack-อาร์เรย์
ในบางกรณี GNU Fortran อาจส่งผ่านส่วนอาร์เรย์รูปร่างที่สมมติผ่าน a
descriptor อธิบายพื้นที่หน่วยความจำที่ไม่ต่อเนื่องกัน ตัวเลือกนี้จะเพิ่มรหัสให้กับ
บทนำของฟังก์ชันเพื่อแพ็คข้อมูลใหม่ลงในบล็อกต่อเนื่องกันที่รันไทม์

ซึ่งจะทำให้เข้าถึงอาร์เรย์ได้เร็วขึ้น อย่างไรก็ตามมันสามารถแนะนำ
ค่าโสหุ้ยที่สำคัญต่อการเรียกใช้ฟังก์ชัน โดยเฉพาะอย่างยิ่งเมื่อข้อมูลที่ส่งผ่านคือ
ไม่ต่อเนื่องกัน

-fshort-enums
ตัวเลือกนี้มีให้สำหรับการทำงานร่วมกันกับรหัส C ที่คอมไพล์ด้วย
-fshort-enums ตัวเลือก. จะทำให้ GNU Fortran เลือกชนิด "INTEGER" ที่เล็กที่สุด a
ชุดตัวแจงนับที่กำหนดจะพอดี และให้ตัวแจงนับทั้งหมดในลักษณะนี้

-fexternal-blas
ตัวเลือกนี้จะทำให้ กฟอร์ทราน สร้างการเรียกฟังก์ชัน BLAS สำหรับเมทริกซ์บางตัว
การดำเนินการเช่น "MATMUL" แทนที่จะใช้อัลกอริธึมของเราเองหากขนาดของ
เมทริกซ์ที่เกี่ยวข้องนั้นมากกว่าขีดจำกัดที่กำหนด (ดู -fblas-matmul-limit). นี่อาจจะเป็น
ทำกำไรได้หากมีไลบรารี BLAS ของผู้จำหน่ายที่ปรับให้เหมาะสม ห้องสมุด BLAS จะ
ต้องระบุในเวลาลิงค์

-fblas-matmul-limit=n
สำคัญก็ต่อเมื่อ -fexternal-blas มีผลบังคับใช้ การคูณเมทริกซ์ของเมทริกซ์
ที่มีขนาดที่ใหญ่กว่า (หรือเท่ากับ) n จะดำเนินการโดยการเรียกใช้ฟังก์ชัน BLAS
ในขณะที่คนอื่น ๆ จะถูกจัดการโดย กฟอร์ทราน อัลกอริธึมภายใน ถ้าเมทริกซ์เกี่ยวข้อง
ไม่ใช่สี่เหลี่ยมจัตุรัส การเปรียบเทียบขนาดจะดำเนินการโดยใช้ค่าเฉลี่ยเรขาคณิตของ
ขนาดของอาร์กิวเมนต์และเมทริกซ์ผลลัพธ์

ค่าเริ่มต้นสำหรับ n คือ 30

-frecursive
อนุญาตการเรียกซ้ำทางอ้อมโดยบังคับให้อาร์เรย์ภายในเครื่องทั้งหมดถูกจัดสรรบนสแต็ก
แฟล็กนี้ไม่สามารถใช้ร่วมกับ -fmax-stack-var-size= or -fno-อัตโนมัติ.

-finit-local-ศูนย์
-finit-integer=n
-finit-real=
-finit-ตรรกะ=
-finit-ตัวละคร=n
พื้นที่ปลูก -finit-local-ศูนย์ ตัวเลือกสั่งให้คอมไพเลอร์เริ่มต้น "INTEGER" ในพื้นที่
ตัวแปร "REAL" และ "COMPLEX" เป็นศูนย์ ตัวแปร "LOGICAL" เป็นเท็จ และ "CHARACTER"
ตัวแปรเป็นสตริงของ null ไบต์ ตัวเลือกการเริ่มต้นที่ละเอียดยิ่งขึ้นคือ
จัดทำโดย -finit-integer=n, -finit-real= (ซึ่งยัง
เริ่มต้นส่วนจริงและจินตภาพของตัวแปร "COMPLEX" ในพื้นที่)
-finit-ตรรกะ=และ -finit-ตัวละคร=n (ในกรณีที่ n เป็นอักขระ ASCII
ค่า) ตัวเลือก ตัวเลือกเหล่านี้ไม่เริ่มต้น

* อาร์เรย์ที่จัดสรรได้

* ส่วนประกอบของตัวแปรประเภทที่ได้รับ

* ตัวแปรที่ปรากฏในคำสั่ง "EQUIVALENCE"

(ข้อจำกัดเหล่านี้อาจถูกลบออกในรุ่นต่อๆ ไป)

โปรดทราบว่า -finit-real=nan ตัวเลือกเริ่มต้นตัวแปร "REAL" และ "COMPLEX" ด้วย a
น่าน เงียบ สำหรับการส่งสัญญาณ NaN ใช้ -finit-real=snan; อย่างไรก็ตามโปรดทราบว่าเวลารวบรวม
การเพิ่มประสิทธิภาพอาจแปลงเป็น NaN ที่เงียบและจำเป็นต้องเปิดใช้งานการดักจับ
(เช่น via -ffpe-กับดัก).

สุดท้าย โปรดทราบว่าการเปิดใช้งานใดๆ ของ -จบ-* ตัวเลือกจะปิดเสียงเตือนว่า
จะถูกปล่อยออกมาโดย - กำหนดค่าเริ่มต้น สำหรับตัวแปรท้องถิ่นที่ได้รับผลกระทบ

-falign-commons
โดยค่าเริ่มต้น กฟอร์ทราน บังคับใช้การจัดตำแหน่งที่เหมาะสมของตัวแปรทั้งหมดในบล็อก "COMMON" โดย
บุนวมได้ตามต้องการ ในบางแพลตฟอร์ม สิ่งนี้จำเป็น สำหรับแพลตฟอร์มอื่นๆ จะเพิ่มขึ้น
ประสิทธิภาพ. หากบล็อก "COMMON" ไม่ได้ประกาศด้วยประเภทข้อมูลที่สอดคล้องกัน
ทุกที่ ช่องว่างภายในนี้อาจทำให้เกิดปัญหาและ -fno-align-คอมมอนส์ สามารถใช้ในการ
ปิดใช้งานการจัดตำแหน่งอัตโนมัติ รูปแบบเดียวกันของตัวเลือกนี้ควรใช้กับไฟล์ทั้งหมด
ที่แชร์บล็อก "ทั่วไป" เพื่อหลีกเลี่ยงปัญหาการจัดตำแหน่งที่อาจเกิดขึ้นในบล็อก "ทั่วไป"
ขอแนะนำให้สั่งวัตถุจากมากไปน้อย

-fno-protect-ผู้ปกครอง
โดยค่าเริ่มต้น วงเล็บในนิพจน์จะใช้สำหรับระดับการปรับให้เหมาะสมทั้งหมด เช่น
ว่าคอมไพเลอร์ไม่ได้ทำการเชื่อมโยงใหม่ใด ๆ โดยใช้ -fno-protect-ผู้ปกครอง ช่วยให้
คอมไพเลอร์เพื่อจัดลำดับนิพจน์ "REAL" และ "COMPLEX" ใหม่เพื่อสร้างโค้ดที่เร็วขึ้น สังเกตว่า
สำหรับการเพิ่มประสิทธิภาพการเชื่อมโยงใหม่ -fno-ลงนาม-ศูนย์ และ -fno-trapping-คณิตศาสตร์ จำเป็นที่จะต้อง
มีผลบังคับใช้ การป้องกันวงเล็บเปิดใช้งานโดยค่าเริ่มต้น เว้นแต่ -Ofast is
ให้

-frealloc-lhs
ด้านซ้ายมือที่จัดสรรได้ของการมอบหมายที่แท้จริงจะเป็นไปโดยอัตโนมัติ
(อีกครั้ง) จัดสรรหากไม่ได้รับการจัดสรรหรือมีรูปร่างแตกต่างกัน ทางเลือกคือ
เปิดใช้งานโดยค่าเริ่มต้นยกเว้นเมื่อ -std=f95 จะได้รับ ดูสิ่งนี้ด้วย -Wrealloc-lhs.

-faggressive-ฟังก์ชั่น-กำจัด
ฟังก์ชันที่มีรายการอาร์กิวเมนต์เหมือนกันจะถูกลบออกภายในคำสั่งโดยไม่คำนึงถึง
ว่าฟังก์ชันเหล่านี้มีเครื่องหมาย "บริสุทธิ์" หรือไม่ ตัวอย่างเช่น ใน

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

จะมีการเรียก "f" เพียงครั้งเดียว ตัวเลือกนี้จะใช้ได้ก็ต่อเมื่อ
-ffrontend-เพิ่มประสิทธิภาพ มีผลบังคับใช้

-ffrontend-เพิ่มประสิทธิภาพ
ตัวเลือกนี้ทำการเพิ่มประสิทธิภาพส่วนหน้า โดยพิจารณาจากการจัดการชิ้นส่วนของ Fortran
ต้นไม้แยก เปิดใช้งานโดยค่าเริ่มต้นโดย any -O ตัวเลือก. การเพิ่มประสิทธิภาพเปิดใช้งานโดยสิ่งนี้
ตัวเลือกรวมถึงการกำจัดการเรียกใช้ฟังก์ชันที่เหมือนกันภายในนิพจน์ การลบ
การเรียกที่ไม่จำเป็นไปยัง "TRIM" ในการเปรียบเทียบและการมอบหมายและแทนที่ TRIM(a) ด้วย
"(1:LEN_TRIM(ก))". ยกเลิกการเลือกได้โดยระบุ -fno-ฟรอนต์เอนด์-เพิ่มประสิทธิภาพ.

และพวกเรา


พื้นที่ปลูก กฟอร์ทราน คอมไพเลอร์ไม่ได้ใช้ประโยชน์จากตัวแปรสภาพแวดล้อมใด ๆ เพื่อควบคุม
การดำเนินงานดังกล่าวข้างต้นและเกินกว่าที่มีผลกระทบต่อการดำเนินงานของ gcc.

ใช้ mips64-linux-gnuabi64-gfortran-5 ออนไลน์โดยใช้บริการ onworks.net


Ad


Ad

โปรแกรมออนไลน์ Linux และ Windows ล่าสุด