2012-05-19 22 views
13

के साथ आधुनिक फोरट्रान कोड को लपेटने के लिए वर्तमान सर्वोत्तम विधि मुझे पता है, और कुछ पुराने फोरट्रान 77 कोड को लपेटने के लिए f2py2e का उपयोग किया है, लेकिन मेरी समझ यह है कि यह नए फोरट्रान 95 कोड के साथ काम नहीं करता है। मैंने शोध किया है कि मुझे क्या उपयोग करना चाहिए, और fwrap और G3 f2py पर आ गया है, इनमें से कोई भी अपनी वर्तमान स्थिति का कोई स्पष्टीकरण नहीं देता है, या उनका उपयोग कैसे किया जाता है। मैंने देखा है कि f2py के संस्करण में तीसरी पीढ़ी f2py का उपयोग करने का विकल्प है, लेकिन इसे गैर-कार्यात्मक होने के रूप में टिप्पणी की जाती है। यह देखते हुए, मुझे नहीं पता कि मुझे किस परियोजना का उपयोग करना चाहिए। मुझे किसका उपयोग करना चाहिए?पाइथन

यह सवाल अब किया गया है पोस्ट की गई करने के लिए (और कम से जवाब) कम्प्यूटेशनल विज्ञान ढेर विनिमय साइट Which package should I use to wrap Modern Fortran Code with Python?

+2

शायद 'ctypes' के माध्यम से फोर्टन पुस्तकालयों को कॉल करना एक विकल्प होगा? फोर्टन 95 का समर्थन करने के लिए – mata

+1

f2py (जैसा कि scipy में शामिल है) लगता है [दावा] (http://www.scipy.org/F2py)। या तुमने कोशिश की? – Ken

+2

आप scicomp.stackexchange पर भी पूछने का प्रयास कर सकते हैं क्योंकि वहां पर बहुत सारे लोग पाइथन और फोरट्रान के साथ काम करते हैं। – Ken

उत्तर

6

के रूप में मैं SWIG का इस्तेमाल किया है से पहले कुछ C/C++ कोड रैप करने के लिए, लेकिन वे फोरट्रान का समर्थन नहीं करते । वे निम्नलिखित से लिंक हालांकि

कम से कम FortWrap कि वे Fortran95 समर्थन में कहा गया है, लेकिन आप FortWrap उपयोग करने के लिए प्राप्त करने के लिए हो सकता है पाइथन रैपर के लिए सी/सी ++ रैपर और एसडब्ल्यूआईजी। f90wrap स्वचालित रूप से f90 स्रोतों (और व्युत्पन्न प्रकारों का समर्थन करता है) के आधार पर पाइथन रैपर उत्पन्न करेगा।

+3

मैंने एफ 2 पीवाई का उल्लेख किया, और मैं एसडब्ल्यूआईजी से ज्यादा बचूंगा। इसके अलावा pyfortran पुराना कोड है जो शायद numpy (यह न्यूमेरिक के लिए डिज़ाइन किया गया है) के साथ काम नहीं करेगा, और फोर्टव्रैप को C++ के लिए डिज़ाइन किया गया है, जिसमें फिर से numpy के साथ एकीकरण की कमी है। –

+0

मैंने अभी इस जवाब के लिए f90wrap धन्यवाद की खोज की। आपने मेरा दिन बचा लिया! – astrojuanlu