program colines implicit double precision (o-z, a-h) parameter (zero = 0.d0, half = 0.5d0, one = 1.d0, two = 2.d0 & , three = 3.d0, four = 4.d0, five = 5.d0 & , hplanck = 6.6262d-27 & , hc = 1.9876d-16 & , cs = 2.9979d10, rkb = 1.38d-16, amu = 1.66d-24 & , hck = 1.439565d0 & , esu = 4.80325d-10 & , pi = 3.141592653589793238462643d0 & , sqpi = 1.772453850905516027298167d0) dimension wav(200),str(200),wid(200),eng(200), tau(200) dimension zp(200), aval(200), jval(200), dipole(200), zp1(200) c ---------------------------------------------------------- c Read in line listing for fundamentals c ---------------------------------------------------------- open(unit=20, file='cob.dat',status='old') read(unit=20, fmt=*) nlines stot = 0.d0 do n = 1, nlines read(unit=20, fmt='(f10.6,e10.3,f5.3,f10.3,13x,i2)') & wav(n), str(n), wid(n), eng(n), jval(n) stot = stot + str(n) end do close(unit=20) write(unit=*,fmt='(21h Enter Temperature > ,$)') read (unit=*,fmt=*) tmp uth = dsqrt(two*rkb*tmp/(28.d0*amu)) sum0 = zero sum1 = zero do n = 1, nlines sum0 = sum0 + (two*jval(n)+one)*dexp(-hck*eng(n)/296.d0) sum1 = sum1 + (two*jval(n)+one)*dexp(-hck*eng(n)/tmp) end do do n = 1, nlines zp(n) = (two*jval(n)+one)*dexp(-hck*eng(n)/296.d0)/sum0 zp1(n) = (two*jval(n)+one)*dexp(-hck*eng(n)/tmp)/sum1 end do fact1 = 3.d0*hplanck/(8.d0*pi**3) fact2 = 64.d0*(pi**4)/3.d0/hplanck fact3 = 3.d0*hplanck/64.d0/pi**4 do n = 1, nlines stim0 = one-dexp(-hck*wav(n)/296.d0) stim1 = one-dexp(-hck*wav(n)/tmp) rat = (two*jval(n)+one)/(two*jval(n)+three) aval(n) = rat*(8.d0*cs*pi*(wav(n)**2)/zp(n)/stim0)*str(n) dipole(n) = dsqrt(fact3*aval(n)/wav(n)**3)/esu tau(n)=cs*str(n)*(zp1(n)*stim1/(zp(n)*stim0))/uth/wav(n)/sqpi end do factor = 3.190d-30 open(unit=50,file='colines.dat',status='unknown') write(unit=50,fmt=*) nlines do n = 1, nlines write(unit=50,fmt=902) jval(n),wav(n),eng(n),aval(n) & ,dipole(n),tau(n) end do close(unit=50) stop c ---------------------------------------------------------- c Formats c ---------------------------------------------------------- 900 format(a) 902 format(2x,i3,2x,f10.6,2x,f10.3,2x,e10.3,2x,e10.3,2x,e10.3) 905 format(' Enter filename for output > ',$) 906 format(1x,0pf7.1,1x,1p9e11.3) end