<!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: ASSOCIATED</title>

<meta name="description" content="The GNU Fortran Compiler: ASSOCIATED">
<meta name="keywords" content="The GNU Fortran Compiler: ASSOCIATED">
<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="Intrinsic-Procedures.html#Intrinsic-Procedures" rel="up" title="Intrinsic Procedures">
<link href="ATAN.html#ATAN" rel="next" title="ATAN">
<link href="ASINH.html#ASINH" rel="prev" title="ASINH">
<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="ASSOCIATED"></a>
<div class="header">
<p>
Next: <a href="ATAN.html#ATAN" accesskey="n" rel="next">ATAN</a>, Previous: <a href="ASINH.html#ASINH" accesskey="p" rel="prev">ASINH</a>, Up: <a href="Intrinsic-Procedures.html#Intrinsic-Procedures" accesskey="u" rel="up">Intrinsic Procedures</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="ASSOCIATED-_002d_002d_002d-Status-of-a-pointer-or-pointer_002ftarget-pair"></a>
<h3 class="section">8.20 <code>ASSOCIATED</code> &mdash; Status of a pointer or pointer/target pair</h3>
<a name="index-ASSOCIATED"></a>
<a name="index-pointer_002c-status"></a>
<a name="index-association-status"></a>

<dl compact="compact">
<dt><em>Description</em>:</dt>
<dd><p><code>ASSOCIATED(POINTER [, TARGET])</code> determines the status of the pointer
<var>POINTER</var> or if <var>POINTER</var> is associated with the target <var>TARGET</var>.
</p>
</dd>
<dt><em>Standard</em>:</dt>
<dd><p>Fortran 95 and later
</p>
</dd>
<dt><em>Class</em>:</dt>
<dd><p>Inquiry function
</p>
</dd>
<dt><em>Syntax</em>:</dt>
<dd><p><code>RESULT = ASSOCIATED(POINTER [, TARGET])</code>
</p>
</dd>
<dt><em>Arguments</em>:</dt>
<dd><table>
<tr><td width="15%"><var>POINTER</var></td><td width="70%"><var>POINTER</var> shall have the <code>POINTER</code> attribute
and it can be of any type.</td></tr>
<tr><td width="15%"><var>TARGET</var></td><td width="70%">(Optional) <var>TARGET</var> shall be a pointer or
a target.  It must have the same type, kind type parameter, and
array rank as <var>POINTER</var>.</td></tr>
</table>
<p>The association status of neither <var>POINTER</var> nor <var>TARGET</var> shall be
undefined.
</p>
</dd>
<dt><em>Return value</em>:</dt>
<dd><p><code>ASSOCIATED(POINTER)</code> returns a scalar value of type <code>LOGICAL(4)</code>.
There are several cases:
</p><dl compact="compact">
<dt>(A) When the optional <var>TARGET</var> is not present then</dt>
<dd><p><code>ASSOCIATED(POINTER)</code> is true if <var>POINTER</var> is associated with a target; otherwise, it returns false.
</p></dd>
<dt>(B) If <var>TARGET</var> is present and a scalar target, the result is true if</dt>
<dd><p><var>TARGET</var> is not a zero-sized storage sequence and the target associated with <var>POINTER</var> occupies the same storage units.  If <var>POINTER</var> is
disassociated, the result is false.
</p></dd>
<dt>(C) If <var>TARGET</var> is present and an array target, the result is true if</dt>
<dd><p><var>TARGET</var> and <var>POINTER</var> have the same shape, are not zero-sized arrays,
are arrays whose elements are not zero-sized storage sequences, and
<var>TARGET</var> and <var>POINTER</var> occupy the same storage units in array element
order.
As in case(B), the result is false, if <var>POINTER</var> is disassociated.
</p></dd>
<dt>(D) If <var>TARGET</var> is present and an scalar pointer, the result is true</dt>
<dd><p>if <var>TARGET</var> is associated with <var>POINTER</var>, the target associated with
<var>TARGET</var> are not zero-sized storage sequences and occupy the same storage
units.
The result is false, if either <var>TARGET</var> or <var>POINTER</var> is disassociated.
</p></dd>
<dt>(E) If <var>TARGET</var> is present and an array pointer, the result is true if</dt>
<dd><p>target associated with <var>POINTER</var> and the target associated with <var>TARGET</var>
have the same shape, are not zero-sized arrays, are arrays whose elements are
not zero-sized storage sequences, and <var>TARGET</var> and <var>POINTER</var> occupy
the same storage units in array element order.
The result is false, if either <var>TARGET</var> or <var>POINTER</var> is disassociated.
</p></dd>
</dl>

</dd>
<dt><em>Example</em>:</dt>
<dd><div class="smallexample">
<pre class="smallexample">program test_associated
   implicit none
   real, target  :: tgt(2) = (/1., 2./)
   real, pointer :: ptr(:)
   ptr =&gt; tgt
   if (associated(ptr)     .eqv. .false.) call abort
   if (associated(ptr,tgt) .eqv. .false.) call abort
end program test_associated
</pre></div>

</dd>
<dt><em>See also</em>:</dt>
<dd><p><a href="NULL.html#NULL">NULL</a>
</p></dd>
</dl>



<hr>
<div class="header">
<p>
Next: <a href="ATAN.html#ATAN" accesskey="n" rel="next">ATAN</a>, Previous: <a href="ASINH.html#ASINH" accesskey="p" rel="prev">ASINH</a>, Up: <a href="Intrinsic-Procedures.html#Intrinsic-Procedures" accesskey="u" rel="up">Intrinsic Procedures</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>
