anchor.diff:     integer(ik) :: indexf_,indexi_,kitem,nlines,ifilter,k,igrid
      real(rk)    :: beta,ln2,ln22,dtemp,dfreq,temp0,beta0,intband,dpwcoef,tranfreq,abscoef,halfwidth0,tranfreq0,delta_air,beta_ref
      real(rk)    :: cmcoef,emcoef,energy,energyf,energyi,jf,ji,acoef,j0rk,gfcoef
  -   real(rk)    :: acoef_,cutoff
  +   real(rk)    :: acoef_,cutoff,ndensity
      integer(ik) :: Jmax,Jp,Jpp,Noffset,Nspecies_,Nvib_states,ivib1,ivib2,ivib,JmaxAll
      real(rk)    :: gamma_,n_,gamma_s,ener_vib,ener_rot,J_,pf_1,pf_2,t_1,t_2
      character(len=cl) :: ioname
  
positive.code:                !
                 if (.not.vibtemperature_do) then
                    abscoef=emcoef*acoef*gtot(ilevelf)*exp(-beta*energyf)*tranfreq/(partfunc)
                 else 
                    ! split into a product of vib and rot parts 
                    abscoef=emcoef*acoef*gtot(ilevelf)*exp(-c2/temp*ener_rot)*&
                            exp(-c2/temp_vib*ener_vib)*tranfreq/(partfunc)
                    !
                 endif 
                 !
  
negative.code:                  !
                   call readf(temp_vib)
                   !
                   vibtemperature_do  = .true.
                   if (temp_vib<small_) call report ("Illegal Tvib"//trim(w),.true.)
                   !
               elseif(w(1:3)=='REF') then
                   !
                   call readf(temp_ref)
  