瀏覽代碼

Pump module data structures added

najafi
tarmigh 1 年之前
父節點
當前提交
e2a2ba7f41
共有 19 個檔案被更改,包括 465 行新增281 行删除
  1. +1
    -1
      Equipments/MudSystem/Kick_Expansion_and_Contraction.f90
  2. +1
    -1
      Equipments/MudSystem/Kick_Migration.f90
  3. +2
    -2
      Equipments/MudSystem/MudSystem.f90
  4. +2
    -2
      Equipments/MudSystem/MudSystemStartup.f90
  5. +18
    -27
      Equipments/Pumps/Pump1_MainSolver.f90
  6. +57
    -0
      Equipments/Pumps/Pump2_MainSolver.f90
  7. +41
    -0
      Equipments/Pumps/Pump3_MainSolver.f90
  8. +35
    -41
      Equipments/Pumps/Pump_OffMode_Solver.f90
  9. +19
    -42
      Equipments/Pumps/Pump_OnMode_Solver.f90
  10. +28
    -47
      Equipments/Pumps/PumpsMain.f90
  11. +81
    -26
      Equipments/Pumps/Pumps_Inputs.f90
  12. +28
    -0
      Equipments/Pumps/Pumps_MainSolver.f90
  13. +72
    -29
      Equipments/Pumps/Pumps_Outputs.f90
  14. +43
    -50
      Equipments/Pumps/Pumps_StartUp.f90
  15. +14
    -0
      Equipments/Pumps/Pumps_TotalSolver.f90
  16. +17
    -11
      Equipments/Pumps/Pumps_VARIABLES.f90
  17. +2
    -2
      Equipments/RotaryTable/Rtable_MainSolver.f90
  18. 二進制
     
  19. +4
    -0
      SimulationCore2.vfproj

+ 1
- 1
Equipments/MudSystem/Kick_Expansion_and_Contraction.f90 查看文件

@@ -151,7 +151,7 @@ subroutine Kick_Contraction ! is called in subroutine CirculationCodeSelect
!*********************************************************
!write(*,*) 'Kick Contraction'

!MUD(2)%Q= total_pumps%Total_Pump_GPM
!MUD(2)%Q= MPumps%Total_Pump_GPM
StringFlowRate= MUD(2)%Q
AnnulusFlowRate= MUD(2)%Q


+ 1
- 1
Equipments/MudSystem/Kick_Migration.f90 查看文件

@@ -18,7 +18,7 @@ subroutine Kick_Migration ! is called in subroutine CirculationCodeSelect
integer jopelement,jopmud,jopsection,CuttingValue
!MUD(2)%Q= total_pumps%Total_Pump_GPM
!MUD(2)%Q= MPumps%Total_Pump_GPM
!StringFlowRate= MUD(2)%Q
!AnnulusFlowRate= MUD(2)%Q
!


+ 2
- 2
Equipments/MudSystem/MudSystem.f90 查看文件

@@ -2189,9 +2189,9 @@ module MudSystem
GraphTotalStrokes=GraphTotalStrokes+((DataDisplayConsole%MP1SPMGauge)/60.)*DeltaT_Mudline+((DataDisplayConsole%MP2SPMGauge)/60.)*DeltaT_Mudline
total_pumps%Total_Stroke_Counter_For_Plot = total_pumps%Total_Stroke_Counter_For_Plot + ((DataDisplayConsole%MP1SPMGauge + DataDisplayConsole%MP2SPMGauge) / 60.0) * DeltaT_Mudline
MPumps%Total_Stroke_Counter_For_Plot = MPumps%Total_Stroke_Counter_For_Plot + ((DataDisplayConsole%MP1SPMGauge + DataDisplayConsole%MP2SPMGauge) / 60.0) * DeltaT_Mudline
CALL SetTotalStrokes(INT(total_pumps%Total_Stroke_Counter_For_Plot))
CALL SetTotalStrokes(INT(MPumps%Total_Stroke_Counter_For_Plot))
DataDisplayConsole%TotalStrokeCounter= real(nint(TotalStrokesPump1+TotalStrokesPump2)) !for drilling data display


+ 2
- 2
Equipments/MudSystem/MudSystemStartup.f90 查看文件

@@ -31,7 +31,7 @@ AnnCapOld=0.
DeltaAnnCap=0.
total_pumps%Total_Stroke_Counter_For_Plot = 0.0
MPumps%Total_Stroke_Counter_For_Plot = 0.0

DeltaT_Mudline=0.1 !second
@@ -131,7 +131,7 @@ FluidFlowCounter = 0
CALL MUDLINE_LOSS_INPUTS()

!total_pumps%Total_Pump_GPM=10. ! Initial Value
!MPumps%Total_Pump_GPM=10. ! Initial Value
MUD%Q=0. ! Initial Value
Q_flow32=0.


+ 18
- 27
Equipments/Pumps/Pump1_MainSolver.f90 查看文件

@@ -1,66 +1,57 @@
subroutine Pump1_MainSolver
use Pumps_VARIABLES
Use Pumps_VARIABLES
Implicit none
implicit none
!Call DrillingConsole_ScrLEDs
Call Pumps_Inputs
if (PUMP(1)%Throttle<=0.e0) then
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) .and. (Pumps_IsStopped == .false.)) then
!!print*, 'pumps on'
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.
!Call SetSoundBlowerMP1(PUMP(1)%SoundBlower)
!MP1BLWR = 1
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
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
else
if ((any(PUMP(1)%AssignmentSwitchh==(/1,2,3,4,9,10/))) .and. (PUMP(1)%Switch==-1) .and. (Pumps_IsStopped == .false.)) then
if ((any(PUMP(1)%AssignmentSwitchh==(/1,2,3,4,9,10/))) .and. (PUMP(1)%Switch==-1)) then
PUMP(1)%SoundBlower = .true.
!Call SetSoundBlowerMP1(PUMP(1)%SoundBlower)
else
PUMP(1)%SoundBlower = .false.
!Call SetSoundBlowerMP1(PUMP(1)%SoundBlower)
end if
if ((any(PUMP(1)%AssignmentSwitchh==(/1,2,3,4,9,10/))) .and. (PUMP(1)%Switch==-1) .and. (Pumps_IsStopped == .false.) .and. (PUMP(1)%PowerFailMalf==0) .and. (PUMP(1)%Failure==0)) then
!MP1BLWR = 1
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
!MP1BLWR = 0
PUMP(1)%BLWR = 0
end if
Call Pump_OffMode_Solver(1)
!Call ClosePump1()
PUMP(1)%K_throttle = 0
end if
PUMP(1)%N_old = PUMP(1)%Speed
PUMP(1)%N_old = PUMP(1)%Speed
print*, 'Q , P , Hp , N='
print*, PUMP(1)%Flow_Rate , PUMP(1)%StandPipe_Pressure , PUMP(1)%Hydraulic_HorsePower , PUMP(1)%Speed
! pause
end subroutine Pump1_MainSolver

+ 57
- 0
Equipments/Pumps/Pump2_MainSolver.f90 查看文件

@@ -0,0 +1,57 @@
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

+ 41
- 0
Equipments/Pumps/Pump3_MainSolver.f90 查看文件

@@ -0,0 +1,41 @@
subroutine Pump3_MainSolver
Use Pumps_VARIABLES
Implicit none
if (PUMP(3)%Throttle<=0.d0) then
PUMP(3)%K_throttle = 1
end if
if((PUMP(3)%Switch==1) .and. (PUMP(3)%K_throttle==1) .and. (PUMP(3)%PowerFailMalf==0) .and. (PUMP(3)%Failure==0)) then
!========================== Pump 3 Rate limit ==========================
if (((PUMP(3)%N_new-PUMP(3)%N_old)/PUMP(3)%time_step)>PUMP(3)%RateChange) then
PUMP(3)%Speed =(PUMP(3)%RateChange*PUMP(3)%time_step)+PUMP(3)%N_old ![RPM]
else if (((PUMP(3)%N_old-PUMP(3)%N_new)/PUMP(3)%time_step)>PUMP(3)%RateChange) then
PUMP(3)%Speed = (-PUMP(3)%RateChange*PUMP(3)%time_step)+PUMP(3)%N_old
else
PUMP(3)%Speed = PUMP(3)%N_new
end if
!=======================================================================
Call Pump_OnMode_Solver(3)
else
Call Pump_OffMode_Solver(3)
PUMP(3)%K_throttle = 0
end if
PUMP(3)%N_old = PUMP(3)%Speed
end subroutine Pump3_MainSolver

+ 35
- 41
Equipments/Pumps/Pump_OffMode_Solver.f90 查看文件

@@ -1,52 +1,46 @@
subroutine Pump_OffMode_Solver(Pump_No)
use Pumps_VARIABLES
!use CPumpsVariables
!use CDrillingConsoleVariables
!use CDataDisplayConsoleVariables
!! use CSimulationVariables
!use CDrillWatchVariables
!use CSounds
Use Pumps_VARIABLES
IMPLICIT NONE
INTEGER :: Pump_No
PUMP(1)%N_new = 0.e0
!========================== 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
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
!=======================================================================
PUMP(Pump_No)%Flow_Rate = PUMP(1)%FlowRatePerSTK*4118.e0*0.01e0*(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio) ![gpm]
PUMP(Pump_No)%Hydraulic_HorsePower = ( (PUMP(Pump_No)%Flow_Rate/0.01e0)*PUMP(Pump_No)%Max_Pressure)/(168067.e0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
if ( PUMP(Pump_No)%StandPipe_Pressure>=PUMP(Pump_No)%Max_Pressure ) then
!print*, 'pumps critical'
PUMP(Pump_No)%Flow_Rate = (1714.e0*PUMP(Pump_No)%Hydraulic_HorsePower)/PUMP(Pump_No)%Max_Pressure ![gpm]
PUMP(Pump_No)%Speed = ( PUMP(Pump_No)%Flow_Rate/(PUMP(1)%FlowRatePerSTK*4118.e0*0.01e0) )*PUMP(Pump_No)%Trans_Ratio ![rpm]
end if
total_pumps%Total_Pump_GPM = PUMP(1)%Flow_Rate+PUMP(2)%Flow_Rate+PUMP(3)%Flow_Rate
total_pumps%Total_Pump_SPM = (PUMP(1)%Speed/PUMP(1)%Trans_Ratio)+(PUMP(2)%Speed/PUMP(2)%Trans_Ratio)+(PUMP(3)%Speed/PUMP(3)%Trans_Ratio)
!Call Set_MP1SPMGauge( sngl(1-PUMP(1)%SPMGaugeMalf)*real((PUMP(1)%Speed/PUMP(1)%Trans_Ratio),8) )
!SPM1 = MP1SPMGauge
!PUMP(1)%SoundSPM = INT(PUMP(1)%Speed/PUMP(1)%Trans_Ratio)
!Call SetSoundMP1( PUMP(1)%SoundSPM )
PUMP(Pump_No)%N_new = 0.d0
!========================== Pump Rate limit ==========================
if (((PUMP(Pump_No)%N_new-PUMP(Pump_No)%N_old)/PUMP(Pump_No)%time_step)>PUMP(Pump_No)%RateChange) then
PUMP(Pump_No)%Speed =(PUMP(Pump_No)%RateChange*PUMP(Pump_No)%time_step)+PUMP(Pump_No)%N_old
else if (((PUMP(Pump_No)%N_old-PUMP(Pump_No)%N_new)/PUMP(Pump_No)%time_step)>PUMP(Pump_No)%RateChange) then
PUMP(Pump_No)%Speed = (-PUMP(Pump_No)%RateChange*PUMP(Pump_No)%time_step)+PUMP(Pump_No)%N_old
else
PUMP(Pump_No)%Speed = PUMP(Pump_No)%N_new
end if
!=======================================================================
PUMP(Pump_No)%Flow_Rate = PUMP(Pump_No)%FlowRatePerSTK*4118.d0*0.01d0*(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio) ![gpm]
PUMP(Pump_No)%HorsePower = ((PUMP(Pump_No)%Flow_Rate/0.01d0)*PUMP(Pump_No)%StandPipe_Pressure)/(168067.d0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
!PUMP(Pump_No)%Max_Horsepower = ((PUMP(Pump_No)%Flow_Rate/0.01d0)*PUMP(Pump_No)%Max_Pressure)/(168067.d0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
PUMP(Pump_No)%Max_Horsepower = (PUMP(Pump_No)%Flow_Rate*PUMP(Pump_No)%Max_Pressure)/(1714.d0*PUMP(Pump_No)%Mech_Efficiency)
if ( PUMP(Pump_No)%StandPipe_Pressure>PUMP(Pump_No)%Max_Pressure ) then ! in shart check shavad
!if ( (PUMP(Pump_No)%StandPipe_Pressure*PUMP(Pump_No)%Flow_Rate)>(1714.d0*PUMP(Pump_No)%Max_Horsepower*PUMP(Pump_No)%Mech_Efficiency) ) then
PUMP(Pump_No)%Flow_Rate = (1714.d0*PUMP(Pump_No)%Mech_Efficiency*PUMP(Pump_No)%Max_Horsepower)/PUMP(Pump_No)%StandPipe_Pressure ![gpm]
PUMP(Pump_No)%Speed = ( PUMP(Pump_No)%Flow_Rate/(PUMP(Pump_No)%FlowRatePerSTK*4118.d0*0.01d0) )*PUMP(Pump_No)%Trans_Ratio ![rpm]
end if
PUMP(Pump_No)%SoundSPM = INT(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio)
If (PUMP(Pump_No)%Flow_Rate>0.d0) Then
PUMP(Pump_No)%Open_Close = 1
Else
PUMP(Pump_No)%Open_Close = 0
End if
end subroutine Pump_OffMode_Solver

+ 19
- 42
Equipments/Pumps/Pump_OnMode_Solver.f90 查看文件

@@ -1,55 +1,32 @@
subroutine Pump_OnMode_Solver(Pump_No)
use Pumps_VARIABLES
!use CPumpsVariables
!use CDrillingConsoleVariables
!use CDataDisplayConsoleVariables
!! use CSimulationVariables
!use CDrillWatchVariables
!use equipments_PowerLimit
!use CSounds
!use CWarningsVariables
Use Pumps_VARIABLES
IMPLICIT NONE
INTEGER :: Pump_No
PUMP(Pump_No)%Flow_Rate = PUMP(1)%FlowRatePerSTK*4118.e0*0.01e0*(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio) ![gpm]
PUMP(Pump_No)%Max_FlowRate = PUMP(1)%FlowRatePerSTK*4118.e0*0.01e0*PUMP(1)%MaxSPM ![gpm]
PUMP(Pump_No)%Hydraulic_HorsePower = ( (PUMP(Pump_No)%Flow_Rate/0.01e0)*PUMP(Pump_No)%Max_Pressure)/(168067.e0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
if ( PUMP(Pump_No)%StandPipe_Pressure>=PUMP(Pump_No)%Max_Pressure ) then ! in shart check shavad
!print*, 'pumps critical'
PUMP(Pump_No)%Flow_Rate = (1714.e0*PUMP(Pump_No)%Hydraulic_HorsePower)/PUMP(Pump_No)%Max_Pressure ![gpm]
PUMP(Pump_No)%Speed = ( PUMP(Pump_No)%Flow_Rate/(PUMP(1)%FlowRatePerSTK*4118.e0*0.01e0) )*PUMP(Pump_No)%Trans_Ratio ![rpm]
end if
PUMP(Pump_No)%Flow_Rate = PUMP(Pump_No)%FlowRatePerSTK*4118.d0*0.01d0*(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio) ![gpm]
PUMP(Pump_No)%Max_FlowRate = PUMP(Pump_No)%FlowRatePerSTK*4118.d0*0.01d0*PUMP(Pump_No)%MaxSPM ![gpm]
PUMP(Pump_No)%HorsePower = ((PUMP(Pump_No)%Flow_Rate/0.01d0)*PUMP(Pump_No)%StandPipe_Pressure)/(168067.d0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
!PUMP(Pump_No)%Max_Horsepower = ((PUMP(Pump_No)%Flow_Rate/0.01d0)*PUMP(Pump_No)%Max_Pressure)/(168067.d0*PUMP(Pump_No)%Mech_Efficiency) ![HHP]
PUMP(Pump_No)%Max_Horsepower = (PUMP(Pump_No)%Flow_Rate*PUMP(Pump_No)%Max_Pressure)/(1714.d0*PUMP(Pump_No)%Mech_Efficiency)
if ( PUMP(Pump_No)%StandPipe_Pressure>PUMP(Pump_No)%Max_Pressure ) then ! in shart check shavad
!if ( (PUMP(Pump_No)%StandPipe_Pressure*PUMP(Pump_No)%Flow_Rate)>(1714.d0*PUMP(Pump_No)%Max_Horsepower*PUMP(Pump_No)%Mech_Efficiency) ) then
PUMP(Pump_No)%Flow_Rate = (1714.d0*PUMP(Pump_No)%Mech_Efficiency*PUMP(Pump_No)%Max_Horsepower)/PUMP(Pump_No)%StandPipe_Pressure ![gpm]
PUMP(Pump_No)%Speed = ( PUMP(Pump_No)%Flow_Rate/(PUMP(Pump_No)%FlowRatePerSTK*4118.d0*0.01d0) )*PUMP(Pump_No)%Trans_Ratio ![rpm]
end if
total_pumps%Total_Pump_GPM = PUMP(1)%Flow_Rate+PUMP(2)%Flow_Rate+PUMP(3)%Flow_Rate
total_pumps%Total_Pump_SPM = (PUMP(1)%Speed/PUMP(1)%Trans_Ratio)+(PUMP(2)%Speed/PUMP(2)%Trans_Ratio)+(PUMP(3)%Speed/PUMP(3)%Trans_Ratio)
PUMP(Pump_No)%SoundSPM = INT(PUMP(Pump_No)%Speed/PUMP(Pump_No)%Trans_Ratio) ![spm]
If (PUMP(Pump_No)%Flow_Rate>0.d0) Then
PUMP(Pump_No)%Open_Close = 1
Else
PUMP(Pump_No)%Open_Close = 0
End if
!Call Set_MP1SPMGauge( sngl(1-PUMP(1)%SPMGaugeMalf)*real((PUMP(1)%Speed/PUMP(1)%Trans_Ratio),8) )
!SPM1 = MP1SPMGauge
!PUMP(1)%SoundSPM = INT(PUMP(1)%Speed/PUMP(1)%Trans_Ratio)
!Call SetSoundMP1( PUMP(1)%SoundSPM )
!
!
!
!IF (PUMP(1)%Flow_Rate>0.) Then
! Call OpenPump1()
!Else
! Call ClosePump1()
!End if
!IF (PUMP(2)%Flow_Rate>0.) Then
! Call OpenPump2()
!Else
! Call ClosePump2()
!End if

+ 28
- 47
Equipments/Pumps/PumpsMain.f90 查看文件

@@ -1,11 +1,6 @@
module PumpsMain
use CPumpsVariables
use CDrillingConsoleVariables
use CDataDisplayConsoleVariables
! use CSimulationVariables
use Pumps_VARIABLES
use CSounds
Use Pumps_VARIABLES
implicit none
public
@@ -18,15 +13,15 @@ module PumpsMain
! ***** subroutine Pump1MainBody *****
! ****************************
! subroutine Pump1_Setup()
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(Pump1_Init)
! call OnSimulationStop%Add(Pump1_Init)
! call OnPump1Step%Add(Pump1_Step)
! call OnPump1Output%Add(Pump1_Output)
! call OnPump1Main%Add(Pump1MainBody)
! end subroutine
subroutine Pump1_Setup()
use CSimulationVariables
implicit none
call OnSimulationInitialization%Add(Pump1_Init)
call OnSimulationStop%Add(Pump1_Init)
call OnPump1Step%Add(Pump1_Step)
call OnPump1Output%Add(Pump1_Output)
call OnPump1Main%Add(Pump1MainBody)
end subroutine
subroutine Pump1_Init
Call Pumps_StartUp
@@ -36,41 +31,27 @@ module PumpsMain
Call Pump1_MainSolver
end subroutine Pump1_Step
! subroutine Pump1_Output
! implicit none
! end subroutine Pump1_Output
! subroutine Pump1MainBody
! use ifport
! use ifmt
! !use Pump1_MainSolver
! use CWarningsVariables
! !use equipments_PowerLimit
! implicit none
subroutine Pump1_Output
implicit none
end subroutine Pump1_Output
subroutine Pump1MainBody
use ifport
use ifmt
implicit none
! integer,dimension(8) :: MP_START_TIME, MP_END_TIME
! INTEGER :: MP_SolDuration
Call Pumps_StartUp
! Call Pumps_StartUp
! loop1 : do
! !!Call sleepqq(10)
! !!Call DATE_AND_TIME(values=MP_START_TIME)
! Call Pump1_MainSolver
! if (Pumps_IsStopped == .true.) then
! exit loop1
! end if
loop1 : do
Call Pumps_MainSolver

! !!Call DATE_AND_TIME(values=MP_END_TIME)
! !!MP_SolDuration = 100-(MP_END_TIME(5)*3600000+MP_END_TIME(6)*60000+MP_END_TIME(7)*1000+MP_END_TIME(8)-MP_START_TIME(5)*3600000-MP_START_TIME(6)*60000-MP_START_TIME(7)*1000-MP_START_TIME(8))
! !!if(MP_SolDuration > 0.0) then
! !! Call sleepqq(MP_SolDuration)
! !!end if
! end do loop1
end do loop1
! end subroutine Pump1MainBody
end subroutine Pump1MainBody
@@ -80,7 +61,7 @@ module PumpsMain
! ***** subroutine Pump2MainBody *****
! ****************************
! subroutine Pump2_Setup()
! ! use CSimulationVariables
! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(Pump2_Init)
! call OnSimulationStop%Add(Pump2_Init)
@@ -140,7 +121,7 @@ module PumpsMain
!! ***** subroutine Pump3MainBody *****
!! ****************************
! subroutine Pump3_Setup()
! ! use CSimulationVariables
! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(Pump3_Init)
! call OnSimulationStop%Add(Pump3_Init)


+ 81
- 26
Equipments/Pumps/Pumps_Inputs.f90 查看文件

@@ -1,55 +1,110 @@
subroutine Pumps_Inputs
!use CPumpsVariables
!use CDrillingConsoleVariables
!use CDataDisplayConsoleVariables
!! use CSimulationVariables
use Pumps_VARIABLES
!use MudSystem

Use CDrillingConsoleVariables
Use Pumps_VARIABLES
Use MudSystem
IMPLICIT NONE
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<

PUMP(1)%StandPipe_Pressure = 25.e0!PumpPressure1 ![psi]
!PUMP(1)%BlowPopOffMalf = 0 !??????? motaghayere voroudi
PUMP(1)%AssignmentSwitchh = 1!AssignmentSwitch
if ( PUMP(1)%BlowPopOffMalf==1 ) then ! Pump1 Malfunction ----> Blow Pop-offs (Relief Valves)
PUMP(1)%StandPipe_Pressure = 0.d0
else
PUMP(1)%StandPipe_Pressure = PumpPressure1 ![psi]
if ( PUMP(1)%StandPipe_Pressure<=14.d0 ) then
PUMP(1)%StandPipe_Pressure = 14.d0
end if
end if
PUMP(1)%Switch = -1!MP1CPSwitch
PUMP(1)%AssignmentSwitchh = DrillingConsole%AssignmentSwitch
PUMP(1)%Throttle = 0.e0!MP1Throttle ![RPM]
PUMP(1)%Switch = DrillingConsole%MP1CPSwitch
PUMP(1)%PowerFailMalf = 1 !??????? motaghayere voroudi (Pump1 Malfunction ----> Power Failure)
PUMP(1)%Throttle = DrillingConsole%MP1Throttle ![RPM]
PUMP(1)%Failure = 0!Pump1Failure (Pump1 Warning ----> Failure)
!PUMP(1)%PowerFailMalf = 0 !??????? motaghayere voroudi (Pump1 Malfunction ----> Power Failure) !dar CPumpProblemsVariables meghdardehi mishavad
Pumps_IsStopped = .false.!IsStopped
PUMP(1)%Failure = Pump1Failure !(Pump1 Warning ----> Failure)
PUMP(1)%N_new = PUMP(1)%Throttle
PUMP(1)%N_new = PUMP(1)%Throttle

!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<

!PUMP(2)%BlowPopOffMalf = 0 !??????? motaghayere voroudi
if ( PUMP(2)%BlowPopOffMalf==1 ) then ! Pump2 Malfunction ----> Blow Pop-offs (Relief Valves)
PUMP(2)%StandPipe_Pressure = 0.d0
else
PUMP(2)%StandPipe_Pressure = PumpPressure2 ![psi]
if ( PUMP(2)%StandPipe_Pressure<=14.d0 ) then
PUMP(2)%StandPipe_Pressure = 14.d0
end if
end if
PUMP(2)%AssignmentSwitchh = DrillingConsole%AssignmentSwitch
PUMP(2)%Switch = DrillingConsole%MP2Switch
PUMP(2)%Throttle = DrillingConsole%MP2Throttle ![RPM]
!PUMP(2)%PowerFailMalf = 0 !??????? motaghayere voroudi (Pump2 Malfunction ----> Power Failure) !dar CPumpProblemsVariables meghdardehi mishavad
PUMP(2)%Failure = Pump2Failure !(Pump2 Warning ----> Failure)
PUMP(2)%N_new = PUMP(2)%Throttle
!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!
! PUMP(2)%StandPipe_Pressure = PumpPressure2 ![psi]
!
!
!
!
!
!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 3 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!
! PUMP(3)%StandPipe_Pressure = PumpPressure3 ![psi]

!PUMP(3)%BlowPopOffMalf = 0 !??????? motaghayere voroudi
if ( PUMP(3)%BlowPopOffMalf==1 ) then ! Pump3 Malfunction ----> Blow Pop-offs (Relief Valves)
PUMP(3)%StandPipe_Pressure = 0.d0
else
PUMP(3)%StandPipe_Pressure = PumpPressure3 ![psi]
if ( PUMP(3)%StandPipe_Pressure<=14.d0 ) then
PUMP(3)%StandPipe_Pressure = 14.d0
end if
end if
PUMP(3)%Switch = DrillingConsole%MP1CPSwitch
PUMP(3)%Throttle = DrillingConsole%MP1Throttle ![RPM]
!PUMP(3)%PowerFailMalf = 0 !??????? motaghayere voroudi (Pump3 Malfunction ----> Power Failure) !dar CPumpProblemsVariables meghdardehi mishavad
PUMP(3)%Failure = Pump3Failure !(Pump1 Warning ----> Failure)
PUMP(3)%N_new = PUMP(3)%Throttle
!>>>>>>>>>>>>>>>>>>>>>>> Total Pumps <<<<<<<<<<<<<<<<<<<<<<<<<<<
end subroutine Pumps_Inputs

+ 28
- 0
Equipments/Pumps/Pumps_MainSolver.f90 查看文件

@@ -0,0 +1,28 @@
subroutine Pumps_MainSolver
Use Pumps_VARIABLES
Implicit none
Call DrillingConsole_ScrLEDs !koja bezaramesh?????
Call Pumps_Inputs
Call Pump1_MainSolver
Call Pump2_MainSolver
Call Pump3_MainSolver
Call Pumps_TotalSolver
Call Pumps_Outputs
end subroutine Pumps_MainSolver

+ 72
- 29
Equipments/Pumps/Pumps_Outputs.f90 查看文件

@@ -1,51 +1,94 @@
subroutine Pumps_Outputs
use CPumpsVariables
use CDrillingConsoleVariables
use CDataDisplayConsoleVariables
! use CSimulationVariables
use Pumps_VARIABLES
use MudSystem
Use CDataDisplayConsoleVariables
Use CSimulationVariables
Use Pumps_VARIABLES
Use MudSystem
Use CDrillWatchVariables
IMPLICIT NONE
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!Call SetSoundBlowerMP1(PUMP(1)%SoundBlower)
! DrillingConsole%MP1BLWR = 1
! Call OpenPump1()
! Call ClosePump1()
! total_pumps%Total_Pump_GPM = 100
! total_pumps%Total_Pump_SPM =
! Call Set_MP1SPMGauge( sngl(1-PUMP(1)%SPMGaugeMalf)*real((PUMP(1)%Speed/PUMP(1)%Trans_Ratio),8) )
! DrillingWatch%SPM1 = MP1SPMGauge
! Call SetSoundMP1( PUMP(1)%SoundSPM )
! SCR1LED=1
! SCR2LED=1
! SCR3LED=1
! SCR4LED=1
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
If (PUMP(1)%Open_Close==1) then
Call OpenPump1()
Else if (PUMP(1)%Open_Close==0) then
Call ClosePump1()
End if
DrillingConsole%MP1BLWR = PUMP(1)%BLWR
Call SetSoundBlowerMP1( PUMP(1)%SoundBlower ) !.true. or .false.
Call SetSoundMP1( PUMP(1)%SoundSPM ) ![spm] , integer
if ((PUMP(1)%Switch==-1) .or. (PUMP(1)%Switch==0)) then
Call Set_MP1SPMGauge( sngl(1-PUMP(1)%SPMGaugeMalf)*real((PUMP(1)%Speed/PUMP(1)%Trans_Ratio),8) ) ![spm] , real
DrillingWatch%SPM1 = DataDisplayConsole%MP1SPMGauge
end if
!PUMP(1)%Flow_Rate !to other modules , [gpm]
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
If (PUMP(2)%Open_Close==1) then
Call OpenPump2()
Else if (PUMP(2)%Open_Close==0) then
Call ClosePump2()
End if
DrillingConsole%MP2BLWR = PUMP(2)%BLWR
Call SetSoundBlowerMP2( PUMP(2)%SoundBlower )
Call SetSoundMP2( PUMP(2)%SoundSPM )
Call Set_MP2SPMGauge( sngl(1-PUMP(2)%SPMGaugeMalf)*real((PUMP(2)%Speed/PUMP(2)%Trans_Ratio),8) )
DrillingWatch%SPM2 = DataDisplayConsole%MP2SPMGauge
!PUMP(2)%Flow_Rate !to other modules

!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!
!
!
!
!
!
!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 3 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!

If (PUMP(3)%Open_Close==1) then
Call OpenCementPump()
Else if (PUMP(3)%Open_Close==0) then
Call CloseCementPump()
End if
Call SetSoundMP3( PUMP(3)%SoundSPM )
if (PUMP(3)%Switch==1) then
Call Set_MP1SPMGauge( real((PUMP(3)%Speed/PUMP(3)%Trans_Ratio),8) )
DrillingWatch%SPM1 = DataDisplayConsole%MP1SPMGauge
end if
!PUMP(3)%Flow_Rate !to other modules
!>>>>>>>>>>>>>>>>>>>>>>> Total Pumps <<<<<<<<<<<<<<<<<<<<<<<<<<<
!MPumps%Total_Pump_Gpm = 100.d0 !???????????
!MPumps%Total_Pump_SPM = 1000.d0 !?????????????
!SCR1LED=1
!SCR2LED=1
!SCR3LED=1
!SCR4LED=1
end subroutine Pumps_Outputs

+ 43
- 50
Equipments/Pumps/Pumps_StartUp.f90 查看文件

@@ -1,12 +1,7 @@
subroutine Pumps_StartUp
!use CPumpsVariables
!use CDrillingConsoleVariables
!use CDataDisplayConsoleVariables
!! use CSimulationVariables
!use CPowerVariables
use Pumps_VARIABLES
Use CPumpsVariables
Use Pumps_VARIABLES
IMPLICIT NONE
@@ -14,61 +9,59 @@ subroutine Pumps_StartUp
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<
PUMP(1)%FlowRatePerSTK = 7000.e0 ![bbl] !??????? motaghayere voroudi
!PUMP(1)%FlowRatePerSTK = PUMP(1)%FlowRatePerSTK*0.0292e0 ![gpm]
PUMP(1)%RateChange = 4.e0 ! [stk/min2] !??????? motaghayere voroudi
PUMP(1)%Stroke_Length = 12.e0!MudPump1Stroke ! bayad hazf beshe ?
PUMP(1)%Piston_Diameter = 4.e0!MudPump1LinerDiameter ! bayad hazf beshe ?
PUMP(1)%Piston_Area = (pi*(PUMP(1)%Piston_Diameter**2.e0))/4.e0 ! bayad hazf beshe ?
PUMP(1)%Mech_Efficiency = 0.95e0!MudPump1MechanicalEfficiency [dimensionless]
!PUMP(1)%Vol_Efficiency = MudPump1VolumetricEfficiency ! bayad hazf beshe ?
!PUMP(1)%Max_Horsepower = MudPump1 ! bayad hazf beshe ?
PUMP(1)%Max_Pressure = 600.e0 ! [psi] !??????? motaghayere voroudi
PUMP(1)%MaxSPM = 275.e0!MudPump1Maximum [spm]
PUMP(1)%Trans_Ratio = 965.e0/PUMP(1)%MaxSPM
PUMP(1)%time_step = 0.1e0 !?????? niaz hast ya na??
PUMP(1)%RateChange = PUMP(1)%RateChange*PUMP(1)%Trans_Ratio ! [rpm/min2]
PUMP(1)%FlowRatePerSTK = 7000.d0 ![bbl] !??????? motaghayere voroudi
!PUMP(1)%FlowRatePerSTK = PUMP(1)%FlowRatePerSTK*0.0292d0 ![gpm]
PUMP(1)%RateChange = 4.d0 ![stk/min2 ??] !??????? motaghayere voroudi
PUMP(1)%Mech_Efficiency = PumpsSpecification%MudPump1MechanicalEfficiency ![dimensionless]
!PUMP(1)%Vol_Efficiency = MudPump1VolumetricEfficiency !bayad hazf beshe ?
PUMP(1)%Max_Pressure = 600.d0 ![psi] !??????? motaghayere voroudi
PUMP(1)%MaxSPM = PumpsSpecification%MudPump1Maximum ![spm]
PUMP(1)%Trans_Ratio = 965.d0/PUMP(1)%MaxSPM
PUMP(1)%time_step = 0.1d0 !?????? niaz hast ya na??
PUMP(1)%RateChange = 193.d0!PUMP(1)%RateChange*PUMP(1)%Trans_Ratio ! [rpm/min ??] ??????????????? rpm/s
PUMP(1)%K_throttle = 0
Pumps_IsStopped = .false.
PUMP(1)%N_old = 0.e0
PUMP(1)%N_old = 0.d0
Call Pump_OffMode_Solver(1)
!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!PUMP(2)%Stroke_Length = MudPump2Stroke
!PUMP(2)%Piston_Diameter = MudPump2LinerDiameter
!PUMP(2)%Piston_Area = pi*PUMP(2)%Piston_Diameter*PUMP(2)%Piston_Diameter/4.
!PUMP(2)%Mech_Efficiency = MudPump2MechanicalEfficiency
!PUMP(2)%Vol_Efficiency = MudPump2VolumetricEfficiency
!PUMP(2)%Max_Horsepower = MudPump2
!PUMP(2)%Inertia_Moment = 23.261341 ! 23.261341 [kg.m^2] = 552 [lb.ft^2]
!PUMP(2)%J_coef = PUMP(2)%Inertia_Moment+(4.*(PUMP(2)%Inertia_Moment))
!PUMP(2)%Trans_Ratio = 965.0/MudPump2Maximum
!PUMP(2)%time_step = .10
!
!PUMP(2)%Flow_Rate = 0.
!Call Pump2_OffMode_Solver(2)
!>>>>>>>>>>>>>>>>>>>>>>> PUMP 2 <<<<<<<<<<<<<<<<<<<<<<<<<<<
PUMP(2)%FlowRatePerSTK = 7000.d0 ![bbl] !??????? motaghayere voroudi
!PUMP(2)%FlowRatePerSTK = PUMP(2)%FlowRatePerSTK*0.0292d0 ![gpm]
PUMP(2)%RateChange = 4.d0 ![stk/min2 ??] !??????? motaghayere voroudi
PUMP(2)%Mech_Efficiency = PumpsSpecification%MudPump2MechanicalEfficiency ![dimensionless]
!PUMP(2)%Vol_Efficiency = MudPump2VolumetricEfficiency !bayad hazf beshe ?
PUMP(2)%Max_Pressure = 600.d0 ![psi] !??????? motaghayere voroudi
PUMP(2)%MaxSPM = PumpsSpecification%MudPump2Maximum ![spm]
PUMP(2)%Trans_Ratio = 965.d0/PUMP(2)%MaxSPM
PUMP(2)%time_step = 0.1d0 !?????? niaz hast ya na??
PUMP(2)%RateChange = 193.d0!PUMP(2)%RateChange*PUMP(2)%Trans_Ratio ! [rpm/min ??] ??????????????? rpm/s
PUMP(2)%K_throttle = 0
PUMP(2)%N_old = 0.d0
Call Pump_OffMode_Solver(2)
!!>>>>>>>>>>>>>>>>>>>>>>> PUMP 3 <<<<<<<<<<<<<<<<<<<<<<<<<<<
!PUMP(3)%Stroke_Length = CementPumpStroke
!PUMP(3)%Piston_Diameter = CementPumpLinerDiameter
!PUMP(3)%Piston_Area = pi*PUMP(3)%Piston_Diameter*PUMP(3)%Piston_Diameter/4.
!PUMP(3)%Mech_Efficiency = CementPumpMechanicalEfficiency
!PUMP(3)%Vol_Efficiency = CementPumpVolumetricEfficiency
!PUMP(3)%Max_Horsepower = CementPump
!PUMP(3)%Inertia_Moment = 23.261341 ! 23.261341 [kg.m^2] = 552 [lb.ft^2]
!PUMP(3)%Trans_Ratio = 965.0/CementPumpMaximum
!PUMP(3)%time_step = .10
!
!PUMP(3)%Flow_Rate = 0.
!Call Pump3_OffMode_Solver
PUMP(3)%FlowRatePerSTK = 7000.d0 ![bbl] !??????? motaghayere voroudi
!PUMP(3)%FlowRatePerSTK = PUMP(3)%FlowRatePerSTK*0.0292d0 ![gpm]
PUMP(3)%RateChange = 4.d0 ![stk/min2 ??] !??????? motaghayere voroudi
PUMP(3)%Mech_Efficiency = PumpsSpecification%CementPumpMechanicalEfficiency ![dimensionless]
!PUMP(3)%Vol_Efficiency = CementPumpVolumetricEfficiency !bayad hazf beshe ?
PUMP(3)%Max_Pressure = 600.d0 ![psi] !??????? motaghayere voroudi
PUMP(3)%MaxSPM = PumpsSpecification%CementPumpMaximum ![spm]
PUMP(3)%Trans_Ratio = 965.d0/PUMP(3)%MaxSPM
PUMP(3)%time_step = 0.1d0 !?????? niaz hast ya na??
PUMP(3)%RateChange = 193.d0!PUMP(3)%RateChange*PUMP(3)%Trans_Ratio ! [rpm/min ??] ??????????????? rpm/s
PUMP(3)%K_throttle = 0
PUMP(3)%N_old = 0.d0
Call Pump_OffMode_Solver(3)


+ 14
- 0
Equipments/Pumps/Pumps_TotalSolver.f90 查看文件

@@ -0,0 +1,14 @@
subroutine Pumps_TotalSolver
Use Pumps_VARIABLES
Implicit none
MPumps%Total_Pump_Gpm = PUMP(1)%Flow_Rate+PUMP(2)%Flow_Rate+PUMP(3)%Flow_Rate ![gpm]
MPumps%Total_Pump_SPM = (PUMP(1)%Speed/PUMP(1)%Trans_Ratio)+(PUMP(2)%Speed/PUMP(2)%Trans_Ratio)+(PUMP(3)%Speed/PUMP(3)%Trans_Ratio) ![stk/min]
end subroutine Pumps_TotalSolver

+ 17
- 11
Equipments/Pumps/Pumps_VARIABLES.f90 查看文件

@@ -2,12 +2,17 @@ MODULE Pumps_VARIABLES
IMPLICIT NONE
PUBLIC
REAL , PARAMETER :: pi=3.14159265e0
Logical :: Pumps_IsStopped
Type, public:: Pumps_Type
REAL , PARAMETER :: pi=3.14159265d0
Type, public:: Pumps_Var
REAL :: Total_Pump_GPM, Total_Pump_SPM, Total_Stroke_Counter_For_Plot
end Type Pumps_Type
Type(Pumps_Type)::total_pumps
end Type Pumps_Var
Type(Pumps_Var) :: MPumps
@@ -20,15 +25,16 @@ MODULE Pumps_VARIABLES
INTEGER :: PowerFailMalf , BlowPopOffMalf , SPMGaugeMalf , Failure

REAL :: Throttle, RateChange
REAL :: Stroke_Length, Piston_Area, Piston_Diameter, Inertia_Moment
REAL :: Mech_Efficiency, Vol_Efficiency, Trans_Ratio
REAL :: StandPipe_Pressure , Max_Pressure
REAL :: Torque, Speed, N_new, N_old, MaxSPM
REAL :: Flow_Rate, Hydraulic_HorsePower, Max_Horsepower, FlowRatePerSTK, Max_FlowRate
REAL :: simulation_time, time_step
REAL :: Speed, N_new, N_old, MaxSPM
REAL :: Flow_Rate, Hydraulic_HorsePower, Max_Horsepower, FlowRatePerSTK, Max_FlowRate, HorsePower
REAL :: time_step
REAL(8) :: START_TIME, END_TIME
INTEGER :: INT_CPU_TIME, Dt_ref
INTEGER :: BLWR ! 1=On , 0=Off
INTEGER :: Open_Close ! 1=Open , 0=Close
!************* Sound_VARIABLES **********************
INTEGER :: SoundSPM


+ 2
- 2
Equipments/RotaryTable/Rtable_MainSolver.f90 查看文件

@@ -10,7 +10,7 @@ subroutine Rtable_MainSolver
IMPLICIT NONE
! if (IsPortable) then
! RTable%AssignmentSwitch = 1
! else
@@ -26,7 +26,7 @@ subroutine Rtable_MainSolver
RTable%SoundBlower = .true.
Call SetSoundBlowerRT(RTable%SoundBlower)
DrillingConsole%RTBLWR = 1
IF ( DrillingConsole%RTTransmissionLever /=0 .and. RotaryGearsAbuse==0 ) THEN !be in clutch mode ??????
RTable%N_new = DrillingConsole%RTThrottle


二進制
查看文件


+ 4
- 0
SimulationCore2.vfproj 查看文件

@@ -301,11 +301,15 @@
<File RelativePath=".\Equipments\MudSystem\Utube2_and_Trip_In.f90"/></Filter>
<Filter Name="Pumps">
<File RelativePath=".\Equipments\Pumps\Pump1_MainSolver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pump2_MainSolver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pump3_MainSolver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pump_OffMode_Solver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pump_OnMode_Solver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_Inputs.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_MainSolver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_Outputs.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_StartUp.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_TotalSolver.f90"/>
<File RelativePath=".\Equipments\Pumps\Pumps_VARIABLES.f90"/>
<File RelativePath=".\Equipments\Pumps\PumpsMain.f90"/></Filter>
<Filter Name="RotaryTable">


Loading…
取消
儲存