Commit 21825fd6 by Daniel Franke Committed by Brooks Moses

re PR fortran/19292 ([meta-bug] g77 features lacking in gfortran)

2006-10-10  Daniel Franke  <franke.daniel@gmail.com>

	* intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND,
	GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC,
	LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD,
	GMTIME, LSHIFT, LTIME, RSHIFT.

From-SVN: r117609
parent be6c4709
2006-10-10 Daniel Franke <franke.daniel@gmail.com>
* intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND,
GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC,
LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD,
GMTIME, LSHIFT, LTIME, RSHIFT.
2006-10-10 Brooks Moses <bmoses@stanford.edu> 2006-10-10 Brooks Moses <bmoses@stanford.edu>
* gfortran.texi (Standards): Update to current status. * gfortran.texi (Standards): Update to current status.
......
...@@ -44,6 +44,10 @@ and editing. All contributions and corrections are strongly encouraged. ...@@ -44,6 +44,10 @@ and editing. All contributions and corrections are strongly encouraged.
Implemented intrinsics are fully functional and available to the user to apply. Implemented intrinsics are fully functional and available to the user to apply.
Some intrinsics have documentation yet to be completed as indicated by 'documentation pending'. Some intrinsics have documentation yet to be completed as indicated by 'documentation pending'.
@comment Missing intrinsics (double check with #19292)
@comment - MClock
@comment - Short
@menu @menu
* Introduction: Introduction * Introduction: Introduction
* @code{ABORT}: ABORT, Abort the program * @code{ABORT}: ABORT, Abort the program
...@@ -81,7 +85,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -81,7 +85,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{CHDIR}: CHDIR, Change working directory * @code{CHDIR}: CHDIR, Change working directory
* @code{CHMOD}: CHMOD, Change access permissions of files * @code{CHMOD}: CHMOD, Change access permissions of files
* @code{CMPLX}: CMPLX, Complex conversion function * @code{CMPLX}: CMPLX, Complex conversion function
* @code{COMMAND_ARGUMENT_COUNT}: COMMAND_ARGUMENT_COUNT, Command line argument count * @code{COMMAND_ARGUMENT_COUNT}: COMMAND_ARGUMENT_COUNT, Get number of command line arguments
* @code{CONJG}: CONJG, Complex conjugate function * @code{CONJG}: CONJG, Complex conjugate function
* @code{COS}: COS, Cosine function * @code{COS}: COS, Cosine function
* @code{COSH}: COSH, Hyperbolic cosine function * @code{COSH}: COSH, Hyperbolic cosine function
...@@ -122,8 +126,8 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -122,8 +126,8 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{FSTAT}: FSTAT, Get file status * @code{FSTAT}: FSTAT, Get file status
* @code{FTELL}: FTELL, Current stream position * @code{FTELL}: FTELL, Current stream position
* @code{GETARG}: GETARG, Get command line arguments * @code{GETARG}: GETARG, Get command line arguments
* @code{GET_COMMAND}: GET_COMMAND, Subroutine to retrieve the entire command line * @code{GET_COMMAND}: GET_COMMAND, Get the entire command line
* @code{GET_COMMAND_ARGUMENT}: GET_COMMAND_ARGUMENT, Subroutine to retrieve a command argument * @code{GET_COMMAND_ARGUMENT}: GET_COMMAND_ARGUMENT, Get command line arguments
* @code{GETCWD}: GETCWD, Get current working directory * @code{GETCWD}: GETCWD, Get current working directory
* @code{GETENV}: GETENV, Get an environmental variable * @code{GETENV}: GETENV, Get an environmental variable
* @code{GET_ENVIRONMENT_VARIABLE}: GET_ENVIRONMENT_VARIABLE, Get an environmental variable * @code{GET_ENVIRONMENT_VARIABLE}: GET_ENVIRONMENT_VARIABLE, Get an environmental variable
...@@ -136,7 +140,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -136,7 +140,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{HUGE}: HUGE, Largest number of a kind * @code{HUGE}: HUGE, Largest number of a kind
* @code{IACHAR}: IACHAR, Code in @acronym{ASCII} collating sequence * @code{IACHAR}: IACHAR, Code in @acronym{ASCII} collating sequence
* @code{IAND}: IAND, Bitwise logical and * @code{IAND}: IAND, Bitwise logical and
* @code{IARGC}: IARGC, Get number of command line arguments * @code{IARGC}: IARGC, Get the number of command line arguments
* @code{IBCLR}: IBCLR, Clear bit * @code{IBCLR}: IBCLR, Clear bit
* @code{IBITS}: IBITS, Bit extraction * @code{IBITS}: IBITS, Bit extraction
* @code{IBSET}: IBSET, Set bit * @code{IBSET}: IBSET, Set bit
...@@ -167,6 +171,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -167,6 +171,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{LOG10}: LOG10, Base 10 logarithm function * @code{LOG10}: LOG10, Base 10 logarithm function
* @code{LOGICAL}: LOGICAL, Convert to logical type * @code{LOGICAL}: LOGICAL, Convert to logical type
* @code{LSHIFT}: LSHIFT, Left shift bits * @code{LSHIFT}: LSHIFT, Left shift bits
* @code{LSTAT}: LSTAT, Get file status
* @code{LTIME}: LTIME, Convert time to local time info * @code{LTIME}: LTIME, Convert time to local time info
* @code{MALLOC}: MALLOC, Dynamic memory allocation function * @code{MALLOC}: MALLOC, Dynamic memory allocation function
* @code{MATMUL}: MATMUL, matrix multiplication * @code{MATMUL}: MATMUL, matrix multiplication
...@@ -403,7 +408,6 @@ GNU extension ...@@ -403,7 +408,6 @@ GNU extension
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
...@@ -1693,7 +1697,7 @@ end program test_bit_size ...@@ -1693,7 +1697,7 @@ end program test_bit_size
@node BTEST @node BTEST
@section @code{BTEST} --- Bit test function @section @code{BTEST} --- Bit test function
@findex @code{BTEST} intrinsic @findex @code{BTEST} intrinsic
@cindex BTEST @cindex bit operations
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
...@@ -1886,7 +1890,6 @@ Subroutine ...@@ -1886,7 +1890,6 @@ Subroutine
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
...@@ -1937,9 +1940,10 @@ end program test_cmplx ...@@ -1937,9 +1940,10 @@ end program test_cmplx
@node COMMAND_ARGUMENT_COUNT @node COMMAND_ARGUMENT_COUNT
@section @code{COMMAND_ARGUMENT_COUNT} --- Argument count function @section @code{COMMAND_ARGUMENT_COUNT} --- Get number of command line arguments
@findex @code{COMMAND_ARGUMENT_COUNT} intrinsic @findex @code{COMMAND_ARGUMENT_COUNT} intrinsic
@cindex command argument count @cindex command line arguments
@cindex getopt
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
...@@ -1971,9 +1975,10 @@ program test_command_argument_count ...@@ -1971,9 +1975,10 @@ program test_command_argument_count
print *, count print *, count
end program test_command_argument_count end program test_command_argument_count
@end smallexample @end smallexample
@end table
@item @emph{See also}:
@ref{GET_COMMAND}, @ref{GET_COMMAND_ARGUMENT}
@end table
@node CONJG @node CONJG
@section @code{CONJG} --- Complex conjugate function @section @code{CONJG} --- Complex conjugate function
...@@ -3750,22 +3755,37 @@ See @code{MALLOC} for an example. ...@@ -3750,22 +3755,37 @@ See @code{MALLOC} for an example.
@node FSTAT @node FSTAT
@section @code{FSTAT} --- Get file status @section @code{FSTAT} --- Get file status
@findex @code{FSTAT} intrinsic @findex @code{FSTAT} intrinsic
@cindex undocumented intrinsic @cindex file system operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
GNU extension @code{FSTAT} is identical to @ref{STAT}, except that information about an
already opened file is obtained.
The elements in @code{BUFF} are the same as described by @ref{STAT}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL fstat(UNIT,BUFF[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{UNIT} @tab An open I/O unit number of type @code{INTEGER}.
@item @var{BUFF} @tab The type shall be @code{INTEGER(4), DIMENSION(13)}.
@item @var{STATUS} @tab (Optional) status flag of type @code{INTEGER(4)}. Returns 0
on success and a system specific error code otherwise.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: See @ref{STAT} for an example.
@item @emph{See also}: @item @emph{See also}:
To stat a link: @ref{LSTAT}, to stat a file: @ref{STAT}
@end table @end table
...@@ -3815,8 +3835,9 @@ GNU extension ...@@ -3815,8 +3835,9 @@ GNU extension
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @item @emph{Return value}:
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@ref{FSEEK}
@end table @end table
...@@ -3824,71 +3845,159 @@ GNU extension ...@@ -3824,71 +3845,159 @@ GNU extension
@node GETARG @node GETARG
@section @code{GETARG} --- Get command line arguments @section @code{GETARG} --- Get command line arguments
@findex @code{GETARG} intrinsic @findex @code{GETARG} intrinsic
@cindex undocumented intrinsic @cindex command line arguments
@cindex getopt
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Retrieve the @var{N}th argument that was passed on the
command line when the containing program was invoked.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. In new code, programmers should consider the use of
the @ref{GET_COMMAND_ARGUMENT} intrinsic defined by the Fortran 2003
standard.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL GETARG(N,ARG)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{N} @tab Shall of type @code{INTEGER(4)}, @math{@var{N} \geq 0}
@item @var{ARG} @tab Shall be of type @code{CHARACTER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
After @code{GETARG} returns, the @var{ARG} argument holds the @var{N}th
command line argument. If @var{ARG} can not hold the argument, it is
truncated to fit the length of @var{ARG}. If there are less than @var{N}
arguments specified at the command line, @var{ARG} will be filled with blanks.
If @math{@var{N} = 0}, @var{ARG} is set to the name of the program (on systems
that support this feature).
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_getarg
INTEGER :: i
CHARACTER(len=32) :: arg
DO i = 1, iargc()
CALL getarg(i, arg)
WRITE (*,*) arg
END DO
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{IARGC}, @ref{GET_COMMAND}, @ref{GET_COMMAND_ARGUMENT} GNU Fortran 77 compability function: @ref{IARGC}
F2003 functions and subroutines: @ref{GET_COMMAND}, @ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT}
@end table @end table
@node GET_COMMAND @node GET_COMMAND
@section @code{GET_COMMAND} --- Subroutine to retrieve the entire command line @section @code{GET_COMMAND} --- Get the entire command line
@findex @code{GET_COMMAND} intrinsic @findex @code{GET_COMMAND} intrinsic
@cindex undocumented intrinsic @cindex command line arguments
@cindex getopt
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Retrieve the entire command line that was used to invoke the program.
@item @emph{Standard}: @item @emph{Standard}:
F2003 F2003
@item @emph{Class}: @item @emph{Class}:
Subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL GET_COMMAND(CMD)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{CMD} @tab Shall be of type @code{CHARACTER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
Stores the entire command line that was used to invoke the program in @var{ARG}.
If @var{ARG} is not large enough, the command will be truncated.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_get_command
CHARACTER(len=255) :: cmd
CALL get_command(cmd)
WRITE (*,*) TRIM(cmd)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT}
@end table @end table
@node GET_COMMAND_ARGUMENT @node GET_COMMAND_ARGUMENT
@section @code{GET_COMMAND_ARGUMENT} --- Subroutine to retrieve a command argument @section @code{GET_COMMAND_ARGUMENT} --- Get command line arguments
@findex @code{GET_COMMAND_ARGUMENT} intrinsic @findex @code{GET_COMMAND_ARGUMENT} intrinsic
@cindex undocumented intrinsic @cindex command line arguments
@cindex getopt
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Retrieve the @var{N}th argument that was passed on the
command line when the containing program was invoked.
@item @emph{Standard}: @item @emph{Standard}:
F2003 F2003
@item @emph{Class}: @item @emph{Class}:
Subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL GET_COMMAND_ARGUMENT(N,ARG)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{N} @tab Shall of type @code{INTEGER(4)}, @math{@var{N} \geq 0}
@item @var{ARG} @tab Shall be of type @code{CHARACTER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
After @code{GET_COMMAND_ARGUMENT} returns, the @var{ARG} argument holds the
@var{N}th command line argument. If @var{ARG} can not hold the argument, it is
truncated to fit the length of @var{ARG}. If there are less than @var{N}
arguments specified at the command line, @var{ARG} will be filled with blanks.
If @math{@var{N} = 0}, @var{ARG} is set to the name of the program (on systems
that support this feature).
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_get_command_argument
INTEGER :: i
CHARACTER(len=32) :: arg
i = 0
DO
CALL get_command_argument(i, arg)
IF (LEN_TRIM(arg) == 0) EXIT
WRITE (*,*) TRIM(arg)
i = i+1
END DO
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{COMMAND_ARGUMENT_COUNT} @ref{GET_COMMAND}, @ref{COMMAND_ARGUMENT_COUNT}
@end table @end table
...@@ -3936,21 +4045,46 @@ END PROGRAM ...@@ -3936,21 +4045,46 @@ END PROGRAM
@node GETENV @node GETENV
@section @code{GETENV} --- Get an environmental variable @section @code{GETENV} --- Get an environmental variable
@findex @code{GETENV} intrinsic @findex @code{GETENV} intrinsic
@cindex undocumented intrinsic @cindex environment variable
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Get the @var{VALUE} of the environmental variable @var{ENVVAR}.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. In new code, programmers should consider the use of
the @ref{GET_ENVIRONMENT_VARIABLE} intrinsic defined by the Fortran
2003 standard.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL GETENV(ENVVAR,VALUE)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{ENVVAR} @tab Shall be of type @code{CHARACTER(*)}.
@item @var{VALUE} @tab Shall be of type @code{CHARACTER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
Stores the value of @var{ENVVAR} in @var{VALUE}. If @var{VALUE} is
not large enough to hold the data, it is truncated. If @var{ENVVAR}
is not set, @var{VALUE} will be filled with blanks.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_getenv
CHARACTER(len=255) :: homedir
CALL getenv("HOME", homedir)
WRITE (*,*) TRIM(homedir)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{GET_ENVIRONMENT_VARIABLE} @ref{GET_ENVIRONMENT_VARIABLE}
@end table @end table
...@@ -3960,12 +4094,12 @@ GNU extension ...@@ -3960,12 +4094,12 @@ GNU extension
@node GET_ENVIRONMENT_VARIABLE @node GET_ENVIRONMENT_VARIABLE
@section @code{GET_ENVIRONMENT_VARIABLE} --- Get an environmental variable @section @code{GET_ENVIRONMENT_VARIABLE} --- Get an environmental variable
@findex @code{GET_ENVIRONMENT_VARIABLE} intrinsic @findex @code{GET_ENVIRONMENT_VARIABLE} intrinsic
@cindex undocumented intrinsic @cindex environment variable
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Get the @var{VALUE} of the environmental variable @var{ENVVAR}.
@item @emph{Standard}: @item @emph{Standard}:
F2003 F2003
...@@ -3973,11 +4107,27 @@ F2003 ...@@ -3973,11 +4107,27 @@ F2003
Subroutine Subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL GET_ENVIRONMENT_VARIABLE(ENVVAR,VALUE)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{ENVVAR} @tab Shall be of type @code{CHARACTER(*)}.
@item @var{VALUE} @tab Shall be of type @code{CHARACTER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
Stores the value of @var{ENVVAR} in @var{VALUE}. If @var{VALUE} is
not large enough to hold the data, it is truncated. If @var{ENVVAR}
is not set, @var{VALUE} will be filled with blanks.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
@item @emph{See also}: PROGRAM test_getenv
CHARACTER(len=255) :: homedir
CALL get_environment_variable("HOME", homedir)
WRITE (*,*) TRIM(homedir)
END PROGRAM
@end smallexample
@end table @end table
...@@ -4130,7 +4280,6 @@ Subroutine ...@@ -4130,7 +4280,6 @@ Subroutine
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
...@@ -4245,10 +4394,10 @@ end program test_iachar ...@@ -4245,10 +4394,10 @@ end program test_iachar
@findex @code{IAND} intrinsic @findex @code{IAND} intrinsic
@cindex bit operations @cindex bit operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Bitwise logical @code{AND}.
@item @emph{Standard}: @item @emph{Standard}:
F95 and later F95 and later
...@@ -4256,10 +4405,25 @@ F95 and later ...@@ -4256,10 +4405,25 @@ F95 and later
Elemental function Elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{RESULT = IAND(X, Y)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be @code{INTEGER(*)}.
@item @var{Y} @tab The type shall be @code{INTEGER(*)}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return type is @code{INTEGER(*)} after cross-promotion of the arguments.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_iand
INTEGER :: a, b
DATA a / Z'F' /, b / Z'3' /
WRITE (*,*) IAND(a, b)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{IOR}, @ref{IEOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{IOR}, @ref{IEOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR},
...@@ -4267,33 +4431,48 @@ Elemental function ...@@ -4267,33 +4431,48 @@ Elemental function
@node IARGC @node IARGC
@section @code{IARGC} --- Get number of command line arguments @section @code{IARGC} --- Get the number of command line arguments
@findex @code{IARGC} intrinsic @findex @code{IARGC} intrinsic
@cindex undocumented intrinsic @cindex command line arguments
@cindex getopt
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{IARGC()} returns the number of arguments passed on the
command line when the containing program was invoked.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. In new code, programmers should consider the use of
the @ref{COMMAND_ARGUMENT_COUNT} intrinsic defined by the Fortran 2003
standard.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental Function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{I = IARGC()}
@item @emph{Arguments}: @item @emph{Arguments}:
None.
@item @emph{Return value}: @item @emph{Return value}:
The number of command line arguments, type @code{INTEGER(4)}.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: See @ref{GETARG}
@item @emph{See also}: @item @emph{See also}:
@ref{GETARG}, @ref{GET_COMMAND}, @ref{COMMAND_ARGUMENT_COUNT}, @ref{GET_COMMAND_ARGUMENT} GNU Fortran 77 compability subroutine: @ref{GETARG}
F2003 functions and subroutines: @ref{GET_COMMAND}, @ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT}
@end table @end table
@node IBCLR @node IBCLR
@section @code{IBCLR} --- Clear bit @section @code{IBCLR} --- Clear bit
@findex @code{IBCLR} intrinsic @findex @code{IBCLR} intrinsic
...@@ -5299,11 +5478,47 @@ Function ...@@ -5299,11 +5478,47 @@ Function
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
@node LSTAT
@section @code{LSTAT} --- Get file status
@findex @code{LSTAT} intrinsic
@cindex file system operations
@table @asis
@item @emph{Description}:
@code{LSTAT} is identical to @ref{STAT}, except that if path is a symbolic link,
then the link itself is statted, not the file that it refers to.
The elements in @code{BUFF} are the same as described by @ref{STAT}.
@item @emph{Standard}:
GNU extension
@item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}:
@code{CALL LSTAT(FILE,BUFF[,STATUS])}
@item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{FILE} @tab The type shall be @code{CHARACTER(*)}, a valid path within the file system.
@item @var{BUFF} @tab The type shall be @code{INTEGER(4), DIMENSION(13)}.
@item @var{STATUS} @tab (Optional) status flag of type @code{INTEGER(4)}. Returns 0
on success and a system specific error code otherwise.
@end multitable
@item @emph{Example}:
See @ref{STAT} for an example.
@item @emph{See also}:
To stat an open file: @ref{FSTAT}, to stat a file: @ref{STAT}
@end table
@node LTIME @node LTIME
@section @code{LTIME} --- Convert time to local time info @section @code{LTIME} --- Convert time to local time info
...@@ -5327,7 +5542,6 @@ Subroutine ...@@ -5327,7 +5542,6 @@ Subroutine
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @item @emph{Specific names}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
...@@ -6650,7 +6864,6 @@ Function ...@@ -6650,7 +6864,6 @@ Function
@item @emph{Return value}: @item @emph{Return value}:
@item @emph{Example}: @item @emph{Example}:
@item @emph{See also}: @item @emph{See also}:
@uref{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19292, g77 features lacking in gfortran}
@end table @end table
...@@ -7374,25 +7587,82 @@ pseudo-random number generators. ...@@ -7374,25 +7587,82 @@ pseudo-random number generators.
@findex @code{STAT} intrinsic @findex @code{STAT} intrinsic
@cindex file system operations @cindex file system operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
This function returns information about a file. No permissions are required on
the file itself, but execute (search) permission is required on all of the
directories in path that lead to the file.
The elements that are obtained and stored in the array @code{BUFF}:
@multitable @columnfractions .15 .80
@item @code{buff(1)} @tab Device ID
@item @code{buff(2)} @tab Inode number
@item @code{buff(3)} @tab File mode
@item @code{buff(4)} @tab Number of links
@item @code{buff(5)} @tab Owner's uid
@item @code{buff(6)} @tab Owner's gid
@item @code{buff(7)} @tab ID of device containing directory entry for file (0 if not available)
@item @code{buff(8)} @tab File size (bytes)
@item @code{buff(9)} @tab Last access time
@item @code{buff(10)} @tab Last modification time
@item @code{buff(11)} @tab Last file status change time
@item @code{buff(12)} @tab Preferred I/O block size (-1 if not available)
@item @code{buff(13)} @tab Number of blocks allocated (-1 if not available)
@end multitable
Not all these elements are relevant on all systems.
If an element is not relevant, it is returned as 0.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL STAT(FILE,BUFF[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{FILE} @tab The type shall be @code{CHARACTER(*)}, a valid path within the file system.
@item @var{BUFF} @tab The type shall be @code{INTEGER(4), DIMENSION(13)}.
@item @var{STATUS} @tab (Optional) status flag of type @code{INTEGER(4)}. Returns 0
on success and a system specific error code otherwise.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@smallexample
PROGRAM test_fstat
INTEGER, DIMENSION(13) :: buff
INTEGER :: status
CALL STAT("/etc/passwd", statarr, status)
IF (status == 0) THEN
WRITE (*, FMT="('Device ID:', T40, I19)") buff(1)
WRITE (*, FMT="('Inode number:', T40, I19)") buff(2)
WRITE (*, FMT="('File mode:', T40, o19)") buff(3)
WRITE (*, FMT="('Number of links:', T40, I19)") buff(4)
WRITE (*, FMT="('Owner''s uid:', T40, I19)") buff(5)
WRITE (*, FMT="('Owner''s gid:', T40, I19)") buff(6)
WRITE (*, FMT="('Device where directory is located:', T40, I19)") buff(7)
WRITE (*, FMT="('File size:', T40, I19)") buff(8)
WRITE (*, FMT="('Last access time:', T40, A19)") CTIME(buff(9))
WRITE (*, FMT="('Last modification time', T40, A19)") CTIME(buff(10))
WRITE (*, FMT="('Last file status change time:', T40, A19)") CTIME(buff(11))
WRITE (*, FMT="('Preferred I/O block size:', T40, I19)") buff(12)
WRITE (*, FMT="('Number of blocks allocated:', T40, I19)") buff(13)
END IF
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{FSTAT} To stat an open file: @ref{FSTAT}, to stat a link: @ref{LSTAT}
@end table @end table
@node SUM @node SUM
@section @code{SUM} --- Sum of array elements @section @code{SUM} --- Sum of array elements
@findex @code{SUM} intrinsic @findex @code{SUM} intrinsic
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment