subroutine RTable_MainSolver Use RTable_VARIABLES IMPLICIT NONE Call RTable_Inputs if (RTable%Throttle<=0.d0) then RTable%K_throttle = 1 end if if ( (any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTable%Switch==-1) ) then RTable%SoundBlower = .true. RTable%BLWR = 1 !======================= Rotary Table Rate_limit ======================= if (((RTable%N_new-RTable%N_old)/RTable%time_step)>RTable%RateChange) then RTable%N_ref = (RTable%RateChange*RTable%time_step)+RTable%N_old else if (((RTable%N_old-RTable%N_new)/RTable%time_step)>RTable%RateChange) then RTable%N_ref = (-RTable%RateChange*RTable%time_step)+RTable%N_old else RTable%N_ref = RTable%N_new end if !======================================================================= CALL RTable_OnModeSolver else if ( (any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTable%Switch==1) .and. (RTable%K_throttle==1) ) then RTable%SoundBlower = .true. RTable%BLWR = 1 !======================= Rotary Table Rate_limit ======================= if (((RTable%N_new-RTable%N_old)/RTable%time_step)>RTable%RateChange) then RTable%N_ref = (RTable%RateChange*RTable%time_step)+RTable%N_old else if (((RTable%N_old-RTable%N_new)/RTable%time_step)>RTable%RateChange) then RTable%N_ref = (-RTable%RateChange*RTable%time_step)+RTable%N_old else RTable%N_ref = RTable%N_new end if !======================================================================= CALL RTable_OnModeSolver else if((any(RTable%AssignmentSwitch==(/1,2,3,4,5,8,9,10,11/))) .and. (RTable%Switch/=0)) then RTable%SoundBlower = .true. RTable%BLWR = 1 else RTable%SoundBlower = .false. RTable%BLWR = 0 end if Call RTable_OffMode RTable%K_throttle = 0 end if Call RTable_Outputs RTable%N_old = RTable%N_ref end subroutine RTable_MainSolver