Sample program to demostrate the list* module.
Sample program to demostrate the list* module. This modules port lists to fortran 2003.
1program example_list
2
8
9implicit none
10type(integerlist) :: list_int
11type(reallist) :: list_real
12type(characterlist) :: list_char
13type(mixlist) :: list_mix
14
15class(*),pointer :: val
16integer values(10)
17integer i,n
18
19type mytype
20 integer :: i
21 real :: r
22end type mytype
23type(mytype) :: ir=mytype(3,6.)
24
25type charmylen
26 character(len=10) :: char10
27end type charmylen
28type(charmylen) :: mychar
29
30
31
34print *,"display real list"
36
37
38
39
40call list_char%append("hello world")
41call list_char%append("bye bye baby")
42print *,"display char list"
43call list_char%display()
44
45
46
47do i=1, 10
48 call list_int%append(i)
49enddo
50print *,"display integer list"
51call list_int%display()
52print *
53call list_int%rewind()
54i = 1
55do while(list_int%element())
56 values(i) = list_int%current()
57 call list_int%next()
58 i = i + 1
59end do
60print *,"display integer vector from list"
61print *, values
62
63
64values =list_int%toarray()
65print *,"display integer vector from list with toarray"
66print *, values
67
68
69call list_int%forward()
70i = 1
71do while(list_int%element())
72 values(i) = list_int%current()
73 call list_int%prev()
74 i = i + 1
75end do
76print *,"display inverse integer vector from list"
77print *, values
78
79print *,"seek return status =", list_int%seek(3)
80print *,"list index 3 =", list_int%current()
81
82
83print *,"delete(5) return status =", list_int%delete(5)
84print *,"display integer vector with 5 removed"
85call list_int%display()
86
87print *,"display reverse integer vector with 5 removed"
88call list_int%forward()
89do while(list_int%element())
90 print*, "index:",list_int%currentindex()," value:",list_int%current()
91 call list_int%prev()
92end do
93
94
95print *,"delete(1) return status =", list_int%delete(1)
96print *,"display integer vector with 1 removed"
97call list_int%display()
98
99n=list_int%countelements()
100print *,"number of list elements=",n
101
102print *,"delete(",n,")"
103print *,"return status =", list_int%delete(n)
104print *,"display integer vector with last removed"
105call list_int%display()
106
107print *,"delete return status =", list_int%delete()
108print *,"display integer vector with everithings removed"
109call list_int%display()
110
111
112do i=1, 10
114enddo
118
119
120
121
122
123
124
125mychar%char10="ciao ciao"
127
128print *,"display mix list"
130
131print *,"print mix list with cast"
134
136 select type (x => val)
137 type is (integer)
138 print *,x
139 type is (real)
140 print *,x
141 type is (doubleprecision)
142 print *,x
143 type is (integer(kind=int_b))
144 print *,x
145 type is (character(*))
146 print *,x
147 type is (mytype)
148 print *,x%i,x%r
149 type is (charmylen)
150 print *,x%char10
151 end select
152
154
155end do
156
157end program example_list
Definition of constants to be used for declaring variables of a desired type.
class to use character lists in fortran 2003 WARNING !
class to use lists in fortran 2003.
class to use lists in fortran 2003.
class to use lists in fortran 2003.