module CKellyEnumVariables use CVoidEventHandlerCollection implicit none integer :: Kelly = 0 integer :: Kelly_S = 0 public type(VoidEventHandlerCollection) :: OnKellyChange enum, bind(c) enumerator KELLY_NEUTRAL enumerator KELLY_INSTALL enumerator KELLY_REMOVE end enum private :: Kelly contains subroutine Set_Kelly(v) implicit none integer , intent(in) :: v #ifdef ExcludeExtraChanges if(Kelly == v) return #endif Kelly = v #ifdef deb print*, 'Kelly=', Kelly #endif call OnKellyChange%RunAll() end subroutine integer function Get_Kelly() implicit none Get_Kelly = Kelly end function subroutine Set_Kelly_WN(v) !DEC$ ATTRIBUTES DLLEXPORT :: Set_Kelly_WN !DEC$ ATTRIBUTES ALIAS: 'Set_Kelly_WN' :: Set_Kelly_WN implicit none integer , intent(in) :: v !call Set_Kelly(v) Kelly_S = v end subroutine integer function Get_Kelly_WN() !DEC$ ATTRIBUTES DLLEXPORT :: Get_Kelly_WN !DEC$ ATTRIBUTES ALIAS: 'Get_Kelly_WN' :: Get_Kelly_WN implicit none Get_Kelly_WN = Kelly end function logical function Get_KellyBack() !DEC$ ATTRIBUTES DLLEXPORT :: Get_KellyBack !DEC$ ATTRIBUTES ALIAS: 'Get_KellyBack' :: Get_KellyBack implicit none Get_KellyBack = .false. ! Kelly == KELLY_BACK end function logical function Get_InstallKelly() !DEC$ ATTRIBUTES DLLEXPORT :: Get_InstallKelly !DEC$ ATTRIBUTES ALIAS: 'Get_InstallKelly' :: Get_InstallKelly implicit none Get_InstallKelly = .false. ! Kelly == INSTALL_KELLY end function end module CKellyEnumVariables