code: def get_mixed_fort_c_linker(vendor=None, cplus=False, cwd=None):
      vendor = vendor or os.environ.get("SYMPY_COMPILER_VENDOR", "gnu")
  
      if vendor.lower() == "intel":
          if cplus:
              return (
                  FortranCompilerRunner,
                  {"flags": ["-nofor_main", "-cxxlib"]},
                  vendor,
              )
          else:
              return (
                  FortranCompilerRunner,
                  {"flags": ["-nofor_main"]},
                  vendor,
              )
      elif vendor.lower() == "gnu" or "llvm":
          if cplus:
              return (
                  CppCompilerRunner,
                  {"lib_options": ["fortran"]},
                  vendor,
              )
          else:
              return (FortranCompilerRunner, {}, vendor)
      else:
          raise ValueError("No vendor found.")
  
imports: import glob
  import os
  import shutil
  import subprocess
  import sys
  import tempfile
  import warnings
  from sysconfig import get_config_var, get_config_vars, get_path
  from .runners import CCompilerRunner, CppCompilerRunner, FortranCompilerRunner
  from .util import get_abspath, make_dirs, copy, Glob, ArbitraryDepthGlob, glob_at_depth, import_module_from_file, pyx_is_cplus, sha256_of_string, sha256_of_file, CompileError
label_desc: Use image node_id 2 for calling a global function with example usage: get_mixed_fort_c_linker(vendor, cplus, cwd) and returns: FortranCompilerRunner,  dict,  vendor, FortranCompilerRunner,  dict,  vendor, CppCompilerRunner,  dict,  vendor, FortranCompilerRunner,  dict,  vendor