module CStandRack use CVoidEventHandlerCollection implicit none integer :: StandRack = 0 public type(VoidEventHandlerCollection) :: OnStandRackChanged private :: StandRack contains subroutine Set_StandRack(v) implicit none integer , intent(in) :: v #ifdef ExcludeExtraChanges if(StandRack == v) return #endif StandRack = v #ifdef deb print*, 'StandRack=', StandRack #endif call OnStandRackChanged%RunAll() end subroutine integer function Get_StandRack() implicit none Get_StandRack = StandRack end function subroutine Subscribe_StandRack() use CCommonVariables implicit none call OnStandRackChange%AssignTo(Set_StandRack) end subroutine end module CStandRack