C------------------------------------------------------------------------------- C C VADASR - Converter from Vadim Ilyushin's PREDICT standard to C ASROT type file(s) C C 19.III.2018 C C input is from VADASR.INP C output is to VADASR.OUT and M0.asr to M6.asr C C------------------------------------------------------------------------------- c conversion from: c cdiv class="moz-text-flowed" style="font-family: -moz-fixed"> Elowest= 2.40249611818481 cm-1 cElowest is used only in intensity calculation c Upper level Lower level Intensity Calculated(Unc.) Elow Strength c C -6 20 5 16 B -6 19 6 13 0.350E-01 36999.1487( 4.5442) 200.8563 0.052 C -6 9 4 5 B -6 10 3 7 0.103E-02 6982.2380( 8.8391) 180.2550 0.039 C c to: C c FREQUENCY abs.coeff. upper <- lower G upper <- lower E.low Linestr. c /MHz /cm-1 quanta quanta quanta quanta /cm-1 * muG**2 c c 36999.1487 0.350E-01 20, 5, 16 19, 6, 13 a -6, 0, 0---6, 0, 0 4.544 0.052 c 6982.2558 0.103E-02 9, 5, 5 10, 4, 7 a -6, 0, 0---6, 0, 0 8.839 0.039 c C___:____|____:____|____:____|____:____|____:____|____:____|____:____|____:____|____:____|____:____| C C C Modification history: C C 24.10.2010: Working version c 19.03.2018 More m output values C C C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ c C C C implicit real*8 (a-h,o-z) character line*200,linout*100 c WRITE(*,5500) 5500 FORMAT(1X//' ',76(1H_)/' |',T79,'|'/ * ' | VADASR - Converter of predictions from Vadim Ilyushin''s', * T79,'|'/ * ' | RAM36 program to ASROT files read by ASCP_L', * T79,'|'/ * ' |',76(1H_),'|'/' version 19.III.2018',T64,'Zbigniew KISIEL'/) c write(*,5501) 5501 format(/5x, *'This program requires predictive output from RAM36, obtained'/ * 5x, *'by setting the first switch in the seventh line after the &&&END' * /5x, *'line to +1 or -1'//5x, *'The PREDICTVT0.TXT file from RAM36 has to be copied to file'/5x, *'VADASR.INP. If file PREDICTVT1.TXT was also generated then'/5x, *'this can be appended to VADASR.INP.'//) c c nlines=0 c open(4,file='vadasr.inp',status='old',err=8) open(3,file='vadasr.out',status='unknown') write(*,'(1x,2a)')'Reading from: ','vadasr.inp' write(*,'(1x,2a)')' Writing to: ','vadasr.out' c open(10,file='m0.asr',status='unknown') open(11,file='m1.asr',status='unknown') open(12,file='m2.asr',status='unknown') open(13,file='m3.asr',status='unknown') open(14,file='m-3.asr',status='unknown') open( 9,file='m-2.asr',status='unknown') open(15,file='m-4.asr',status='unknown') open( 8,file='m4.asr',status='unknown') open(16,file='m-5.asr',status='unknown') open( 7,file='m5.asr',status='unknown') open(17,file='m-6.asr',status='unknown') open(18,file='m6.asr',status='unknown') c read(4,*)line read(4,*)line read(4,*)line c write(*,'(1x/'' Number of processed lines:''//1x,$)') write(*,'(1H+,i8,$)')0 c c c...Loop dealing with each predicted line in turn c 5 read(4,'(a)',end=6)line if(line(61:61).ne.'.')goto 5 decimal point in frequency c mval=555 read(line(25:26),'(i2)',err=10)mtest mval=mtest c c 1 1 1 0 E 1 0 0 0 0.836E-01 3697.7626( 0.0005) 8.8525 5.698 c 1 1 1 0 E 1 1 1 1 0.101E+00 3319.2474( 0.0005) 8.8651 8.589 c 10 write(linout,'(100A)') * line(54:65), freq * line(40:51), int * ' ',line( 7: 9),',',line(11:13),',',line(15:17), qnlower * ' ',line(28:30),',',line(32:34),',',line(36:38),' a ' qnupper * ,line(4:5),', 0, 0--',line(25:26),', 0, 0', qnvib * line(79:86), elow * line(89:97) strength c write(3,'(a)')linout if(mval.eq. 0)then nm0=nm0+1 write(10,'(a)')linout endif c if(mval.eq. 1)then nm1=nm1+1 write(11,'(a)')linout endif c if(mval.eq. 2)then nm2=nm2+1 write(12,'(a)')linout endif c if(mval.eq.-2)then nmm2=nmm2+1 write( 9,'(a)')linout endif c if(mval.eq. 3)then nm3=nm3+1 write(13,'(a)')linout endif c if(mval.eq.-3)then nmm3=nmm3+1 write(14,'(a)')linout endif c if(mval.eq.-4)then nmm4=nmm4+1 write(15,'(a)')linout endif c if(mval.eq. 4)then nm4=nm4+1 write( 8,'(a)')linout endif c if(mval.eq.-5)then nmm5=nmm5+1 write(16,'(a)')linout endif c if(mval.eq. 5)then nm5=nm5+1 write( 7,'(a)')linout endif c if(mval.eq.-6)then nmm6=nmm6+1 write(17,'(a)')linout endif c if(mval.eq. 6)then nm6=nm6+1 write(18,'(a)')linout endif c nlines=nlines+1 if((nlines/1000)*1000.eq.nlines)then write(*,'(1H+,i8,$)')nlines endif c goto 5 c 6 close(3) close(4) c close(10) close(11) close(12) close(13) close(14) close(15) close(16) close(17) close(18) close( 9) close( 8) close( 7) c write(*,'(1x//'' Total = '',I6//)')nlines c if(nm0.gt.0)write(*,'(I7,'' lines written to M0.ASR'')')nm0 if(nm1.gt.0)write(*,'(I7,'' lines written to M1.ASR'')')nm1 if(nm2.gt.0)write(*,'(I7,'' lines written to M2.ASR'')')nm2 if(nmm2.gt.0)write(*,'(I7,'' lines written to M-2.ASR'')')nmm2 if(nm3.gt.0)write(*,'(I7,'' lines written to M3.ASR'')')nm3 if(nmm3.gt.0)write(*,'(I7,'' lines written to M-3.ASR'')')nmm3 if(nmm4.gt.0)write(*,'(I7,'' lines written to M-4.ASR'')')nmm4 if(nm4.gt.0)write(*,'(I7,'' lines written to M4.ASR'')')nm4 if(nmm5.gt.0)write(*,'(I7,'' lines written to M-5.ASR'')')nmm5 if(nm5.gt.0)write(*,'(I7,'' lines written to M5.ASR'')')nm5 if(nmm6.gt.0)write(*,'(I7,'' lines written to M-6.ASR'')')nmm6 if(nm6.gt.0)write(*,'(I7,'' lines written to M6.ASR'')')nm6 stop c 8 write(*,9) 9 format(1x///' ***** ERROR: the file for conversion should ', * 'first be copied to VADASR.INP '//) c stop end C C------------------------------------------------------------------------------- C-------------------------------------------------------------------------------