program rmos implicit real*8 (a-h,o-z) implicit integer*4 (i-n) parameter (nort=1500) dimension cij(nort,nort),bij(nort,nort),e(nort),be(nort) character*80 iu,ou c write(6,*)'Rewriting MOs, select:' write(6,*)'1 ... binary to ascii' write(6,*)'2 ... ascii to binary' write(6,*)'-----------------------' read(5,*)ic write(6,*)'input file:' read(5,'(a)')iu write(6,*)'output file:' read(5,'(a)')ou if(ic.eq.1)then open(89,file=iu,form='unformatted',status='old') read(89)NBasis,NBsUse write(6,8989)NBasis,NBsUse if(NBasis.gt.nort)then write(6,*)'too many basis functions' close(89) stop endif read(89)(e(i),i=1,NBsUse) read(89)((cij(j,i),i=1,NBasis),j=1,NBsUse) read(89)(be(i),i=1,NBsUse) read(89)((bij(j,i),i=1,NBasis),j=1,NBsUse) close(89) open(89,file=ou,form='formatted',status='unknown') write(89,8989)NBasis,NBsUse 8989 format(I4,' AOs; ',/,I4,' MOs') write(89,*)'Alpha MOs' do i=1,NBsUse write(89,1000)i,e(i) 1000 format(i4,f25.15) write(89,*)'------' do j=1,NBasis write(89,1000)j,cij(i,j) enddo enddo write(89,*)'Beta MOs' do i=1,NBsUse write(89,1000)i,be(i) write(89,*)'------' do j=1,NBasis write(89,1000)j,bij(i,j) enddo enddo close(89) endif if(ic.eq.2)then open(89,file=iu,form='formatted',status='old') read(89,*)NBasis read(89,*)NBsUse write(6,8989)NBasis,NBsUse if(NBasis.gt.nort)then write(6,*)'too many basis functions' close(89) stop endif read(89,*) do i=1,NBsUse read(89,*)idum,e(i) read(89,*) do j=1,NBasis read(89,*)jdum,cij(i,j) enddo enddo read(89,*) do i=1,NBsUse read(89,*)idum,be(i) read(89,*) do j=1,NBasis read(89,*)jdum,bij(i,j) enddo enddo close(89) open(89,file=ou,form='unformatted',status='unknown') write(89)NBasis,NBsUse write(89)(e(i),i=1,NBsUse) write(89)((cij(j,i),i=1,NBasis),j=1,NBsUse) write(89)(be(i),i=1,NBsUse) write(89)((bij(j,i),i=1,NBasis),j=1,NBsUse) close(89) endif stop end