aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2018-11-01 11:37:08 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2018-11-01 11:37:08 +0000
commitff5115e20368297ec8caac7e249b64601adeee6c (patch)
treecd707aa35f90c85ba42d57465555ae91a3918f08 /gcc
parent41f927f4a668aeb167a673f916cc5cbfb978a560 (diff)
downloadgcc-ff5115e20368297ec8caac7e249b64601adeee6c.zip
gcc-ff5115e20368297ec8caac7e249b64601adeee6c.tar.gz
gcc-ff5115e20368297ec8caac7e249b64601adeee6c.tar.bz2
re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2018-10-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * gfortran.texi (File format of unformatted sequential files): Replace random comma with period. * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu. (FINDLOC): Document. (MAXLOC): Add refrence to FINDLOC. (MINLOC): Likewise. From-SVN: r265715
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog10
-rw-r--r--gcc/fortran/gfortran.texi2
-rw-r--r--gcc/fortran/intrinsic.texi65
3 files changed, 74 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a773bbd..4e0869b 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2018-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/54613
+ * gfortran.texi (File format of unformatted sequential files):
+ Replace random comma with period.
+ * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu.
+ (FINDLOC): Document.
+ (MAXLOC): Add refrence to FINDLOC.
+ (MINLOC): Likewise.
+
2018-10-31 Nathan Sidwell <nathan@acm.org>
* cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call.
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index 3093404..8654601 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -1479,7 +1479,7 @@ contains a negative number, then there is a preceding subrecord.
In the most simple case, with only one subrecord per logical record,
both record markers contain the number of bytes of user data in the
-record,
+record.
The format for unformatted sequential data can be duplicated using
unformatted stream, as shown in the example program for an unformatted
diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi
index ca006c9..668888b 100644
--- a/gcc/fortran/intrinsic.texi
+++ b/gcc/fortran/intrinsic.texi
@@ -148,6 +148,7 @@ Some basic guidelines for editing this document:
* @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string
* @code{FGET}: FGET, Read a single character in stream mode from stdin
* @code{FGETC}: FGETC, Read a single character in stream mode
+* @code{FINDLOC}: FINDLOC, Search an array for a value
* @code{FLOOR}: FLOOR, Integer floor function
* @code{FLUSH}: FLUSH, Flush I/O unit(s)
* @code{FNUM}: FNUM, File number function
@@ -6021,7 +6022,67 @@ END PROGRAM
@ref{FGET}, @ref{FPUT}, @ref{FPUTC}
@end table
+@node FINDLOC
+@section @code{FINDLOC} --- Search an array for a value
+@fnindex FINDLOC
+@cindex findloc
+@table @asis
+@item @emph{Description}:
+Determines the location of the element in the array with the value
+given in the @var{VALUE} argument, or, if the @var{DIM} argument is
+supplied, determines the locations of the maximum element along each
+row of the array in the @var{DIM} direction. If @var{MASK} is
+present, only the elements for which @var{MASK} is @code{.TRUE.} are
+considered. If more than one element in the array has the value
+@var{VALUE}, the location returned is that of the first such element
+in array element order if the @var{BACK} is not present or if it is
+@code{.FALSE.}. If @var{BACK} is true, the location returned is that
+of the last such element. If the array has zero size, or all of the
+elements of @var{MASK} are @code{.FALSE.}, then the result is an array
+of zeroes. Similarly, if @var{DIM} is supplied and all of the
+elements of @var{MASK} along a given row are zero, the result value
+for that row is zero.
+
+@item @emph{Standard}:
+Fortran 2008 and later.
+
+@item @emph{Class}:
+Transformational function
+
+@item @emph{Syntax}:
+@multitable @columnfractions .80
+@item @code{RESULT = FINDLOC(ARRAY, VALUE, DIM [, MASK] [,KIND] [,BACK])}
+@item @code{RESULT = FINDLOC(ARRAY, VALUE, [, MASK] [,KIND] [,BACK])}
+@end multitable
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .70
+@item @var{ARRAY} @tab Shall be an array of intrinsic type.
+@item @var{VALUE} @tab A scalar of intrinsic type which is in type
+conformance with @var{ARRAY}.
+@item @var{DIM} @tab (Optional) Shall be a scalar of type
+@code{INTEGER}, with a value between one and the rank of @var{ARRAY},
+inclusive. It may not be an optional dummy argument.
+@item @var{KIND} @tab (Optional) An @code{INTEGER} initialization
+expression indicating the kind parameter of the result.
+@item @var{BACK} @tab (Optional) A scalar of type @code{LOGICAL}.
+@end multitable
+
+@item @emph{Return value}:
+If @var{DIM} is absent, the result is a rank-one array with a length
+equal to the rank of @var{ARRAY}. If @var{DIM} is present, the result
+is an array with a rank one less than the rank of @var{ARRAY}, and a
+size corresponding to the size of @var{ARRAY} with the @var{DIM}
+dimension removed. If @var{DIM} is present and @var{ARRAY} has a rank
+of one, the result is a scalar. If the optional argument @var{KIND}
+is present, the result is an integer of kind @var{KIND}, otherwise it
+is of default kind.
+
+@item @emph{See also}:
+@ref{MAXLOC}, @ref{MINLOC}
+
+@end table
@node FLOOR
@section @code{FLOOR} --- Integer floor function
@@ -10039,7 +10100,7 @@ is present, the result is an integer of kind @var{KIND}, otherwise it
is of default kind.
@item @emph{See also}:
-@ref{MAX}, @ref{MAXVAL}
+@ref{FINDLOC}, @ref{MAX}, @ref{MAXVAL}
@end table
@@ -10395,7 +10456,7 @@ is present, the result is an integer of kind @var{KIND}, otherwise it
is of default kind.
@item @emph{See also}:
-@ref{MIN}, @ref{MINVAL}
+@ref{FINDLOC}, @ref{MIN}, @ref{MINVAL}
@end table