module CIrIBopLedNotificationVariables use CVoidEventHandlerCollection implicit none logical :: IrIBopLed = .false. public type(VoidEventHandlerCollection) :: OnIrIBopLedChange private :: IrIBopLed contains subroutine Set_IrIBopLed(v) use CDrillingConsoleVariables, only: IRIBopLedHw => IRIBopLed use CManifolds, only: InstallIBop, RemoveIBop use CIbopEnumVariables, only: Set_Ibop_Install, Set_Ibop_Remove implicit none logical , intent(in) :: v #ifdef ExcludeExtraChanges if(IrIBopLed == v) return #endif IrIBopLed = v if(IrIBopLed) then IRIBopLedHw = 1 call InstallIBop() call Set_Ibop_Install() else IRIBopLedHw = 0 call RemoveIBop() call Set_Ibop_Remove() endif call OnIrIBopLedChange%RunAll() end subroutine logical function Get_IrIBopLed() implicit none Get_IrIBopLed = IrIBopLed end function subroutine Set_IrIBopLed_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_IrIBopLed_WN !DEC$ ATTRIBUTES ALIAS: 'Set_IrIBopLed_WN' :: Set_IrIBopLed_WN implicit none logical , intent(in) :: v call Set_IrIBopLed(v) end subroutine logical function Get_IrIBopLed_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_IrIBopLed_WN !DEC$ ATTRIBUTES ALIAS: 'Get_IrIBopLed_WN' :: Get_IrIBopLed_WN implicit none Get_IrIBopLed_WN = IrIBopLed end function end module CIrIBopLedNotificationVariables