PROGRAM C2109 TYPE Link CHARACTER :: C TYPE (Link) , POINTER :: Next END TYPE Link TYPE (Link) , POINTER :: Root , Current INTEGER :: IO_Stat_Number=0 ALLOCATE(Root) READ (UNIT = *, FMT = '(A)' , ADVANCE = 'NO' , & IOSTAT = IO_Stat_Number) Root%C IF (IO_Stat_Number == -1) THEN NULLIFY(Root%Next) ELSE ALLOCATE(Root%Next) ENDIF Current => Root DO WHILE (ASSOCIATED(Current%Next)) Current => Current%Next READ (UNIT=*,FMT='(A)',ADVANCE='NO', & IOSTAT=IO_Stat_Number) Current%C IF (IO_Stat_Number == -1) THEN NULLIFY(Current%Next) ELSE ALLOCATE(Current%Next) ENDIF END DO Current => Root DO WHILE (ASSOCIATED(Current%Next)) PRINT * , Current%C Current => Current%Next END DO END PROGRAM C2109