Tôi hiểu gfortran có thể biên dịch f90 hoặc f95? Làm thế nào để biết nó đang biên dịch cái nào? Ngoài ra nó có thể biên dịch mã f77? Ubuntu đã có trình biên dịch fortran hay tôi cần tải xuống gfortran?Làm cách nào để biết tôi có đang biên dịch mã F90 hay F95 không?
Trả lời
gfortran có thể đoán một số thứ nhất định từ phần mở rộng tệp; nếu tệp có phần mở rộng là .f, .f90, f95, .f03 hoặc .f08, tệp này sẽ giả định định dạng cố định (.f) hoặc miễn phí với các tiêu chuẩn thích hợp. Nhưng bạn có thể buộc nó biên dịch (nói) mã fortran2003 với tùy chọn -std = f2003. Ví dụ, từ documentation,
-std = std
Xác định các tiêu chuẩn mà các chương trình dự kiến sẽ phù hợp, có thể là một trong những 'f95' , `f2003' ,` F2008' , `gnu 'hoặc' cũ '. Giá trị mặc định của 01dcho std là `gnu ', chỉ định một phần siêu của tiêu chuẩn Fortran 95 bao gồm tất cả các phần mở rộng được hỗ trợ bởi GNU Fortran, mặc dù cảnh báo sẽ được cung cấp cho các tiện ích lỗi thời không được khuyến nghị sử dụng trong mã mới. Giá trị 'cũ' tương đương với nhưng không có cảnh báo cho các tiện ích lỗi thời và có thể hữu ích đối với các chương trình không chuẩn cũ. Các giá trị `f95 ',` f2003' và `f2008 ' chỉ định sự phù hợp nghiêm ngặt với các tiêu chuẩn Fortran 95, Fortran 2003 và Fortran 2008, tương ứng; lỗi được cung cấp cho tất cả các tiện ích mở rộng vượt quá tiêu chuẩn ngôn ngữ có liên quan và cảnh báo được cung cấp cho các tính năng của Fortran 77 được phép nhưng bị lỗi sau trong các tiêu chuẩn sau . '-std = f2008ts' cho phép theo tiêu chuẩn Fortran năm 2008 bao gồm những bổ sung của Thông số kỹ thuật (TS) 29.113 trên Hơn nữa Khả năng cộng tác của Fortran với C.
Lưu ý rằng, với một vài ngoại lệ, các tiêu chuẩn fortran là có khả năng tương thích ngược, do đó, nhiều "đẹp", việc tuân thủ tiêu chuẩn, mã fortran-77 cũng là mã fortran 2003 hợp lệ. Vấn đề chính với điều đó là nhiều mã fortran từ những năm 80 và trước đó không phải là "tốt đẹp" cũng như không phù hợp tiêu chuẩn.
Có thể được thuyết phục rằng tệp .f là Fortran 95 hoặc cao hơn không? '-std = f95' không đủ. – hertzsprung
@hertzsprung 'gcc -x f95 file.f' có thể hoạt động –
Có, gfortran có thể biên dịch FORTRAN 77 và Fortran 90,95 vv. Có nhiều tính năng của 2003 & 2008 được triển khai. Đối với mã Fortran 90/95/2003/2008, một phần mở rộng tốt để sử dụng là .f90. Một số trình biên dịch khác không nhận ra .f95, .f2003, v.v. Và bạn có thực sự muốn đổi tên các tệp của mình khi một tiêu chuẩn mới xuất hiện không? Sử dụng .f hoặc .for cho FORTRAN 77. Sự khác biệt chính là bố trí nguồn mà trình biên dịch sẽ mong đợi: biểu mẫu miễn phí cho .f90, biểu mẫu cố định cho .f hoặc .for. (Các kiểu tập tin kiểu chữ thường sẽ làm cho bộ tiền xử lý được chạy.) Bạn có thể bắt buộc bố trí biểu mẫu cố định với các tùy chọn-được trộn-form -ffixed-line-length-none.
- 1. Làm cách nào để biết mã của bạn có đang chạy trên iPhone hay iPhone3G không?
- 2. Làm cách nào để biết GCC của tôi có đang biên dịch 64 bit theo mặc định không?
- 3. Làm cách nào để biết người dùng có đang sử dụng nhiều màn hình hay không
- 4. Làm cách nào để biết mã Rails có đang chạy thông qua rake hay script/generate không?
- 5. Tôi biết typeof (T) nhưng trình biên dịch thì không. Làm thế nào để khắc phục?
- 6. Làm thế nào tôi có thể biết tôi đang sử dụng x64 hay x86 bằng .NET?
- 7. android- làm cách nào để tôi có thể biên dịch mã trực tuyến?
- 8. Làm cách nào để biết hành động của tôi có đang được gọi bởi RenderAction không?
- 9. Làm cách nào để biết liệu tôi có đang chạy từ JRuby và Ruby không?
- 10. Làm cách nào để biết liệu chương trình của tôi có bật ARC hay không?
- 11. Android: làm cách nào tôi có thể biết liệu bàn phím mềm có đang hiển thị hay không?
- 12. Làm cách nào để biết trình biên dịch có hỗ trợ ARC được bật không?
- 13. Làm cách nào để tôi có thể biên dịch mã cho emscripten?
- 14. Tôi có thể biên dịch Java thành mã gốc không?
- 15. JavaScript, không biết tôi đang làm gì
- 16. Làm cách nào để biết tôi có đang ở trạng thái postback không?
- 17. Làm cách nào để biết tôi có đang ở trong ngăn xếp ngoại lệ Delphi không?
- 18. Làm cách nào để biết tập lệnh Perl của tôi có đang chạy trong Windows không?
- 19. Đây có phải là lỗi trình biên dịch hay đó là mã của tôi?
- 20. Làm cách nào để biên dịch mã objc trên Linux?
- 21. Có cách nào để biết một lớp được biên dịch cho java6 không?
- 22. Trong Python, làm cách nào để cho biết tôi đang ghi đè phương thức?
- 23. Làm cách nào để tôi có thể biên dịch C# cho Mono so với Microsoft .NET?
- 24. Làm cách nào để biết quản trị viên ứng dụng của tôi hay không
- 25. Có cách nào để biết liệu một assembly C# có được biên dịch với tham số tối ưu không?
- 26. cách để biết chuỗi có phải là base64 hay không
- 27. Làm cách nào để biên dịch và liên kết mã C++ với mã C đã biên dịch?
- 28. Lỗi biên dịch mẫu - chuẩn hay không?
- 29. Làm cách nào để biết liệu EntityManager của tôi có đang sử dụng nguồn dữ liệu JTA hoặc RESOURCE_LOCAL không?
- 30. Tôi làm cách nào để sử dụng trình biên dịch Google Closure để xóa mã JavaScript không sử dụng?
Ngoài ra, hãy xem [Làm cách nào để biết tôi đang biên dịch mã F90 hoặc F95?] (Https://stackoverflow.com/q/10884260/608639), [Tạo tệp với các loại nguồn khác nhau] (https: // stackoverflow. com/q/8940552/608639), [cmake, fortran 2008 và .f08 mở rộng tệp] (https://stackoverflow.com/q/25005017/608639), [Hậu tố chính xác cho tệp nguồn Fortran 2003 - trình biên dịch Intel Fortran] (https://stackoverflow.com/q/20269076/608639), v.v. – jww