├── doublyLink.f90 ├── doublyList.f90 ├── linkedlist.f90 └── README.md /doublyLink.f90: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/degawa/LinkedList/HEAD/doublyLink.f90 -------------------------------------------------------------------------------- /doublyList.f90: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/degawa/LinkedList/HEAD/doublyList.f90 -------------------------------------------------------------------------------- /linkedlist.f90: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/degawa/LinkedList/HEAD/linkedlist.f90 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Doubly Linked List for Fortran 2003 2 | ==== 3 | 4 | ## Overview 5 | This is a module to introduce a Doubly Linked List feature into Fortran 2003. 6 | 7 | ## Description 8 | The List is based on the Object-Oriented Programming, 9 | so the List can treat all types Fortran supports including integer, real, character and derived-type by using the Unlimited Polymorphism feature. 10 | The List also provide iterator feature for user's convenience. 11 | This iterator allows you to write multiple loop. 12 | 13 | ## Demo 14 | You can try the List by compiling linkedlist.f90 and execute it. 15 | 16 | ## Feature 17 | * written in Fortran 2003 - you may not be staring in envy Java anymore 18 | * based on the Object-Oriented Programming 19 | * treat all types Fortran supports by the Unlimited Polymorphism feature 20 | * provide iterator feature such as Java's List. the procedures next() and hasNext() are also available 21 | 22 | ## Requirement 23 | * Recommended (perhaps necessary) compiler is Intel Fortran Composer XE 2013 update 5 or later. 24 | I am modifying the codes to complete the compilation using PGI Fortran 14.9. 25 | 26 | ## Bugs 27 | Calling subroutines related to remove an item from a list including only one item causes an illegal memory access. 28 | if you'd like to remove all items from a list, you can use the clear() subroutine. 29 | 30 | 31 | ## Author 32 | [Tom](https://github.com/degawa) --------------------------------------------------------------------------------