code: def test_global_vars():
      x, y, z, t = symbols("x y z t")
      result = codegen(
          ("f", x * y),
          "F95",
          header=False,
          empty=False,
          global_vars=(y,),
      )
      source = result[0][1]
      expected = (
          "REAL*8 function f(x)\n"
          "implicit none\n"
          "REAL*8, intent(in) :: x\n"
          "f = x*y\n"
          "end function\n"
      )
      assert source == expected
  
      expected = (
          '#include "f.h"\n'
          "#include <math.h>\n"
          "double f(double x, double y) {\n"
          "   double f_result;\n"
          "   f_result = x*y + z;\n"
          "   return f_result;\n"
          "}\n"
      )
      result = codegen(
          ("f", x * y + z),
          "C",
          header=False,
          empty=False,
          global_vars=(z, t),
      )
      source = result[0][1]
      assert source == expected
  
imports: from io import StringIO
  from sympy.core import symbols, Eq, pi, Catalan, Lambda, Dummy
  from sympy.core.relational import Equality
  from sympy.core.symbol import Symbol
  from sympy.functions.special.error_functions import erf
  from sympy.integrals.integrals import Integral
  from sympy.matrices import Matrix, MatrixSymbol
  from sympy.utilities.codegen import codegen, make_routine, CCodeGen, C89CodeGen, C99CodeGen, InputArgument, CodeGenError, FCodeGen, CodeGenArgumentListError, OutputArgument, InOutArgument
  from sympy.testing.pytest import raises
  from sympy.utilities.lambdify import implemented_function
label_desc: Use image node_id 56 for calling a global function with example usage: test_global_vars() without return types