Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(input_list), | optional | :: | list |
subroutine delete_input_list(list) type(input_list),optional :: list type(input_node),pointer :: p,c integer :: i if(present(list))then do p => list%root c => p%next if(.not.associated(c))exit !empty list p%next => c%next ! c%next=>null() do i=1,size(c%var) nullify(c%var(i)%i) nullify(c%var(i)%d) nullify(c%var(i)%l) nullify(c%var(i)%ch) enddo deallocate(c%var) deallocate(c) end do list%status=.false. deallocate(list%root) else do p => default_list%root c => p%next if(.not.associated(c))exit !empty list p%next => c%next ! c%next=>null() do i=1,size(c%var) nullify(c%var(i)%i) nullify(c%var(i)%d) nullify(c%var(i)%l) nullify(c%var(i)%ch) enddo deallocate(c%var) deallocate(c) end do default_list%status=.false. deallocate(default_list%root) endif p => null() c => null() end subroutine delete_input_list