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