anchor.diff:        !
         call read_line(eof,enunit) ; if (eof) exit
         !
  +      if (nitems<4) then 
  +        call report ("In .states less than  than 4 columns, mixed up with .trans?"//trim(w),.true.)
  +      endif 
  +      !
         call readi(itemp)
  -      !
  -      !read(enunit,*,end=10) itemp
  +      call readf(energy)
  +      !
  +      if (energy>enermax) cycle
         !
         iline = iline + 1
         !
  
positive.code:            energyf = energies(ilevelf)
             energyi = energies(ileveli)
             !
             if (energyf-energyi<-1e-3) then 
               write(out,"(4i12,2x,3es16.8)"),ilevelf,ileveli,indexf,indexi,acoef,energyf,energyi
               stop 'wrong order of indices'
             endif 
             !
             if (filter) then
  
negative.code:         !
          !   half width for Doppler profiling
          if (proftype(1:5)=='DOPPL') then
            !
            if (tranfreq<small_) cycle
            !
            halfwidth=dpwcoef*tranfreq
          endif
          !
          if (offset<0) offset = ioffset*halfwidth
          !
          x0 = sqrt(ln2)/halfwidth*dfreq*0.5_rk
          !
          !   half width for Doppler profiling
          if (proftype(1:5)=='VOIGT'.or.proftype(1:5)=='PSEUD') then
            if (tranfreq<small_) cycle
            halfwidth0=dpwcoef*tranfreq
            x0 = sqrt(ln2)/halfwidth0*dfreq*0.5_rk
          endif 
          !
          !   if transition frequency is out of selected range
          if (tranfreq>freqr+offset.or.tranfreq<freql-offset) cycle
          !
          intband = intband + abscoef
          !
  