module CSlipsNotificationVariables use CVoidEventHandlerCollection use CIActionReference implicit none logical :: SlipsNotification = .false. procedure (ActionBool), pointer :: SlipsNotificationPtr public type(VoidEventHandlerCollection) :: OnSlipsNotificationChange private :: SlipsNotification contains subroutine Set_SlipsNotification(v) implicit none logical , intent(in) :: v #ifdef ExcludeExtraChanges if(SlipsNotification == v) return #endif SlipsNotification = v if(associated(SlipsNotificationPtr)) call SlipsNotificationPtr(SlipsNotification) #ifdef deb print*, 'SlipsNotification=', SlipsNotification #endif call OnSlipsNotificationChange%RunAll() end subroutine logical function Get_SlipsNotification() implicit none Get_SlipsNotification = SlipsNotification end function subroutine Set_SlipsNotification_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsNotification_WN !DEC$ ATTRIBUTES ALIAS: 'Set_SlipsNotification_WN' :: Set_SlipsNotification_WN implicit none logical , intent(in) :: v call Set_SlipsNotification(v) end subroutine logical function Get_SlipsNotification_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_SlipsNotification_WN !DEC$ ATTRIBUTES ALIAS: 'Get_SlipsNotification_WN' :: Get_SlipsNotification_WN implicit none Get_SlipsNotification_WN = SlipsNotification end function subroutine SubscribeSlipsNotification(a) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSlipsNotification !DEC$ ATTRIBUTES ALIAS: 'SubscribeSlipsNotification' :: SubscribeSlipsNotification implicit none procedure (ActionBool) :: a SlipsNotificationPtr => a end subroutine end module CSlipsNotificationVariables