2012-05-19 20 views
13

Tôi biết và đã sử dụng f2py2e để bọc một số mã Fortran 77 cũ, nhưng sự hiểu biết của tôi là nó không hoạt động với mã Fortran 95 mới hơn. Tôi đã nghiên cứu những gì tôi nên sử dụng, và đã đi qua fwrapG3 f2py, cả hai dường như không đưa ra bất kỳ lời giải thích nào về trạng thái hiện tại của chúng hoặc cách sử dụng chúng. Tôi đã thấy rằng phiên bản của f2py có tùy chọn để sử dụng thế hệ thứ ba f2py, nhưng nó được nhận xét là không hoạt động. Với điều này, tôi không biết tôi nên sử dụng dự án nào. Tôi nên sử dụng cái nào?Phương pháp tốt nhất hiện tại để gói mã Fortran hiện đại với Python

Câu hỏi này hiện đã được chéo được đưa lên (và trả lời tại) Computational Science trang web trao đổi chồng như Which package should I use to wrap Modern Fortran Code with Python?

+2

có thể gọi thư viện fortran thông qua 'ctypes' sẽ là một tùy chọn? – mata

+1

f2py (như được bao gồm trong scipy) dường như [yêu cầu] (http://www.scipy.org/F2py) để hỗ trợ Fortan95. Bạn đã thử chưa? – Ken

+2

Bạn cũng có thể thử yêu cầu trên scicomp.stackexchange vì có rất nhiều người ở đó làm việc với Python và Fortran. – Ken

Trả lời

6

Tôi đã sử dụng SWIG để quấn một số C/C++ mã trước nhưng họ không hỗ trợ Fortran . Họ liên kết đến những điều sau đây, mặc dù

Ít nhất FortWrap khẳng định rằng họ hỗ trợ Fortran95, nhưng bạn có thể phải sử dụng FortWrap để có được Trình bao bọc C/C++ và SWIG cho trình bao bọc Python. f90wrap sẽ tự động tạo trình bao bọc Python dựa trên các nguồn f90 (và hỗ trợ các kiểu dẫn xuất).

+3

Tôi đã đề cập đến F2PY và tôi muốn tránh SWIG. Ngoài ra pyfortran là mã cũ mà có lẽ sẽ không làm việc với numpy (nó được thiết kế cho Numeric), và FortWrap được thiết kế cho C++, một lần nữa thiếu tích hợp với numpy. –

+0

Tôi vừa phát hiện ra f90wrap nhờ câu trả lời này. Bạn đã cứu ngày của tôi! – astrojuanlu

Các vấn đề liên quan