subroutine Bit_Specification
    
    use sROP_Other_Variables    
    use sROP_Variables
    use CStringConfigurationVariables
    use SimulationVariables
    implicit none
    
    INTEGER :: io
    integer :: i , BitClass_name
    real(8) :: rd
    
    !data%State%ROP_Spec%H1=1.9
    !data%State%ROP_Spec%H2=7.
    !data%State%ROP_Spec%H3=1.
    !data%State%ROP_Spec%wdmax=7.
    
    
    
    data%State%ROP_Spec%BitClass = (data%Configuration%StringConfiguration%BitDefinition%BitCodeHundreds*100)+(data%Configuration%StringConfiguration%BitDefinition%BitCodeTens*10)+data%Configuration%StringConfiguration%BitDefinition%BitCodeOnes
    rd        = SNGL(data%State%ROP_Spec%BitClass)/10.d0
    data%State%ROP_Spec%BrCoef   = ( (SNGL(data%State%ROP_Spec%BitClass)/10.d0)-(DINT(rd)) )*10.d0
    
    BitClass_name = (data%State%ROP_Spec%BitClass)/10
    
    
    
   
    
    if ( (any(BitClass_name==(/11,12,13,14,21,22,23,24,31,32,33,34,41/))) ) then
        open(unit=233,file="Bit_Database.TXT")
        READ (233,*)
        DO i=1,13!(14-1(/=10))
            READ (233,*) data%State%ROP_Spec%name, data%State%ROP_Spec%H1, data%State%ROP_Spec%H2, data%State%ROP_Spec%H3, data%State%ROP_Spec%wdmax
            if ( data%State%ROP_Spec%name==BitClass_name ) then
                exit
            end if
        END DO
        close (233)
    else
        data%State%ROP_Spec%H1=1.50d0
        data%State%ROP_Spec%H2=1.0d0
        data%State%ROP_Spec%H3=.020d0
        data%State%ROP_Spec%wdmax=10.0d0
    end if
    
    
   
    
    
    !print*, 'data%State%ROP_Spec%H1=' , data%State%ROP_Spec%H1
    !print*, 'data%State%ROP_Spec%H2=' , data%State%ROP_Spec%H2
    !print*, 'data%State%ROP_Spec%H3=' , data%State%ROP_Spec%H3
    !print*, 'data%State%ROP_Spec%wdmax=' , data%State%ROP_Spec%wdmax
    !print*, 'data%State%ROP_Spec%name=' , data%State%ROP_Spec%name
    
    
    
    
    

    ! filename = 'Bit_Database.TXT' 
    !open (UNIT=3, FILE=filename ) 
    !!print*, 'data%State%ROP_Spec%wdmax1='  , data%State%ROP_Spec%wdmax
    !        !print*, 'data%State%ROP_Spec%name1='  , data%State%ROP_Spec%name
    !!openif: if ( data%State%ROP_Spec%status == 0 ) then
    !    read (3,*,IOSTAT=data%State%ROP_Spec%status)    ! Get next value
    !    readloop: do i=1,14
    !        read (3,*,IOSTAT=data%State%ROP_Spec%status) data%State%ROP_Spec%name, data%State%ROP_Spec%H1, data%State%ROP_Spec%H2, data%State%ROP_Spec%H3, data%State%ROP_Spec%wdmax   ! Get next value
    !        !print*, 'data%State%ROP_Spec%wdmax='  , data%State%ROP_Spec%wdmax
    !        !print*, 'data%State%ROP_Spec%name='  , data%State%ROP_Spec%name
    !        if ( data%State%ROP_Spec%status /= 0 ) exit           ! EXIT if not valid.
    !        if ( data%State%ROP_Spec%name == data%State%ROP_Spec%BitClass/10) exit
    !    end do readloop
    !!endif openif
    
end subroutine