simplified tNode_get_byKey_asIndex and tNode_getKey_byIndex; syntax polishing
This commit is contained in:
parent
4edf8e1c6c
commit
c0620037a1
|
@ -435,13 +435,12 @@ function tNode_get_byIndex(self,i) result(node)
|
||||||
integer :: j
|
integer :: j
|
||||||
|
|
||||||
self_ => self%asList()
|
self_ => self%asList()
|
||||||
|
item => self_%first
|
||||||
|
|
||||||
if(i < 1 .or. i > self_%length) call IO_error(150,ext_msg='tNode_get_byIndex')
|
if(i < 1 .or. i > self_%length) call IO_error(150,ext_msg='tNode_get_byIndex')
|
||||||
|
|
||||||
j = 1
|
do j = 2,i
|
||||||
item => self_%first
|
|
||||||
do while(j<i)
|
|
||||||
item => item%next
|
item => item%next
|
||||||
j = j + 1
|
|
||||||
enddo
|
enddo
|
||||||
node => item%node
|
node => item%node
|
||||||
|
|
||||||
|
@ -615,14 +614,10 @@ function tNode_getKey_byIndex(self,i) result(key)
|
||||||
|
|
||||||
dict => self%asDict()
|
dict => self%asDict()
|
||||||
item => dict%first
|
item => dict%first
|
||||||
do j = 1, dict%length
|
do j = 1, min(i,dict%length)-1
|
||||||
if(j == i) then
|
|
||||||
key = item%key
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
item => item%next
|
item => item%next
|
||||||
endif
|
|
||||||
enddo
|
enddo
|
||||||
|
key = item%key
|
||||||
|
|
||||||
end function tNode_getKey_byIndex
|
end function tNode_getKey_byIndex
|
||||||
|
|
||||||
|
@ -954,23 +949,18 @@ function tNode_get_byKey_asIndex(self,key) result(keyIndex)
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
|
|
||||||
integer :: keyIndex
|
integer :: keyIndex
|
||||||
integer :: i
|
|
||||||
type(tDict), pointer :: dict
|
type(tDict), pointer :: dict
|
||||||
type(tItem), pointer :: item
|
type(tItem), pointer :: item
|
||||||
|
|
||||||
dict => self%asDict()
|
dict => self%asDict()
|
||||||
item => dict%first
|
item => dict%first
|
||||||
keyIndex = -1
|
keyIndex = 1
|
||||||
do i = 1, dict%length
|
do while (associated(item%next) .and. item%key /= key)
|
||||||
if(key == item%key) then
|
|
||||||
keyIndex = i
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
item => item%next
|
item => item%next
|
||||||
endif
|
keyIndex = keyIndex+1
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
if(keyIndex == -1) call IO_error(140,ext_msg=key)
|
if (item%key /= key) call IO_error(140,ext_msg=key)
|
||||||
|
|
||||||
|
|
||||||
end function tNode_get_byKey_asIndex
|
end function tNode_get_byKey_asIndex
|
||||||
|
@ -1254,7 +1244,7 @@ subroutine tDict_set(self,key,node)
|
||||||
if (item%key == key) exit
|
if (item%key == key) exit
|
||||||
item => item%next
|
item => item%next
|
||||||
end do searchExisting
|
end do searchExisting
|
||||||
if (.not. item%key == key) then
|
if (item%key /= key) then
|
||||||
allocate(item%next)
|
allocate(item%next)
|
||||||
item => item%next
|
item => item%next
|
||||||
self%length = self%length + 1
|
self%length = self%length + 1
|
||||||
|
|
Loading…
Reference in New Issue