मेरे पास फोर्ट्रान कोड का एक टुकड़ा है, और मुझे यकीन नहीं है कि यह कौन सा मानक है - '77, '90 या '95। क्या यह पहचानने के लिए एक मानक उपकरण है कि यह कौन सा मानक है?फोर्टन मानक - '77, '90, या '95 की पहचान कैसे करें?
उत्तर
शायद उपकरण स्वचालित होते हैं, लेकिन मेरे तरीकों काफी हद तक अनुमानी हैं:
- टिप्पणियों पर कहीं भी लाइन (F90 +) एक
!
या एक प्रथम स्तंभ (F77) मेंC
उपयोग करते हैं? - क्या लूप
do
का उपयोग करें ..end do
(F90 +) याdo
..continue
(F77)? - लाइनों (एफ 0 9 +) के अंत में या कॉलम 6 (एफ 77) के अंत में
&
का उपयोग जारी रहेगी? - क्या कोड
module
याtype
संरचनाओं (F90) का उपयोग करता है? - यदि कोड सरणी का उपयोग करता है, तो क्या यह उन पर एक ही संरचना (F90) या हमेशा लूप (F77) का उपयोग करता है?
- गतिशील स्मृति है (या तो
allocatable
याpointer
विधियों का उपयोग कर) (F90)?
आम तौर पर ये F90 और F77 के बीच भेदभाव करने के लिए पर्याप्त हैं। फोरट्रान 9 0 और फोरट्रान 77 के बीच अंतर फोरट्रान 9 0 और फोरट्रान 95 के बीच अंतर से काफी बड़ा है, इसलिए मैं आमतौर पर वहां रुक जाता हूं।
यदि आपके पास GNU Fortran (gfortran) तक पहुंच है तो आप इसे --std
के विभिन्न विकल्पों के साथ संकलित करने का प्रयास कर सकते हैं और देख सकते हैं कि कौन सा काम करता है। आप बोली विकल्प here पर विवरण पा सकते हैं।
मैं fortran 2003 और 2008 में सुविधाओं
अगर कार्यक्रम parameterized व्युत्पन्न है डेटाटाइप्स (fortran 2003) (जो मेरे सिर का सिर्फ वापस आ रहे हैं) जोड़ रहा सरणी निर्माता वर्ग कोष्ठक का उपयोग करता है [] इसके बजाय (/ /) (fortran 2003.) यदि आप देखते हैं, तो कोयरे (फोर्टन 2008)
का उपयोग करने का प्रावधान है हालांकि कई कंपाइलरों के पास एक्सटेंशन के हिस्से के रूप में विशेष कार्य (जैसे बेसेल फ़ंक्शन) हैं, यह एक बोनफाइड है फोर्टन 2008 फीचर।
अंक के कई तय की और मुक्त स्रोत प्रपत्र भेद (किसी भी विसंगति मुझे पता है मैं संपादित देंगे तो), फोरट्रान 77 नहीं फोरट्रान 90. फिक्स्ड स्रोत प्रपत्र (पहले कॉलम में सी के साथ से, और कॉलम 6, आदि में) फोरट्रान 2008 के लिए भी पूरी तरह से कानूनी है। –