code: def test_complicated_codegen_f95():
      from sympy.functions.elementary.trigonometric import cos, sin, tan
  
      x, y, z = symbols("x,y,z")
      name_expr = [
          ("test1", ((sin(x) + cos(y) + tan(z)) ** 7).expand()),
          ("test2", cos(cos(cos(cos(cos(cos(cos(cos(x + y + z))))))))),
      ]
      result = codegen(
          name_expr, "F95", "file", header=False, empty=False
      )
      assert result[0][0] == "file.f90"
      expected = (
          "REAL*8 function test1(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"
          "test1 = sin(x)**7 + 7*sin(x)**6*cos(y) + 7*sin(x)**6*tan(z) + 21*sin(x) &\n"
          "      **5*cos(y)**2 + 42*sin(x)**5*cos(y)*tan(z) + 21*sin(x)**5*tan(z) &\n"
          "      **2 + 35*sin(x)**4*cos(y)**3 + 105*sin(x)**4*cos(y)**2*tan(z) + &\n"
          "      105*sin(x)**4*cos(y)*tan(z)**2 + 35*sin(x)**4*tan(z)**3 + 35*sin( &\n"
          "      x)**3*cos(y)**4 + 140*sin(x)**3*cos(y)**3*tan(z) + 210*sin(x)**3* &\n"
          "      cos(y)**2*tan(z)**2 + 140*sin(x)**3*cos(y)*tan(z)**3 + 35*sin(x) &\n"
          "      **3*tan(z)**4 + 21*sin(x)**2*cos(y)**5 + 105*sin(x)**2*cos(y)**4* &\n"
          "      tan(z) + 210*sin(x)**2*cos(y)**3*tan(z)**2 + 210*sin(x)**2*cos(y) &\n"
          "      **2*tan(z)**3 + 105*sin(x)**2*cos(y)*tan(z)**4 + 21*sin(x)**2*tan &\n"
          "      (z)**5 + 7*sin(x)*cos(y)**6 + 42*sin(x)*cos(y)**5*tan(z) + 105* &\n"
          "      sin(x)*cos(y)**4*tan(z)**2 + 140*sin(x)*cos(y)**3*tan(z)**3 + 105 &\n"
          "      *sin(x)*cos(y)**2*tan(z)**4 + 42*sin(x)*cos(y)*tan(z)**5 + 7*sin( &\n"
          "      x)*tan(z)**6 + cos(y)**7 + 7*cos(y)**6*tan(z) + 21*cos(y)**5*tan( &\n"
          "      z)**2 + 35*cos(y)**4*tan(z)**3 + 35*cos(y)**3*tan(z)**4 + 21*cos( &\n"
          "      y)**2*tan(z)**5 + 7*cos(y)*tan(z)**6 + tan(z)**7\n"
          "end function\n"
          "REAL*8 function test2(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"
          "test2 = cos(cos(cos(cos(cos(cos(cos(cos(x + y + z))))))))\n"
          "end function\n"
      )
      assert result[0][1] == expected
      assert result[1][0] == "file.h"
      expected = (
          "interface\n"
          "REAL*8 function test1(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"
          "interface\n"
          "REAL*8 function test2(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[1][1] == 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 41 for calling a global function with example usage: test_complicated_codegen_f95() without return types