Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!

 

Γνωρίζει κανείς πως γίνεται στην FORTRAN (οποιαδήποτε έκδοση) να έχω ένα δείκτη (pointer) που να δείχνει σε υπορουτίνα;

 

Και σε δεύτερο στάδιο (που είναι και αυτό που βασικά χρειάζομαι), γνωρίζει κανείς αν γίνεται να ορίσω ολόκληρο πίνακα από δείκτες που να δείχνουν σε υπορουτίνες;

 

Ψάχνω εδώ και αρκετή ώρα στο internet αλλά δεν μπορώ να πω ότι έχω βγάλει άκρη.

Γνωρίζω ότι τα παραπάνω υλοποιούνται μάλλον έυκολα στην C, αλλά τι γίνεται στην Fortran;

 

Please βοηθήστε... Ευχαριστώ :-)

Δημοσ.

Βεβαίως γίνεται και είναι και απλούστερο απ' ότι στην C.

Να κάπως έτσι:

 

>procedure (real_func), pointer :: p=> null()
! where the interface to real_func has already been defined
...
p => bessel
write (*, *) p(2.5)       !-- bessel(2.5)

 

Το keyword procedure έχει εισαχθεί στην F2003, ψάξε για compiler F2003 compliant.

 

Όμοια και για πίνακα δεικτών.

Δεν το έχω εφαρμόσει όμως ποτέ...

 

-

Δημοσ.

Την procedure δοκίμαζα, αλλά δεν μου δούλευε. Τελικά το πρόβλημα ήταν ότι το όνομα της υπορουτίνας μου ήταν DO_CALC, και για κάποιο λόγω όταν έβαζα procedure (DO_CALC) χτύπαγε στο compile. Τελικά άλλαξα το όνομα και τώρα δουλεύει!

 

Δυστυχώς, από λίγο ακόμα ψάξιμο στο internet, είδα ότι δεν μπορείς να έχεις πίνακες με τέτοιους pointers.

Ο μόνος τρόπος να το κάνεις είναι να βάλεις τον pointer μέσα σε type, και να κάνεις μετά πίνακες από αυτό το type.

 

Ευχαριστώ για την απάντηση.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...