anchor.diff:           write(sunit,'(i1)',advance="no") HITRAN_Delta%ierr
            !
            write(sunit,"(' 0 0 0 0 0 0 ',f7.1,f7.1)",advance="yes") real(gtot(ilevelf)),real(gtot(ileveli))
  +         !
  +       elseif (stick_oxford) then
  +         !
  +         Jp  = int(Jf)
  +         Jpp = int(Ji)
  +         !
  +         gamma1 = species(1)%gammaQN(Jpp,Jp-Jpp)
  +         gamma2 = species(2)%gammaQN(Jpp,Jp-Jpp)
  +         gamma3 = species(3)%gammaQN(Jpp,Jp-Jpp)
  +         n1 = species(1)%nQN(Jpp,Jp-Jpp)
  +         n2 = species(2)%nQN(Jpp,Jp-Jpp)
  +         n3 = species(3)%nQN(Jpp,Jp-Jpp)
  +         !
  +         write(sunit,"(i3,f12.6,e10.3,3(f5.4,f4.2),f10.4,1x)",advance="no") &
  +                     iso,tranfreq,abscoef,&
  +                     gamma1,n1,gamma2,n2,gamma3,n3,&
  +                     energyi
  +         !
  +         nchars_tot = 1
  +         nchars_ = 1
  +         !
  +         do i = QN%Vibcol(1),QN%Vibcol(2)
  +           !
  +           kitem=i-4
  +           !
  +           !l = len(trim(quantum_numbers(kitem,ilevelf)))
  +           !
  +           write(b_fmt,"('(a',i1,')')") nchars_quanta(kitem)
  +           !
  +           nchars_  = nchars_ + nchars_quanta(kitem)
  +           !
  +           if (nchars_>21) cycle
  +           nchars_tot = nchars_tot + nchars_quanta(kitem)
  +           !
  +           write(sunit,b_fmt,advance="no") trim(quantum_numbers(kitem,ilevelf))
  +           !
  +         enddo
  +         !
  +         write(sunit,'(1x)',advance="no")
  +         !
  +         nchars_tot = nchars_tot + 1
  +         !
  +         nchars_ = 1
  +         do i = QN%Vibcol(1),QN%Vibcol(2)
  +           !
  +           kitem=i-4
  +           !
  +           write(b_fmt,"('(a',i1,')')") nchars_quanta(kitem)
  +           !
  +           nchars_  = nchars_ + nchars_quanta(kitem)
  +           !
  +           if (nchars_>21) cycle
  +           nchars_tot = nchars_tot + nchars_quanta(kitem)
  +           !
  +           write(sunit,b_fmt,advance="no") trim(quantum_numbers(kitem,ileveli))
  +           !
  +         enddo
  +         !
  +         ! topup to 42
  +         do kitem = nchars_tot+1,42
  +           !
  +           write(sunit,'(1x)',advance="no")
  +           !
  +         enddo
  +         !
  +         write(sunit,'(1x)',advance="no")
  +         !
  +         if ( mod(nint(2*Jf),2)==0 ) then
  +           !
  +           write(sunit,'(i4,1x)',advance="no") nint(Jf)
  +           nchars_ = 5
  +           do i = 1,2
  +             kitem=QN%Rotcol(i)-4
  +             !
  +             write(b_fmt,"('(a',i1,')')") nchars_quanta(kitem)
  +             nchars_  = nchars_ + nchars_quanta(kitem)
  +             !
  +             if (nchars_>9) cycle
  +             nchars_tot = nchars_tot + nchars_quanta(kitem)
  +             !
  +             write(sunit,b_fmt,advance="no") trim(quantum_numbers(kitem,ilevelf))
  +             !
  +           enddo
  +           !
  +           write(sunit,'(i4,1x)',advance="no") nint(Ji)
  +           nchars_ = 5
  +           do i = 1,2
  +             kitem=QN%Rotcol(i)-4
  +             !
  +             write(b_fmt,"('(a',i1,')')") nchars_quanta(kitem)
  +             nchars_  = nchars_ + nchars_quanta(kitem)
  +             !
  +             if (nchars_>9) cycle
  +             nchars_tot = nchars_tot + nchars_quanta(kitem)
  +             !
  +             write(sunit,b_fmt,advance="no") trim(quantum_numbers(kitem,ileveli))
  +             !
  +           enddo
  +             !
  +         else
  +           !
  +           write(sunit,'(f5.1,1x,a1,a1)',advance="no") Jf,trim(quantum_numbers(1,ilevelf)),trim(quantum_numbers(2,ilevelf))
  +           write(sunit,'(f5.1,1x,a1,a1)',advance="no") Ji,trim(quantum_numbers(1,ileveli)),trim(quantum_numbers(2,ileveli))
  +           !
  +         endif
  +         !
  +         ierror_nu = 0
  +         !
  +         do iE = 1,HITRAN_E(1)%N
  +            !
  +            read(quantum_numbers(HITRAN_E(iE)%iqn,ileveli),*) qni
  +            read(quantum_numbers(HITRAN_E(iE)%iqn,ilevelf),*) qnf
  +            !
  +            ierror_i = 0
  +            do ierror = 0,6
  +              if (qni<=HITRAN_E(iE)%error_vmax(ierror)) ierror_i = ierror
  +              if (qnf<=HITRAN_E(iE)%error_vmax(ierror)) ierror_f = ierror
  +            enddo
  +            !
  +            ierror_nu = max(ierror_i,ierror_f)
  +            !
  +         enddo
  +         !
  +         ierror_S = 0
  +         !
  +         do iE = 1,HITRAN_S(1)%N
  +            !
  +            read(quantum_numbers(HITRAN_S(iE)%iqn,ileveli),*) qni
  +            read(quantum_numbers(HITRAN_S(iE)%iqn,ilevelf),*) qnf
  +            !
  +            ierror_i = 0
  +            do ierror = 0,6
  +              if (qni<=HITRAN_S(iE)%error_vmax(ierror)) ierror_i = ierror
  +              if (qnf<=HITRAN_S(iE)%error_vmax(ierror)) ierror_f = ierror
  +            enddo
  +            !
  +            ierror_S = max(ierror_i,ierror_f)
  +            !
  +         enddo
  +         !
  +         write(sunit,'(1x,i1)',advance="no") ierror_nu
  +         write(sunit,'(i1)',advance="no") ierror_S
  +         write(sunit,'(i1)',advance="no") HITRAN_Air%ierr
  +         write(sunit,'(i1)',advance="no") HITRAN_Self%ierr
  +         write(sunit,'(i1)',advance="no") HITRAN_n%ierr
  +         write(sunit,'(i1)',advance="yes") HITRAN_Delta%ierr
            !
          else
             !
  
positive.code:    ! open and count number of lines (levels) in the Energy files
     !
     if (trim(enrfilename)/="NONE".and..not.hitran_do) then
        if (verbose>=2) print('(/a,a,a/)'),'Reading energies from ',trim(enrfilename),'...'
        !
        write(ioname, '(a)') 'Energy file'
  
negative.code:      integer(ik) :: nchars_,kitem,ierror_nu,iE,ierror_i,ierror,ierror_S,l,qni,qnf,ierror_f,&
                      ilevelf,ileveli,iswap,nchars_tot
       character(9) b_fmt
       integer(ik) :: Jpp,Jp,i
       real(rk)    :: gamma1,gamma2,gamma3,n1,n2,n3
       !
       !
       do iswap = 1,nswap
  