1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
module stdlib_hashmaps_associate_16
implicit none
type :: open_map_entry_type
integer(4) :: hash_val
end type open_map_entry_type
type open_map_entry_ptr
type(open_map_entry_type), pointer :: target => null()
end type open_map_entry_ptr
type :: open_hashmap_type
type(open_map_entry_ptr), allocatable :: inverse(:)
end type open_hashmap_type
end module stdlib_hashmaps_associate_16
program associate_16
use stdlib_hashmaps_associate_16
implicit none
type(open_hashmap_type) :: map
integer(4) :: inv_index = 1
integer(4) :: test = 1
allocate(map % inverse(1))
allocate(map % inverse(1) % target)
associate(inverse => map % inverse(inv_index))
if (associated(inverse % target)) then
test = 2
end if
end associate
print *, test
if (test /= 2) error stop
end program
|