/usr/share/doc/libcnf-dev/html/node26.html is in libcnf-dev 4.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 98.2 beta6 (August 14th, 1998)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Common Blocks</TITLE>
<META NAME="description" CONTENT="Common Blocks">
<META NAME="keywords" CONTENT="sun209">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="STYLESHEET" HREF="sun209.css">
<LINK REL="previous" HREF="node25.html">
<LINK REL="up" HREF="node18.html">
<LINK REL="next" HREF="node27.html">
</HEAD>
<BODY >
<BR> <HR>
<A NAME="tex2html472"
HREF="node27.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
<A NAME="tex2html470"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
<A NAME="tex2html466"
HREF="node25.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun209.html#stardoccontents"><IMG
ALIGN="BOTTOM" BORDER="0" SRC="contents_motif.gif"
ALT="252"></A>
<BR>
<B> Next:</B> <A NAME="tex2html473"
HREF="node27.html">Converting Between FORTRAN and C Strings</A>
<BR>
<B>Up:</B> <A NAME="tex2html471"
HREF="node18.html">More on Calling C from FORTRAN</A>
<BR>
<B> Previous:</B> <A NAME="tex2html467"
HREF="node25.html">External Names</A>
<BR> <HR> <P>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00068000000000000000"></A><A NAME="xref_common_blocks"></A><A NAME="f77_common"></A>
<BR>
Common Blocks
</H2>
<P>
There are two macros that deal with common blocks,
<A HREF="node132.html#F77_NAMED_COMMON"><TT>F77_NAMED_COMMON</TT></A>
and
<A HREF="node109.html#F77_BLANK_COMMON"><TT>F77_BLANK_COMMON</TT></A>.
They are used when declaring external
structures that corresponds to FORTRAN common blocks and when referring to
components of those structures in the C code. The following declares a common
block named ``block'' that contains three <TT>INTEGER</TT> variables and three
<TT>REAL</TT> variables.
<P>
<PRE>
extern struct
{
F77_INTEGER_TYPE i,j,k;
F77_REAL_TYPE a,b,c;
} F77_NAMED_COMMON(block);
</PRE>
<P>
The corresponding FORTRAN statements are
<P>
<PRE>
INTEGER I,J,K
REAL A,B,C
COMMON /BLOCK/ I,J,K,A,B,C
</PRE>
<P>
Within the C function the variables would be referred to as:
<P>
<TT>F77_NAMED_COMMON(block).i</TT>,
<TT>F77_NAMED_COMMON(block).j</TT>,
<I>etc.</I>
<P>
Note that all that these macros do is to hide the actual name of the external
structure from the programmer. If a computer implemented the correspondence
between FORTRAN common blocks and C global data in a completely different way,
then these macros would not provide portability to such an environment.
<P>
On account of this, it is best to avoid using common blocks where possible, but
of course, if you need to interface to existing FORTRAN programs, this may not
be practical.
<P>
<BR> <HR>
<A NAME="tex2html472"
HREF="node27.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
<A NAME="tex2html470"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
<A NAME="tex2html466"
HREF="node25.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun209.html#stardoccontents"><IMG
ALIGN="BOTTOM" BORDER="0" SRC="contents_motif.gif"
ALT="252"></A>
<BR>
<B> Next:</B> <A NAME="tex2html473"
HREF="node27.html">Converting Between FORTRAN and C Strings</A>
<BR>
<B>Up:</B> <A NAME="tex2html471"
HREF="node18.html">More on Calling C from FORTRAN</A>
<BR>
<B> Previous:</B> <A NAME="tex2html467"
HREF="node25.html">External Names</A>
<BR> <HR> <P>
<!--End of Navigation Panel-->
<ADDRESS>
<I>CNF and F77 Mixed Language Programming -- FORTRAN and C<BR>Starlink User Note 209<BR>P.M. Allan<BR>A.J. Chipperfield<BR>R.F. Warren-Smith<BR>19 January 2000<BR>E-mail:<A HREF="mailto:ussc@star.rl.ac.uk">ussc@star.rl.ac.uk</A></I>
</ADDRESS>
</BODY>
</HTML>
|