module ChokeControlMain
    USE CHOKEVARIABLES
use SimulationVariables !@
    implicit none
    public
    contains
    
    ! subroutine ChokeControl_Setup()
    !     ! use CSimulationVariables
    !     implicit none
    !     call OnSimulationInitialization%Add(ChokeControl_Init)
    !     call OnSimulationStop%Add(ChokeControl_Init)
        ! call OnChokeControlStep%Add(ChokeControl_Step)
    !     call OnChokeControlOutput%Add(ChokeControl_Output)
    !     call OnChokeControlMain%Add(ChokeControlMainBody)
    ! end subroutine
    
    subroutine ChokeControl_Init
        call Choke_StartUp
    end subroutine ChokeControl_Init
    
    subroutine ChokeControl_Step
        use ChokeModule
        implicit none
        INTEGER CHNUMBER

        IF(data%Equipments%ChokeControlPanel%ChokeSelectorSwitch== 1) THEN
            data%Equipments%ChokeControlPanel%Choke1LED=1
            data%Equipments%ChokeControlPanel%Choke2LED=0
            CHNUMBER=1
        ELSE
            data%Equipments%ChokeControlPanel%Choke2LED=1
            data%Equipments%ChokeControlPanel%Choke1LED=0
            CHNUMBER=2
        ENDIF
        if(ABS(data%Equipments%ChokeControlPanel%ChokeControlLever)==1.0 .AND. data%Equipments%ChokeControlPanel%ChokePanelRigAirSwitch == 1 .AND. data%State%CHOOKE(CHNUMBER)%FailMalf==0 .AND. data%State%AirDrivenPump%ChokeAirFail==0) then
            if (data%Equipments%ChokeControlPanel%ChokeControlLever == 1.0) then
                data%State%CHOOKE(CHNUMBER)%ChokeIsClosing = .true.
                data%State%CHOOKE(CHNUMBER)%ChokeIsOpening = .false.
            endif
            if (data%Equipments%ChokeControlPanel%ChokeControlLever == -1.0) then 
                data%State%CHOOKE(CHNUMBER)%ChokeIsOpening = .true.
                data%State%CHOOKE(CHNUMBER)%ChokeIsClosing = .false.
            endif
            data%State%AirPumpLine%TIME=data%State%AirPumpLine%TIME+data%State%AirPumpLine%DeltaT_Choke  !overal time (s)
            call airpump_code_CHOKE(CHNUMBER)
        else
            call CHOKE_MainBody2()
        endif
    end subroutine ChokeControl_Step
    
    ! subroutine ChokeControl_Output
    !     implicit none
    ! end subroutine ChokeControl_Output
        
!     subroutine ChokeControlMainBody
!         use CRigSizeVariables
!         use CHOKE  
!         implicit none

!          CALL Choke_StartUp()
!         loop1: DO
!             CALL CHOKE_MainBody
!             call sleepqq(100)
!             !IF (IsStopped==.true.) THEN
!             !    EXIT loop1
!             !ENDIF
!     !write(*,*) '1111111111111'
!       if(IsStopped) then
! !write(*,*) '22222222222222'
          
!           CALL DEALLOCATE_ARRAYS_CHOKE()
! !write(*,*) '333333333'
          
!           call Quit()
!       end if            
            
            

!         ENDDO loop1 
        
!         CLOSE(150)
        
!         !CALL DEALLOCATE_ARRAYS_CHOKE()
        
!     end subroutine ChokeControlMainBody
    
end module ChokeControlMain