MODULE GeoElements_FluidModule
    
    
    IMPLICIT NONE
    PUBLIC
    
    
    
    
    REAL(8) , Allocatable :: MD(:) , TVD(:) , Angle(:)
    
    
    
!====================================================
!   Well Geometrical Elements Info (for fluid module)
!====================================================
    
    TYPE , PUBLIC :: F_StringData
        INTEGER :: FirstElement , LastElement , ElType
        REAL(8)    :: ID , OD , TopDepth , DownDepth
    END TYPE F_StringData

    TYPE(F_StringData) , Allocatable :: F_String(:)
    
    
    
    
    
    INTEGER :: F_IntervalsTotalCounts , F_StringIntervalCounts , F_BottomHoleIntervalCounts , F_AnnulusIntervalCounts
    INTEGER :: OutOfWellIntervalCounts
    TYPE , PUBLIC :: F_IntervalData
        INTEGER :: Number , GeoType
        REAL(8)    :: ID , OD , StartDepth , EndDepth , HydDiameter , Volume
        REAL(8)    :: StartTVD , EndTVD , StartAngle , EndAngle
    END TYPE F_IntervalData
    
    TYPE(F_IntervalData) , Allocatable :: F_Interval(:)
    !####F_Interval(:)%GeoType = 
    !                           0 : String Interval
    !                           1 : BottomHole Interval
    !                           2 : Annulus Interval
    
    
    
    
    
    TYPE , PUBLIC :: OD_AnnulusData
        REAL(8)      :: ODValue , StartMD , EndMD
    END TYPE OD_AnnulusData

    TYPE(OD_AnnulusData) :: OD_Annulus(4)

    
    
    
    
    
END MODULE GeoElements_FluidModule