Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CStringUpdateVariables.f90 2.1 KiB

1 year ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. module CStringUpdateVariables
  2. use CIntegerEventHandlerCollection
  3. implicit none
  4. integer :: StringUpdate = 0
  5. public
  6. type(IntegerEventHandlerCollection) :: OnStringUpdateChange
  7. enum, bind(c)
  8. enumerator STRING_UPDATE_NEUTRAL
  9. enumerator STRING_UPDATE_ADD_SINGLE
  10. enumerator STRING_UPDATE_ADD_STAND
  11. enumerator STRING_UPDATE_REMOVE_SINGLE
  12. enumerator STRING_UPDATE_REMOVE_STAND
  13. end enum
  14. private :: StringUpdate
  15. contains
  16. subroutine Set_StringUpdate(v)
  17. implicit none
  18. integer , intent(in) :: v
  19. #ifdef ExcludeExtraChanges
  20. if(StringUpdate == v) return
  21. #endif
  22. StringUpdate = v
  23. #ifdef deb
  24. !if(StringUpdate==STRING_UPDATE_NEUTRAL) then
  25. ! print*, 'StringUpdate=STRING_UPDATE_NEUTRAL'
  26. !else if(StringUpdate==STRING_UPDATE_ADD_SINGLE) then
  27. ! print*, 'StringUpdate=STRING_UPDATE_ADD_SINGLE'
  28. !else if(StringUpdate==STRING_UPDATE_ADD_STAND) then
  29. ! print*, 'StringUpdate=STRING_UPDATE_ADD_STAND'
  30. !else if(StringUpdate==STRING_UPDATE_REMOVE_SINGLE) then
  31. ! print*, 'StringUpdate=STRING_UPDATE_REMOVE_SINGLE'
  32. !else if(StringUpdate==STRING_UPDATE_REMOVE_STAND) then
  33. ! print*, 'StringUpdate=STRING_UPDATE_REMOVE_STAND'
  34. !endif
  35. !print*, 'StringUpdate=', StringUpdate
  36. #endif
  37. call OnStringUpdateChange%RunAll(v)
  38. end subroutine
  39. integer function Get_StringUpdate()
  40. implicit none
  41. Get_StringUpdate = StringUpdate
  42. end function
  43. subroutine Set_StringUpdate_WN(v)
  44. !DEC$ ATTRIBUTES DLLEXPORT :: Set_StringUpdate_WN
  45. !DEC$ ATTRIBUTES ALIAS: 'Set_StringUpdate_WN' :: Set_StringUpdate_WN
  46. implicit none
  47. integer , intent(in) :: v
  48. call Set_StringUpdate(v)
  49. end subroutine
  50. integer function Get_StringUpdate_WN()
  51. !DEC$ ATTRIBUTES DLLEXPORT :: Get_StringUpdate_WN
  52. !DEC$ ATTRIBUTES ALIAS: 'Get_StringUpdate_WN' :: Get_StringUpdate_WN
  53. implicit none
  54. Get_StringUpdate_WN = StringUpdate
  55. end function
  56. end module CStringUpdateVariables