37 class(*),
pointer :: p
39 call this%consumers%Add(p)
52 class(*),
pointer :: p
58 call particle%get_model_coords(x, y, z)
62 event%imdl = particle%imdl
63 event%iprp = particle%iprp
64 event%irpt = particle%irpt
65 event%ilay = particle%ilay
66 event%icu = particle%icu
67 event%izone = particle%izone
68 event%trelease = particle%trelease
69 event%ttrack = particle%ttrack
73 event%istatus = particle%istatus
75 do i = 1, this%consumers%Count()
76 p => this%consumers%GetItem(i)
77 select type (consumer => p)
79 call consumer%handle_event(particle, event)
87 call this%consumers%Clear()
This module defines variable data types.
subroutine subscribe(this, consumer)
Subscribe a consumer to the dispatcher.
subroutine dispatch(this, particle, event)
Dispatch an event.
subroutine destroy(this)
Destroy the dispatcher.
integer(i4b), pointer, public kstp
current time step number
integer(i4b), pointer, public kper
current stress period number
A generic heterogeneous doubly-linked list.
Base type for particle events.
Particle tracked by the PRT model.