subroutine symetrisation_OM
use lewis_module
use mod_script
use mod_lirorb
use mod_scriptol
!
!=================================================================
! Projection sur des OM de reference SCF ou CASSCF
!=================================================================
!
implicit real*8 (a-h,o-x,z),logical*1(y)
yw=.false.


!
!=============================================================
! nombre d'electrons
!=============================================================
!
print*,' '
print*,'--------------------------------------------------------------'
print*,'Comptage des electrons :'
print*,' '
print*,'Electrons dans les orbitales de reference:'
if(scforbin/=' ') then
   print*,'nombre d''electrons dans les orbitales        ',sum(occscf)
   print*,' --> ',nint(sum(occscf))
   anelac_ref=0.d0
   do is=1,nsym
      do ii=ref_inac(is)+1,ref_inac(is)+ref_act(is)
         i=ii+sum(isym(1:is-1))
         anelac_ref=anelac_ref+occscf(i)
      enddo
   enddo
   print*,'nombre d''electrons dans les actives          ',anelac_ref
   print*,' --> ',nint(anelac_ref)
endif
print*,' '
print*,'Electrons dans les orbitales locales'
! nelac:
if(nelac==-1) then
   nelac=nint(anelac_ref)
   print*,'nombre d''electrons actifs (non donne, copie a'
   print*,'(partir du fichier d''orbitales de references)',anelac_ref
   print*,' --> ',nint(anelac_ref)
   print*,'Nombre d''electrons dans les OL               ',sum(occ)+nelac*1.d0
else
   print*,'nombre d''electrons actifs (=nelac en donnee): ',nelac
   print*,'Nombre d''electrons dans les OL               ',sum(occ)+anelac_ref
endif
print*,' --> ',nint(sum(occ))+nint(anelac_ref)

if(mprint(1)>=2) then
   print*,'ORBSCF'
   call scriptol3(orbscf,norb,norb,norb,norb,label0, &
   (/(i,i=1,norb)/),(/('                    ',i=1,norb)/),occ)
endif
print*,'--------------------------------------------------------------'
print*,' '

!
!=============================================================
! orbitales de reference exprimees dans la base des OA non sym
!=============================================================
!
if(mprint(1)>1) &
print*,'matrice des OM de reference dans OA sym'
if(mprint(1)>1) &
call scriptol3(orbscf,norb,norb,norb,norb,label0, &
(/(i,i=1,norb)/),(/('                    ',i=1,norb)/),occ)
 orbscf=matmul(pass,orbscf)
if(mprint(1)>1) &
print*,'matrice des OM de reference dans OA non sym)'
if(mprint(1)>1) &
call scriptol2(orbscf,norb,norb,norb,norb,label, &
(/(i,i=1,norb)/),(/('                    ',i=1,norb)/),occ)
return
end


