code: def check_opt(opt, loop, ht, htarg, verb):
      r
  
      # Check optimization flag
      use_ne_eval = False
      if opt == 'parallel':
          if numexpr:
              use_ne_eval = numexpr.evaluate
          elif verb > 0:
              print(numexpr_msg)
  
      # Define if to loop over frequencies or over offsets
      lagged_splined_fht = False
      if ht == 'fht':
          if htarg[1] != 0:
              lagged_splined_fht = True
  
      if ht in ['hqwe', 'hquad'] or lagged_splined_fht:
          loop_freq = True
          loop_off = False
      else:
          loop_off = loop == 'off'
          loop_freq = loop == 'freq'
  
      # If verbose, print optimization information
      if verb > 2:
          if use_ne_eval:
              print("   Kernel Opt.     :  Use parallel")
          else:
              print("   Kernel Opt.     :  None")
  
          if loop_off:
              print("   Loop over       :  Offsets")
          elif loop_freq:
              print("   Loop over       :  Frequencies")
          else:
              print("   Loop over       :  None (all vectorized)")
  
      return use_ne_eval, loop_freq, loop_off
docs: r"""Check optimization parameters.
  
      This check-function is called from one of the modelling routines in
      :mod:`model`.  Consult these modelling routines for a detailed description
      of the input parameters.
  
      Parameters
      ----------
      opt : {None, 'parallel'}
          Optimization flag; use ``numexpr`` or not.
  
      loop : {None, 'freq', 'off'}
          Loop flag.
  
      ht : str
          Flag to choose the Hankel transform.
  
      htarg : array_like,
          Depends on the value for ``ht``.
  
      verb : {0, 1, 2, 3, 4}
          Level of verbosity.
  
  
      Returns
      -------
      use_ne_eval : bool
          Boolean if to use ``numexpr``.
  
      loop_freq : bool
          Boolean if to loop over frequencies.
  
      loop_off : bool
          Boolean if to loop over offsets.