code: def test_simple_f_codegen():
      x, y, z = symbols("x,y,z")
      expr = (x + y) * z
      result = codegen(
          ("test", expr), "F95", "file", header=False, empty=False
      )
      expected = [
          (
              "file.f90",
              "REAL*8 function test(x, y, z)\n"
              "implicit none\n"
              "REAL*8, intent(in) :: x\n"
              "REAL*8, intent(in) :: y\n"
              "REAL*8, intent(in) :: z\n"
              "test = z*(x + y)\n"
              "end function\n",
          ),
          (
              "file.h",
              "interface\n"
              "REAL*8 function test(x, y, z)\n"
              "implicit none\n"
              "REAL*8, intent(in) :: x\n"
              "REAL*8, intent(in) :: y\n"
              "REAL*8, intent(in) :: z\n"
              "end function\n"
              "end interface\n",
          ),
      ]
      assert result == 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 36 for calling a global function with example usage: test_simple_f_codegen() without return types