Simulation Core
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

68 рядки
1.9 KiB

  1. module KillLineMain
  2. implicit none
  3. public
  4. contains
  5. subroutine KillLine_Setup()
  6. use CSimulationVariables
  7. implicit none
  8. call OnSimulationInitialization%Add(KillLine_Init)
  9. call OnSimulationStop%Add(KillLine_Init)
  10. call OnKillLineStep%Add(KillLine_Step)
  11. call OnKillLineOutput%Add(KillLine_Output)
  12. call OnKillLineMain%Add(KillLineMainBody)
  13. end subroutine
  14. subroutine KillLine_Init
  15. implicit none
  16. end subroutine KillLine_Init
  17. subroutine KillLine_Step
  18. CALL KILL_LINE
  19. end subroutine KillLine_Step
  20. subroutine KillLine_Output
  21. implicit none
  22. end subroutine KillLine_Output
  23. subroutine KillLineMainBody
  24. USE ifport
  25. USE ifmt
  26. USE CSimulationVariables
  27. ! USE BOP
  28. implicit none
  29. INTEGER :: KillLineDuration
  30. integer,dimension(8) :: KillLineStartTime , KillLineEndTime
  31. ! CALL BOP_StartUp()
  32. loop1: DO
  33. CALL DATE_AND_TIME(values=KillLineStartTime)
  34. CALL KILL_LINE
  35. CALL DATE_AND_TIME(values=KillLineEndTime)
  36. KillLineDuration = 3600000 * (KillLineEndTime(5) - KillLineStartTime(5)) + 60000 * (KillLineEndTime(6) - KillLineStartTime(6)) + 1000 * (KillLineEndTime(7) - KillLineStartTime(7)) + (KillLineEndTime(8) - KillLineStartTime(8))
  37. if (KillLineDuration < 100) then
  38. call sleepqq(100 - KillLineDuration)
  39. ELSE
  40. WRITE (*,*) 'KillLine BOP run duration exceeded 100 ms and =', KillLineDuration
  41. end if
  42. IF (IsStopped==.true.) THEN
  43. EXIT loop1
  44. ENDIF
  45. ENDDO loop1
  46. ! CALL DEALLOCATE_ARRAYS()
  47. end subroutine KillLineMainBody
  48. end module KillLineMain