<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2014 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
"GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The GNU Fortran Compiler: Argument passing conventions</title>

<meta name="description" content="The GNU Fortran Compiler: Argument passing conventions">
<meta name="keywords" content="The GNU Fortran Compiler: Argument passing conventions">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Naming-and-argument_002dpassing-conventions.html#Naming-and-argument_002dpassing-conventions" rel="up" title="Naming and argument-passing conventions">
<link href="Intrinsic-Procedures.html#Intrinsic-Procedures" rel="next" title="Intrinsic Procedures">
<link href="Naming-conventions.html#Naming-conventions" rel="prev" title="Naming conventions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Argument-passing-conventions"></a>
<div class="header">
<p>
Previous: <a href="Naming-conventions.html#Naming-conventions" accesskey="p" rel="prev">Naming conventions</a>, Up: <a href="Naming-and-argument_002dpassing-conventions.html#Naming-and-argument_002dpassing-conventions" accesskey="u" rel="up">Naming and argument-passing conventions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Argument-passing-conventions-1"></a>
<h4 class="subsection">7.4.2 Argument passing conventions</h4>

<p>Subroutines do not return a value (matching C99&rsquo;s <code>void</code>) while
functions either return a value as specified in the platform ABI or
the result variable is passed as hidden argument to the function and
no result is returned.  A hidden result variable is used when the
result variable is an array or of type <code>CHARACTER</code>.
</p>
<p>Arguments are passed according to the platform ABI. In particular,
complex arguments might not be compatible to a struct with two real
components for the real and imaginary part. The argument passing
matches the one of C99&rsquo;s <code>_Complex</code>.  Functions with scalar
complex result variables return their value and do not use a
by-reference argument.  Note that with the <samp>-ff2c</samp> option,
the argument passing is modified and no longer completely matches
the platform ABI.  Some other Fortran compilers use <code>f2c</code>
semantic by default; this might cause problems with
interoperablility. 
</p>
<p>GNU Fortran passes most arguments by reference, i.e. by passing a
pointer to the data.  Note that the compiler might use a temporary
variable into which the actual argument has been copied, if required
semantically (copy-in/copy-out).
</p>
<p>For arguments with <code>ALLOCATABLE</code> and <code>POINTER</code>
attribute (including procedure pointers), a pointer to the pointer
is passed such that the pointer address can be modified in the
procedure.
</p>
<p>For dummy arguments with the <code>VALUE</code> attribute: Scalar arguments
of the type <code>INTEGER</code>, <code>LOGICAL</code>, <code>REAL</code> and
<code>COMPLEX</code> are passed by value according to the platform ABI.
(As vendor extension and not recommended, using <code>%VAL()</code> in the
call to a procedure has the same effect.) For <code>TYPE(C_PTR)</code> and
procedure pointers, the pointer itself is passed such that it can be
modified without affecting the caller.
</p>
<p>For Boolean (<code>LOGICAL</code>) arguments, please note that GCC expects
only the integer value 0 and 1.  If a GNU Fortran <code>LOGICAL</code>
variable contains another integer value, the result is undefined.
As some other Fortran compilers use <em>-1</em> for <code>.TRUE.</code>,
extra care has to be taken &ndash; such as passing the value as
<code>INTEGER</code>.  (The same value restriction also applies to other
front ends of GCC, e.g. to GCC&rsquo;s C99 compiler for <code>_Bool</code>
or GCC&rsquo;s Ada compiler for <code>Boolean</code>.)
</p>
<p>For arguments of <code>CHARACTER</code> type, the character length is passed
as hidden argument.  For deferred-length strings, the value is passed
by reference, otherwise by value.  The character length has the type
<code>INTEGER(kind=4)</code>.  Note with C binding, <code>CHARACTER(len=1)</code>
result variables are returned according to the platform ABI and no
hidden length argument is used for dummy arguments; with <code>VALUE</code>,
those variables are passed by value.
</p>
<p>For <code>OPTIONAL</code> dummy arguments, an absent argument is denoted
by a NULL pointer, except for scalar dummy arguments of type
<code>INTEGER</code>, <code>LOGICAL</code>, <code>REAL</code> and <code>COMPLEX</code>
which have the <code>VALUE</code> attribute.  For those, a hidden Boolean
argument (<code>logical(kind=C_bool),value</code>) is used to indicate
whether the argument is present.
</p>
<p>Arguments which are assumed-shape, assumed-rank or deferred-rank
arrays or, with <samp>-fcoarray=lib</samp>, allocatable scalar coarrays use
an array descriptor.  All other arrays pass the address of the
first element of the array.  With <samp>-fcoarray=lib</samp>, the token
and the offset belonging to nonallocatable coarrays dummy arguments
are passed as hidden argument along the character length hidden
arguments.  The token is an oparque pointer identifying the coarray
and the offset is a passed-by-value integer of kind <code>C_PTRDIFF_T</code>,
denoting the byte offset between the base address of the coarray and
the passed scalar or first element of the passed array.
</p>
<p>The arguments are passed in the following order
</p><ul>
<li> Result variable, when the function result is passed by reference
</li><li> Character length of the function result, if it is a of type
<code>CHARACTER</code> and no C binding is used
</li><li> The arguments in the order in which they appear in the Fortran
declaration
</li><li> The the present status for optional arguments with value attribute,
which are internally passed by value
</li><li> The character length and/or coarray token and offset for the first
argument which is a <code>CHARACTER</code> or a nonallocatable coarray dummy
argument, followed by the hidden arguments of the next dummy argument
of such a type
</li></ul>







<hr>
<div class="header">
<p>
Previous: <a href="Naming-conventions.html#Naming-conventions" accesskey="p" rel="prev">Naming conventions</a>, Up: <a href="Naming-and-argument_002dpassing-conventions.html#Naming-and-argument_002dpassing-conventions" accesskey="u" rel="up">Naming and argument-passing conventions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
