zrobić nie widzę żadnej zasadniczej różnicy w tym scenariuszu.
Ogólnie rzecz biorąc, ALLOCATABLE arrays are more efficient. Jednak w tablicach Fortran 90/95 POINTER były bardziej elastyczne. Na przykład nie było możliwe użycie tablic ALLOCATABLE jako składników typów pochodnych. Fortran 2003 rozwiązał ten problem. Używaj tablic ALLOCATABLE, kiedy tylko możesz.
EDIT
prostu chcesz wymienić znaczną różnicę w zachowaniu programu na próbę przyporządkowania już przydzieloną jednostkę. Jeśli jednostka jest CAŁKOWITA, otrzymasz błąd czasu wykonywania. Program
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
zestawiane z wynikami gfortran w takim komunikatem o błędzie:
Fortran runtime error: Attempting to allocate already allocated variable 'my_foo'
Natomiast można robić takie rzeczy ze wskaźnikami.
Warto wspomnieć, że wywołanie instrukcji allocate na skojarzonym wskaźniku może spowodować wyciek pamięci (jeśli żaden inny wskaźnik nie wskazuje pierwotnego celu). –