2009-07-14 10 views
5

इससे पहले कि मैं शुरू हो, मैं यह बताते हुए कि मैं एक नौसिखिया हूँ जब यह FORTRAN की बात आती है द्वारा प्रस्तावना चाहिए। मैं 1 9 78 से कोड का एक विरासत टुकड़ा बनाए रख रहा हूं। इसका उद्देश्य फ़ाइल से कुछ डेटा मानों में पढ़ना है, मानों को संसाधित करना है, और फिर संसाधित मूल्यों को किसी अन्य पाठ फ़ाइल में आउटपुट करना है।FORTRAN लिखें()

को देखते हुए निम्नलिखित FORTRAN कोड:

 INTEGER NM,STUBS,I,J,K 
     PARAMETER (NM=67,STUBS=43) 
     INTEGER*4 MDS(STUBS,NM) 

     CALL OPEN$A(A$RDWR,'/home/test/data.txt', MAXPATHLEN,1) 
     CALL OPEN$A(A$WRIT,'out',11,2) 

     DO 90 I=1,2 
      READ(1,82) STUB  
      !-- data processing --!  
      WRITE(2,80) STUB,(MDS(I,J),J=1,24) 
90 CONTINUE 

80 FORMAT(/1X,A24,25I5) 
82 FORMAT(1X,A24,25F5,1) 

मेरा प्रश्न WRITE() बयान के संबंध में है।

मैं समझता हूँ कि (2,80) फ़ाइल आउटपुट धारा खोला और फ़ाइल 'out' की ओर इशारा करते और संदर्भित अंक 2. से मैं समझता हूँ कि 80 के लिए किया जाता प्रारूप बयान लेबल 80

STUB द्वारा संदर्भित को संदर्भित करता है को संदर्भित करता है मूल्यों फ़ाइल इनपुट 1. इन मूल्यों से पढ़ने की दुकान क्या संसाधित किया जाता है, और !-- data processing --! खंड है कि मैं नहीं दिखाए हैं में MDS(I,J) में बचाया जा सकता है।

हूँ मैं यह सोचते हैं कि (MDS(I,J),J=1,24) आउटपुट फ़ाइल के लिए 24 पूर्णांक मूल्यों लिखेंगे में सही हूँ? दूसरे शब्दों में, 1 से 24 तक लूपिंग?

+0

@Fortranner जब टैग जोड़ने तुम भी formating या प्रश्न में अन्य समस्याओं को साफ करना चाहिए। –

उत्तर

10

हाँ, आप सही हैं। वाक्य रचना (MDS(I,J), J=1,24) एक "implied DO-loop" है और आमतौर पर इस तरह की स्थितियों में किया जाता है।

+0

आपका स्वागत है। यदि आप रुचि रखते हैं मैं इस पर एक कुछ प्रलेखन के लिए एक लिंक जोड़ा गया। –

+0

धन्यवाद! मैंने उस साइट पर ध्यान दिया है और यह निश्चित रूप से इस संशोधन के साथ मददगार रहा है! बहुत सराहना की। – karlgrz