|
- MODULE VARIABLES
- use DynamicDoubleArray
- IMPLICIT NONE
-
-
-
-
- !===========================================================================
- ! INPUT VARIABLES
- !===========================================================================
- type :: BopStackInputType
- REAL,ALLOCATABLE:: MINORS1(:,:),PIPINGS_RAMLINE(:,:),MINORS_ANNULAR(:,:),PIPINGS_ANNULAR(:,:),PIPINGS_AIRPUMP(:,:),MINORS_AIRPUMP(:,:)
- integer AnnularOpenLedMine,AnnularCloseLedMine,UpperRamsCloseLEDMine,UpperRamsOpenLEDMine,LowerRamsOpenLEDMine,LowerRamsCloseLEDMine
- integer MiddleRamsOpenLEDMine,MiddleRamsCloseLEDMine,KillLineOpenLedMine,KillLineCloseLedMine,ChokeLineOpenLEDMine,ChokeLineCloseLEDMine
- integer BOP_timeCounter
- end type BopStackInputType
- type(BopStackInputType)::BopStackInput
- !===========================================================================
- ! ACC. VARIABLES
- !===========================================================================
- REAL,PARAMETER :: PI=3.141593 ,PressureDifferenceSteps = 20. ,BaseDifferenceP= 200. ! psi
- type::BopStackAccType
- REAL FVR_TOT,BOTTLE_CAPACITY,PRAMS_REGSET,acc_ChargedPressure,acc_MinPressure,ACC_PRECHARGE,ByPassOld
- REAL pram_reg,test1,test2,test3,test4,test5,test6,test7,test8,test9,ax,bx
- integer NOBOTTLES,AccPupmsFailMalf,AirSupplyPressureGaugeMalf,ManifoldPressureGaugeMalf,AccumulatorPressureGaugeMalf,RigAirMalf
- real Cumulative_AirVolume, PressureDifference
- integer SoundKoomeyAirPump
- end type BopStackAccType
- type(BopStackAccType)::BopStackAcc
- !===========================================================================
-
- ! RAM LINE COMPUTATIONAL VARIABLES
- !===========================================================================
- type:: RamLineType
- logical ShearRamIsClosing,ShearRamIsOpening
- REAL ShearRamsLeverOld,NoActiveRmas
- !REAL checkp,p_acccheck
- REAL P_ACC,FVR,DeltaT_BOP
- REAL diffp_air,losses_air,Qup,kinetic_air,pipe_loss1air,minor_loss1air,static_loss1air!,pipe_loss1_before,minor_loss1,static_loss1,kinetic_loss1,pipe_loss1
- !REAL loss_before,pipe_loss2,minor_loss2,deltah,static_loss2,kinetic_loss2,loss_after
- integer AIRP_SWITCH,ELECP_SWITCH,ShearBop_closed,FINISHED_shear,EOF,NO_MINORSRAMLINE,NO_PIPINGSRAMLINE,NO_PIPINGS_AIRPLINE,NO_MINORS_AIRPLINE
- integer counter,iteration,ShearBop_Situation_forTD
- real BA1,BA2,BA3,BA4,BBA1,BBA2,BBA3,BBA4
- REAL B1,B2,B3,B4
- REAL,ALLOCATABLE:: Re_air(:),DIAM_AIR_MM(:),DIAM_AIR_INCH(:),AREA_AIR(:),REL_ROUGHAIR(:),LENGT_AIR(:),LF_AIR(:),CV_AIR(:),NOTE_AIR(:)
- REAL,ALLOCATABLE:: fric_air(:),fricloss_air(:),minlosspa_air(:),minloss_air(:)
- REAL,ALLOCATABLE:: MINORDIAM_AIR_INCH(:),MINORAREA_AIR(:)
- REAL,ALLOCATABLE:: DIAM_RAMLINE_INCH(:),DIAM_RAMLINE_MM(:),AREA_RAMLINE(:),ROUGHNESS_AIRPLINE(:),ROUGHNESS_RAMLINE(:),RELROUGH_RAMLINE(:),LENGT_RAMLINE(:),LF_RAMLINE(:),CV_RAMLINE(:),NOTE_RAMLINE(:),AREAMINOR_RAMLINE(:)
- !REAL,ALLOCATABLE:: Re_ramline(:),fric(:),fricloss(:)
- REAL,ALLOCATABLE:: MINORDIAMETER_RAMLINE(:)
- INTEGER,ALLOCATABLE:: ITEM(:),ITEM_PIPING(:),ITEM_PIPINGAIR(:),ITEM_MINORAIR(:)
- CHARACTER,ALLOCATABLE:: DECRIPTION(:),DECRIPTION2(:),DECRIPTION_RAM(:),DESCRIPTION_AIR1(:),DESCRIPTION_AIR2(:)
- real:: counter_airp,pacc_before
- integer Annular_active,ShearBop_active,PipeRam1_active,PipeRam2_active,ChokeLine_active,KillLine_active
- end type RamLineType
- type(RamLineType)::RamLine
- !===========================================================================
- ! ANNULAR PREVENTER COMPUTATIONAL VARIABLES
- !===========================================================================
- type::AnnularComputationalType
- integer PannularTimeStepDelay
- type(DynamicDoubleArrayType) :: Pannular_regDelay
- logical AnnPressureRise
- integer NO_MinorsAnnularLine,NO_PipingsAnnularLine,RamsFirstSet
- REAL pa_annular,p_annular
- REAL,ALLOCATABLE:: MINORDIAMETER_ANNULARLINE(:),AREAMINOR_ANNULARLINE(:)
- !REAL,ALLOCATABLE:: REAL_PregAnnular(:),real_IDAnnular(:),real_pAnnular(:)
- REAL REAL_PregAnnular,real_IDAnnular,real_pAnnular
- REAL,ALLOCATABLE:: LF_ANNULARLINE(:),CV_ANNULARLINE(:),NOTE_ANNULARLINE(:),minlosspa_ANNULAR(:),minloss_ANNULAR(:)
- REAL,ALLOCATABLE:: DIAM_ANNULARLINE_INCH(:),DIAM_ANNULARLINE_MM(:),AREA_ANNULARLINE(:)
- REAL,ALLOCATABLE:: LENGT_ANNULARLINE(:),ROUGHNESS_ANNULARLINE(:),RELROUGH_ANNULARLINE(:),Re_ANNULARline(:),fricANNULAR(:),friclossANNULAR(:)
- INTEGER,ALLOCATABLE:: ITEMANNULAR(:),ITEM_PIPINGANNULAR(:)
- CHARACTER,ALLOCATABLE:: DECRIPTIONANNULAR(:),DECRIPTION2ANNULAR(:),DECRIPTION_ANNULAR(:)
- REAL WellBorePressure,acoef,Bcoef,const,AnnularSealingPressure,AnnularMovingPressure
- end type AnnularComputationalType
- type(AnnularComputationalType)::AnnularComputational
- !===========================================================================
- ! ANNULAR PREVENTER VARIABLES
- !===========================================================================
- type :: AnnularType
- REAL (8) Pannular_reg
- real Pannular_regset
- logical AnnularIsClosing,AnnularIsOpening
- REAL tolAnnular,tolzeroAnnular
- integer Annular_closed,finished_Annular,FirstSet,AnnularFailureMalf,AnnularLeakMalf,AnnularPressureGaugeMalf,Annular_Situation_forTD
- REAL AnnularLeverOld,H_AnnularBop,IDAnnular,AbopAnnular,ODDrillpipe_inAnnular,IDAnnularBase,ODDrillpipe_inAnnularBase
- REAL NeededVolumeAnnular
- end type AnnularType
- type(AnnularType)::Annular
- !===========================================================================
- ! PIPE RAMS 1 VARIABLES
- !===========================================================================
- type::PipeRams1Type
- logical IsClosing,IsOpening
- REAL PipeRams1DotLeverOld,H
- REAL NeededVolume,A,IDBase,ID,ODDrillpipe_in,ODDrillpipe_inBase
- integer closed,finished,UpperRamsFailureMalf,UpperRamsLeakMalf,Situation_forTD
- REAL real_ID
- end type PipeRams1Type
- type(PipeRams1Type)::PipeRam1
- !============================================================================
- ! SHEAR RAM BOP VARIABLES
- !============================================================================
- type:: ShearRamType
- REAL PA,PB,P_SHEAR,VA,VB,RAM_COURSE,H_REGRAM,H_ShearRamBop
- REAL,ALLOCATABLE:: ALPHA_QRAM(:),ALPHA_VDISRAM(:),ALPHA_PACC(:),ALPHA_PREGRAM(:),ALPHA_PBOP(:)
- !REAL,ALLOCATABLE:: REAL_TIME(:),REAL_QRAM(:),REAL_VDISRAM(:),REAL_PACC(:),REAL_PREGRAM(:),REAL_PBOP(:),real_IDshearBop(:)
- REAL REAL_TIME,REAL_QRAM,REAL_VDISRAM,REAL_PACC,REAL_PREGRAM,REAL_PBOP,real_IDshearBop
- REAL IDshearBopBase,IDshearBop,ODDrillpipe_inShearRam,AbopShearRam,NeededVolumeShearRams,ODDrillpipe_inShearRamBase
- Real IDshearBopFinal,IDPipeRam1Final,IDPipeRam2Final,IDAnnularFinal,OpenArea_shearBop,OpenArea_PipeRam1,OpenArea_PipeRam2,OpenArea_Annular
- Real MinimumOpenArea_InBOP
- integer MiddleRamsFailureMalf,MiddleRamsLeakMalf,ShearIsNotAllowed
- end type ShearRamType
- type(ShearRamType)::ShearRam
- !===========================================================================
- ! PIPE RAMS 2 VARIABLES
- !===========================================================================
- type::PipeRam2Type
- logical IsClosing,IsOpening
- REAL LeverOld,H_Bop
- REAL NeededVolume,ID,ODDrillpipe_in,ODDrillpipe_inBase
- integer closed,finished,LowerRamsFailureMalf,LowerRamsLeakMalf,Situation_forTD
- !REAL,ALLOCATABLE:: real_IDPipeRam2(:)
- REAL real_ID
- end type PipeRam2Type
- type(PipeRam2Type)::PipeRam2
- !===========================================================================
- ! CHOKE LINE VARIABLES
- !===========================================================================
- type::ChokeLineType
- logical IsClosing,IsOpening
- REAL LeverOld,H_Bop
- REAL NeededVolume,Abop,ID,ODDrillpipe_in,IDBase,ODDrillpipe_inBase
- integer closed,finished
- !REAL,ALLOCATABLE:: real_IDPipeRam1(:)
- REAL real_ID
- end type ChokeLineType
- type(ChokeLineType)::ChokeLine
- !===========================================================================
- ! KILL LINE VARIABLES
- !===========================================================================
- type::KillLineType
- logical IsClosing,IsOpening
- REAL LeverOld,H_Bop
- REAL NeededVolume,Abop,ID,ODDrillpipe_in,IDBase,ODDrillpipe_inBase
- integer closed,finished
- !REAL,ALLOCATABLE:: real_IDPipeRam1(:)
- REAL real_ID
- end type KillLineType
- type(KillLineType)::KillLine
- !============================================================================
- ! OIL & ENVIRONMENT VARIABLES
- !============================================================================
- REAL:: SG=1.12,WDENS=1000,GRAVITY=9.81,RE_CR=2000,NU=9e-6
- !specific gravity of liquid
- !water density(kg/m^3)
- !============================================================================
- ! PUMP VARIABLES
- !============================================================================
- type::PumpsType
- REAL P_AIRP,DELTAV_AIR,TOL_AIR,DELTAV_ELECP,Qiter
- REAL ELECTRIC_ON,ELECTRIC_OFF,AIR_ON,AIR_OFF,QAIR,QELECTRIC
- !REAL,ALLOCATABLE:: alpha_Qair(:),alpha_timeair(:),alpha_paccair(:),alpha_pairp(:),alpha_diffpair(:),alpha_lossesair(:),alpha_fvrair(:)
- REAL alpha_Qair,alpha_timeair,alpha_paccair,alpha_pairp,alpha_diffpair,alpha_lossesair,alpha_fvrair
- logical SoundKoomeyElectric
- end type PumpsType
- type(PumpsType)::Pumps
-
- !=================================================================================
-
- TYPE, PUBLIC :: BOP_TypeVars
- REAL vdis_tot,vdis_bottles,deltav_bottles,fvr_air,vdis_elecp,Qzero,Q,flow,tol,TIME,timecounter_ram,clock
- integer bop_type, SuccessionCounter, SuccessionCounterOld,First_CloseTimecheck,First_OpenTimecheck,FourwayValve ! FourwayValve 1: Open , 0: Close
- REAL loss_before,pipe_loss2,minor_loss2,deltah,static_loss2,kinetic_loss2,loss_after,TOLZERO,diffp_ram
- REAL checkp,p_acccheck,P_BOP,minor_loss1,static_loss1,kinetic_loss1,pipe_loss1
- Logical Bottles_Charged_MalfActive
- END TYPE BOP_TypeVars
-
- TYPE(BOP_TypeVars), DIMENSION(1:6) :: RAM
- ! 1 : Annular (RNUMBER)
- ! 2 : PipeRam1 (RNUMBER)
- ! 3 : PipeRam2 (RNUMBER)
- ! 4 : ShearRam (RNUMBER)
- ! 5 : ChokeLine (RNUMBER)
- ! 6 : KillLine (RNUMBER)
-
- TYPE, PUBLIC :: BOP_TypeVars2D
- REAL, ALLOCATABLE:: minlosspa(:,:),minloss(:,:)
- REAL,ALLOCATABLE:: Re_ramline(:,:),fric(:,:),fricloss(:,:)
- END TYPE BOP_TypeVars2D
-
- TYPE(BOP_TypeVars2D) :: RAMS
-
- END MODULE
-
-
-
-
-
|