subroutine Pump2_MainSolver Use Pumps_VARIABLES Implicit none if (PUMP(2)%Throttle<=0.d0) then PUMP(2)%K_throttle = 1 end if if((any(PUMP(2)%AssignmentSwitchh==(/1,2,3,4,5,7,8,11/))) .and. (PUMP(2)%Switch==-1) .and. (PUMP(2)%K_throttle==1) .and. (PUMP(2)%PowerFailMalf==0) .and. (PUMP(2)%Failure==0)) then PUMP(2)%SoundBlower = .true. PUMP(2)%BLWR = 1 !========================== Pump 2 Rate limit ========================== if (((PUMP(2)%N_new-PUMP(2)%N_old)/PUMP(2)%time_step)>PUMP(2)%RateChange) then PUMP(2)%Speed =(PUMP(2)%RateChange*PUMP(2)%time_step)+PUMP(2)%N_old else if (((PUMP(2)%N_old-PUMP(2)%N_new)/PUMP(2)%time_step)>PUMP(2)%RateChange) then PUMP(2)%Speed = (-PUMP(2)%RateChange*PUMP(2)%time_step)+PUMP(2)%N_old else PUMP(2)%Speed = PUMP(2)%N_new end if !======================================================================= Call Pump_OnMode_Solver(2) else if ((any(PUMP(2)%AssignmentSwitchh==(/1,2,3,4,5,7,8,11/))) .and. (PUMP(2)%Switch==-1)) then PUMP(2)%SoundBlower = .true. else PUMP(2)%SoundBlower = .false. end if if ((any(PUMP(2)%AssignmentSwitchh==(/1,2,3,4,5,7,8,11/))) .and. (PUMP(2)%Switch==-1) .and. (PUMP(2)%PowerFailMalf==0) .and. (PUMP(2)%Failure==0)) then PUMP(2)%BLWR = 1 else PUMP(2)%BLWR = 0 end if Call Pump_OffMode_Solver(2) PUMP(2)%K_throttle = 0 end if PUMP(2)%N_old = PUMP(2)%Speed end subroutine Pump2_MainSolver