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