subroutine Pump_dia(x1,x2,x3,x5,x6,Pump_No) use Pump_VARIABLES use equipments_PowerLimit IMPLICIT NONE INTEGER :: Pump_No REAL :: x1,x2,x3,x4,x5,x6 !Power_sigma=2.*(PUMP(1)%Vt*PUMP(1)%ia_new)+2.*(PUMP(2)%Vt*PUMP(2)%ia_new)+2.*(PUMP(3)%Vt*PUMP(3)%ia_new)+(RTable%Vt*RTable%ia_new)+2.*(Drawworks%Vt*Drawworks%ia_new) PUMP(Pump_No)%Vt = PUMP(Pump_No)%x_new+Kpi*((Kpn*((30.*PUMP(Pump_No)%w_ref/pi)-(30.*PUMP(Pump_No)%w_new/pi)))+20.d0-PUMP(Pump_No)%ia_new) IF (PUMP(Pump_No)%Vt>810.) THEN PUMP(Pump_No)%Vt = 810.0 ELSE IF (PUMP(Pump_No)%Vt<0.) THEN PUMP(Pump_No)%Vt = 0.0d0 END IF !call PowerLimits ! !if (Power_sigma>max_Power_sigma) then ! PUMP(Pump_No)%Vt=PUMP(Pump_No)%Vt_old !else ! PUMP(Pump_No)%Vt=x6+Kpi*(Kpn*((30.*PUMP(Pump_No)%w_ref/pi)-(30.*x3/pi))-x2) ! IF (PUMP(Pump_No)%Vt>810.) THEN ! PUMP(Pump_No)%Vt=810. !ELSE IF (PUMP(Pump_No)%Vt<0.) THEN ! PUMP(Pump_No)%Vt=0. !END IF ! PUMP(Pump_No)%Vt_old=PUMP(Pump_No)%x_new+Kpi*(Kpn*((30.*PUMP(Pump_No)%w_ref/pi)-(30.*PUMP(Pump_No)%w_new/pi))-PUMP(Pump_No)%ia_new) ! IF (PUMP(Pump_No)%Vt_old>810.) THEN ! PUMP(Pump_No)%Vt_old=810. !ELSE IF (PUMP(Pump_No)%Vt_old<0.) THEN ! PUMP(Pump_No)%Vt_old=0. !END IF !end if !IF (PUMP(Pump_No)%Vt>810.) THEN ! PUMP(Pump_No)%Vt=810. !ELSE IF (PUMP(Pump_No)%Vt<0.) THEN ! PUMP(Pump_No)%Vt=0. !END IF !PUMP(Pump_No)%Vt_old=PUMP(Pump_No)%Vt !IF (x2<=1150.) THEN ! x5 = 6.3304d-3*x2 !ELSE IF (x2>1150.) THEN ! x5 = 2.8571d-7*(x2-1150.)+7.28 !END IF x5 = 6.3304d-3*1150.0 PUMP(Pump_No)%Ea = x5*x3 PUMP(Pump_No)%dia = (PUMP(Pump_No)%Vt-(Ra+Rf)*x2-PUMP(Pump_No)%Ea)/(La+Lf) end subroutine !------------------------------------------------------------ subroutine Pump_dw(x1,x2,x3,x4,x5,Pump_No) use Pump_VARIABLES IMPLICIT NONE INTEGER :: Pump_No REAL :: x1,x2,x3,x4,x5 !IF (x2<=1150.) THEN ! x4 = 6.3304d-3*x2 !ELSE IF (x2>1150.) THEN ! x4 = 2.8571d-7*(x2-1150.)+7.28 !END IF x4 = 6.3304d-3*1150.0 PUMP(Pump_No)%Te = x4*x2 PUMP(Pump_No)%dw = (PUMP(Pump_No)%Te-x5)/PUMP(Pump_No)%J_coef end subroutine !------------------------------------------------------------ subroutine Pump_dx(x1,x2,x3,x4,Pump_No) use Pump_VARIABLES IMPLICIT NONE INTEGER :: Pump_No REAL :: x1,x2,x3,x4 PUMP(Pump_No)%dx = Kii*((Kpn*((30.*PUMP(Pump_No)%w_ref/pi)-(30.*x3/pi)))+20.d0-x2) end subroutine