code: def assubr(rout):
      if isfunction_wrap(rout):
          fortranname = getfortranname(rout)
          name = rout["name"]
          outmess(
              '\t\tCreating wrapper for Fortran function "%s"("%s")...\n'
              % (name, fortranname)
          )
          rout = copy.copy(rout)
          fname = name
          rname = fname
          if "result" in rout:
              rname = rout["result"]
              rout["vars"][fname] = rout["vars"][rname]
          fvar = rout["vars"][fname]
          if not isintent_out(fvar):
              if "intent" not in fvar:
                  fvar["intent"] = []
              fvar["intent"].append("out")
              flag = 1
              for i in fvar["intent"]:
                  if i.startswith("out="):
                      flag = 0
                      break
              if flag:
                  fvar["intent"].append("out=%s" % (rname))
          rout["args"][:] = [fname] + rout["args"]
          return rout, createfuncwrapper(rout)
      if issubroutine_wrap(rout):
          fortranname = getfortranname(rout)
          name = rout["name"]
          outmess(
              '\t\tCreating wrapper for Fortran subroutine "%s"("%s")...\n'
              % (name, fortranname)
          )
          rout = copy.copy(rout)
          return rout, createsubrwrapper(rout)
      return rout, ""
  
imports: from __future__ import division, absolute_import, print_function
  import copy
  from .auxfuncs import getfortranname, isexternal, isfunction, isfunction_wrap, isintent_in, isintent_out, islogicalfunction, ismoduleroutine, isscalar, issubroutine, issubroutine_wrap, outmess, show
label_desc: Use image node_id 4 for calling a global function with example usage: assubr(rout) and returns: rout,  str, rout,  createfuncwrapper, rout,  createsubrwrapper