module CTdsTongEnumVariables use CVoidEventHandlerCollection implicit none integer :: TdsTong = 0 public type(VoidEventHandlerCollection) :: OnTdsTongChange enum, bind(c) enumerator TDS_TONG_BREAKOUT_END enumerator TDS_TONG_BREAKOUT_BEGIN enumerator TDS_TONG_MAKEUP_BEGIN enumerator TDS_TONG_MAKEUP_END end enum private :: TdsTong contains subroutine Set_TdsTong(v) implicit none integer , intent(in) :: v #ifdef ExcludeExtraChanges if(TdsTong == v) return #endif TdsTong = v #ifdef deb print*, 'TdsTong=', TdsTong #endif call OnTdsTongChange%RunAll() end subroutine integer function Get_TdsTong() implicit none Get_TdsTong = TdsTong end function subroutine Set_TdsTong_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsTong_WN !DEC$ ATTRIBUTES ALIAS: 'Set_TdsTong_WN' :: Set_TdsTong_WN implicit none integer , intent(in) :: v call Set_TdsTong(v) end subroutine integer function Get_TdsTong_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsTong_WN !DEC$ ATTRIBUTES ALIAS: 'Get_TdsTong_WN' :: Get_TdsTong_WN implicit none Get_TdsTong_WN = TdsTong end function subroutine TdsTongBreakoutEnd() !DEC$ ATTRIBUTES DLLEXPORT :: TdsTongBreakoutEnd !DEC$ ATTRIBUTES ALIAS: 'TdsTongBreakoutEnd' :: TdsTongBreakoutEnd implicit none !if(TdsTong /= TDS_TONG_BREAKOUT_END) TdsTong = TDS_TONG_BREAKOUT_END call Set_TdsTong(TDS_TONG_BREAKOUT_END) #ifdef deb print*, 'TDS_TONG_BREAKOUT_END' #endif end subroutine subroutine TdsTongMakeupEnd() !DEC$ ATTRIBUTES DLLEXPORT :: TdsTongMakeupEnd !DEC$ ATTRIBUTES ALIAS: 'TdsTongMakeupEnd' :: TdsTongMakeupEnd implicit none !if(TdsTong /= TDS_TONG_MAKEUP_END) TdsTong = TDS_TONG_MAKEUP_END call Set_TdsTong(TDS_TONG_MAKEUP_END) #ifdef deb print*, 'TDS_TONG_MAKEUP_END' #endif end subroutine end module CTdsTongEnumVariables