Introduction-to-Intrinsics.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1999-2017 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>The GNU Fortran Compiler: Introduction to Intrinsics</title>
  20. <meta name="description" content="The GNU Fortran Compiler: Introduction to Intrinsics">
  21. <meta name="keywords" content="The GNU Fortran Compiler: Introduction to Intrinsics">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Intrinsic-Procedures.html#Intrinsic-Procedures" rel="up" title="Intrinsic Procedures">
  30. <link href="ABORT.html#ABORT" rel="next" title="ABORT">
  31. <link href="Intrinsic-Procedures.html#Intrinsic-Procedures" rel="prev" title="Intrinsic Procedures">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style:oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Introduction-to-Intrinsics"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="ABORT.html#ABORT" accesskey="n" rel="next">ABORT</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>
  66. </div>
  67. <hr>
  68. <a name="Introduction-to-intrinsic-procedures"></a>
  69. <h3 class="section">9.1 Introduction to intrinsic procedures</h3>
  70. <p>The intrinsic procedures provided by GNU Fortran include all of the
  71. intrinsic procedures required by the Fortran 95 standard, a set of
  72. intrinsic procedures for backwards compatibility with G77, and a
  73. selection of intrinsic procedures from the Fortran 2003 and Fortran 2008
  74. standards. Any conflict between a description here and a description in
  75. either the Fortran 95 standard, the Fortran 2003 standard or the Fortran
  76. 2008 standard is unintentional, and the standard(s) should be considered
  77. authoritative.
  78. </p>
  79. <p>The enumeration of the <code>KIND</code> type parameter is processor defined in
  80. the Fortran 95 standard. GNU Fortran defines the default integer type and
  81. default real type by <code>INTEGER(KIND=4)</code> and <code>REAL(KIND=4)</code>,
  82. respectively. The standard mandates that both data types shall have
  83. another kind, which have more precision. On typical target architectures
  84. supported by <code>gfortran</code>, this kind type parameter is <code>KIND=8</code>.
  85. Hence, <code>REAL(KIND=8)</code> and <code>DOUBLE PRECISION</code> are equivalent.
  86. In the description of generic intrinsic procedures, the kind type parameter
  87. will be specified by <code>KIND=*</code>, and in the description of specific
  88. names for an intrinsic procedure the kind type parameter will be explicitly
  89. given (e.g., <code>REAL(KIND=4)</code> or <code>REAL(KIND=8)</code>). Finally, for
  90. brevity the optional <code>KIND=</code> syntax will be omitted.
  91. </p>
  92. <p>Many of the intrinsic procedures take one or more optional arguments.
  93. This document follows the convention used in the Fortran 95 standard,
  94. and denotes such arguments by square brackets.
  95. </p>
  96. <p>GNU Fortran offers the <samp>-std=f95</samp> and <samp>-std=gnu</samp> options,
  97. which can be used to restrict the set of intrinsic procedures to a
  98. given standard. By default, <code>gfortran</code> sets the <samp>-std=gnu</samp>
  99. option, and so all intrinsic procedures described here are accepted. There
  100. is one caveat. For a select group of intrinsic procedures, <code>g77</code>
  101. implemented both a function and a subroutine. Both classes
  102. have been implemented in <code>gfortran</code> for backwards compatibility
  103. with <code>g77</code>. It is noted here that these functions and subroutines
  104. cannot be intermixed in a given subprogram. In the descriptions that follow,
  105. the applicable standard for each intrinsic procedure is noted.
  106. </p>
  107. <hr>
  108. <div class="header">
  109. <p>
  110. Next: <a href="ABORT.html#ABORT" accesskey="n" rel="next">ABORT</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>
  111. </div>
  112. </body>
  113. </html>