12 public :: hecmwst_varray_int
28 type hecmwst_varray_int
30 integer(kind=kint) :: nitem
31 integer(kind=kint),
allocatable :: items(:)
32 end type hecmwst_varray_int
37 type( hecmwst_varray_int ),
intent(inout) :: ilist
38 integer(kind=kint),
intent(in) :: n_init_in
40 integer(kind=kint) :: n_init
42 n_init = max(n_init_in,1)
45 allocate( ilist%items(n_init) )
50 type( hecmwst_varray_int ),
allocatable,
intent(inout) :: ilists(:)
51 integer(kind=kint),
intent(in) :: nlists
52 integer(kind=kint),
intent(in) :: n_init_in
54 integer(kind=kint) :: i
56 allocate(ilists(nlists))
63 type( hecmwst_varray_int ),
intent(inout) :: ilist
66 deallocate( ilist%items )
70 type( hecmwst_varray_int ),
allocatable,
intent(inout) :: ilists(:)
72 integer(kind=kint) :: i
76 deallocate( ilists(i)%items )
82 type( hecmwst_varray_int ),
intent(inout) :: ilist
88 subroutine hecmw_varray_int_enlarge( ilist )
89 type( hecmwst_varray_int ),
intent(inout) :: ilist
91 integer(kind=kint) :: i, size_ilist
92 integer(kind=kint),
allocatable :: tmp(:)
94 size_ilist =
size(ilist%items)
95 allocate(tmp(size_ilist))
97 tmp(i) = ilist%items(i)
100 deallocate(ilist%items)
101 allocate(ilist%items(size_ilist*2))
105 ilist%items(i) = tmp(i)
107 end subroutine hecmw_varray_int_enlarge
110 type( hecmwst_varray_int ),
intent(inout) :: ilist
111 integer(kind=kint),
intent(in) :: ival
113 if( ilist%nitem ==
size(ilist%items) ) &
114 &
call hecmw_varray_int_enlarge( ilist )
116 ilist%nitem = ilist%nitem + 1
117 ilist%items(ilist%nitem) = ival
121 type( hecmwst_varray_int ),
intent(inout) :: ilist
122 integer(kind=kint),
intent(in) :: ival
124 integer(kind=kint) :: i
127 if( ilist%items(i) == ival )
return
134 type( hecmwst_varray_int ),
intent(inout) :: ilist
135 integer(kind=kint),
intent(in) :: ival
137 integer(kind=kint) :: i, cval, tmpval
141 if( ilist%items(i) < cval ) cycle
142 tmpval = ilist%items(i)
143 ilist%items(i) = cval
151 type( hecmwst_varray_int ),
intent(inout) :: ilist
152 integer(kind=kint),
intent(in) :: ival
154 integer(kind=kint) :: i
157 if( ilist%items(i) == ival )
return
164 type( hecmwst_varray_int ),
intent(inout) :: ilist
165 integer(kind=kint),
intent(in) :: n
166 integer(kind=kint),
intent(in) :: vals(:)
168 do while( ilist%nitem + n >
size(ilist%items) )
169 call hecmw_varray_int_enlarge( ilist )
172 ilist%items(ilist%nitem+1:ilist%nitem+n) = vals(1:n)
173 ilist%nitem = ilist%nitem + n
177 type( hecmwst_varray_int ),
intent(in) :: ilist
178 integer(kind=kint),
intent(in) :: ival
180 integer(kind=kint) :: i
189 type( hecmwst_varray_int),
intent(in) :: ilist
195 type( hecmwst_varray_int),
intent(in) :: ilist
196 integer(kind=kint),
intent(in) :: n
202 type( hecmwst_varray_int),
intent(in) :: ilist
203 integer(kind=kint),
intent(inout) :: array(:)
205 array(1:ilist%nitem) = ilist%items(1:ilist%nitem)
integer(kind=4), parameter kint
subroutine, public hecmw_varray_int_expand(ilist, n, vals)
subroutine, public hecmw_varray_int_insert(ilist, ival)
subroutine, public hecmw_varray_int_initialize_all(ilists, nlists, n_init_in)
subroutine, public hecmw_varray_int_finalize_all(ilists)
subroutine, public hecmw_varray_int_add_if_not_exits(ilist, ival)
subroutine, public hecmw_varray_int_clear(ilist)
subroutine, public hecmw_varray_int_add(ilist, ival)
integer(kind=kint) function, public hecmw_varray_int_get_nitem(ilist)
subroutine, public hecmw_varray_int_initialize(ilist, n_init_in)
subroutine, public hecmw_varray_int_get_item_all(ilist, array)
subroutine, public hecmw_varray_int_insert_if_not_exists(ilist, ival)
integer(kind=kint) function, public hecmw_varray_int_get_item(ilist, n)
subroutine, public hecmw_varray_int_finalize(ilist)
integer(kind=kint) function, public hecmw_varray_int_find(ilist, ival)