libsim Versione 7.2.6
list_real.F03
1!> \brief class to use lists in fortran 2003.
2!!
3!! Linked data structure is a data structure which
4!! consists of a set of data records (nodes) linked together and organized by references .
5!!
6!! A doubly-linked list is a linked data structure that consists of a set
7!! of sequentially linked records called nodes. Each node contains two
8!! fields, called links, that are references to the previous and to the
9!! next node in the sequence of nodes. The beginning and ending nodes'
10!! previous and next links, respectively, point to some kind of
11!! terminator.
12!!
13!! The program example is the better starting point:
14!!\include example_list.F03
15!!\ingroup base
16!!
17module list_real
19 private
20 public :: reallist
21!> Real specific implementation of doubly-linked list
22!!
23!! extend list_abstract::list
24 type, extends(list) :: reallist
25#ifdef DOXYGEN
26 integer::none ! doxigen workaround: if missed do not show procedure
27#endif
28 contains
29! procedure :: addReal !< add real in list
30 procedure :: current => currentreal !< get real pointed by iterator
31 procedure :: display => displayreal !< print the real list
32! generic :: add => addReal
33 end type reallist
34
35contains
36
37!> Print the real list
38subroutine displayreal(this)
39class(realList),intent(inout) :: this
40
41call this%rewind()
42do while(this%element())
43 print *,"index:",this%currentindex()," value:", this%current()
44 call this%next()
45end do
46end subroutine displayreal
47
48!!$ subroutine addReal(this, value)
49!!$ class(realList) :: this
50!!$ real value
51!!$ class(*), allocatable :: v
52!!$
53!!$ allocate(v,source=value)
54!!$ call this%addvalue(v)
55!!$
56!!$ end subroutine addReal
57
59!> get real pointed by iterator
60real function currentreal(this)
61class(realList) :: this
62class(*), pointer :: v
63
64v => this%currentpoli()
65select type(v)
66type is (real)
67 currentreal = v
68end select
69end function currentreal
70
71end module list_real
abstract class to use lists in fortran 2003.
class to use lists in fortran 2003.
Definition list_real.F03:58
Abstract implementation of doubly-linked list.
Real specific implementation of doubly-linked list.
Definition list_real.F03:65

Generated with Doxygen.