anchor.diff:      !
     end type speciesT
     !
  -  type HitranT
  -    integer(ik)  :: molec_id     = 1 ! The HITRAN integer ID for this molecule in all its isotopologue forms
  -    integer(ik)  :: molec_iso_id = 1 ! Integer ID of a particular Isotopologue, unique only to a given molecule, in order or abundance (1 = most abundant)
  -  end type HitranT
  -  !
     type(selectT) :: upper(filtermax),lower(filtermax)
     !
     integer(ik)    :: Nspecies = 0, Nfilters = 0
     type(speciesT) :: species(nspecies_max)
  -  type(hitranT) :: hitran
     !
     logical :: partfunc_do = .true., filter = .false., histogram = .false., hitran_do = .false.,  histogramJ = .false., stick_hitran = .false.
     !
  
positive.code:           !
            hitran_do = .true.
            !
            call read_line(eof) ; if (eof) exit
            call readu(w)
            !
            do while (trim(w)/="".and.trim(w)/="END")
              !
              select case(w)
              !
              case('WRITE')
              !
              hitran_do = .false.
              stick_hitran = .true.
              !
              case('ID')
                !
                call readi(hitran%molec_id)
                !
                if (hitran%molec_id<0) call report ("Illegal molec_id "//trim(w),.true.)
                !
              case ("ISO","ISO_ID")
                !
                call readi(hitran%molec_iso_id)
                !
              case default
                !
                call report ("Unrecognized unit name "//trim(w),.true.)
                !
              end select
              !
              call read_line(eof) ; if (eof) exit
              call readu(w)
              !
            enddo          !
          case ("SELECT","FILTER")
            !
            filter  = .true.
  
negative.code:              !
               if ( mod(nint(2*Jf),2)==0 ) then 
                 !
                 write(out,'(i7,1x,a1,1x,a1)',advance="no"), nint(Jf),trim(quantum_numbers(1,ilevelf)),trim(quantum_numbers(2,ilevelf))
                 write(out,'(i7,1x,a1,1x,a1)',advance="no"), nint(Ji),trim(quantum_numbers(1,ileveli)),trim(quantum_numbers(2,ileveli))
                 !
               else 
                 !
                 write(out,'(f7.1,1x,a1,1x,a1)',advance="no"), Jf,trim(quantum_numbers(1,ilevelf)),trim(quantum_numbers(2,ilevelf))
                 write(out,'(f7.1,1x,a1,1x,a1)',advance="no"), Ji,trim(quantum_numbers(1,ileveli)),trim(quantum_numbers(2,ileveli))
                 !
               endif
               !
               write(out,"('000000 0 0 0 0 0 0 0',f7.1,f7.1)",advance="yes") real(gtot(ilevelf)),real(gtot(ileveli))
               !
             else
                !
  