subroutine Drawworks_MainSolver Use Drawworks_VARIABLES IMPLICIT NONE Call Drawworks_Inputs if (Drawworks%Throttle<=0.d0) then Drawworks%K_Throttle = 1 end if if((any(Drawworks%AssignmentSwitch==(/1,2,3,4,5,7,8,9,10,11/))) .and. (Drawworks%Switch==-1 .or. Drawworks%Switch==1) .and. (Drawworks%CrownCollision==.false. .and. Drawworks%FloorCollision==.false.) .and. (Drawworks%K_Throttle==1)) then Drawworks%SoundBlower = .true. Drawworks%BLWR = 1 Call Drawworks_Solver if ( Drawworks%motion==+1 ) then Drawworks%SoundRev = 0 ![rpm or rad/s????????????????] , Integer Drawworks%SoundFw = INT(Drawworks%w_drum) ![rpm] , Integer else Drawworks%SoundFw = 0 ![rpm] , Integer Drawworks%SoundRev = INT(Drawworks%w_drum) ![rpm] , Integer end if else if((any(Drawworks%AssignmentSwitch==(/1,2,3,4,5,7,8,9,10,11/))) .and. (Drawworks%Switch==-1 .or. Drawworks%Switch==1)) then Drawworks%SoundBlower = .true. Drawworks%BLWR = 1 else Drawworks%SoundBlower = .false. Drawworks%BLWR = 0 end if Call Drawworks_Solver_OffMode if ( Drawworks%motion==+1 ) then Drawworks%SoundRev = 0 ![rpm] , Integer Drawworks%SoundFw = INT(Drawworks%w_drum) ![rpm] , Integer else Drawworks%SoundFw = 0 ![rpm] , Integer Drawworks%SoundRev = INT(Drawworks%w_drum) ![rpm] , Integer end if Drawworks%K_Throttle = 0 end if Call Drawworks_Outputs Drawworks%N_old = Drawworks%Speed end subroutine Drawworks_MainSolver