      program neworb
!
!-------------------------------------------------------------
! Lit un fichier d'orbitales de molcas, de nom INPORB
! - s'il est ecrit en nouveau format, le recopie dans OUTORB
! - s'il est ecrit en vieux format, le traduit en nouveau
!   pour cela, on doit aussi lire isym, qui est ecrit dans OUTORB
!   sortie dans OUTORB
!-------------------------------------------------------------
!
      integer,parameter :: ndim=10000
      character(80) a
      dimension isym(8)
      l=0
      call titre('NEWORB#',60)
      open(1,file='INPORB',status='old')
      !
      read(1,'(a)') a
      rewind 1
      open(2,file='OUTORB',status='unknown')
!      open(3,file='ELIMORB',status='old')
      if(a(1:1)=='#') then
         print*,'New format file'
         print*,'INPORB is copied into OUTORB'
         do
            read(1,'(a)',end=10) a
            write(2,'(a)') trim(a)
         enddo
 10      continue
         stop
      endif
      !
!
! read isym
!
      rewind 1
      isym=0
      do
         read(1,'(a)',end=1) a
         if(a(1:9)=='* ORBITAL') then
            read(a(10:),*) nsym,isym(nsym)
         endif
      enddo
 1    continue
      if(nsym==3) nsym=4
      if(nsym==5) nsym=8
      if(nsym==6) nsym=8
      if(nsym==7) nsym=8
!###############################################################
! ATTENTION
! la correction de nsym dans les 4 lignes precedentes peut etre
! prise en defaut
! pour 1 atome, que des bases s, en sym D2h. nsym=8, seule la 
! 1ere est non vide --> nsym trouve ici : 1
! ceci dit, c'est le seul cas. Pour un dimere en D2h, on a les sym
! 1 et 5 (ou 2 et 6, ou 3 et 7) non vides. Et faire un atome avec 
! que des s en D2h, c'est un peu du vice...
!###############################################################
      print*,'isym',isym(1:nsym)
!
! insert lines
!
      rewind 1
      write(2,'(a)') '#INPORB 1.0'
      write(2,'(a)') '#INFO'
      read(1,'(a)',end=1) a
      write(2,'(a)') trim(a)
 1000 format(8i8)
      write(2,1000) 0,nsym
      write(2,1000) isym(1:nsym)
      write(2,1000) isym(1:nsym)
      write(2,'(a)') '#ORB'
      do
         read(1,'(a)',end=2) a
         if(index(a,'OCCUPATION NUMBERS')>0) write(2,'(a4)') '#OCC'
         write(2,'(a)') trim(a)
      enddo
 2    continue


      print*,'==========================================='
      print*,'End of neworb'
      print*,'==========================================='
      end
