17 class(*),
pointer :: handlercontext => null()
25 class(*),
pointer,
intent(inout) :: owner
26 integer(I4B),
intent(out) :: status
40 character(len=*),
intent(in) :: var_name
41 character(len=*),
intent(in) :: mem_path
43 class(*),
pointer :: ctx
45 integer(I4B) :: handler_idx
47 class(*),
pointer :: handler_data_genptr
52 allocate (handler_data)
53 handler_data%handler => handler
54 handler_data%handlerContext => ctx
56 handler_data_genptr => handler_data
66 mt%set_handler_idx = handler_idx
77 character(len=*),
intent(in) :: var_name
78 character(len=*),
intent(in) :: mem_path
79 integer(I4B),
intent(out) :: status
83 class(*),
pointer :: handler_data_genptr => null()
90 if (mt%set_handler_idx == 0)
then
96 handler_data_genptr =>
handler_list%GetItem(mt%set_handler_idx)
97 select type (handler_data_genptr)
99 evt_handler_data => handler_data_genptr
103 call evt_handler_data%handler(evt_handler_data%handlerContext, status)
This module contains simulation constants.
integer(i4b), parameter lenvarname
maximum length of a variable name
integer(i4b), parameter lenmempath
maximum length of the memory path
This module defines variable data types.
subroutine, public get_from_memorystore(name, mem_path, mt, found, check)
@ brief Get a memory type entry from the memory list
subroutine, public mem_register_handler(var_name, mem_path, handler, ctx)
Register the event handler and context for this variable.
subroutine, public on_memory_set(var_name, mem_path, status)
Triggers the calling of the side effect handler for this variable.
type(listtype) handler_list
A generic heterogeneous doubly-linked list.