************************************************************************
*
*     PDFevUni2phys.f:
*
*     This routine converts PDFs from the unified evolution basis to the 
*     physical basis:
*
*     Evolution basis:
*     0   1   2   3   4   5   6   7   8   9   10  11  12  13
*     g   gm  Sig Dsg Tu1 Tu2 Td1 Td2 V   DV  Vu1 Vu2 Vd1 Vd2
*
*     Physical basis:
*     -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6 
*     gm  tb  bb  cb  sb  ub  db   g   d   u   s   c   b   t
*
************************************************************************
      subroutine PDFevUni2phys(leptonin,pdfin,leptonout,pdfout)
*
      implicit none
*
      include "../commons/grid.h"
      include "../commons/transUni.h"
**
*     Input Variables
*
      double precision pdfin(0:13,0:nint_max)
      double precision leptonin(6,0:nint_max)
**
*     Internal Variables
*
      integer a
      integer i,j
      double precision pdftmp(-7:6)
**
*     Output Variables
*
      double precision pdfout(-6:6,0:nint_max)
      double precision leptonout(-3:3,0:nint_max)
*
*     Rotate PDFs
*
      do a=0,nin(igrid)
         do i=0,13
            pdftmp(i-7) = 0d0
            do j=0,13
               pdftmp(i-7) = pdftmp(i-7)
     1                     + Tev2phUni(i,j) * pdfin(j,a)
            enddo
         enddo
*
         do i=-6,6
            pdfout(i,a) = pdftmp(i)
         enddo
*
         leptonout(-3,a) = ( ( leptonin(1,a) - leptonin(4,a) ) 
     1                   -   ( leptonin(3,a) - leptonin(6,a) ) ) / 6d0

         leptonout(-2,a) = ( 2d0 * ( leptonin(1,a) - leptonin(4,a) ) 
     1                   -   3d0 * ( leptonin(2,a) - leptonin(5,a) )
     2                   +         ( leptonin(3,a) - leptonin(6,a) ) )
     3                   / 12d0
         leptonout(-1,a) = ( 2d0 * ( leptonin(1,a) - leptonin(4,a) ) 
     1                   +   3d0 * ( leptonin(2,a) - leptonin(5,a) )
     2                   +         ( leptonin(3,a) - leptonin(6,a) ) ) 
     3                   / 12d0
         leptonout(0,a)  = pdftmp(-7)
         leptonout(1,a)  = ( 2d0 * ( leptonin(1,a) + leptonin(4,a) ) 
     1                   +   3d0 * ( leptonin(2,a) + leptonin(5,a) )
     2                   +         ( leptonin(3,a) + leptonin(6,a) ) )
     3                   / 12d0
         leptonout(2,a)  = ( 2d0 * ( leptonin(1,a) + leptonin(4,a) ) 
     1                   -   3d0 * ( leptonin(2,a) + leptonin(5,a) )
     2                   +         ( leptonin(3,a) + leptonin(6,a) ) )
     3                   / 12d0
         leptonout(3,a)  = ( ( leptonin(1,a) + leptonin(4,a) )
     1                   -   ( leptonin(3,a) + leptonin(6,a) ) ) / 6d0 
      enddo
*
      return
      end