module CStringUpdateVariables use CIntegerEventHandlerCollection implicit none integer :: StringUpdate = 0 public !**type(IntegerEventHandlerCollection) :: OnStringUpdateChange enum, bind(c) enumerator STRING_UPDATE_NEUTRAL enumerator STRING_UPDATE_ADD_SINGLE enumerator STRING_UPDATE_ADD_STAND enumerator STRING_UPDATE_REMOVE_SINGLE enumerator STRING_UPDATE_REMOVE_STAND end enum private :: StringUpdate contains subroutine Set_StringUpdate(v) implicit none integer , intent(in) :: v #ifdef ExcludeExtraChanges if(StringUpdate == v) return #endif StringUpdate = v call OnStringUpdateChange%RunAll(v) end subroutine integer function Get_StringUpdate() implicit none Get_StringUpdate = StringUpdate end function subroutine Set_StringUpdate_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_StringUpdate_WN !DEC$ ATTRIBUTES ALIAS: 'Set_StringUpdate_WN' :: Set_StringUpdate_WN implicit none integer , intent(in) :: v call Set_StringUpdate(v) end subroutine integer function Get_StringUpdate_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_StringUpdate_WN !DEC$ ATTRIBUTES ALIAS: 'Get_StringUpdate_WN' :: Get_StringUpdate_WN implicit none Get_StringUpdate_WN = StringUpdate end function end module CStringUpdateVariables