
INTEGER :: NGROUP, NVAR, NMAX, N
INTEGER, ALLOCATABLE :: NG(:)    ! Dung luong mau thuc te
REAL, ALLOCATABLE :: X(:,:), X1(:,:), MEAN(:,:), C(:,:), C1(:,:), COEF(:,:)
REAL, ALLOCATABLE :: F(:,:)
INTEGER, ALLOCATABLE :: LFSC(:)

OPEN (1, FILE='my_discr.txt')
READ (1,*) NGROUP,NVAR

ALLOCATE( NG(NGROUP), MEAN(NGROUP, NVAR))
ALLOCATE( C(NVAR, NVAR),C1(NVAR,NVAR))
ALLOCATE( COEF(NGROUP,NVAR+1)) !, Tmp(NVAR) )

   READ (1,*) (NG(K),K=1,NGROUP)
   N=0         ! Tong so mau = Sum (NG(i)|i=1,NGROUP)
   Do i=1,NGROUP
      N=N+NG(i)
   Enddo

   !print*, NGROUP,NVAR,N, NG(:)

   Allocate (X(N,NVAR), X1(N,NVAR), F(N,NGROUP), LFSC(N))
   i=0
   Do K=1,NGROUP
      Do j=1,NG(K)
         !READ (1,*) (X(I,J,K),J=1,NVAR)
         i=i+1; ! LOBS(i)=K                  ! Nhan cua nhom cua cac mau
         Read (1,*) (X(i,j1), j1=1,Nvar)
         !print*,i,(X(i,j1), j1=1,Nvar)
      Enddo
   Enddo

   Call Discr_2023(NGROUP,N,NVAR,NG,X,COEF,LFSC)
   Do k=1,NGROUP
      print"(I3,10F8.3)",k, (COEF(k,j),j=1,Nvar+1)
   Enddo

      ! Tinh ham phan biet cho tap mau phu thuoc
      Do I=1,N ! 1
         Do K=1,NGROUP
            F(I,K) = COEF(K,1)
            Do J=1,NVAR
               F(I,K) = F(I,K) + COEF(K,J+1)*X(I,J)
            Enddo
         Enddo
         LFSC(I) = 1
         Temp = F(I,1)
         Do K=2,NGROUP
            if (F(I,K)>Temp) THEN
               Temp = F(I,K)
               LFSC(I) = K
            endif
         Enddo
      Enddo
      Do I=1,N ! 1
         print '(2F10.4,2I4)', (F(I,K),K=1,NGROUP), LFSC(I)
      Enddo

   CONTAINS
    !------------------------------------------------------------------------------------

   Include "Sub_My_Discr_2023.f90"

   END
