
Il Fortran 90 contiene 3 tipi di dati dinamici:
- allocatable arrays,
- automatic data objects,
- pointers
Gli array allocabile si applicano solo agli array. Gli automatic data objects sono costituiti da quegli oggetti che vengono creati all’ingresso di un sottoprogramma e distrutti in uscita. I puntatori possono essere utilizzati con le quantità scalari o con un array di qualsiasi tipo e sono utilizzati per costruire strutture dinamiche come liste concatenate e gli alberi.
Il seguente programma illustra come una struttura di dati dinamica può essere dichiarata e manipolata.
program LinkedList
type node
real data
type( node ), pointer :: next
end type node
type( node ), pointer :: list, current
nullify( list ) ! Initialize list to point to no target.
! Place two elements in the list.
allocate( list ) ! Reserve space for first node.
call random_number( list%data ) ! Initialize data portion.
allocate( list%next ) ! Reserve space for second node.
call random_number( list%next%data ) ! Initialize data portion.
nullify( list%next%next ) ! Initialize next to point to no target.
! Output the list.
current => list ! Assign target of list to target of current.
do while ( associated( current ) )
print *, current%data
current => current%next
end do
end program LinkedList

Giuseppe Ciaburro








