2013-11-02 12 views
8

के बीच अंतर मैं फोरट्रान में खूनी शुरुआत कर रहा हूं।फोरट्रान: एफ और एफ एक्सटेंशन

मुझे आश्चर्य है: फोरट्रान फ़ाइलों के करें.एफ़ और एफ एक्सटेंशन के बीच अंतर क्या है। मुझे इतना पता है: एफ मुफ्त में है और एफ निश्चित है।

नि: शुल्क और निश्चित रूप से वास्तव में क्या मतलब है और वे संकलन प्रक्रिया को पूरी तरह से क्यों खराब कर सकते हैं? (मैं gfortran और ifort का उपयोग कर रहा हूं)।

मैंने एफ और एफ एक्सटेंशन के बीच फोर्टन अंतर गुगल किया है। मैं परिणाम से खुश नहीं था, इसलिए मैं स्टैक ओवरफ्लो में बदल गया।

यदि आप इस पर पढ़ने के लिए एक अच्छा संदर्भ सुझा सकते हैं, तो मुझे ऐसा करने में बहुत खुशी होगी।

उत्तर

9

जहाँ तक मुझे पता है, .f और .F दोनों एक्सटेंशन FORTRAN 77 निश्चित प्रारूप से जुड़े हैं। फिक्स्ड प्रारूप 72 कॉलम तक सीमित है, जहां पहले छह कॉलम विशेष उद्देश्यों को पूरा करते हैं। जैसे स्थिति 6 पर & पिछली पंक्ति से एक लाइन निरंतरता इंगित करता है।

फ्री-फॉर्म फोरट्रान 9 0 के साथ पेश किया गया था और आमतौर पर .f90 और .F90 द्वारा इंगित किया गया है। मुक्त रूप के लिए आप 132 कॉलम का उपयोग कर सकते हैं, और कोई विशेष कॉलम मौजूद नहीं है। लाइन निरंतरता लाइन के अंत में एक एम्परसेंड द्वारा इंगित की जाती है।

फ़ाइल एक्सटेंशन में पूंजी अक्षरों आमतौर पर प्री-प्रोसेसर चालू करते हैं।

ध्यान दें कि ये ऐसे सम्मेलन हैं जिन्हें अधिकांश कंपाइलरों के लिए संकलन विकल्पों के साथ ओवरराइड किया जा सकता है।

6

यह संकलक निर्भर है और शायद इस पर भरोसा नहीं किया जाना चाहिए। आम तौर पर पूंजी प्रत्यय इंगित करते हैं, कि पूर्व प्रसंस्करण का उपयोग किया जाना चाहिए। नि: शुल्क और निश्चित प्रारूप के बीच अंतर आमतौर पर .f90 (फ्री) बनाम .f (निश्चित) द्वारा किया जाता है।

चूंकि यह संकलक निर्भर है, एक अच्छा दस्तावेज आपके कंपाइलर में से एक होगा। यदि आप gfortran का उपयोग करना चाहते हैं, तो आप इसके options और preprocessing पर अनुभाग देख सकते हैं।

+1

दुर्भाग्य है, मैं के रूप में स्वीकार किए जाते हैं * जवाब दोनों जवाब चिह्नित नहीं कर सकते *। आप जवाब भी बहुत उपयोगी है। धन्यवाद! – seb

0

gfortran में, मुक्त रूप (कॉलम 7 के लिए कोई विशेष अर्थ नहीं, 72) संकलक स्विच -ffree फार्म द्वारा निर्धारित और करें.एफ़ या एफ फ़ाइल प्रत्यय के साथ कोई लेना देना नहीं है। .f और .F के बीच का अंतर यह है कि बाद वाला एक प्री-प्रोसेसर के माध्यम से जाता है, जिसमें से सबसे आम उपयोग सी-जैसे # परिभाषित कथन की अनुमति देता है। उदाहरण के लिए: अगर यह एफ है

#define MAXN 100 
program example 
integer N(MAXN) 
end 

संकलन होगा, लेकिन नहीं करता है, तो यह करें.एफ़

+0

gfortran निश्चित रूप से ".f का मतलब तय करता है, .f90 का अर्थ है मुफ्त" अन्य उत्तरों द्वारा सम्मेलन। – agentp