|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- subroutine Rtable_MainSolver
-
- use CDataDisplayConsoleVariables
- use CDrillingConsoleVariables
- use CSimulationVariables
- use RTable_VARIABLES
- use CDrillWatchVariables
- use CWarningsVariables
- use CSounds
-
- IMPLICIT NONE
-
-
- if (IsPortable) then
- RTable%AssignmentSwitch = 1
- else
- RTable%AssignmentSwitch = AssignmentSwitch
- end if
-
- if (RTThrottle<=0.e0) then
- RTable%K_throttle = 1
- end if
-
- if ( (any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTSwitch == -1) .and. (IsStopped == .false.) ) then
-
- RTable%SoundBlower = .true.
- Call SetSoundBlowerRT(RTable%SoundBlower)
- RTBLWR = 1
-
-
- IF ( RTTransmissionLever /=0 .and. RotaryGearsAbuse==0 ) THEN !be in clutch mode ??????
- RTable%N_new = RTThrottle
-
- !===> Rotary Table Malfunction ----> Drive Motor Failure
- call RTMalfunction_MotorFailure
-
- if (((RTable%N_new-RTable%N_old)/RTable%time_step)>193.) then
- RTable%N_ref = (193.*RTable%time_step)+RTable%N_old
- else if (((RTable%N_old-RTable%N_new)/RTable%time_step)>193.) then
- RTable%N_ref = (-193.*RTable%time_step)+RTable%N_old
- else
- RTable%N_ref = RTable%N_new
- end if
- CALL RTable_INPUTS
- CALL RTable_Solver
- RT_RPMUnityOutput = RotaryRPMGauge
- RTable%N_old = RTable%N_ref
- Else IF ( RTTransmissionLever==0) THEN !be in brake mode ??????
- Call RTable_OffMode
- RT_RPMUnityOutput = RotaryRPMGauge
- End IF
- RT_OldTransMode = RTTransmissionLever
-
-
- else if ( (any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTSwitch == 1) .and. (RTable%K_throttle==1) .and. (IsStopped == .false.) ) then
-
- RTable%SoundBlower = .true.
- Call SetSoundBlowerRT(RTable%SoundBlower)
- RTBLWR = 1
-
-
- IF ( RTTransmissionLever /=0 .and. RotaryGearsAbuse==0 ) THEN !be in clutch mode ??????
- RTable%N_new = RTThrottle
-
- !===> Rotary Table Malfunction ----> Drive Motor Failure
- call RTMalfunction_MotorFailure
-
- if (((RTable%N_new-RTable%N_old)/RTable%time_step)>193.) then
- RTable%N_ref = (193.*RTable%time_step)+RTable%N_old
- else if (((RTable%N_old-RTable%N_new)/RTable%time_step)>193.) then
- RTable%N_ref = (-193.*RTable%time_step)+RTable%N_old
- else
- RTable%N_ref = RTable%N_new
- end if
- CALL RTable_INPUTS
- CALL RTable_Solver
- RT_RPMUnityOutput = -RotaryRPMGauge
- RTable%N_old = RTable%N_ref
- Else IF ( RTTransmissionLever==0) THEN !be in brake mode ??????
- Call RTable_OffMode
- RT_RPMUnityOutput = -RotaryRPMGauge
- End IF
- RT_OldTransMode = RTTransmissionLever
-
-
- else
-
-
- if((any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTSwitch /= 0) .and. (IsStopped == .false.) ) then
- RTable%SoundBlower = .true.
- Call SetSoundBlowerRT(RTable%SoundBlower)
- RTBLWR = 1
- else
- RTable%SoundBlower = .false.
- Call SetSoundBlowerRT(RTable%SoundBlower)
- RTBLWR = 0
- end if
-
- Call RTable_OffMode
- RT_RPMUnityOutput = RotaryRPMGauge
- RT_OldTransMode = RTTransmissionLever
- RTable%K_throttle = 0
-
-
- end if
-
- END subroutine Rtable_MainSolver
|