Simulation Core
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

RotaryTableMain.f90 1.9 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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