मेरे पास एक आर पैकेज है जो रिकर्सिव रैखिक बीजगणित कंप्यूटेशंस के नेस्टेड लूप के लिए फोर्ट्रान सबराउटिन का उपयोग करता है (बीएलएएस और लैपैक रूटीन पर भारी निर्भर करता है)। फोरट्रान के लिए एक इंटरफ़ेस के रूप में, मैं .Fortran
फ़ंक्शन का उपयोग करता हूं। मैंने सी/सी ++ में लिखे गए सबराउटिन के मामले में .Call
के बजाय .Call
का उपयोग करने के बारे मेंपढ़ा है, और यह मुझे सोच रहा है कि सी में एक साधारण रैपर लिखकर फोरट्रान सबराउटिन का उपयोग करते समय .Call
इंटरफ़ेस का उपयोग करना बेहतर होगा। फोरट्रान subroutines?आर: फोर्ट्रान सबराउटिन का उपयोग करने के फायदे। फोर्ट्रान के बजाय कैल और सी/सी ++ रैपर।
जैसा कि कहा गया है, मेरे फोरट्रान कोड इस अर्थ में काफी सरल हैं कि मैं सिर्फ डबल या पूर्णांक के बहुआयामी सरणी के साथ खेलता हूं। लेकिन मैंने सीखा है कि मुझे यह सुनिश्चित करने के लिए आर पक्ष में काफी सारे चेक लिखना होगा कि सब कुछ दुर्घटनाग्रस्त नहीं है क्योंकि मैं गलती से कुछ मैट्रिक्स के स्टोरेज मोड को पूर्णांक में बदलने या कुछ मैट्रिक्स के आयामों को बदलने के लिए भूल गया था।
सबराउटिन F90/95 के रूप में लिखे गए हैं।
कुछ सी फ़ंक्शन के साथ उपयोग करने के लिए उचित लगता है। और फिर आप वास्तव में सी कोड से अपने फोरट्रान सबराउटिन को कॉल कर सकते हैं, जो अपेक्षाकृत आसान है (या यदि आपको वास्तव में फोरट्रान की आवश्यकता नहीं है तो सी में सबकुछ भी करें)। – steabert
हां, लेकिन अगर कोई लाभ आएगा तो क्या होगा? मैं पूरी तरह से सी पर स्विच कर सकता था, लेकिन मैं बहुत बोझिल होगा और मुझे संदेह है कि यह उपयोगी होगा क्योंकि मैं फिर से फोरट्रान ब्लैस फ़ंक्शन को कॉल कर रहा हूं। –
प्रासंगिक हो सकता है: http://www.ualberta.ca/AICT/RESEARCH/LinuxClusters/doc/ifc91/main_for/mergedProjects/bldaps_for/pgsclmix.htm – KLDavenport