http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58425
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
The code works when one adds a line to vortex.F90's manual_finalizer:
do while(associated(current%next))
next => current%next ! start after break in chain
deallocate(current)
current=>next
if (.not.associated(current)) exit ! <<<< ADDED
end do
Thus, at least locally, the program has a bug. The other question is whether
for the specific program, it should still work. At least with Crayftn, it seems
to work (also with valgring/MALLOC_PERTURB_ set). On the other hand, with ifort
it starts failing when MALLOC_PERTURB_ is set.