Simulation Core
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

69 linhas
1.9 KiB

  1. module RotaryTableMain
  2. implicit none
  3. public
  4. contains
  5. subroutine RotaryTable_Setup()
  6. !use CSimulationVariables
  7. !call OnSimulationInitialization%Add(RotaryTable_Init)
  8. !call OnSimulationStop%Add(RotaryTable_Init)
  9. !call OnRotaryTableStep%Add(RotaryTable_Step)
  10. !call OnRotaryTableOutput%Add(RotaryTable_Output)
  11. !call OnRotaryTableMain%Add(RotaryTableMainBody)
  12. end subroutine
  13. subroutine RotaryTable_Init
  14. Call RTable_StartUp
  15. end subroutine RotaryTable_Init
  16. subroutine RotaryTable_Step
  17. implicit none
  18. Call Rtable_MainSolver
  19. end subroutine RotaryTable_Step
  20. subroutine RotaryTable_Output
  21. implicit none
  22. end subroutine RotaryTable_Output
  23. subroutine RotaryTableMainBody
  24. use CDataDisplayConsoleVariables
  25. use CDrillingConsoleVariables
  26. use CSimulationVariables
  27. use RTable_VARIABLES
  28. use CDrillWatchVariables
  29. use CWarningsVariables
  30. use CSounds
  31. implicit none
  32. integer,dimension(8) :: RT_START_TIME, RT_END_TIME
  33. INTEGER :: RT_SolDuration
  34. Call RTable_StartUp
  35. loopRtablestart : do
  36. CALL DATE_AND_TIME(values=RT_START_TIME)
  37. Call Rtable_MainSolver
  38. if (IsStopped == .true.) then
  39. exit loopRtablestart
  40. end if
  41. CALL DATE_AND_TIME(values=RT_END_TIME)
  42. RT_SolDuration = 100-(RT_END_TIME(5)*3600000+RT_END_TIME(6)*60000+RT_END_TIME(7)*1000+RT_END_TIME(8)-RT_START_TIME(5)*3600000-RT_START_TIME(6)*60000-RT_START_TIME(7)*1000-RT_START_TIME(8))
  43. if(RT_SolDuration > 0.0) then
  44. CALL sleepqq(RT_SolDuration)
  45. end if
  46. end do loopRtablestart
  47. end subroutine RotaryTableMainBody
  48. end module RotaryTableMain