Δημοσιεύτηκε: 09 Ιούλ 2009, 01:06
από Dimitris
Αν χρησιμοποιούνται μόνο από την υπορουτίνα σου, τότε φυσικά μόνο μέσα στην υπορουτίνα θα τα βάλεις.
Δοκίμασε το παράδειγμα:
Κώδικας: Επιλογή όλων
program main

call bla()
write(3,*) 'main'
end

subroutine bla()

open(3,file='hallo')
write(3,*) 'bla'
end

και μετά αυτό:
Κώδικας: Επιλογή όλων
program main

call bla()
write(3,*) 'main'
end

subroutine bla()

open(3,file='hallo')
write(3,*) 'bla'
close(3)
end

Παρατήρησέ τα, και δες τι αρχεία δημιουργεί και τι γράφει το καθένα. Ο αριθμός αυτός (αριθμός λογικής μονάδας=logical unit) είναι γνωστός στο πρόγραμμά σου άσχετα που θα χρησιμοποιηθεί.
Κώδικας: Επιλογή όλων
program main

call bla()
write(3,*) 'main'
open(3,file='blall')
write(3,*) 'after'
end

subroutine bla()

open(3,file='hallo')
write(3,*) 'bla'
end

Εδώ με το που ξανανοίγεις ένα αρχείο με τον αριθμό 3, το παλιό κλείνει.
Kαι τώρα δοκίμασε:
Κώδικας: Επιλογή όλων
program main

call bla()
write(3,*) 'main'
open(3,file='blall')
write(3,*) 'after'
call boo()
end

subroutine bla()

open(3,file='hallo')
write(3,*) 'bla'
end

subroutine boo()
write(3,*)'boo'
end

Είναι περασμένη η ώρα και δε μπορώ να τα εξηγήσω περισσότερο. Αν δεν βγάλεις άκρη από τα παραδείγματα ξαναρώτα. Αύριο θα έχω πιο καθαρό μυαλό.

Για βιβλιό pdf δεν έχω ιδέα, εγώ μεγάλωσα με το "προγραμματισμός 90/95 για επιστήμονες και μηχανικούς" του Ματαρά και Κουτελιέρη.