module CSlackOff use CVoidEventHandlerCollection implicit none logical :: SlackOff = .false. public type(VoidEventHandlerCollection) :: OnSlackOffChange private :: SlackOff contains subroutine Set_SlackOff(v) implicit none logical , intent(in) :: v #ifdef ExcludeExtraChanges if(SlackOff == v) return #endif SlackOff = v #ifdef deb print*, 'SlackOff=', SlackOff #endif call OnSlackOffChange%RunAll() end subroutine logical function Get_SlackOff() implicit none Get_SlackOff = SlackOff end function subroutine Set_SlackOff_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_SlackOff_WN !DEC$ ATTRIBUTES ALIAS: 'Set_SlackOff_WN' :: Set_SlackOff_WN implicit none logical , intent(in) :: v call Set_SlackOff(v) end subroutine logical function Get_SlackOff_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_SlackOff_WN !DEC$ ATTRIBUTES ALIAS: 'Get_SlackOff_WN' :: Get_SlackOff_WN implicit none Get_SlackOff_WN = SlackOff end function subroutine Subscribe_SlackOff() implicit none end subroutine end module CSlackOff