******************************************************************************* program ir_spec ******************************************************************************* c c This program is designed to convert data file formats c c To compile non-graphics programs use : c fort77 $(OPT) ir_spec_msi.f -o ir_spec_msi c parameter (n = 4000) real*8 w(n), g(n),t(n) parameter (m = 1000) real*8 w0(m), r(m) real*8 sigma character*40 fname character*40 gname character*28 record integer i,j,npts integer icolumn integer cnunit parameter ( cnunit = 10 ) c c print *,'Enter Outmol Filename from DMol3:' read(5,'(a40)') fname c open(unit=cnunit,file=fname,status='old',form='formatted') print *,'Enter Number of Frequencies: ' read(5,*) npts print *,'Enter Gaussian Width: ' read(5,*) sigma if(sigma.lt.1) goto 3002 do 100 j=1,100000 read(cnunit,'(a28)',err=3000) record if(record.eq.' vibrational frequencies') then read(cnunit,'(a28)',err=3000) record c read(cnunit,'(i3)',err=3000) npts do 2000 i=1,npts read(cnunit,110,err=3000) w0(i), r(i) print *, w0(i), r(i) 2000 continue goto 120 endif 100 continue 110 format(23x,f6.1,6x,f6.2) 120 continue close( unit = cnunit ) c c print *,'Enter Output Filename: ' read(5,'(a40)') gname c open(unit=7,file=gname,form='formatted', $ status='new',err=990) c do 900 j=1,4000 w(j)=j t(j)=0.0 900 continue do 1000 i=1,npts do 1100 j=1,4000 g(j)=r(i)/sqrt(2*3.141592)/sigma g(j)=g(j)*exp(-(w(j)-w0(i))*(w(j)-w0(i))/(2*sigma*sigma)) t(j)=t(j)+g(j) 1100 continue 1000 continue do 1200 j=1,4000 write(7,210) w(j),t(j) 1200 continue 210 format(f12.4,' , ',f12.4) goto 999 3000 continue print *,'Error in input file' 3002 continue print *,'Error in Gaussian width' goto 999 990 continue print *,'Error in output file' 999 continue c end