Fortran Wiki
Multiple allocation, smart pointer