diff -Nrcpad gcc-4.3.1/gcc/fortran/ChangeLog gcc-4.3.2/gcc/fortran/ChangeLog *** gcc-4.3.1/gcc/fortran/ChangeLog Fri Jun 6 14:29:15 2008 --- gcc-4.3.2/gcc/fortran/ChangeLog Wed Aug 27 18:01:56 2008 *************** *** 1,3 **** --- 1,40 ---- + 2008-08-27 Release Manager + + * GCC 4.3.2 released. + + 2008-07-27 Tobias Burnus + + PR fortran/36132 + + * trans-array.c (gfc_conv_array_parameter): Fix packing/unpacking + for nonpresent optional actuals to optional formals. + * trans-array.h (gfc_conv_array_parameter): Update declaration. + * trans-expr.c (gfc_conv_function_call,gfc_trans_arrayfunc_assign): + Update gfc_conv_array_parameter calls. + * trans-intrinsics (gfc_conv_intrinsic_transfer, + gfc_conv_intrinsic_loc): Ditto. + + 2008-07-19 Paul Thomas + + PR fortran/36366 + * resolve.c (add_dt_to_dt_list): New function. + (resolve_fl_derived): Call new function for pointer components + and when derived type resolved. + + 2008-07-17 Tobias Burnus + + PR fortran/36824 + * resolve.c (resolve_fl_derived): Fix constantness check + for the array dimensions. + + 2008-06-20 Laurynas Biveinis + Tobias Burnus + + PR fortran/34908 + PR fortran/36276 + * scanner.c (preprocessor_line): do not call gfc_free for + current_file->filename if it differs from filename. + 2008-06-06 Release Manager * GCC 4.3.1 released. diff -Nrcpad gcc-4.3.1/gcc/fortran/gfortran.info gcc-4.3.2/gcc/fortran/gfortran.info *** gcc-4.3.1/gcc/fortran/gfortran.info Fri Jun 6 15:32:21 2008 --- gcc-4.3.2/gcc/fortran/gfortran.info Wed Aug 27 19:32:48 2008 *************** *** 1,7 **** ! This is doc/gfortran.info, produced by makeinfo version 4.11 from ! /gcc-4.3/gcc-4.3.1/gcc-4.3.1/gcc/fortran/gfortran.texi. ! Copyright (C) 1999-2007 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.1 or --- 1,7 ---- ! This is doc/gfortran.info, produced by makeinfo version 4.8 from ! /scratch/joseph/4.3.2/gcc-4.3.2/gcc-4.3.2/gcc/fortran/gfortran.texi. ! Copyright (C) 1999-2007 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.1 or *************** extension are also run through preproces *** 221,227 **** This manual specifically documents the Fortran front end, which handles the programming language's syntax and semantics. The aspects of GCC which relate to the optimization passes and the back-end code ! generation are documented in the GCC manual; see *note Introduction: (gcc)Top. The two manuals together provide a complete reference for the GNU Fortran compiler. --- 221,227 ---- This manual specifically documents the Fortran front end, which handles the programming language's syntax and semantics. The aspects of GCC which relate to the optimization passes and the back-end code ! generation are documented in the GCC manual; see *Note Introduction: (gcc)Top. The two manuals together provide a complete reference for the GNU Fortran compiler. *************** f95'. *** 244,250 **** If the GNU Fortran invoked the preprocessor, `__GFORTRAN__' is defined and `__GNUC__', `__GNUC_MINOR__' and `__GNUC_PATCHLEVEL__' can ! be used to determine the version of the compiler. See *note Overview: (cpp)Top. for details. While CPP is the de-facto standard for preprocessing Fortran code, --- 244,250 ---- If the GNU Fortran invoked the preprocessor, `__GFORTRAN__' is defined and `__GNUC__', `__GNUC_MINOR__' and `__GNUC_PATCHLEVEL__' can ! be used to determine the version of the compiler. See *Note Overview: (cpp)Top. for details. While CPP is the de-facto standard for preprocessing Fortran code, *************** operator in C, except the address is cas *** 1810,1816 **** ipt = loc(ar) ! Makes arpte is an alias for ar arpte(1) = 1.0 ! Sets ar(1) to 1.0 The pointer can also be set by a call to the `MALLOC' intrinsic (see ! *note MALLOC::). Cray pointees often are used to alias an existing variable. For example: --- 1810,1816 ---- ipt = loc(ar) ! Makes arpte is an alias for ar arpte(1) = 1.0 ! Sets ar(1) to 1.0 The pointer can also be set by a call to the `MALLOC' intrinsic (see ! *Note MALLOC::). Cray pointees often are used to alias an existing variable. For example: *************** free-form source code; the `c$omp', `*$o *** 1931,1937 **** fixed form; the `!$' conditional compilation sentinels in free form; and the `c$', `*$' and `!$' sentinels in fixed form, `gfortran' needs to be invoked with the `-fopenmp'. This also arranges for automatic ! linking of the GNU OpenMP runtime library *note libgomp: (libgomp)Top. The OpenMP Fortran runtime library routines are provided both in a form of a Fortran 90 module named `omp_lib' and in a form of a Fortran --- 1931,1937 ---- fixed form; the `!$' conditional compilation sentinels in free form; and the `c$', `*$' and `!$' sentinels in fixed form, `gfortran' needs to be invoked with the `-fopenmp'. This also arranges for automatic ! linking of the GNU OpenMP runtime library *Note libgomp: (libgomp)Top. The OpenMP Fortran runtime library routines are provided both in a form of a Fortran 90 module named `omp_lib' and in a form of a Fortran *************** _Example_: *** 2424,2430 **** end program test_abort _See also_: ! *note EXIT::, *note KILL::  --- 2424,2430 ---- end program test_abort _See also_: ! *Note EXIT::, *Note KILL::  *************** _Example_: *** 2562,2572 **** end program test_achar _Note_: ! See *note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *note CHAR::, *note IACHAR::, *note ICHAR::  --- 2562,2572 ---- end program test_achar _Note_: ! See *Note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *Note CHAR::, *Note IACHAR::, *Note ICHAR::  *************** _Specific names_: *** 2606,2612 **** `DACOS(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *note COS::  --- 2606,2612 ---- `DACOS(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *Note COS::  *************** _Specific names_: *** 2647,2653 **** `DACOSH(X)' `REAL(8) X' `REAL(8)' GNU extension _See also_: ! Inverse function: *note COSH::  File: gfortran.info, Node: ADJUSTL, Next: ADJUSTR, Prev: ACOSH, Up: Intrinsic Procedures --- 2647,2653 ---- `DACOSH(X)' `REAL(8) X' `REAL(8)' GNU extension _See also_: ! Inverse function: *Note COSH::  File: gfortran.info, Node: ADJUSTL, Next: ADJUSTR, Prev: ACOSH, Up: Intrinsic Procedures *************** _Example_: *** 2684,2690 **** end program test_adjustl _See also_: ! *note ADJUSTR::, *note TRIM::  File: gfortran.info, Node: ADJUSTR, Next: AIMAG, Prev: ADJUSTL, Up: Intrinsic Procedures --- 2684,2690 ---- end program test_adjustl _See also_: ! *Note ADJUSTR::, *Note TRIM::  File: gfortran.info, Node: ADJUSTR, Next: AIMAG, Prev: ADJUSTL, Up: Intrinsic Procedures *************** _Example_: *** 2721,2727 **** end program test_adjustr _See also_: ! *note ADJUSTL::, *note TRIM::  File: gfortran.info, Node: AIMAG, Next: AINT, Prev: ADJUSTR, Up: Intrinsic Procedures --- 2721,2727 ---- end program test_adjustr _See also_: ! *Note ADJUSTL::, *Note TRIM::  File: gfortran.info, Node: AIMAG, Next: AINT, Prev: ADJUSTR, Up: Intrinsic Procedures *************** _Syntax_: *** 2790,2797 **** _Arguments_: X The type of the argument shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of type real with the kind type parameter of --- 2790,2797 ---- _Arguments_: X The type of the argument shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of type real with the kind type parameter of *************** _Description_: *** 2967,2973 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *note IAND:: intrinsic defined by the Fortran standard. _Standard_: --- 2967,2973 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *Note IAND:: intrinsic defined by the Fortran standard. _Standard_: *************** _Example_: *** 3000,3006 **** END PROGRAM _See also_: ! F95 elemental function: *note IAND::  File: gfortran.info, Node: ANINT, Next: ANY, Prev: AND, Up: Intrinsic Procedures --- 3000,3006 ---- END PROGRAM _See also_: ! F95 elemental function: *Note IAND::  File: gfortran.info, Node: ANINT, Next: ANY, Prev: AND, Up: Intrinsic Procedures *************** _Syntax_: *** 3024,3031 **** _Arguments_: X The type of the argument shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of type real with the kind type parameter of --- 3024,3031 ---- _Arguments_: X The type of the argument shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of type real with the kind type parameter of *************** _Specific names_: *** 3147,3153 **** `DASIN(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *note SIN::  --- 3147,3153 ---- `DASIN(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *Note SIN::  *************** _Specific names_: *** 3188,3194 **** `DASINH(X)' `REAL(8) X' `REAL(8)' GNU extension. _See also_: ! Inverse function: *note SINH::  File: gfortran.info, Node: ASSOCIATED, Next: ATAN, Prev: ASINH, Up: Intrinsic Procedures --- 3188,3194 ---- `DASINH(X)' `REAL(8) X' `REAL(8)' GNU extension. _See also_: ! Inverse function: *Note SINH::  File: gfortran.info, Node: ASSOCIATED, Next: ATAN, Prev: ASINH, Up: Intrinsic Procedures *************** _Example_: *** 3260,3266 **** end program test_associated _See also_: ! *note NULL::  File: gfortran.info, Node: ATAN, Next: ATAN2, Prev: ASSOCIATED, Up: Intrinsic Procedures --- 3260,3266 ---- end program test_associated _See also_: ! *Note NULL::  File: gfortran.info, Node: ATAN, Next: ATAN2, Prev: ASSOCIATED, Up: Intrinsic Procedures *************** _Specific names_: *** 3298,3304 **** `DATAN(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *note TAN::  --- 3298,3304 ---- `DATAN(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *Note TAN::  *************** _Specific names_: *** 3381,3387 **** `DATANH(X)' `REAL(8) X' `REAL(8)' GNU extension _See also_: ! Inverse function: *note TANH::  File: gfortran.info, Node: BESJ0, Next: BESJ1, Prev: ATANH, Up: Intrinsic Procedures --- 3381,3387 ---- `DATANH(X)' `REAL(8) X' `REAL(8)' GNU extension _See also_: ! Inverse function: *Note TANH::  File: gfortran.info, Node: BESJ0, Next: BESJ1, Prev: ATANH, Up: Intrinsic Procedures *************** _Example_: *** 3723,3729 **** end subroutine association_test _See also_: ! *note C_LOC::, *note C_FUNLOC::  File: gfortran.info, Node: C_FUNLOC, Next: C_LOC, Prev: C_F_PROCPOINTER, Up: Intrinsic Procedures --- 3723,3729 ---- end subroutine association_test _See also_: ! *Note C_LOC::, *Note C_FUNLOC::  File: gfortran.info, Node: C_FUNLOC, Next: C_LOC, Prev: C_F_PROCPOINTER, Up: Intrinsic Procedures *************** _Example_: *** 3775,3781 **** end program main _See also_: ! *note C_ASSOCIATED::, *note C_LOC::, *note C_F_POINTER::, *note C_F_PROCPOINTER::  --- 3775,3781 ---- end program main _See also_: ! *Note C_ASSOCIATED::, *Note C_LOC::, *Note C_F_POINTER::, *Note C_F_PROCPOINTER::  *************** _Syntax_: *** 3802,3808 **** _Arguments_: CPTR scalar of the type `C_FUNPTR'. It is ! `INTENT(IN)'. FPTR procedure pointer interoperable with CPTR. It is `INTENT(OUT)'. --- 3802,3808 ---- _Arguments_: CPTR scalar of the type `C_FUNPTR'. It is ! `INTENT(IN)'. FPTR procedure pointer interoperable with CPTR. It is `INTENT(OUT)'. *************** _Example_: *** 3830,3836 **** end program main _See also_: ! *note C_LOC::, *note C_F_POINTER::  File: gfortran.info, Node: C_F_POINTER, Next: C_F_PROCPOINTER, Prev: C_ASSOCIATED, Up: Intrinsic Procedures --- 3830,3836 ---- end program main _See also_: ! *Note C_LOC::, *Note C_F_POINTER::  File: gfortran.info, Node: C_F_POINTER, Next: C_F_PROCPOINTER, Prev: C_ASSOCIATED, Up: Intrinsic Procedures *************** _Syntax_: *** 3853,3866 **** _Arguments_: CPTR scalar of the type `C_PTR'. It is ! `INTENT(IN)'. FPTR pointer interoperable with CPTR. It is ! `INTENT(OUT)'. SHAPE (Optional) Rank-one array of type `INTEGER' ! with `INTENT(IN)'. It shall ! be present if and only if ! FPTR is an array. The size ! must be equal to the rank of FPTR. _Example_: program main --- 3853,3866 ---- _Arguments_: CPTR scalar of the type `C_PTR'. It is ! `INTENT(IN)'. FPTR pointer interoperable with CPTR. It is ! `INTENT(OUT)'. SHAPE (Optional) Rank-one array of type `INTEGER' ! with `INTENT(IN)'. It ! shall be present if and only if FPTR is ! an array. The size must be equal to the ! rank of FPTR. _Example_: program main *************** _Example_: *** 3879,3885 **** end program main _See also_: ! *note C_LOC::, *note C_F_PROCPOINTER::  File: gfortran.info, Node: C_LOC, Next: CEILING, Prev: C_FUNLOC, Up: Intrinsic Procedures --- 3879,3885 ---- end program main _See also_: ! *Note C_LOC::, *Note C_F_PROCPOINTER::  File: gfortran.info, Node: C_LOC, Next: CEILING, Prev: C_FUNLOC, Up: Intrinsic Procedures *************** _Syntax_: *** 3901,3908 **** _Arguments_: X Associated scalar pointer or interoperable ! scalar or allocated allocatable ! variable with `TARGET' attribute. _Return value_: The return value is of type `C_PTR' and contains the C address of --- 3901,3908 ---- _Arguments_: X Associated scalar pointer or interoperable ! scalar or allocated allocatable variable ! with `TARGET' attribute. _Return value_: The return value is of type `C_PTR' and contains the C address of *************** _Example_: *** 3919,3925 **** end subroutine association_test _See also_: ! *note C_ASSOCIATED::, *note C_FUNLOC::, *note C_F_POINTER::, *note C_F_PROCPOINTER::  --- 3919,3925 ---- end subroutine association_test _See also_: ! *Note C_ASSOCIATED::, *Note C_FUNLOC::, *Note C_F_POINTER::, *Note C_F_PROCPOINTER::  *************** _Syntax_: *** 3943,3950 **** _Arguments_: X The type shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of type `INTEGER(KIND)' --- 3943,3950 ---- _Arguments_: X The type shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of type `INTEGER(KIND)' *************** _Example_: *** 3958,3964 **** end program test_ceiling _See also_: ! *note FLOOR::, *note NINT::  --- 3958,3964 ---- end program test_ceiling _See also_: ! *Note FLOOR::, *Note NINT::  *************** _Syntax_: *** 3983,3990 **** _Arguments_: I The type shall be `INTEGER(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of type `CHARACTER(1)' --- 3983,3990 ---- _Arguments_: I The type shall be `INTEGER(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of type `CHARACTER(1)' *************** _Example_: *** 3998,4008 **** end program test_char _Note_: ! See *note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *note ACHAR::, *note IACHAR::, *note ICHAR::  --- 3998,4008 ---- end program test_char _Note_: ! See *Note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *Note ACHAR::, *Note IACHAR::, *Note ICHAR::  *************** _Syntax_: *** 4029,4036 **** _Arguments_: NAME The type shall be `CHARACTER(*)' and shall ! specify a valid path within ! the file system. STATUS (Optional) `INTEGER' status flag of the default kind. Returns 0 on success, and a system specific --- 4029,4036 ---- _Arguments_: NAME The type shall be `CHARACTER(*)' and shall ! specify a valid path ! within the file system. STATUS (Optional) `INTEGER' status flag of the default kind. Returns 0 on success, and a system specific *************** _Example_: *** 4047,4053 **** END PROGRAM _See also_: ! *note GETCWD::  File: gfortran.info, Node: CHMOD, Next: CMPLX, Prev: CHDIR, Up: Intrinsic Procedures --- 4047,4053 ---- END PROGRAM _See also_: ! *Note GETCWD::  File: gfortran.info, Node: CHMOD, Next: CMPLX, Prev: CHDIR, Up: Intrinsic Procedures *************** _Arguments_: *** 4134,4141 **** `COMPLEX(*)'.) May be `INTEGER(*)' or `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of `COMPLEX' type, with a kind equal to KIND --- 4134,4141 ---- `COMPLEX(*)'.) May be `INTEGER(*)' or `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of `COMPLEX' type, with a kind equal to KIND *************** _Example_: *** 4152,4158 **** end program test_cmplx _See also_: ! *note COMPLEX::  File: gfortran.info, Node: COMMAND_ARGUMENT_COUNT, Next: COMPLEX, Prev: CMPLX, Up: Intrinsic Procedures --- 4152,4158 ---- end program test_cmplx _See also_: ! *Note COMPLEX::  File: gfortran.info, Node: COMMAND_ARGUMENT_COUNT, Next: COMPLEX, Prev: CMPLX, Up: Intrinsic Procedures *************** _Example_: *** 4187,4193 **** end program test_command_argument_count _See also_: ! *note GET_COMMAND::, *note GET_COMMAND_ARGUMENT::  File: gfortran.info, Node: COMPLEX, Next: CONJG, Prev: COMMAND_ARGUMENT_COUNT, Up: Intrinsic Procedures --- 4187,4193 ---- end program test_command_argument_count _See also_: ! *Note GET_COMMAND::, *Note GET_COMMAND_ARGUMENT::  File: gfortran.info, Node: COMPLEX, Next: CONJG, Prev: COMMAND_ARGUMENT_COUNT, Up: Intrinsic Procedures *************** _Example_: *** 4229,4235 **** end program test_complex _See also_: ! *note CMPLX::  File: gfortran.info, Node: CONJG, Next: COS, Prev: COMPLEX, Up: Intrinsic Procedures --- 4229,4235 ---- end program test_complex _See also_: ! *Note CMPLX::  File: gfortran.info, Node: CONJG, Next: COS, Prev: COMPLEX, Up: Intrinsic Procedures *************** _Specific names_: *** 4313,4319 **** X' _See also_: ! Inverse function: *note ACOS::  --- 4313,4319 ---- X' _See also_: ! Inverse function: *Note ACOS::  *************** _Specific names_: *** 4352,4358 **** `DCOSH(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *note ACOSH::  --- 4352,4358 ---- `DCOSH(X)' `REAL(8) X' `REAL(8)' F77 and later _See also_: ! Inverse function: *Note ACOSH::  *************** _Example_: *** 4456,4462 **** end program test_cpu_time _See also_: ! *note SYSTEM_CLOCK::, *note DATE_AND_TIME::  File: gfortran.info, Node: CSHIFT, Next: CTIME, Prev: CPU_TIME, Up: Intrinsic Procedures --- 4456,4462 ---- end program test_cpu_time _See also_: ! *Note SYSTEM_CLOCK::, *Note DATE_AND_TIME::  File: gfortran.info, Node: CSHIFT, Next: CTIME, Prev: CPU_TIME, Up: Intrinsic Procedures *************** _Example_: *** 4549,4555 **** end program test_ctime _See Also_: ! *note GMTIME::, *note LTIME::, *note TIME::, *note TIME8::  File: gfortran.info, Node: DATE_AND_TIME, Next: DBLE, Prev: CTIME, Up: Intrinsic Procedures --- 4549,4555 ---- end program test_ctime _See Also_: ! *Note GMTIME::, *Note LTIME::, *Note TIME::, *Note TIME8::  File: gfortran.info, Node: DATE_AND_TIME, Next: DBLE, Prev: CTIME, Up: Intrinsic Procedures *************** _Example_: *** 4615,4621 **** end program test_time_and_date _See also_: ! *note CPU_TIME::, *note SYSTEM_CLOCK::  File: gfortran.info, Node: DBLE, Next: DCMPLX, Prev: DATE_AND_TIME, Up: Intrinsic Procedures --- 4615,4621 ---- end program test_time_and_date _See also_: ! *Note CPU_TIME::, *Note SYSTEM_CLOCK::  File: gfortran.info, Node: DBLE, Next: DCMPLX, Prev: DATE_AND_TIME, Up: Intrinsic Procedures *************** _Example_: *** 4651,4657 **** end program test_dble _See also_: ! *note DFLOAT::, *note FLOAT::, *note REAL::  File: gfortran.info, Node: DCMPLX, Next: DFLOAT, Prev: DBLE, Up: Intrinsic Procedures --- 4651,4657 ---- end program test_dble _See also_: ! *Note DFLOAT::, *Note FLOAT::, *Note REAL::  File: gfortran.info, Node: DCMPLX, Next: DFLOAT, Prev: DBLE, Up: Intrinsic Procedures *************** _Example_: *** 4727,4733 **** end program test_dfloat _See also_: ! *note DBLE::, *note FLOAT::, *note REAL::  File: gfortran.info, Node: DIGITS, Next: DIM, Prev: DFLOAT, Up: Intrinsic Procedures --- 4727,4733 ---- end program test_dfloat _See also_: ! *Note DBLE::, *Note FLOAT::, *Note REAL::  File: gfortran.info, Node: DIGITS, Next: DIM, Prev: DFLOAT, Up: Intrinsic Procedures *************** _Example_: *** 4918,4924 **** end program test_dreal _See also_: ! *note AIMAG::  --- 4918,4924 ---- end program test_dreal _See also_: ! *Note AIMAG::  *************** _Example_: *** 4998,5004 **** end program test_dtime _See also_: ! *note CPU_TIME::  --- 4998,5004 ---- end program test_dtime _See also_: ! *Note CPU_TIME::  *************** _Example_: *** 5228,5234 **** end program test_etime _See also_: ! *note CPU_TIME::  --- 5228,5234 ---- end program test_etime _See also_: ! *Note CPU_TIME::  *************** _Example_: *** 5265,5271 **** end program test_exit _See also_: ! *note ABORT::, *note KILL::  File: gfortran.info, Node: EXP, Next: EXPONENT, Prev: EXIT, Up: Intrinsic Procedures --- 5265,5271 ---- end program test_exit _See also_: ! *Note ABORT::, *Note KILL::  File: gfortran.info, Node: EXP, Next: EXPONENT, Prev: EXIT, Up: Intrinsic Procedures *************** _Example_: *** 5416,5422 **** end program test_float _See also_: ! *note DBLE::, *note DFLOAT::, *note REAL::  File: gfortran.info, Node: FGET, Next: FGETC, Prev: FDATE, Up: Intrinsic Procedures --- 5416,5422 ---- end program test_float _See also_: ! *Note DBLE::, *Note DFLOAT::, *Note REAL::  File: gfortran.info, Node: FGET, Next: FGETC, Prev: FDATE, Up: Intrinsic Procedures *************** _Description_: *** 5437,5443 **** compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *note Fortran 2003 status::. _Standard_: GNU extension --- 5437,5443 ---- compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *Note Fortran 2003 status::. _Standard_: GNU extension *************** _Syntax_: *** 5451,5458 **** _Arguments_: C The type shall be `CHARACTER'. STATUS (Optional) status flag of type `INTEGER'. ! Returns 0 on success, -1 on ! end-of-file, and a system specific positive error code otherwise. _Example_: --- 5451,5458 ---- _Arguments_: C The type shall be `CHARACTER'. STATUS (Optional) status flag of type `INTEGER'. ! Returns 0 on success, -1 ! on end-of-file, and a system specific positive error code otherwise. _Example_: *************** _Example_: *** 5471,5477 **** END PROGRAM _See also_: ! *note FGETC::, *note FPUT::, *note FPUTC::  File: gfortran.info, Node: FGETC, Next: FLOAT, Prev: FGET, Up: Intrinsic Procedures --- 5471,5477 ---- END PROGRAM _See also_: ! *Note FGETC::, *Note FPUT::, *Note FPUTC::  File: gfortran.info, Node: FGETC, Next: FLOAT, Prev: FGET, Up: Intrinsic Procedures *************** _Description_: *** 5492,5498 **** compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *note Fortran 2003 status::. _Standard_: GNU extension --- 5492,5498 ---- compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *Note Fortran 2003 status::. _Standard_: GNU extension *************** _Example_: *** 5526,5532 **** END PROGRAM _See also_: ! *note FGET::, *note FPUT::, *note FPUTC::  File: gfortran.info, Node: FLOOR, Next: FLUSH, Prev: FLOAT, Up: Intrinsic Procedures --- 5526,5532 ---- END PROGRAM _See also_: ! *Note FGET::, *Note FPUT::, *Note FPUTC::  File: gfortran.info, Node: FLOOR, Next: FLUSH, Prev: FLOAT, Up: Intrinsic Procedures *************** _Syntax_: *** 5549,5556 **** _Arguments_: X The type shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is of type `INTEGER(KIND)' --- 5549,5556 ---- _Arguments_: X The type shall be `REAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is of type `INTEGER(KIND)' *************** _Example_: *** 5564,5570 **** end program test_floor _See also_: ! *note CEILING::, *note NINT::  --- 5564,5570 ---- end program test_floor _See also_: ! *Note CEILING::, *Note NINT::  *************** _Description_: *** 5648,5654 **** compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *note Fortran 2003 status::. _Standard_: GNU extension --- 5648,5654 ---- compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *Note Fortran 2003 status::. _Standard_: GNU extension *************** _Example_: *** 5676,5682 **** END PROGRAM _See also_: ! *note FPUTC::, *note FGET::, *note FGETC::  File: gfortran.info, Node: FPUTC, Next: FRACTION, Prev: FPUT, Up: Intrinsic Procedures --- 5676,5682 ---- END PROGRAM _See also_: ! *Note FPUTC::, *Note FGET::, *Note FGETC::  File: gfortran.info, Node: FPUTC, Next: FRACTION, Prev: FPUT, Up: Intrinsic Procedures *************** _Description_: *** 5697,5703 **** compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *note Fortran 2003 status::. _Standard_: GNU extension --- 5697,5703 ---- compatibility with `g77'. GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO feature in new code for future portability. See also ! *Note Fortran 2003 status::. _Standard_: GNU extension *************** _Example_: *** 5729,5735 **** END PROGRAM _See also_: ! *note FPUT::, *note FGET::, *note FGETC::  File: gfortran.info, Node: FRACTION, Next: FREE, Prev: FPUTC, Up: Intrinsic Procedures --- 5729,5735 ---- END PROGRAM _See also_: ! *Note FPUT::, *Note FGET::, *Note FGETC::  File: gfortran.info, Node: FRACTION, Next: FREE, Prev: FPUTC, Up: Intrinsic Procedures *************** _Example_: *** 5800,5806 **** See `MALLOC' for an example. _See also_: ! *note MALLOC::  File: gfortran.info, Node: FSEEK, Next: FSTAT, Prev: FREE, Up: Intrinsic Procedures --- 5800,5806 ---- See `MALLOC' for an example. _See also_: ! *Note MALLOC::  File: gfortran.info, Node: FSEEK, Next: FSTAT, Prev: FREE, Up: Intrinsic Procedures *************** _Description_: *** 5827,5833 **** Please note that GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO ! feature in new code for future portability. See also *note Fortran 2003 status::. _Standard_: --- 5827,5833 ---- Please note that GNU Fortran provides the Fortran 2003 Stream facility. Programmers should consider the use of new stream IO ! feature in new code for future portability. See also *Note Fortran 2003 status::. _Standard_: *************** _Example_: *** 5870,5876 **** END PROGRAM _See also_: ! *note FTELL::  File: gfortran.info, Node: FSTAT, Next: FTELL, Prev: FSEEK, Up: Intrinsic Procedures --- 5870,5876 ---- END PROGRAM _See also_: ! *Note FTELL::  File: gfortran.info, Node: FSTAT, Next: FTELL, Prev: FSEEK, Up: Intrinsic Procedures *************** File: gfortran.info, Node: FSTAT, Next *** 5879,5888 **** =============================== _Description_: ! `FSTAT' is identical to *note STAT::, except that information about an already opened file is obtained. ! The elements in `BUFF' are the same as described by *note STAT::. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. --- 5879,5888 ---- =============================== _Description_: ! `FSTAT' is identical to *Note STAT::, except that information about an already opened file is obtained. ! The elements in `BUFF' are the same as described by *Note STAT::. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. *************** _Arguments_: *** 5904,5913 **** and a system specific error code otherwise. _Example_: ! See *note STAT:: for an example. _See also_: ! To stat a link: *note LSTAT::, to stat a file: *note STAT::  File: gfortran.info, Node: FTELL, Next: GAMMA, Prev: FSTAT, Up: Intrinsic Procedures --- 5904,5913 ---- and a system specific error code otherwise. _Example_: ! See *Note STAT:: for an example. _See also_: ! To stat a link: *Note LSTAT::, to stat a file: *Note STAT::  File: gfortran.info, Node: FTELL, Next: GAMMA, Prev: FSTAT, Up: Intrinsic Procedures *************** _Example_: *** 5948,5954 **** END PROGRAM _See also_: ! *note FSEEK::  File: gfortran.info, Node: GAMMA, Next: GERROR, Prev: FTELL, Up: Intrinsic Procedures --- 5948,5954 ---- END PROGRAM _See also_: ! *Note FSEEK::  File: gfortran.info, Node: GAMMA, Next: GERROR, Prev: FTELL, Up: Intrinsic Procedures *************** _Specific names_: *** 5989,5995 **** `DGAMMA(X)' `REAL(8) X' `REAL(8)' GNU Extension _See also_: ! Logarithm of the Gamma function: *note LGAMMA::  --- 5989,5995 ---- `DGAMMA(X)' `REAL(8) X' `REAL(8)' GNU Extension _See also_: ! Logarithm of the Gamma function: *Note LGAMMA::  *************** _Example_: *** 6022,6028 **** END PROGRAM _See also_: ! *note IERRNO::, *note PERROR::  File: gfortran.info, Node: GETARG, Next: GET_COMMAND, Prev: GERROR, Up: Intrinsic Procedures --- 6022,6028 ---- END PROGRAM _See also_: ! *Note IERRNO::, *Note PERROR::  File: gfortran.info, Node: GETARG, Next: GET_COMMAND, Prev: GERROR, Up: Intrinsic Procedures *************** _Description_: *** 6036,6042 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *note GET_COMMAND_ARGUMENT:: intrinsic defined by the Fortran 2003 standard. _Standard_: --- 6036,6042 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *Note GET_COMMAND_ARGUMENT:: intrinsic defined by the Fortran 2003 standard. _Standard_: *************** _Example_: *** 6073,6082 **** END PROGRAM _See also_: ! GNU Fortran 77 compatibility function: *note IARGC:: ! F2003 functions and subroutines: *note GET_COMMAND::, *note ! GET_COMMAND_ARGUMENT::, *note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GET_COMMAND, Next: GET_COMMAND_ARGUMENT, Prev: GETARG, Up: Intrinsic Procedures --- 6073,6082 ---- END PROGRAM _See also_: ! GNU Fortran 77 compatibility function: *Note IARGC:: ! F2003 functions and subroutines: *Note GET_COMMAND::, *Note ! GET_COMMAND_ARGUMENT::, *Note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GET_COMMAND, Next: GET_COMMAND_ARGUMENT, Prev: GETARG, Up: Intrinsic Procedures *************** _Example_: *** 6112,6118 **** END PROGRAM _See also_: ! *note GET_COMMAND_ARGUMENT::, *note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GET_COMMAND_ARGUMENT, Next: GETCWD, Prev: GET_COMMAND, Up: Intrinsic Procedures --- 6112,6118 ---- END PROGRAM _See also_: ! *Note GET_COMMAND_ARGUMENT::, *Note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GET_COMMAND_ARGUMENT, Next: GETCWD, Prev: GET_COMMAND, Up: Intrinsic Procedures *************** _Example_: *** 6161,6167 **** END PROGRAM _See also_: ! *note GET_COMMAND::, *note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GETCWD, Next: GETENV, Prev: GET_COMMAND_ARGUMENT, Up: Intrinsic Procedures --- 6161,6167 ---- END PROGRAM _See also_: ! *Note GET_COMMAND::, *Note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: GETCWD, Next: GETENV, Prev: GET_COMMAND_ARGUMENT, Up: Intrinsic Procedures *************** _Example_: *** 6198,6204 **** END PROGRAM _See also_: ! *note CHDIR::  File: gfortran.info, Node: GETENV, Next: GET_ENVIRONMENT_VARIABLE, Prev: GETCWD, Up: Intrinsic Procedures --- 6198,6204 ---- END PROGRAM _See also_: ! *Note CHDIR::  File: gfortran.info, Node: GETENV, Next: GET_ENVIRONMENT_VARIABLE, Prev: GETCWD, Up: Intrinsic Procedures *************** _Description_: *** 6211,6217 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *note GET_ENVIRONMENT_VARIABLE:: intrinsic defined by the Fortran 2003 standard. _Standard_: --- 6211,6217 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *Note GET_ENVIRONMENT_VARIABLE:: intrinsic defined by the Fortran 2003 standard. _Standard_: *************** _Example_: *** 6240,6246 **** END PROGRAM _See also_: ! *note GET_ENVIRONMENT_VARIABLE::  File: gfortran.info, Node: GET_ENVIRONMENT_VARIABLE, Next: GETGID, Prev: GETENV, Up: Intrinsic Procedures --- 6240,6246 ---- END PROGRAM _See also_: ! *Note GET_ENVIRONMENT_VARIABLE::  File: gfortran.info, Node: GET_ENVIRONMENT_VARIABLE, Next: GETGID, Prev: GETENV, Up: Intrinsic Procedures *************** _Example_: *** 6301,6307 **** See `GETPID' for an example. _See also_: ! *note GETPID::, *note GETUID::  File: gfortran.info, Node: GETLOG, Next: GETPID, Prev: GETGID, Up: Intrinsic Procedures --- 6301,6307 ---- See `GETPID' for an example. _See also_: ! *Note GETPID::, *Note GETUID::  File: gfortran.info, Node: GETLOG, Next: GETPID, Prev: GETGID, Up: Intrinsic Procedures *************** _Example_: *** 6338,6344 **** END PROGRAM _See also_: ! *note GETUID::  File: gfortran.info, Node: GETPID, Next: GETUID, Prev: GETLOG, Up: Intrinsic Procedures --- 6338,6344 ---- END PROGRAM _See also_: ! *Note GETUID::  File: gfortran.info, Node: GETPID, Next: GETUID, Prev: GETLOG, Up: Intrinsic Procedures *************** _Example_: *** 6369,6375 **** end program info _See also_: ! *note GETGID::, *note GETUID::  File: gfortran.info, Node: GETUID, Next: GMTIME, Prev: GETPID, Up: Intrinsic Procedures --- 6369,6375 ---- end program info _See also_: ! *Note GETGID::, *Note GETUID::  File: gfortran.info, Node: GETUID, Next: GMTIME, Prev: GETPID, Up: Intrinsic Procedures *************** _Example_: *** 6396,6402 **** See `GETPID' for an example. _See also_: ! *note GETPID::, *note GETLOG::  File: gfortran.info, Node: GMTIME, Next: HOSTNM, Prev: GETUID, Up: Intrinsic Procedures --- 6396,6402 ---- See `GETPID' for an example. _See also_: ! *Note GETPID::, *Note GETLOG::  File: gfortran.info, Node: GMTIME, Next: HOSTNM, Prev: GETUID, Up: Intrinsic Procedures *************** _Return value_: *** 6450,6456 **** not available. _See also_: ! *note CTIME::, *note LTIME::, *note TIME::, *note TIME8::  --- 6450,6456 ---- not available. _See also_: ! *Note CTIME::, *Note LTIME::, *Note TIME::, *Note TIME8::  *************** _Syntax_: *** 6479,6487 **** _Arguments_: NAME Shall of type `CHARACTER(*)'. STATUS (Optional) status flag of type `INTEGER'. ! Returns 0 on success, or a ! system specific error ! code otherwise. _Return value_: In either syntax, NAME is set to the current hostname if it can be --- 6479,6487 ---- _Arguments_: NAME Shall of type `CHARACTER(*)'. STATUS (Optional) status flag of type `INTEGER'. ! Returns 0 on success, or ! a system specific error ! code otherwise. _Return value_: In either syntax, NAME is set to the current hostname if it can be *************** _Example_: *** 6556,6566 **** end program test_iachar _Note_: ! See *note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *note ACHAR::, *note CHAR::, *note ICHAR::  --- 6556,6566 ---- end program test_iachar _Note_: ! See *Note ICHAR:: for a discussion of converting between numerical values and formatted string representations. _See also_: ! *Note ACHAR::, *Note CHAR::, *Note ICHAR::  *************** _Example_: *** 6600,6607 **** END PROGRAM _See also_: ! *note IOR::, *note IEOR::, *note IBITS::, *note IBSET::, *note ! IBCLR::, *note NOT::  --- 6600,6607 ---- END PROGRAM _See also_: ! *Note IOR::, *Note IEOR::, *Note IBITS::, *Note IBSET::, *Note ! IBCLR::, *Note NOT::  *************** _Description_: *** 6616,6622 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *note COMMAND_ARGUMENT_COUNT:: intrinsic defined by the Fortran 2003 standard. _Standard_: --- 6616,6622 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. In new code, programmers should consider the use ! of the *Note COMMAND_ARGUMENT_COUNT:: intrinsic defined by the Fortran 2003 standard. _Standard_: *************** _Return value_: *** 6635,6647 **** The number of command line arguments, type `INTEGER(4)'. _Example_: ! See *note GETARG:: _See also_: ! GNU Fortran 77 compatibility subroutine: *note GETARG:: ! F2003 functions and subroutines: *note GET_COMMAND::, *note ! GET_COMMAND_ARGUMENT::, *note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: IBCLR, Next: IBITS, Prev: IARGC, Up: Intrinsic Procedures --- 6635,6647 ---- The number of command line arguments, type `INTEGER(4)'. _Example_: ! See *Note GETARG:: _See also_: ! GNU Fortran 77 compatibility subroutine: *Note GETARG:: ! F2003 functions and subroutines: *Note GET_COMMAND::, *Note ! GET_COMMAND_ARGUMENT::, *Note COMMAND_ARGUMENT_COUNT::  File: gfortran.info, Node: IBCLR, Next: IBITS, Prev: IARGC, Up: Intrinsic Procedures *************** _Return value_: *** 6670,6677 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note IBITS::, *note IBSET::, *note IAND::, *note IOR::, *note ! IEOR::, *note MVBITS::  --- 6670,6677 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note IBITS::, *Note IBSET::, *Note IAND::, *Note IOR::, *Note ! IEOR::, *Note MVBITS::  *************** _Return value_: *** 6704,6711 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note BIT_SIZE::, *note IBCLR::, *note IBSET::, *note IAND::, ! *note IOR::, *note IEOR::  File: gfortran.info, Node: IBSET, Next: ICHAR, Prev: IBITS, Up: Intrinsic Procedures --- 6704,6711 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note BIT_SIZE::, *Note IBCLR::, *Note IBSET::, *Note IAND::, ! *Note IOR::, *Note IEOR::  File: gfortran.info, Node: IBSET, Next: ICHAR, Prev: IBITS, Up: Intrinsic Procedures *************** _Return value_: *** 6734,6741 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note IBCLR::, *note IBITS::, *note IAND::, *note IOR::, *note ! IEOR::, *note MVBITS::  --- 6734,6741 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note IBCLR::, *Note IBITS::, *Note IAND::, *Note IOR::, *Note ! IEOR::, *Note MVBITS::  *************** _Note_: *** 6797,6803 **** end program read_val _See also_: ! *note ACHAR::, *note CHAR::, *note IACHAR::  --- 6797,6803 ---- end program read_val _See also_: ! *Note ACHAR::, *Note CHAR::, *Note IACHAR::  *************** _Return value_: *** 6867,6874 **** as the larger argument.) _See also_: ! *note IOR::, *note IAND::, *note IBITS::, *note IBSET::, *note ! IBCLR::, *note NOT::  File: gfortran.info, Node: IERRNO, Next: INDEX intrinsic, Prev: IEOR, Up: Intrinsic Procedures --- 6867,6874 ---- as the larger argument.) _See also_: ! *Note IOR::, *Note IAND::, *Note IBITS::, *Note IBSET::, *Note ! IBCLR::, *Note NOT::  File: gfortran.info, Node: IERRNO, Next: INDEX intrinsic, Prev: IEOR, Up: Intrinsic Procedures *************** _Return value_: *** 6897,6903 **** kind. _See also_: ! *note PERROR::  File: gfortran.info, Node: INDEX intrinsic, Next: INT, Prev: IERRNO, Up: Intrinsic Procedures --- 6897,6903 ---- kind. _See also_: ! *Note PERROR::  File: gfortran.info, Node: INDEX intrinsic, Next: INT, Prev: IERRNO, Up: Intrinsic Procedures *************** _Return value_: *** 6937,6943 **** absent, the return value is of default integer kind. _See also_: ! *note SCAN::, *note VERIFY::  File: gfortran.info, Node: INT, Next: INT2, Prev: INDEX intrinsic, Up: Intrinsic Procedures --- 6937,6943 ---- absent, the return value is of default integer kind. _See also_: ! *Note SCAN::, *Note VERIFY::  File: gfortran.info, Node: INT, Next: INT2, Prev: INDEX intrinsic, Up: Intrinsic Procedures *************** _Arguments_: *** 6961,6968 **** A Shall be of type `INTEGER(*)', `REAL(*)', or `COMPLEX(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: These functions return a `INTEGER(*)' variable or array under the --- 6961,6968 ---- A Shall be of type `INTEGER(*)', `REAL(*)', or `COMPLEX(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: These functions return a `INTEGER(*)' variable or array under the *************** _Return value_: *** 7025,7031 **** The return value is a `INTEGER(2)' variable. _See also_: ! *note INT::, *note INT8::, *note LONG::  File: gfortran.info, Node: INT8, Next: IOR, Prev: INT2, Up: Intrinsic Procedures --- 7025,7031 ---- The return value is a `INTEGER(2)' variable. _See also_: ! *Note INT::, *Note INT8::, *Note LONG::  File: gfortran.info, Node: INT8, Next: IOR, Prev: INT2, Up: Intrinsic Procedures *************** _Return value_: *** 7055,7061 **** The return value is a `INTEGER(8)' variable. _See also_: ! *note INT::, *note INT2::, *note LONG::  File: gfortran.info, Node: IOR, Next: IRAND, Prev: INT8, Up: Intrinsic Procedures --- 7055,7061 ---- The return value is a `INTEGER(8)' variable. _See also_: ! *Note INT::, *Note INT2::, *Note LONG::  File: gfortran.info, Node: IOR, Next: IRAND, Prev: INT8, Up: Intrinsic Procedures *************** _Return value_: *** 7087,7094 **** as the larger argument.) _See also_: ! *note IEOR::, *note IAND::, *note IBITS::, *note IBSET::, *note ! IBCLR::, *note NOT::  File: gfortran.info, Node: IRAND, Next: IS_IOSTAT_END, Prev: IOR, Up: Intrinsic Procedures --- 7087,7094 ---- as the larger argument.) _See also_: ! *Note IEOR::, *Note IAND::, *Note IBITS::, *Note IBSET::, *Note ! IBCLR::, *Note NOT::  File: gfortran.info, Node: IRAND, Next: IS_IOSTAT_END, Prev: IOR, Up: Intrinsic Procedures *************** _Description_: *** 7106,7112 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. It implements a simple modulo generator as provided ! by `g77'. For new code, one should consider the use of *note RANDOM_NUMBER:: as it implements a superior algorithm. _Standard_: --- 7106,7112 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. It implements a simple modulo generator as provided ! by `g77'. For new code, one should consider the use of *Note RANDOM_NUMBER:: as it implements a superior algorithm. _Standard_: *************** _Example_: *** 7244,7250 **** END PROGRAM _See also_: ! *note TTYNAM::  File: gfortran.info, Node: ISHFT, Next: ISHFTC, Prev: ISATTY, Up: Intrinsic Procedures --- 7244,7250 ---- END PROGRAM _See also_: ! *Note TTYNAM::  File: gfortran.info, Node: ISHFT, Next: ISHFTC, Prev: ISATTY, Up: Intrinsic Procedures *************** _Return value_: *** 7278,7284 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note ISHFTC::  File: gfortran.info, Node: ISHFTC, Next: ISNAN, Prev: ISHFT, Up: Intrinsic Procedures --- 7278,7284 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note ISHFTC::  File: gfortran.info, Node: ISHFTC, Next: ISNAN, Prev: ISHFT, Up: Intrinsic Procedures *************** _Return value_: *** 7316,7322 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note ISHFT::  File: gfortran.info, Node: ISNAN, Next: ITIME, Prev: ISHFTC, Up: Intrinsic Procedures --- 7316,7322 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note ISHFT::  File: gfortran.info, Node: ISNAN, Next: ITIME, Prev: ISHFTC, Up: Intrinsic Procedures *************** _Arguments_: *** 7415,7426 **** PID Shall be a scalar `INTEGER', with `INTENT(IN)' SIGNAL Shall be a scalar `INTEGER', with `INTENT(IN)' STATUS (Optional) status flag of type `INTEGER(4)' or ! `INTEGER(8)'. Returns 0 ! on success, or a system-specific error code otherwise. _See also_: ! *note ABORT::, *note EXIT::  File: gfortran.info, Node: KIND, Next: LBOUND, Prev: KILL, Up: Intrinsic Procedures --- 7415,7426 ---- PID Shall be a scalar `INTEGER', with `INTENT(IN)' SIGNAL Shall be a scalar `INTEGER', with `INTENT(IN)' STATUS (Optional) status flag of type `INTEGER(4)' or ! `INTEGER(8)'. Returns ! 0 on success, or a system-specific error code otherwise. _See also_: ! *Note ABORT::, *Note EXIT::  File: gfortran.info, Node: KIND, Next: LBOUND, Prev: KILL, Up: Intrinsic Procedures *************** _Return value_: *** 7495,7501 **** bound is taken to be 1. _See also_: ! *note UBOUND::  File: gfortran.info, Node: LEN, Next: LEN_TRIM, Prev: LBOUND, Up: Intrinsic Procedures --- 7495,7501 ---- bound is taken to be 1. _See also_: ! *Note UBOUND::  File: gfortran.info, Node: LEN, Next: LEN_TRIM, Prev: LBOUND, Up: Intrinsic Procedures *************** _Return value_: *** 7530,7536 **** absent, the return value is of default integer kind. _See also_: ! *note LEN_TRIM::, *note ADJUSTL::, *note ADJUSTR::  File: gfortran.info, Node: LEN_TRIM, Next: LGAMMA, Prev: LEN, Up: Intrinsic Procedures --- 7530,7536 ---- absent, the return value is of default integer kind. _See also_: ! *Note LEN_TRIM::, *Note ADJUSTL::, *Note ADJUSTR::  File: gfortran.info, Node: LEN_TRIM, Next: LGAMMA, Prev: LEN, Up: Intrinsic Procedures *************** _Return value_: *** 7563,7569 **** absent, the return value is of default integer kind. _See also_: ! *note LEN::, *note ADJUSTL::, *note ADJUSTR::  File: gfortran.info, Node: LGAMMA, Next: LGE, Prev: LEN_TRIM, Up: Intrinsic Procedures --- 7563,7569 ---- absent, the return value is of default integer kind. _See also_: ! *Note LEN::, *Note ADJUSTL::, *Note ADJUSTR::  File: gfortran.info, Node: LGAMMA, Next: LGE, Prev: LEN_TRIM, Up: Intrinsic Procedures *************** _Specific names_: *** 7604,7610 **** `DLGAMA(X)' `REAL(8) X' `REAL(8)' GNU Extension _See also_: ! Gamma function: *note GAMMA::  --- 7604,7610 ---- `DLGAMA(X)' `REAL(8) X' `REAL(8)' GNU Extension _See also_: ! Gamma function: *Note GAMMA::  *************** _Return value_: *** 7644,7650 **** otherwise, based on the ASCII ordering. _See also_: ! *note LGT::, *note LLE::, *note LLT::  File: gfortran.info, Node: LGT, Next: LINK, Prev: LGE, Up: Intrinsic Procedures --- 7644,7650 ---- otherwise, based on the ASCII ordering. _See also_: ! *Note LGT::, *Note LLE::, *Note LLT::  File: gfortran.info, Node: LGT, Next: LINK, Prev: LGE, Up: Intrinsic Procedures *************** _Return value_: *** 7683,7689 **** otherwise, based on the ASCII ordering. _See also_: ! *note LGE::, *note LLE::, *note LLT::  File: gfortran.info, Node: LINK, Next: LLE, Prev: LGT, Up: Intrinsic Procedures --- 7683,7689 ---- otherwise, based on the ASCII ordering. _See also_: ! *Note LGE::, *Note LLE::, *Note LLT::  File: gfortran.info, Node: LINK, Next: LLE, Prev: LGT, Up: Intrinsic Procedures *************** _Arguments_: *** 7717,7723 **** STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *note SYMLNK::, *note UNLINK::  File: gfortran.info, Node: LLE, Next: LLT, Prev: LINK, Up: Intrinsic Procedures --- 7717,7723 ---- STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *Note SYMLNK::, *Note UNLINK::  File: gfortran.info, Node: LLE, Next: LLT, Prev: LINK, Up: Intrinsic Procedures *************** _Return value_: *** 7757,7763 **** otherwise, based on the ASCII ordering. _See also_: ! *note LGE::, *note LGT::, *note LLT::  File: gfortran.info, Node: LLT, Next: LNBLNK, Prev: LLE, Up: Intrinsic Procedures --- 7757,7763 ---- otherwise, based on the ASCII ordering. _See also_: ! *Note LGE::, *Note LGT::, *Note LLT::  File: gfortran.info, Node: LLT, Next: LNBLNK, Prev: LLE, Up: Intrinsic Procedures *************** _Return value_: *** 7796,7802 **** otherwise, based on the ASCII ordering. _See also_: ! *note LGE::, *note LGT::, *note LLE::  File: gfortran.info, Node: LNBLNK, Next: LOC, Prev: LLT, Up: Intrinsic Procedures --- 7796,7802 ---- otherwise, based on the ASCII ordering. _See also_: ! *Note LGE::, *Note LGT::, *Note LLE::  File: gfortran.info, Node: LNBLNK, Next: LOC, Prev: LLT, Up: Intrinsic Procedures *************** _Return value_: *** 7826,7832 **** The return value is of `INTEGER(kind=4)' type. _See also_: ! *note INDEX intrinsic::, *note LEN_TRIM::  File: gfortran.info, Node: LOC, Next: LOG, Prev: LNBLNK, Up: Intrinsic Procedures --- 7826,7832 ---- The return value is of `INTEGER(kind=4)' type. _See also_: ! *Note INDEX intrinsic::, *Note LEN_TRIM::  File: gfortran.info, Node: LOC, Next: LOG, Prev: LNBLNK, Up: Intrinsic Procedures *************** _Syntax_: *** 7962,7969 **** _Arguments_: L The type shall be `LOGICAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: The return value is a `LOGICAL' value equal to L, with a kind --- 7962,7969 ---- _Arguments_: L The type shall be `LOGICAL(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: The return value is a `LOGICAL' value equal to L, with a kind *************** _Return value_: *** 7971,7977 **** not given. _See also_: ! *note INT::, *note REAL::, *note CMPLX::  File: gfortran.info, Node: LONG, Next: LSHIFT, Prev: LOGICAL, Up: Intrinsic Procedures --- 7971,7977 ---- not given. _See also_: ! *Note INT::, *Note REAL::, *Note CMPLX::  File: gfortran.info, Node: LONG, Next: LSHIFT, Prev: LOGICAL, Up: Intrinsic Procedures *************** _Return value_: *** 8002,8008 **** The return value is a `INTEGER(4)' variable. _See also_: ! *note INT::, *note INT2::, *note INT8::  File: gfortran.info, Node: LSHIFT, Next: LSTAT, Prev: LONG, Up: Intrinsic Procedures --- 8002,8008 ---- The return value is a `INTEGER(4)' variable. _See also_: ! *Note INT::, *Note INT2::, *Note INT8::  File: gfortran.info, Node: LSHIFT, Next: LSTAT, Prev: LONG, Up: Intrinsic Procedures *************** _Return value_: *** 8037,8043 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note ISHFT::, *note ISHFTC::, *note RSHIFT::  --- 8037,8043 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note ISHFT::, *Note ISHFTC::, *Note RSHIFT::  *************** File: gfortran.info, Node: LSTAT, Next *** 8047,8057 **** ================================ _Description_: ! `LSTAT' is identical to *note 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 `BUFF' are the same as described by *note STAT::. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. --- 8047,8057 ---- ================================ _Description_: ! `LSTAT' is identical to *Note 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 `BUFF' are the same as described by *Note STAT::. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. *************** _Arguments_: *** 8074,8083 **** and a system specific error code otherwise. _Example_: ! See *note STAT:: for an example. _See also_: ! To stat an open file: *note FSTAT::, to stat a file: *note STAT::  File: gfortran.info, Node: LTIME, Next: MALLOC, Prev: LSTAT, Up: Intrinsic Procedures --- 8074,8083 ---- and a system specific error code otherwise. _Example_: ! See *Note STAT:: for an example. _See also_: ! To stat an open file: *Note FSTAT::, to stat a file: *Note STAT::  File: gfortran.info, Node: LTIME, Next: MALLOC, Prev: LSTAT, Up: Intrinsic Procedures *************** _Return value_: *** 8130,8136 **** not available. _See also_: ! *note CTIME::, *note GMTIME::, *note TIME::, *note TIME8::  --- 8130,8136 ---- not available. _See also_: ! *Note CTIME::, *Note GMTIME::, *Note TIME::, *Note TIME8::  *************** _Example_: *** 8190,8196 **** end program test_malloc _See also_: ! *note FREE::  File: gfortran.info, Node: MATMUL, Next: MAX, Prev: MALLOC, Up: Intrinsic Procedures --- 8190,8196 ---- end program test_malloc _See also_: ! *Note FREE::  File: gfortran.info, Node: MATMUL, Next: MAX, Prev: MALLOC, Up: Intrinsic Procedures *************** _Syntax_: *** 8213,8228 **** _Arguments_: MATRIX_A An array of `INTEGER(*)', `REAL(*)', `COMPLEX(*)', or ! `LOGICAL(*)' type, with a rank of ! one or two. MATRIX_B An array of `INTEGER(*)', `REAL(*)', or `COMPLEX(*)' type if ! MATRIX_A is of a numeric type; ! otherwise, an array of `LOGICAL(*)' ! type. The rank shall be one or two, and the ! first (or only) dimension of MATRIX_B ! shall be equal to the last (or only) ! dimension of MATRIX_A. _Return value_: The matrix product of MATRIX_A and MATRIX_B. The type and kind of --- 8213,8227 ---- _Arguments_: MATRIX_A An array of `INTEGER(*)', `REAL(*)', `COMPLEX(*)', or ! `LOGICAL(*)' type, with a rank of one or two. MATRIX_B An array of `INTEGER(*)', `REAL(*)', or `COMPLEX(*)' type if ! MATRIX_A is of a numeric type; otherwise, ! an array of `LOGICAL(*)' type. The ! rank shall be one or two, and the first (or ! only) dimension of MATRIX_B shall be ! equal to the last (or only) ! dimension of MATRIX_A. _Return value_: The matrix product of MATRIX_A and MATRIX_B. The type and kind of *************** _Arguments_: *** 8254,8262 **** `REAL(*)'. A2, A3, An expression of the same type and kind ... as A1. (As a GNU ! extension, arguments ! of different kinds are ! permitted.) _Return value_: The return value corresponds to the maximum value among the --- 8253,8260 ---- `REAL(*)'. A2, A3, An expression of the same type and kind ... as A1. (As a GNU ! extension, arguments of different ! kinds are permitted.) _Return value_: The return value corresponds to the maximum value among the *************** _Specific names_: *** 8275,8281 **** X' _See also_: ! *note MAXLOC:: *note MAXVAL::, *note MIN::  --- 8273,8279 ---- X' _See also_: ! *Note MAXLOC:: *Note MAXVAL::, *Note MIN::  *************** _Arguments_: *** 8346,8354 **** ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value between ! one and the rank of ARRAY, ! inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. --- 8344,8352 ---- ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value ! between one and the rank of ! ARRAY, inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. *************** _Return value_: *** 8362,8368 **** scalar. In all cases, the result is of default `INTEGER' type. _See also_: ! *note MAX::, *note MAXVAL::  --- 8360,8366 ---- scalar. In all cases, the result is of default `INTEGER' type. _See also_: ! *Note MAX::, *Note MAXVAL::  *************** _Arguments_: *** 8395,8403 **** ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value between ! one and the rank of ARRAY, ! inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. --- 8393,8401 ---- ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value ! between one and the rank of ! ARRAY, inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. *************** _Return value_: *** 8410,8416 **** is of the same type and kind as ARRAY. _See also_: ! *note MAX::, *note MAXLOC::  File: gfortran.info, Node: MCLOCK, Next: MCLOCK8, Prev: MAXVAL, Up: Intrinsic Procedures --- 8408,8414 ---- is of the same type and kind as ARRAY. _See also_: ! *Note MAX::, *Note MAXLOC::  File: gfortran.info, Node: MCLOCK, Next: MCLOCK8, Prev: MAXVAL, Up: Intrinsic Procedures *************** _Return value_: *** 8443,8450 **** the system does not support `clock(3)'. _See also_: ! *note CTIME::, *note GMTIME::, *note LTIME::, *note MCLOCK::, ! *note TIME::  --- 8441,8448 ---- the system does not support `clock(3)'. _See also_: ! *Note CTIME::, *Note GMTIME::, *Note LTIME::, *Note MCLOCK::, ! *Note TIME::  *************** _Return value_: *** 8481,8488 **** the system does not support `clock(3)'. _See also_: ! *note CTIME::, *note GMTIME::, *note LTIME::, *note MCLOCK::, ! *note TIME8::  --- 8479,8486 ---- the system does not support `clock(3)'. _See also_: ! *Note CTIME::, *Note GMTIME::, *Note LTIME::, *Note MCLOCK::, ! *Note TIME8::  *************** _Arguments_: *** 8538,8546 **** `REAL(*)'. A2, A3, An expression of the same type and kind ... as A1. (As a GNU ! extension, arguments ! of different kinds are ! permitted.) _Return value_: The return value corresponds to the maximum value among the --- 8536,8543 ---- `REAL(*)'. A2, A3, An expression of the same type and kind ... as A1. (As a GNU ! extension, arguments of different ! kinds are permitted.) _Return value_: The return value corresponds to the maximum value among the *************** _Specific names_: *** 8559,8565 **** X' _See also_: ! *note MAX::, *note MINLOC::, *note MINVAL::  File: gfortran.info, Node: MINEXPONENT, Next: MINLOC, Prev: MIN, Up: Intrinsic Procedures --- 8556,8562 ---- X' _See also_: ! *Note MAX::, *Note MINLOC::, *Note MINVAL::  File: gfortran.info, Node: MINEXPONENT, Next: MINLOC, Prev: MIN, Up: Intrinsic Procedures *************** _Arguments_: *** 8623,8631 **** ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value between ! one and the rank of ARRAY, ! inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. --- 8620,8628 ---- ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value ! between one and the rank of ! ARRAY, inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. *************** _Return value_: *** 8639,8645 **** scalar. In all cases, the result is of default `INTEGER' type. _See also_: ! *note MIN::, *note MINVAL::  --- 8636,8642 ---- scalar. In all cases, the result is of default `INTEGER' type. _See also_: ! *Note MIN::, *Note MINVAL::  *************** _Arguments_: *** 8672,8680 **** ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value between ! one and the rank of ARRAY, ! inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. --- 8669,8677 ---- ARRAY Shall be an array of type `INTEGER(*)', `REAL(*)', or `CHARACTER(*)'. DIM (Optional) Shall be a scalar of type ! `INTEGER(*)', with a value ! between one and the rank of ! ARRAY, inclusive. It may not be an optional dummy argument. MASK Shall be an array of type `LOGICAL(*)', and conformable with ARRAY. *************** _Return value_: *** 8687,8693 **** is of the same type and kind as ARRAY. _See also_: ! *note MIN::, *note MINLOC::  --- 8684,8690 ---- is of the same type and kind as ARRAY. _See also_: ! *Note MIN::, *Note MINLOC::  *************** _Arguments_: *** 8858,8865 **** TOPOS The type shall be `INTEGER(*)'. _See also_: ! *note IBCLR::, *note IBSET::, *note IBITS::, *note IAND::, *note ! IOR::, *note IEOR::  File: gfortran.info, Node: NEAREST, Next: NEW_LINE, Prev: MVBITS, Up: Intrinsic Procedures --- 8855,8862 ---- TOPOS The type shall be `INTEGER(*)'. _See also_: ! *Note IBCLR::, *Note IBSET::, *Note IBITS::, *Note IAND::, *Note ! IOR::, *Note IEOR::  File: gfortran.info, Node: NEAREST, Next: NEW_LINE, Prev: MVBITS, Up: Intrinsic Procedures *************** _Specific names_: *** 8971,8977 **** `IDNINT(X)' `REAL(8)' F95 and later _See also_: ! *note CEILING::, *note FLOOR::  --- 8968,8974 ---- `IDNINT(X)' `REAL(8)' F95 and later _See also_: ! *Note CEILING::, *Note FLOOR::  *************** _Return value_: *** 8999,9006 **** The return type is `INTEGER(*)', of the same kind as the argument. _See also_: ! *note IAND::, *note IEOR::, *note IOR::, *note IBITS::, *note ! IBSET::, *note IBCLR::  --- 8996,9003 ---- The return type is `INTEGER(*)', of the same kind as the argument. _See also_: ! *Note IAND::, *Note IEOR::, *Note IOR::, *Note IBITS::, *Note ! IBSET::, *Note IBCLR::  *************** _Example_: *** 9038,9044 **** REAL, POINTER, DIMENSION(:) :: VEC => NULL () _See also_: ! *note ASSOCIATED::  File: gfortran.info, Node: OR, Next: PACK, Prev: NULL, Up: Intrinsic Procedures --- 9035,9041 ---- REAL, POINTER, DIMENSION(:) :: VEC => NULL () _See also_: ! *Note ASSOCIATED::  File: gfortran.info, Node: OR, Next: PACK, Prev: NULL, Up: Intrinsic Procedures *************** _Description_: *** 9051,9057 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *note IOR:: intrinsic defined by the Fortran standard. _Standard_: --- 9048,9054 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *Note IOR:: intrinsic defined by the Fortran standard. _Standard_: *************** _Example_: *** 9084,9090 **** END PROGRAM _See also_: ! F95 elemental function: *note IOR::  File: gfortran.info, Node: PACK, Next: PERROR, Prev: OR, Up: Intrinsic Procedures --- 9081,9087 ---- END PROGRAM _See also_: ! F95 elemental function: *Note IOR::  File: gfortran.info, Node: PACK, Next: PERROR, Prev: OR, Up: Intrinsic Procedures *************** _Example_: *** 9143,9149 **** END PROGRAM _See also_: ! *note UNPACK::  File: gfortran.info, Node: PERROR, Next: PRECISION, Prev: PACK, Up: Intrinsic Procedures --- 9140,9146 ---- END PROGRAM _See also_: ! *Note UNPACK::  File: gfortran.info, Node: PERROR, Next: PRECISION, Prev: PACK, Up: Intrinsic Procedures *************** _Arguments_: *** 9169,9175 **** STRING A scalar of default `CHARACTER' type. _See also_: ! *note IERRNO::  File: gfortran.info, Node: PRECISION, Next: PRESENT, Prev: PERROR, Up: Intrinsic Procedures --- 9166,9172 ---- STRING A scalar of default `CHARACTER' type. _See also_: ! *Note IERRNO::  File: gfortran.info, Node: PRECISION, Next: PRESENT, Prev: PERROR, Up: Intrinsic Procedures *************** _Example_: *** 9291,9297 **** END PROGRAM _See also_: ! *note SUM::  File: gfortran.info, Node: RADIX, Next: RANDOM_NUMBER, Prev: PRODUCT, Up: Intrinsic Procedures --- 9288,9294 ---- END PROGRAM _See also_: ! *Note SUM::  File: gfortran.info, Node: RADIX, Next: RANDOM_NUMBER, Prev: PRODUCT, Up: Intrinsic Procedures *************** File: gfortran.info, Node: RAN, Next: *** 9333,9339 **** _Description_: For compatibility with HP FORTRAN 77/iX, the `RAN' intrinsic is ! provided as an alias for `RAND'. See *note RAND:: for complete documentation. _Standard_: --- 9330,9336 ---- _Description_: For compatibility with HP FORTRAN 77/iX, the `RAN' intrinsic is ! provided as an alias for `RAND'. See *Note RAND:: for complete documentation. _Standard_: *************** _Class_: *** 9343,9349 **** Function _See also_: ! *note RAND::, *note RANDOM_NUMBER::  File: gfortran.info, Node: RAND, Next: RANGE, Prev: RANDOM_SEED, Up: Intrinsic Procedures --- 9340,9346 ---- Function _See also_: ! *Note RAND::, *Note RANDOM_NUMBER::  File: gfortran.info, Node: RAND, Next: RANGE, Prev: RANDOM_SEED, Up: Intrinsic Procedures *************** _Description_: *** 9360,9366 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. It implements a simple modulo generator as provided ! by `g77'. For new code, one should consider the use of *note RANDOM_NUMBER:: as it implements a superior algorithm. _Standard_: --- 9357,9363 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. It implements a simple modulo generator as provided ! by `g77'. For new code, one should consider the use of *Note RANDOM_NUMBER:: as it implements a superior algorithm. _Standard_: *************** _Example_: *** 9388,9394 **** end program test_rand _See also_: ! *note SRAND::, *note RANDOM_NUMBER::  --- 9385,9391 ---- end program test_rand _See also_: ! *Note SRAND::, *Note RANDOM_NUMBER::  *************** _Example_: *** 9441,9447 **** end program _See also_: ! *note RANDOM_SEED::  File: gfortran.info, Node: RANDOM_SEED, Next: RAND, Prev: RANDOM_NUMBER, Up: Intrinsic Procedures --- 9438,9444 ---- end program _See also_: ! *Note RANDOM_SEED::  File: gfortran.info, Node: RANDOM_SEED, Next: RAND, Prev: RANDOM_NUMBER, Up: Intrinsic Procedures *************** _Example_: *** 9499,9505 **** END SUBROUTINE _See also_: ! *note RANDOM_NUMBER::  File: gfortran.info, Node: RANGE, Next: RAN, Prev: RAND, Up: Intrinsic Procedures --- 9496,9502 ---- END SUBROUTINE _See also_: ! *Note RANDOM_NUMBER::  File: gfortran.info, Node: RANGE, Next: RAN, Prev: RAND, Up: Intrinsic Procedures *************** _Arguments_: *** 9555,9562 **** X Shall be `INTEGER(*)', `REAL(*)', or `COMPLEX(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the kind ! parameter of the result. _Return value_: These functions return a `REAL(*)' variable or array under the --- 9552,9559 ---- X Shall be `INTEGER(*)', `REAL(*)', or `COMPLEX(*)'. KIND (Optional) An `INTEGER(*)' initialization ! expression indicating the ! kind parameter of the result. _Return value_: These functions return a `REAL(*)' variable or array under the *************** _Example_: *** 9581,9587 **** end program test_real _See also_: ! *note DBLE::, *note DFLOAT::, *note FLOAT::  --- 9578,9584 ---- end program test_real _See also_: ! *Note DBLE::, *Note DFLOAT::, *Note FLOAT::  *************** _Arguments_: *** 9616,9622 **** STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *note LINK::  --- 9613,9619 ---- STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *Note LINK::  *************** _Example_: *** 9694,9700 **** END PROGRAM _See also_: ! *note SHAPE::  File: gfortran.info, Node: RRSPACING, Next: RSHIFT, Prev: RESHAPE, Up: Intrinsic Procedures --- 9691,9697 ---- END PROGRAM _See also_: ! *Note SHAPE::  File: gfortran.info, Node: RRSPACING, Next: RSHIFT, Prev: RESHAPE, Up: Intrinsic Procedures *************** _Return value_: *** 9724,9730 **** FLOAT(RADIX(X))**DIGITS(X)'. _See also_: ! *note SPACING::  File: gfortran.info, Node: RSHIFT, Next: SCALE, Prev: RRSPACING, Up: Intrinsic Procedures --- 9721,9727 ---- FLOAT(RADIX(X))**DIGITS(X)'. _See also_: ! *Note SPACING::  File: gfortran.info, Node: RSHIFT, Next: SCALE, Prev: RRSPACING, Up: Intrinsic Procedures *************** _Return value_: *** 9759,9765 **** The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *note ISHFT::, *note ISHFTC::, *note LSHIFT::  --- 9756,9762 ---- The return value is of type `INTEGER(*)' and of the same kind as I. _See also_: ! *Note ISHFT::, *Note ISHFTC::, *Note LSHIFT::  *************** _Example_: *** 9839,9845 **** END PROGRAM _See also_: ! *note INDEX intrinsic::, *note VERIFY::  File: gfortran.info, Node: SECNDS, Next: SECOND, Prev: SCAN, Up: Intrinsic Procedures --- 9836,9842 ---- END PROGRAM _See also_: ! *Note INDEX intrinsic::, *Note VERIFY::  File: gfortran.info, Node: SECNDS, Next: SECOND, Prev: SCAN, Up: Intrinsic Procedures *************** _Return value_: *** 9914,9920 **** seconds. _See also_: ! *note CPU_TIME::  --- 9911,9917 ---- seconds. _See also_: ! *Note CPU_TIME::  *************** _Example_: *** 10084,10090 **** END PROGRAM _See also_: ! *note RESHAPE::, *note SIZE::  File: gfortran.info, Node: SIGN, Next: SIGNAL, Prev: SHAPE, Up: Intrinsic Procedures --- 10081,10087 ---- END PROGRAM _See also_: ! *Note RESHAPE::, *Note SIZE::  File: gfortran.info, Node: SIGN, Next: SIGNAL, Prev: SHAPE, Up: Intrinsic Procedures *************** _Specific names_: *** 10217,10223 **** X' _See also_: ! *note ASIN::  File: gfortran.info, Node: SINH, Next: SIZE, Prev: SIN, Up: Intrinsic Procedures --- 10214,10220 ---- X' _See also_: ! *Note ASIN::  File: gfortran.info, Node: SINH, Next: SIZE, Prev: SIN, Up: Intrinsic Procedures *************** _Specific names_: *** 10254,10260 **** `DSINH(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *note ASINH::  File: gfortran.info, Node: SIZE, Next: SIZEOF, Prev: SINH, Up: Intrinsic Procedures --- 10251,10257 ---- `DSINH(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *Note ASINH::  File: gfortran.info, Node: SIZE, Next: SIZEOF, Prev: SINH, Up: Intrinsic Procedures *************** _Example_: *** 10296,10302 **** END PROGRAM _See also_: ! *note SHAPE::, *note RESHAPE::  File: gfortran.info, Node: SIZEOF, Next: SLEEP, Prev: SIZE, Up: Intrinsic Procedures --- 10293,10299 ---- END PROGRAM _See also_: ! *Note SHAPE::, *Note RESHAPE::  File: gfortran.info, Node: SIZEOF, Next: SLEEP, Prev: SIZE, Up: Intrinsic Procedures *************** _Return value_: *** 10392,10398 **** The return value is of type default `REAL'. _See also_: ! *note DBLE::  File: gfortran.info, Node: SPACING, Next: SPREAD, Prev: SNGL, Up: Intrinsic Procedures --- 10389,10395 ---- The return value is of type default `REAL'. _See also_: ! *Note DBLE::  File: gfortran.info, Node: SPACING, Next: SPREAD, Prev: SNGL, Up: Intrinsic Procedures *************** _Example_: *** 10429,10435 **** END PROGRAM _See also_: ! *note RRSPACING::  File: gfortran.info, Node: SPREAD, Next: SQRT, Prev: SPACING, Up: Intrinsic Procedures --- 10426,10432 ---- END PROGRAM _See also_: ! *Note RRSPACING::  File: gfortran.info, Node: SPREAD, Next: SQRT, Prev: SPACING, Up: Intrinsic Procedures *************** _Example_: *** 10470,10476 **** END PROGRAM _See also_: ! *note UNPACK::  File: gfortran.info, Node: SQRT, Next: SRAND, Prev: SPREAD, Up: Intrinsic Procedures --- 10467,10473 ---- END PROGRAM _See also_: ! *Note UNPACK::  File: gfortran.info, Node: SQRT, Next: SRAND, Prev: SPREAD, Up: Intrinsic Procedures *************** _Notes_: *** 10553,10559 **** hand) access two independent pseudo-random number generators. _See also_: ! *note RAND::, *note RANDOM_SEED::, *note RANDOM_NUMBER::  --- 10550,10556 ---- hand) access two independent pseudo-random number generators. _See also_: ! *Note RAND::, *Note RANDOM_SEED::, *Note RANDOM_NUMBER::  *************** _Example_: *** 10632,10638 **** END PROGRAM _See also_: ! To stat an open file: *note FSTAT::, to stat a link: *note LSTAT::  File: gfortran.info, Node: SUM, Next: SYMLNK, Prev: STAT, Up: Intrinsic Procedures --- 10629,10635 ---- END PROGRAM _See also_: ! To stat an open file: *Note FSTAT::, to stat a link: *Note LSTAT::  File: gfortran.info, Node: SUM, Next: SYMLNK, Prev: STAT, Up: Intrinsic Procedures *************** _Example_: *** 10679,10685 **** END PROGRAM _See also_: ! *note PRODUCT::  File: gfortran.info, Node: SYMLNK, Next: SYSTEM, Prev: SUM, Up: Intrinsic Procedures --- 10676,10682 ---- END PROGRAM _See also_: ! *Note PRODUCT::  File: gfortran.info, Node: SYMLNK, Next: SYSTEM, Prev: SUM, Up: Intrinsic Procedures *************** _Arguments_: *** 10714,10720 **** STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *note LINK::, *note UNLINK::  --- 10711,10717 ---- STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *Note LINK::, *Note UNLINK::  *************** _Example_: *** 10791,10797 **** END PROGRAM _See also_: ! *note DATE_AND_TIME::, *note CPU_TIME::  File: gfortran.info, Node: TAN, Next: TANH, Prev: SYSTEM_CLOCK, Up: Intrinsic Procedures --- 10788,10794 ---- END PROGRAM _See also_: ! *Note DATE_AND_TIME::, *Note CPU_TIME::  File: gfortran.info, Node: TAN, Next: TANH, Prev: SYSTEM_CLOCK, Up: Intrinsic Procedures *************** _Specific names_: *** 10829,10835 **** `DTAN(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *note ATAN::  File: gfortran.info, Node: TANH, Next: TIME, Prev: TAN, Up: Intrinsic Procedures --- 10826,10832 ---- `DTAN(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *Note ATAN::  File: gfortran.info, Node: TANH, Next: TIME, Prev: TAN, Up: Intrinsic Procedures *************** _Specific names_: *** 10867,10873 **** `DTANH(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *note ATANH::  File: gfortran.info, Node: TIME, Next: TIME8, Prev: TANH, Up: Intrinsic Procedures --- 10864,10870 ---- `DTANH(X)' `REAL(8) X' `REAL(8)' F95 and later _See also_: ! *Note ATANH::  File: gfortran.info, Node: TIME, Next: TIME8, Prev: TANH, Up: Intrinsic Procedures *************** _Description_: *** 10886,10892 **** become, negative, or numerically less than previous values, during a single run of the compiled program. ! See *note TIME8::, for information on a similar intrinsic that might be portable to more GNU Fortran implementations, though to fewer Fortran compilers. --- 10883,10889 ---- become, negative, or numerically less than previous values, during a single run of the compiled program. ! See *Note TIME8::, for information on a similar intrinsic that might be portable to more GNU Fortran implementations, though to fewer Fortran compilers. *************** _Return value_: *** 10903,10910 **** The return value is a scalar of type `INTEGER(4)'. _See also_: ! *note CTIME::, *note GMTIME::, *note LTIME::, *note MCLOCK::, ! *note TIME8::  --- 10900,10907 ---- The return value is a scalar of type `INTEGER(4)'. _See also_: ! *Note CTIME::, *Note GMTIME::, *Note LTIME::, *Note MCLOCK::, ! *Note TIME8::  *************** _Return value_: *** 10939,10946 **** The return value is a scalar of type `INTEGER(8)'. _See also_: ! *note CTIME::, *note GMTIME::, *note LTIME::, *note MCLOCK8::, ! *note TIME::  --- 10936,10943 ---- The return value is a scalar of type `INTEGER(8)'. _See also_: ! *Note CTIME::, *Note GMTIME::, *Note LTIME::, *Note MCLOCK8::, ! *Note TIME::  *************** _Example_: *** 11084,11090 **** END PROGRAM _See also_: ! *note ADJUSTL::, *note ADJUSTR::  File: gfortran.info, Node: TTYNAM, Next: UBOUND, Prev: TRIM, Up: Intrinsic Procedures --- 11081,11087 ---- END PROGRAM _See also_: ! *Note ADJUSTL::, *Note ADJUSTR::  File: gfortran.info, Node: TTYNAM, Next: UBOUND, Prev: TRIM, Up: Intrinsic Procedures *************** _Example_: *** 11122,11128 **** END PROGRAM _See also_: ! *note ISATTY::  File: gfortran.info, Node: UBOUND, Next: UMASK, Prev: TTYNAM, Up: Intrinsic Procedures --- 11119,11125 ---- END PROGRAM _See also_: ! *Note ISATTY::  File: gfortran.info, Node: UBOUND, Next: UMASK, Prev: TTYNAM, Up: Intrinsic Procedures *************** _Return value_: *** 11162,11168 **** dimension. _See also_: ! *note LBOUND::  File: gfortran.info, Node: UMASK, Next: UNLINK, Prev: UBOUND, Up: Intrinsic Procedures --- 11159,11165 ---- dimension. _See also_: ! *Note LBOUND::  File: gfortran.info, Node: UMASK, Next: UNLINK, Prev: UBOUND, Up: Intrinsic Procedures *************** _Arguments_: *** 11220,11226 **** STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *note LINK::, *note SYMLNK::  File: gfortran.info, Node: UNPACK, Next: VERIFY, Prev: UNLINK, Up: Intrinsic Procedures --- 11217,11223 ---- STATUS (Optional) Shall be of default `INTEGER' type. _See also_: ! *Note LINK::, *Note SYMLNK::  File: gfortran.info, Node: UNPACK, Next: VERIFY, Prev: UNLINK, Up: Intrinsic Procedures *************** _Example_: *** 11263,11269 **** END PROGRAM _See also_: ! *note PACK::, *note SPREAD::  File: gfortran.info, Node: VERIFY, Next: XOR, Prev: UNPACK, Up: Intrinsic Procedures --- 11260,11266 ---- END PROGRAM _See also_: ! *Note PACK::, *Note SPREAD::  File: gfortran.info, Node: VERIFY, Next: XOR, Prev: UNPACK, Up: Intrinsic Procedures *************** _Example_: *** 11310,11316 **** END PROGRAM _See also_: ! *note SCAN::, *note INDEX intrinsic::  File: gfortran.info, Node: XOR, Prev: VERIFY, Up: Intrinsic Procedures --- 11307,11313 ---- END PROGRAM _See also_: ! *Note SCAN::, *Note INDEX intrinsic::  File: gfortran.info, Node: XOR, Prev: VERIFY, Up: Intrinsic Procedures *************** _Description_: *** 11323,11329 **** This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *note IEOR:: intrinsic defined by the Fortran standard. _Standard_: --- 11320,11326 ---- This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider ! the use of the *Note IEOR:: intrinsic defined by the Fortran standard. _Standard_: *************** _Example_: *** 11356,11362 **** END PROGRAM _See also_: ! F95 elemental function: *note IEOR::  File: gfortran.info, Node: Intrinsic Modules, Next: Contributing, Prev: Intrinsic Procedures, Up: Top --- 11353,11359 ---- END PROGRAM _See also_: ! F95 elemental function: *Note IEOR::  File: gfortran.info, Node: Intrinsic Modules, Next: Contributing, Prev: Intrinsic Procedures, Up: Top *************** _Standard_: *** 11482,11488 **** The OpenMP Fortran runtime library routines are provided both in a form of two Fortran 90 modules, named `OMP_LIB' and `OMP_LIB_KINDS', and in a form of a Fortran `include' file named `omp_lib.h'. The ! procedures provided by `OMP_LIB' can be found in the *note Introduction: (libgomp)Top. manual, the named constants defined in the `OMP_LIB_KINDS' module are listed below. --- 11479,11485 ---- The OpenMP Fortran runtime library routines are provided both in a form of two Fortran 90 modules, named `OMP_LIB' and `OMP_LIB_KINDS', and in a form of a Fortran `include' file named `omp_lib.h'. The ! procedures provided by `OMP_LIB' can be found in the *Note Introduction: (libgomp)Top. manual, the named constants defined in the `OMP_LIB_KINDS' module are listed below. *************** Keyword Index *** 13936,14226 ****  Tag Table: ! Node: Top2062 ! Node: Introduction3279 ! Node: About GNU Fortran4024 ! Node: GNU Fortran and GCC8082 ! Node: Preprocessing and conditional compilation10172 ! Node: GNU Fortran and G7711613 ! Node: Project Status12186 ! Node: Standards14684 ! Node: Invoking GNU Fortran15341 ! Node: Option Summary17001 ! Node: Fortran Dialect Options19895 ! Node: Error and Warning Options25638 ! Node: Debugging Options31803 ! Node: Directory Options33969 ! Node: Link Options35496 ! Node: Runtime Options36120 ! Node: Code Gen Options37823 ! Node: Environment Variables48390 ! Node: Runtime48993 ! Node: GFORTRAN_STDIN_UNIT50212 ! Node: GFORTRAN_STDOUT_UNIT50579 ! Node: GFORTRAN_STDERR_UNIT50980 ! Node: GFORTRAN_USE_STDERR51378 ! Node: GFORTRAN_TMPDIR51823 ! Node: GFORTRAN_UNBUFFERED_ALL52264 ! Node: GFORTRAN_UNBUFFERED_PRECONNECTED52787 ! Node: GFORTRAN_SHOW_LOCUS53428 ! Node: GFORTRAN_OPTIONAL_PLUS53922 ! Node: GFORTRAN_DEFAULT_RECL54397 ! Node: GFORTRAN_LIST_SEPARATOR54888 ! Node: GFORTRAN_CONVERT_UNIT55497 ! Node: GFORTRAN_ERROR_DUMPCORE58372 ! Node: GFORTRAN_ERROR_BACKTRACE58919 ! Node: Fortran 2003 status59470 ! Node: Extensions61139 ! Node: Extensions implemented in GNU Fortran61733 ! Node: Old-style kind specifications63053 ! Node: Old-style variable initialization63918 ! Node: Extensions to namelist65230 ! Node: X format descriptor without count field67226 ! Node: Commas in FORMAT specifications67753 ! Node: Missing period in FORMAT specifications68270 ! Node: I/O item lists68832 ! Node: BOZ literal constants69221 ! Node: Real array indices71790 ! Node: Unary operators72087 ! Node: Implicitly convert LOGICAL and INTEGER values72501 ! Node: Hollerith constants support73461 ! Node: Cray pointers75233 ! Node: CONVERT specifier80643 ! Node: OpenMP82645 ! Node: Argument list functions84899 ! Node: Extensions not implemented in GNU Fortran86493 ! Node: STRUCTURE and RECORD87344 ! Node: ENCODE and DECODE statements89401 ! Node: Intrinsic Procedures90719 ! Node: Introduction to Intrinsics104011 ! Node: ABORT106324 ! Node: ABS107027 ! Node: ACCESS108519 ! Node: ACHAR110408 ! Node: ACOS111348 ! Node: ACOSH112278 ! Node: ADJUSTL113251 ! Node: ADJUSTR114145 ! Node: AIMAG115045 ! Node: AINT116455 ! Node: ALARM117900 ! Node: ALL119534 ! Node: ALLOCATED121451 ! Node: AND122317 ! Node: ANINT123479 ! Node: ANY124817 ! Node: ASIN126746 ! Node: ASINH127691 ! Node: ASSOCIATED128644 ! Node: ATAN131469 ! Node: ATAN2132303 ! Node: ATANH133582 ! Node: BESJ0134564 ! Node: BESJ1135478 ! Node: BESJN136398 ! Node: BESY0137489 ! Node: BESY1138347 ! Node: BESYN139205 ! Node: BIT_SIZE140350 ! Node: BTEST141099 ! Node: C_ASSOCIATED141947 ! Node: C_FUNLOC143134 ! Node: C_F_PROCPOINTER144496 ! Node: C_F_POINTER146133 ! Node: C_LOC147616 ! Node: CEILING148735 ! Node: CHAR149696 ! Node: CHDIR150783 ! Node: CHMOD152003 ! Node: CMPLX153766 ! Node: COMMAND_ARGUMENT_COUNT155305 ! Node: COMPLEX156195 ! Node: CONJG157350 ! Node: COS158359 ! Node: COSH159572 ! Node: COUNT160390 ! Node: CPU_TIME162217 ! Node: CSHIFT163570 ! Node: CTIME165219 ! Node: DATE_AND_TIME166442 ! Node: DBLE168805 ! Node: DCMPLX169645 ! Node: DFLOAT170884 ! Node: DIGITS171581 ! Node: DIM172525 ! Node: DOT_PRODUCT173661 ! Node: DPROD175091 ! Node: DREAL175810 ! Node: DTIME176474 ! Node: EOSHIFT179280 ! Node: EPSILON181345 ! Node: ERF182041 ! Node: ERFC182838 ! Node: ETIME183653 ! Node: EXIT185877 ! Node: EXP186736 ! Node: EXPONENT187833 ! Node: FDATE188579 ! Node: FLOAT189799 ! Node: FGET190509 ! Node: FGETC192302 ! Node: FLOOR194050 ! Node: FLUSH194992 ! Node: FNUM195630 ! Node: FPUT196352 ! Node: FPUTC197933 ! Node: FRACTION199653 ! Node: FREE200547 ! Node: FSEEK201384 ! Node: FSTAT203678 ! Node: FTELL204742 ! Node: GAMMA205720 ! Node: GERROR206749 ! Node: GETARG207457 ! Node: GET_COMMAND209132 ! Node: GET_COMMAND_ARGUMENT210012 ! Node: GETCWD211408 ! Node: GETENV212345 ! Node: GET_ENVIRONMENT_VARIABLE213509 ! Node: GETGID214443 ! Node: GETLOG214978 ! Node: GETPID215807 ! Node: GETUID216535 ! Node: GMTIME217049 ! Node: HOSTNM218604 ! Node: HUGE219541 ! Node: IACHAR220254 ! Node: IAND221402 ! Node: IARGC222390 ! Node: IBCLR223406 ! Node: IBITS224069 ! Node: IBSET224989 ! Node: ICHAR225647 ! Node: IDATE227600 ! Node: IEOR228618 ! Node: IERRNO229497 ! Node: INDEX intrinsic230052 ! Node: INT231378 ! Node: INT2232902 ! Node: INT8233682 ! Node: IOR234409 ! Node: IRAND235262 ! Node: IS_IOSTAT_END236617 ! Node: IS_IOSTAT_EOR237703 ! Node: ISATTY238819 ! Node: ISHFT239606 ! Node: ISHFTC240588 ! Node: ISNAN241809 ! Node: ITIME242557 ! Node: KILL243573 ! Node: KIND244488 ! Node: LBOUND245326 ! Node: LEN246610 ! Node: LEN_TRIM247676 ! Node: LGAMMA248635 ! Node: LGE249697 ! Node: LGT251000 ! Node: LINK252270 ! Node: LLE253305 ! Node: LLT254602 ! Node: LNBLNK255865 ! Node: LOC256644 ! Node: LOG257375 ! Node: LOG10258577 ! Node: LOGICAL259443 ! Node: LONG260270 ! Node: LSHIFT261041 ! Node: LSTAT262004 ! Node: LTIME263165 ! Node: MALLOC264644 ! Node: MATMUL266308 ! Node: MAX267495 ! Node: MAXEXPONENT269008 ! Node: MAXLOC269817 ! Node: MAXVAL271950 ! Node: MCLOCK273742 ! Node: MCLOCK8274745 ! Node: MERGE275959 ! Node: MIN276720 ! Node: MINEXPONENT278230 ! Node: MINLOC278853 ! Node: MINVAL280986 ! Node: MOD282752 ! Node: MODULO284129 ! Node: MOVE_ALLOC285336 ! Node: MVBITS286394 ! Node: NEAREST287477 ! Node: NEW_LINE288593 ! Node: NINT289378 ! Node: NOT290398 ! Node: NULL290980 ! Node: OR291864 ! Node: PACK293007 ! Node: PERROR294992 ! Node: PRECISION295582 ! Node: PRESENT296401 ! Node: PRODUCT297500 ! Node: RADIX299027 ! Node: RAN299797 ! Node: RAND300253 ! Node: RANDOM_NUMBER301588 ! Node: RANDOM_SEED303318 ! Node: RANGE305194 ! Node: REAL305814 ! Node: RENAME307315 ! Node: REPEAT308334 ! Node: RESHAPE309059 ! Node: RRSPACING310521 ! Node: RSHIFT311207 ! Node: SCALE312178 ! Node: SCAN312945 ! Node: SECNDS314474 ! Node: SECOND315562 ! Node: SELECTED_INT_KIND316437 ! Node: SELECTED_REAL_KIND317593 ! Node: SET_EXPONENT319532 ! Node: SHAPE320521 ! Node: SIGN321627 ! Node: SIGNAL322703 ! Node: SIN324200 ! Node: SINH325241 ! Node: SIZE325998 ! Node: SIZEOF327277 ! Node: SLEEP328536 ! Node: SNGL329093 ! Node: SPACING329757 ! Node: SPREAD330765 ! Node: SQRT331903 ! Node: SRAND333087 ! Node: STAT334246 ! Node: SUM337361 ! Node: SYMLNK338832 ! Node: SYSTEM339964 ! Node: SYSTEM_CLOCK340912 ! Node: TAN342249 ! Node: TANH343030 ! Node: TIME343842 ! Node: TIME8344946 ! Node: TINY346083 ! Node: TRANSFER346678 ! Node: TRANSPOSE348703 ! Node: TRIM349387 ! Node: TTYNAM350243 ! Node: UBOUND351164 ! Node: UMASK352505 ! Node: UNLINK353093 ! Node: UNPACK354070 ! Node: VERIFY355350 ! Node: XOR357047 ! Node: Intrinsic Modules358219 ! Node: Contributing363045 ! Node: Contributors363897 ! Node: Projects365520 ! Node: Proposed Extensions366323 ! Node: Copying368374 ! Node: GNU Free Documentation License405938 ! Node: Funding428350 ! Node: Option Index430875 ! Node: Keyword Index438476  End Tag Table --- 13933,14223 ----  Tag Table: ! Node: Top2077 ! Node: Introduction3294 ! Node: About GNU Fortran4039 ! Node: GNU Fortran and GCC8097 ! Node: Preprocessing and conditional compilation10187 ! Node: GNU Fortran and G7711628 ! Node: Project Status12201 ! Node: Standards14699 ! Node: Invoking GNU Fortran15356 ! Node: Option Summary17016 ! Node: Fortran Dialect Options19910 ! Node: Error and Warning Options25653 ! Node: Debugging Options31818 ! Node: Directory Options33984 ! Node: Link Options35511 ! Node: Runtime Options36135 ! Node: Code Gen Options37838 ! Node: Environment Variables48405 ! Node: Runtime49008 ! Node: GFORTRAN_STDIN_UNIT50227 ! Node: GFORTRAN_STDOUT_UNIT50594 ! Node: GFORTRAN_STDERR_UNIT50995 ! Node: GFORTRAN_USE_STDERR51393 ! Node: GFORTRAN_TMPDIR51838 ! Node: GFORTRAN_UNBUFFERED_ALL52279 ! Node: GFORTRAN_UNBUFFERED_PRECONNECTED52802 ! Node: GFORTRAN_SHOW_LOCUS53443 ! Node: GFORTRAN_OPTIONAL_PLUS53937 ! Node: GFORTRAN_DEFAULT_RECL54412 ! Node: GFORTRAN_LIST_SEPARATOR54903 ! Node: GFORTRAN_CONVERT_UNIT55512 ! Node: GFORTRAN_ERROR_DUMPCORE58387 ! Node: GFORTRAN_ERROR_BACKTRACE58934 ! Node: Fortran 2003 status59485 ! Node: Extensions61154 ! Node: Extensions implemented in GNU Fortran61748 ! Node: Old-style kind specifications63068 ! Node: Old-style variable initialization63933 ! Node: Extensions to namelist65245 ! Node: X format descriptor without count field67241 ! Node: Commas in FORMAT specifications67768 ! Node: Missing period in FORMAT specifications68285 ! Node: I/O item lists68847 ! Node: BOZ literal constants69236 ! Node: Real array indices71805 ! Node: Unary operators72102 ! Node: Implicitly convert LOGICAL and INTEGER values72516 ! Node: Hollerith constants support73476 ! Node: Cray pointers75248 ! Node: CONVERT specifier80658 ! Node: OpenMP82660 ! Node: Argument list functions84914 ! Node: Extensions not implemented in GNU Fortran86508 ! Node: STRUCTURE and RECORD87359 ! Node: ENCODE and DECODE statements89416 ! Node: Intrinsic Procedures90734 ! Node: Introduction to Intrinsics104026 ! Node: ABORT106339 ! Node: ABS107042 ! Node: ACCESS108534 ! Node: ACHAR110423 ! Node: ACOS111363 ! Node: ACOSH112293 ! Node: ADJUSTL113266 ! Node: ADJUSTR114160 ! Node: AIMAG115060 ! Node: AINT116470 ! Node: ALARM117915 ! Node: ALL119549 ! Node: ALLOCATED121466 ! Node: AND122332 ! Node: ANINT123494 ! Node: ANY124832 ! Node: ASIN126761 ! Node: ASINH127706 ! Node: ASSOCIATED128659 ! Node: ATAN131484 ! Node: ATAN2132318 ! Node: ATANH133597 ! Node: BESJ0134579 ! Node: BESJ1135493 ! Node: BESJN136413 ! Node: BESY0137504 ! Node: BESY1138362 ! Node: BESYN139220 ! Node: BIT_SIZE140365 ! Node: BTEST141114 ! Node: C_ASSOCIATED141962 ! Node: C_FUNLOC143149 ! Node: C_F_PROCPOINTER144511 ! Node: C_F_POINTER146142 ! Node: C_LOC147622 ! Node: CEILING148741 ! Node: CHAR149702 ! Node: CHDIR150789 ! Node: CHMOD152009 ! Node: CMPLX153772 ! Node: COMMAND_ARGUMENT_COUNT155311 ! Node: COMPLEX156201 ! Node: CONJG157356 ! Node: COS158365 ! Node: COSH159578 ! Node: COUNT160396 ! Node: CPU_TIME162223 ! Node: CSHIFT163576 ! Node: CTIME165225 ! Node: DATE_AND_TIME166448 ! Node: DBLE168811 ! Node: DCMPLX169651 ! Node: DFLOAT170890 ! Node: DIGITS171587 ! Node: DIM172531 ! Node: DOT_PRODUCT173667 ! Node: DPROD175097 ! Node: DREAL175816 ! Node: DTIME176480 ! Node: EOSHIFT179286 ! Node: EPSILON181351 ! Node: ERF182047 ! Node: ERFC182844 ! Node: ETIME183659 ! Node: EXIT185883 ! Node: EXP186742 ! Node: EXPONENT187839 ! Node: FDATE188585 ! Node: FLOAT189805 ! Node: FGET190515 ! Node: FGETC192308 ! Node: FLOOR194056 ! Node: FLUSH194998 ! Node: FNUM195636 ! Node: FPUT196358 ! Node: FPUTC197939 ! Node: FRACTION199659 ! Node: FREE200553 ! Node: FSEEK201390 ! Node: FSTAT203684 ! Node: FTELL204748 ! Node: GAMMA205726 ! Node: GERROR206755 ! Node: GETARG207463 ! Node: GET_COMMAND209138 ! Node: GET_COMMAND_ARGUMENT210018 ! Node: GETCWD211414 ! Node: GETENV212351 ! Node: GET_ENVIRONMENT_VARIABLE213515 ! Node: GETGID214449 ! Node: GETLOG214984 ! Node: GETPID215813 ! Node: GETUID216541 ! Node: GMTIME217055 ! Node: HOSTNM218610 ! Node: HUGE219548 ! Node: IACHAR220261 ! Node: IAND221409 ! Node: IARGC222397 ! Node: IBCLR223413 ! Node: IBITS224076 ! Node: IBSET224996 ! Node: ICHAR225654 ! Node: IDATE227607 ! Node: IEOR228625 ! Node: IERRNO229504 ! Node: INDEX intrinsic230059 ! Node: INT231385 ! Node: INT2232909 ! Node: INT8233689 ! Node: IOR234416 ! Node: IRAND235269 ! Node: IS_IOSTAT_END236624 ! Node: IS_IOSTAT_EOR237710 ! Node: ISATTY238826 ! Node: ISHFT239613 ! Node: ISHFTC240595 ! Node: ISNAN241816 ! Node: ITIME242564 ! Node: KILL243580 ! Node: KIND244495 ! Node: LBOUND245333 ! Node: LEN246617 ! Node: LEN_TRIM247683 ! Node: LGAMMA248642 ! Node: LGE249704 ! Node: LGT251007 ! Node: LINK252277 ! Node: LLE253312 ! Node: LLT254609 ! Node: LNBLNK255872 ! Node: LOC256651 ! Node: LOG257382 ! Node: LOG10258584 ! Node: LOGICAL259450 ! Node: LONG260277 ! Node: LSHIFT261048 ! Node: LSTAT262011 ! Node: LTIME263172 ! Node: MALLOC264651 ! Node: MATMUL266315 ! Node: MAX267504 ! Node: MAXEXPONENT269009 ! Node: MAXLOC269818 ! Node: MAXVAL271951 ! Node: MCLOCK273743 ! Node: MCLOCK8274746 ! Node: MERGE275960 ! Node: MIN276721 ! Node: MINEXPONENT278223 ! Node: MINLOC278846 ! Node: MINVAL280979 ! Node: MOD282745 ! Node: MODULO284122 ! Node: MOVE_ALLOC285329 ! Node: MVBITS286387 ! Node: NEAREST287470 ! Node: NEW_LINE288586 ! Node: NINT289371 ! Node: NOT290391 ! Node: NULL290973 ! Node: OR291857 ! Node: PACK293000 ! Node: PERROR294985 ! Node: PRECISION295575 ! Node: PRESENT296394 ! Node: PRODUCT297493 ! Node: RADIX299020 ! Node: RAN299790 ! Node: RAND300246 ! Node: RANDOM_NUMBER301581 ! Node: RANDOM_SEED303311 ! Node: RANGE305187 ! Node: REAL305807 ! Node: RENAME307308 ! Node: REPEAT308327 ! Node: RESHAPE309052 ! Node: RRSPACING310514 ! Node: RSHIFT311200 ! Node: SCALE312171 ! Node: SCAN312938 ! Node: SECNDS314467 ! Node: SECOND315555 ! Node: SELECTED_INT_KIND316430 ! Node: SELECTED_REAL_KIND317586 ! Node: SET_EXPONENT319525 ! Node: SHAPE320514 ! Node: SIGN321620 ! Node: SIGNAL322696 ! Node: SIN324193 ! Node: SINH325234 ! Node: SIZE325991 ! Node: SIZEOF327270 ! Node: SLEEP328529 ! Node: SNGL329086 ! Node: SPACING329750 ! Node: SPREAD330758 ! Node: SQRT331896 ! Node: SRAND333080 ! Node: STAT334239 ! Node: SUM337354 ! Node: SYMLNK338825 ! Node: SYSTEM339957 ! Node: SYSTEM_CLOCK340905 ! Node: TAN342242 ! Node: TANH343023 ! Node: TIME343835 ! Node: TIME8344939 ! Node: TINY346076 ! Node: TRANSFER346671 ! Node: TRANSPOSE348696 ! Node: TRIM349380 ! Node: TTYNAM350236 ! Node: UBOUND351157 ! Node: UMASK352498 ! Node: UNLINK353086 ! Node: UNPACK354063 ! Node: VERIFY355343 ! Node: XOR357040 ! Node: Intrinsic Modules358212 ! Node: Contributing363038 ! Node: Contributors363890 ! Node: Projects365513 ! Node: Proposed Extensions366316 ! Node: Copying368367 ! Node: GNU Free Documentation License405931 ! Node: Funding428343 ! Node: Option Index430868 ! Node: Keyword Index438469  End Tag Table diff -Nrcpad gcc-4.3.1/gcc/fortran/resolve.c gcc-4.3.2/gcc/fortran/resolve.c *** gcc-4.3.1/gcc/fortran/resolve.c Sun Mar 30 14:23:10 2008 --- gcc-4.3.2/gcc/fortran/resolve.c Sat Jul 19 18:34:21 2008 *************** resolve_fl_procedure (gfc_symbol *sym, i *** 7467,7479 **** } /* Resolve the components of a derived type. */ static try resolve_fl_derived (gfc_symbol *sym) { gfc_component *c; - gfc_dt_list * dt_list; int i; for (c = sym->components; c != NULL; c = c->next) --- 7467,7499 ---- } + /* Add a derived type to the dt_list. The dt_list is used in trans-types.c + to give all identical derived types the same backend_decl. */ + static void + add_dt_to_dt_list (gfc_symbol *derived) + { + gfc_dt_list *dt_list; + + for (dt_list = gfc_derived_types; dt_list; dt_list = dt_list->next) + if (derived == dt_list->derived) + break; + + if (dt_list == NULL) + { + dt_list = gfc_get_dt_list (); + dt_list->next = gfc_derived_types; + dt_list->derived = derived; + gfc_derived_types = dt_list; + } + } + + /* Resolve the components of a derived type. */ static try resolve_fl_derived (gfc_symbol *sym) { gfc_component *c; int i; for (c = sym->components; c != NULL; c = c->next) *************** resolve_fl_derived (gfc_symbol *sym) *** 7525,7538 **** return FAILURE; } if (c->pointer || c->allocatable || c->as == NULL) continue; for (i = 0; i < c->as->rank; i++) { if (c->as->lower[i] == NULL - || !gfc_is_constant_expr (c->as->lower[i]) || (resolve_index_expr (c->as->lower[i]) == FAILURE) || c->as->upper[i] == NULL || (resolve_index_expr (c->as->upper[i]) == FAILURE) || !gfc_is_constant_expr (c->as->upper[i])) --- 7545,7568 ---- return FAILURE; } + /* Ensure that all the derived type components are put on the + derived type list; even in formal namespaces, where derived type + pointer components might not have been declared. */ + if (c->ts.type == BT_DERIVED + && c->ts.derived + && c->ts.derived->components + && c->pointer + && sym != c->ts.derived) + add_dt_to_dt_list (c->ts.derived); + if (c->pointer || c->allocatable || c->as == NULL) continue; for (i = 0; i < c->as->rank; i++) { if (c->as->lower[i] == NULL || (resolve_index_expr (c->as->lower[i]) == FAILURE) + || !gfc_is_constant_expr (c->as->lower[i]) || c->as->upper[i] == NULL || (resolve_index_expr (c->as->upper[i]) == FAILURE) || !gfc_is_constant_expr (c->as->upper[i])) *************** resolve_fl_derived (gfc_symbol *sym) *** 7546,7562 **** } /* Add derived type to the derived type list. */ ! for (dt_list = gfc_derived_types; dt_list; dt_list = dt_list->next) ! if (sym == dt_list->derived) ! break; ! ! if (dt_list == NULL) ! { ! dt_list = gfc_get_dt_list (); ! dt_list->next = gfc_derived_types; ! dt_list->derived = sym; ! gfc_derived_types = dt_list; ! } return SUCCESS; } --- 7576,7582 ---- } /* Add derived type to the derived type list. */ ! add_dt_to_dt_list (sym); return SUCCESS; } diff -Nrcpad gcc-4.3.1/gcc/fortran/scanner.c gcc-4.3.2/gcc/fortran/scanner.c *** gcc-4.3.1/gcc/fortran/scanner.c Tue Jan 22 07:33:46 2008 --- gcc-4.3.2/gcc/fortran/scanner.c Sat Jun 21 15:29:44 2008 *************** preprocessor_line (char *c) *** 1423,1429 **** if (strcmp (current_file->filename, filename) != 0) { ! gfc_free (current_file->filename); current_file->filename = gfc_getmem (strlen (filename) + 1); strcpy (current_file->filename, filename); } --- 1423,1431 ---- if (strcmp (current_file->filename, filename) != 0) { ! /* FIXME: we leak the old filename because a pointer to it may be stored ! in the linemap. Alternative could be using GC or updating linemap to ! point to the new name, but there is no API for that currently. */ current_file->filename = gfc_getmem (strlen (filename) + 1); strcpy (current_file->filename, filename); } diff -Nrcpad gcc-4.3.1/gcc/fortran/trans-array.c gcc-4.3.2/gcc/fortran/trans-array.c *** gcc-4.3.1/gcc/fortran/trans-array.c Sun May 18 00:32:22 2008 --- gcc-4.3.2/gcc/fortran/trans-array.c Sun Jul 27 11:41:35 2008 *************** gfc_conv_expr_descriptor (gfc_se * se, g *** 5064,5070 **** /* TODO: Optimize passing g77 arrays. */ void ! gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77) { tree ptr; tree desc; --- 5064,5071 ---- /* TODO: Optimize passing g77 arrays. */ void ! gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77, ! const gfc_symbol *fsym) { tree ptr; tree desc; *************** gfc_conv_array_parameter (gfc_se * se, g *** 5160,5165 **** --- 5161,5174 ---- desc = se->expr; /* Repack the array. */ ptr = build_call_expr (gfor_fndecl_in_pack, 1, desc); + + if (fsym && fsym->attr.optional && sym && sym->attr.optional) + { + tmp = gfc_conv_expr_present (sym); + ptr = build3 (COND_EXPR, TREE_TYPE (se->expr), tmp, ptr, + null_pointer_node); + } + ptr = gfc_evaluate_now (ptr, &se->pre); se->expr = ptr; *************** gfc_conv_array_parameter (gfc_se * se, g *** 5182,5187 **** --- 5191,5201 ---- tmp = gfc_conv_array_data (tmp); tmp = build2 (NE_EXPR, boolean_type_node, fold_convert (TREE_TYPE (tmp), ptr), tmp); + + if (fsym && fsym->attr.optional && sym && sym->attr.optional) + tmp = fold_build2 (TRUTH_AND_EXPR, boolean_type_node, + gfc_conv_expr_present (sym), tmp); + tmp = build3_v (COND_EXPR, tmp, stmt, build_empty_stmt ()); gfc_add_expr_to_block (&block, tmp); diff -Nrcpad gcc-4.3.1/gcc/fortran/trans-array.h gcc-4.3.2/gcc/fortran/trans-array.h *** gcc-4.3.1/gcc/fortran/trans-array.h Thu Jan 10 19:10:48 2008 --- gcc-4.3.2/gcc/fortran/trans-array.h Sun Jul 27 11:41:35 2008 *************** void gfc_conv_tmp_ref (gfc_se *); *** 104,110 **** /* Evaluate an array expression. */ void gfc_conv_expr_descriptor (gfc_se *, gfc_expr *, gfc_ss *); /* Convert an array for passing as an actual function parameter. */ ! void gfc_conv_array_parameter (gfc_se *, gfc_expr *, gfc_ss *, int); /* Evaluate and transpose a matrix expression. */ void gfc_conv_array_transpose (gfc_se *, gfc_expr *); --- 104,112 ---- /* Evaluate an array expression. */ void gfc_conv_expr_descriptor (gfc_se *, gfc_expr *, gfc_ss *); /* Convert an array for passing as an actual function parameter. */ ! void gfc_conv_array_parameter (gfc_se *, gfc_expr *, gfc_ss *, int, ! const gfc_symbol *); ! /* Evaluate and transpose a matrix expression. */ void gfc_conv_array_transpose (gfc_se *, gfc_expr *); diff -Nrcpad gcc-4.3.1/gcc/fortran/trans-expr.c gcc-4.3.2/gcc/fortran/trans-expr.c *** gcc-4.3.1/gcc/fortran/trans-expr.c Sat Mar 29 08:17:36 2008 --- gcc-4.3.2/gcc/fortran/trans-expr.c Sun Jul 27 11:41:35 2008 *************** gfc_conv_function_call (gfc_se * se, gfc *** 2259,2265 **** f = f || !sym->attr.always_explicit; argss = gfc_walk_expr (arg->expr); ! gfc_conv_array_parameter (se, arg->expr, argss, f); } /* TODO -- the following two lines shouldn't be necessary, but --- 2259,2265 ---- f = f || !sym->attr.always_explicit; argss = gfc_walk_expr (arg->expr); ! gfc_conv_array_parameter (se, arg->expr, argss, f, NULL); } /* TODO -- the following two lines shouldn't be necessary, but *************** gfc_conv_function_call (gfc_se * se, gfc *** 2466,2472 **** gfc_conv_subref_array_arg (&parmse, e, f, fsym ? fsym->attr.intent : INTENT_INOUT); else ! gfc_conv_array_parameter (&parmse, e, argss, f); /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is allocated on entry, it must be deallocated. */ --- 2466,2472 ---- gfc_conv_subref_array_arg (&parmse, e, f, fsym ? fsym->attr.intent : INTENT_INOUT); else ! gfc_conv_array_parameter (&parmse, e, argss, f, fsym); /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is allocated on entry, it must be deallocated. */ *************** gfc_trans_arrayfunc_assign (gfc_expr * e *** 3989,3995 **** gfc_start_block (&se.pre); se.want_pointer = 1; ! gfc_conv_array_parameter (&se, expr1, ss, 0); se.direct_byref = 1; se.ss = gfc_walk_expr (expr2); --- 3989,3995 ---- gfc_start_block (&se.pre); se.want_pointer = 1; ! gfc_conv_array_parameter (&se, expr1, ss, 0, NULL); se.direct_byref = 1; se.ss = gfc_walk_expr (expr2); diff -Nrcpad gcc-4.3.1/gcc/fortran/trans-intrinsic.c gcc-4.3.2/gcc/fortran/trans-intrinsic.c *** gcc-4.3.1/gcc/fortran/trans-intrinsic.c Sat Apr 26 15:33:27 2008 --- gcc-4.3.2/gcc/fortran/trans-intrinsic.c Sun Jul 27 11:41:35 2008 *************** gfc_conv_intrinsic_transfer (gfc_se * se *** 3263,3269 **** if (ss == gfc_ss_terminator) gfc_conv_expr_reference (&argse, arg->expr); else ! gfc_conv_array_parameter (&argse, arg->expr, ss, 1); gfc_add_block_to_block (&se->pre, &argse.pre); gfc_add_block_to_block (&se->post, &argse.post); ptr = argse.expr; --- 3263,3269 ---- if (ss == gfc_ss_terminator) gfc_conv_expr_reference (&argse, arg->expr); else ! gfc_conv_array_parameter (&argse, arg->expr, ss, 1, NULL); gfc_add_block_to_block (&se->pre, &argse.pre); gfc_add_block_to_block (&se->post, &argse.post); ptr = argse.expr; *************** gfc_conv_intrinsic_loc (gfc_se * se, gfc *** 3696,3702 **** if (ss == gfc_ss_terminator) gfc_conv_expr_reference (se, arg_expr); else ! gfc_conv_array_parameter (se, arg_expr, ss, 1); se->expr= convert (gfc_get_int_type (gfc_index_integer_kind), se->expr); /* Create a temporary variable for loc return value. Without this, --- 3696,3702 ---- if (ss == gfc_ss_terminator) gfc_conv_expr_reference (se, arg_expr); else ! gfc_conv_array_parameter (se, arg_expr, ss, 1, NULL); se->expr= convert (gfc_get_int_type (gfc_index_integer_kind), se->expr); /* Create a temporary variable for loc return value. Without this, diff -Nrcpad gcc-4.3.1/libgfortran/ChangeLog gcc-4.3.2/libgfortran/ChangeLog *** gcc-4.3.1/libgfortran/ChangeLog Fri Jun 6 14:27:15 2008 --- gcc-4.3.2/libgfortran/ChangeLog Wed Aug 27 18:03:44 2008 *************** *** 1,3 **** --- 1,32 ---- + 2008-08-27 Release Manager + + * GCC 4.3.2 released. + + 2008-07-26 Jerry DeLisle + + PR fortran/36582 + Backport from trunk. + * io/list_read.c: If variable rank is zero, do not adjust the found + namelist object pointer. + + 2008-07-01 Jerry DeLisle + + PR fortran/36538 + Backport from trunk. + * io/list_read.c (namelist_read): Add eat_separator to + eliminate leading tabs. + 2008-06-06 Release Manager * GCC 4.3.1 released. diff -Nrcpad gcc-4.3.1/libgfortran/io/list_read.c gcc-4.3.2/libgfortran/io/list_read.c *** gcc-4.3.1/libgfortran/io/list_read.c Wed Apr 9 09:03:34 2008 --- gcc-4.3.2/libgfortran/io/list_read.c Sat Jul 26 12:57:06 2008 *************** eat_separator (st_parameter_dt *dtp) *** 370,376 **** } } } ! while (c == '\n' || c == '\r' || c == ' '); unget_char (dtp, c); } break; --- 370,376 ---- } } } ! while (c == '\n' || c == '\r' || c == ' ' || c == '\t'); unget_char (dtp, c); } break; *************** read_character (st_parameter_dt *dtp, in *** 1086,1092 **** invalid. */ done: c = next_char (dtp); ! if (is_separator (c)) { unget_char (dtp, c); eat_separator (dtp); --- 1086,1092 ---- invalid. */ done: c = next_char (dtp); ! if (is_separator (c) || c == '!') { unget_char (dtp, c); eat_separator (dtp); *************** get_name: *** 2775,2781 **** if (nl->type == GFC_DTYPE_DERIVED) nml_touch_nodes (nl); ! if (component_flag) nl = first_nl; /* Make sure no extraneous qualifiers are there. */ --- 2775,2781 ---- if (nl->type == GFC_DTYPE_DERIVED) nml_touch_nodes (nl); ! if (component_flag && nl->var_rank > 0) nl = first_nl; /* Make sure no extraneous qualifiers are there. */ *************** find_nml_name: *** 2900,2911 **** /* A trailing space is required, we give a little lattitude here, 10.9.1. */ c = next_char (dtp); ! if (!is_separator(c)) { unget_char (dtp, c); goto find_nml_name; } /* Ready to read namelist objects. If there is an error in input from stdin, output the error message and continue. */ --- 2900,2914 ---- /* A trailing space is required, we give a little lattitude here, 10.9.1. */ c = next_char (dtp); ! if (!is_separator(c) && c != '!') { unget_char (dtp, c); goto find_nml_name; } + unget_char (dtp, c); + eat_separator (dtp); + /* Ready to read namelist objects. If there is an error in input from stdin, output the error message and continue. */