Fortran Free Invalid Pointer