faccio non vedere alcuna differenza principale in quello scenario.
In generale, ALLOCATABLE arrays are more efficient. Ma in FORTRAN 90/95 gli array POINTER erano più flessibili. Ad esempio, non è possibile utilizzare gli array ALLOCATABLE come componenti dei tipi derivati. Fortran 2003 ha risolto il problema. Quindi usa gli array ALLOCATABLE quando puoi.
EDIT
Voglio solo citare significativa differenza nel comportamento del programma sul tentativo di allocare entità già stanziati. Se l'entità è ALLOCATABLE avrai un errore di runtime. Il programma
PROGRAM main
IMPLICIT NONE
TYPE :: foo
REAL, DIMENSION(:), ALLOCATABLE :: bar
END TYPE foo
TYPE(foo) :: my_foo
ALLOCATE (my_foo%bar(10))
ALLOCATE (my_foo%bar(10))
END PROGRAM main
compilato con risultati gfortran in tale messaggio di errore:
Fortran runtime error: Attempting to allocate already allocated variable 'my_foo'
Al contrario si può fare queste cose con i puntatori.
Vale la pena menzionare che chiamare l'istruzione 'allocate' su un puntatore associato potrebbe causare una perdita di memoria (se nessun altro puntatore punta al target originale). –