diff -Nrcpad gcc-4.2.0/gcc/fortran/ChangeLog gcc-4.2.1/gcc/fortran/ChangeLog *** gcc-4.2.0/gcc/fortran/ChangeLog Mon May 14 03:13:03 2007 --- gcc-4.2.1/gcc/fortran/ChangeLog Thu Jul 19 14:29:26 2007 *************** *** 1,3 **** --- 1,54 ---- + 2007-07-19 Release Manager + + * GCC 4.2.1 released. + + 2007-07-10 Brooks Moses + + Backport from trunk: + PR fortran/31823 + * intrinsic.texi (CMPLX): Document result kind. + (COMPLEX): Add documentation. + + 2007-06-20 Daniel Franke + + Backport from trunk: + PR fortran/32002 + * resolve.c (resolve_actual_arglist): Resolve actual argument after + being identified as variable. + + 2007-06-20 Paul Thomas + + PR fortran/32302 + * trans-common.c (build_common_decl): If resizing of common + decl is needed, update the TREE_TYPE. + + 2007-05-31 Paul Thomas + + PR fortran/31483 + * trans-expr.c (gfc_conv_function_call): Give a dummy + procedure the correct type if it has alternate returns. + + + PR fortran/31540 + * resolve.c (resolve_fl_procedure): Resolve constant character + lengths. + + PR fortran/31867 + PR fortran/31994 + * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored + offset for non-descriptor, source arrays and correct for stride + not equal to one before writing to field of output descriptor. + + 2007-05-17 Tobias Burnus + + * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation. + + 2007-05-16 Francois-Xavier Coudert + + PR fortran/31725 + * trans-expr.c (gfc_conv_substring): Evaluate substring bounds + only once. + 2007-05-13 Release Manager * GCC 4.2.0 released. diff -Nrcpad gcc-4.2.0/gcc/fortran/gfortran.info gcc-4.2.1/gcc/fortran/gfortran.info *** gcc-4.2.0/gcc/fortran/gfortran.info Mon May 14 04:05:37 2007 --- gcc-4.2.1/gcc/fortran/gfortran.info Thu Jul 19 15:23:54 2007 *************** *** 1,5 **** This is doc/gfortran.info, produced by makeinfo version 4.8 from ! /scratch/mitchell/gcc-releases/gcc-4.2.0/gcc-4.2.0/gcc/fortran/gfortran.texi. Copyright (C) 1999-2007 Free Software Foundation, Inc. --- 1,5 ---- This is doc/gfortran.info, produced by makeinfo version 4.8 from ! /scratch/mitchell/gcc-releases/gcc-4.2.1/gcc-4.2.1/gcc/fortran/gfortran.texi. Copyright (C) 1999-2007 Free Software Foundation, Inc. *************** File: gfortran.info, Node: GFORTRAN_CON *** 1086,1092 **** By setting the `GFORTRAN_CONVERT_UNIT' variable, it is possible to change the representation of data for unformatted files. The syntax for the `GFORTRAN_CONVERT_UNIT' variable is: ! GFORTRAN_CONVERT_UNIT: mode | mode ';' exception ; mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ; exception: mode ':' unit_list | unit_list ; unit_list: unit_spec | unit_list unit_spec ; --- 1086,1092 ---- By setting the `GFORTRAN_CONVERT_UNIT' variable, it is possible to change the representation of data for unformatted files. The syntax for the `GFORTRAN_CONVERT_UNIT' variable is: ! GFORTRAN_CONVERT_UNIT: mode | mode ';' exception | exception ; mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ; exception: mode ':' unit_list | unit_list ; unit_list: unit_spec | unit_list unit_spec ; *************** data representation for unformatted file *** 1137,1142 **** --- 1137,1147 ---- setting a default data representation for the whole program. The `CONVERT' specifier overrides the `-fconvert' compile options. + _Note that the values specified via the GFORTRAN_CONVERT_UNIT + environment variable will override the CONVERT specifier in the open + statement_. This is to give control over data formats to users who do + not have the source code of their program available. +  File: gfortran.info, Node: Fortran 2003 status, Next: Extensions, Prev: Runtime, Up: Top *************** File: gfortran.info, Node: Intrinsic Pr *** 1695,1700 **** --- 1700,1706 ---- * `CHMOD': CHMOD, Change access permissions of files * `CMPLX': CMPLX, Complex conversion function * `COMMAND_ARGUMENT_COUNT': COMMAND_ARGUMENT_COUNT, Get number of command line arguments + * `COMPLEX': COMPLEX, Complex conversion function * `CONJG': CONJG, Complex conjugate function * `COS': COS, Cosine function * `COSH': COSH, Hyperbolic cosine function *************** _Arguments_: *** 3411,3417 **** kind parameter of the result. _Return value_: ! The return value is of type `COMPLEX(*)' _Example_: program test_cmplx --- 3417,3425 ---- kind parameter of the result. _Return value_: ! The return value is of `COMPLEX' type, with a kind equal to KIND ! if it is specified. If KIND is not specified, the result is of ! the default `COMPLEX' kind, regardless of the kinds of X and Y. _Example_: program test_cmplx *************** _Example_: *** 3422,3429 **** print *, z, cmplx(x) end program test_cmplx  ! File: gfortran.info, Node: COMMAND_ARGUMENT_COUNT, Next: CONJG, Prev: CMPLX, Up: Intrinsic Procedures 6.37 `COMMAND_ARGUMENT_COUNT' -- Get number of command line arguments ===================================================================== --- 3430,3440 ---- print *, z, cmplx(x) end program test_cmplx + _See also_: + *Note COMPLEX:: +  ! File: gfortran.info, Node: COMMAND_ARGUMENT_COUNT, Next: COMPLEX, Prev: CMPLX, Up: Intrinsic Procedures 6.37 `COMMAND_ARGUMENT_COUNT' -- Get number of command line arguments ===================================================================== *************** _See also_: *** 3458,3466 **** *Note GET_COMMAND::, *Note GET_COMMAND_ARGUMENT::  ! File: gfortran.info, Node: CONJG, Next: COS, Prev: COMMAND_ARGUMENT_COUNT, Up: Intrinsic Procedures ! 6.38 `CONJG' -- Complex conjugate function ========================================== _Description_: --- 3469,3519 ---- *Note GET_COMMAND::, *Note GET_COMMAND_ARGUMENT::  ! File: gfortran.info, Node: COMPLEX, Next: CONJG, Prev: COMMAND_ARGUMENT_COUNT, Up: Intrinsic Procedures ! 6.38 `COMPLEX' -- Complex conversion function ! ============================================= ! ! _Description_: ! `COMPLEX(X, Y)' returns a complex number where X is converted to ! the real component and Y is converted to the imaginary component. ! ! _Standard_: ! GNU extension ! ! _Class_: ! Elemental function ! ! _Syntax_: ! `RESULT = COMPLEX(X, Y)' ! ! _Arguments_: ! X The type may be `INTEGER(*)' or `REAL(*)'. ! Y The type may be `INTEGER(*)' or `REAL(*)'. ! ! _Return value_: ! If X and Y are both of `INTEGER' type, then the return value is of ! default `COMPLEX' type. ! ! If X and Y are of `REAL' type, or one is of `REAL' type and one is ! of `INTEGER' type, then the return value is of `COMPLEX' type with ! a kind equal to that of the `REAL' argument with the highest ! precision. ! ! _Example_: ! program test_complex ! integer :: i = 42 ! real :: x = 3.14 ! print *, complex(i, x) ! end program test_complex ! ! _See also_: ! *Note CMPLX:: ! !  ! File: gfortran.info, Node: CONJG, Next: COS, Prev: COMPLEX, Up: Intrinsic Procedures ! ! 6.39 `CONJG' -- Complex conjugate function ========================================== _Description_: *************** _Specific names_: *** 3500,3506 ****  File: gfortran.info, Node: COS, Next: COSH, Prev: CONJG, Up: Intrinsic Procedures ! 6.39 `COS' -- Cosine function ============================= _Description_: --- 3553,3559 ----  File: gfortran.info, Node: COS, Next: COSH, Prev: CONJG, Up: Intrinsic Procedures ! 6.40 `COS' -- Cosine function ============================= _Description_: *************** _See also_: *** 3545,3551 ****  File: gfortran.info, Node: COSH, Next: COUNT, Prev: COS, Up: Intrinsic Procedures ! 6.40 `COSH' -- Hyperbolic cosine function ========================================= _Description_: --- 3598,3604 ----  File: gfortran.info, Node: COSH, Next: COUNT, Prev: COS, Up: Intrinsic Procedures ! 6.41 `COSH' -- Hyperbolic cosine function ========================================= _Description_: *************** _See also_: *** 3584,3590 ****  File: gfortran.info, Node: COUNT, Next: CPU_TIME, Prev: COSH, Up: Intrinsic Procedures ! 6.41 `COUNT' -- Count function ============================== _Description_: --- 3637,3643 ----  File: gfortran.info, Node: COUNT, Next: CPU_TIME, Prev: COSH, Up: Intrinsic Procedures ! 6.42 `COUNT' -- Count function ============================== _Description_: *************** _Example_: *** 3636,3642 ****  File: gfortran.info, Node: CPU_TIME, Next: CSHIFT, Prev: COUNT, Up: Intrinsic Procedures ! 6.42 `CPU_TIME' -- CPU elapsed time in seconds ============================================== _Description_: --- 3689,3695 ----  File: gfortran.info, Node: CPU_TIME, Next: CSHIFT, Prev: COUNT, Up: Intrinsic Procedures ! 6.43 `CPU_TIME' -- CPU elapsed time in seconds ============================================== _Description_: *************** _See also_: *** 3674,3680 ****  File: gfortran.info, Node: CSHIFT, Next: CTIME, Prev: CPU_TIME, Up: Intrinsic Procedures ! 6.43 `CSHIFT' -- Circular shift elements of an array ==================================================== _Description_: --- 3727,3733 ----  File: gfortran.info, Node: CSHIFT, Next: CTIME, Prev: CPU_TIME, Up: Intrinsic Procedures ! 6.44 `CSHIFT' -- Circular shift elements of an array ==================================================== _Description_: *************** _Example_: *** 3722,3728 ****  File: gfortran.info, Node: CTIME, Next: DATE_AND_TIME, Prev: CSHIFT, Up: Intrinsic Procedures ! 6.44 `CTIME' -- Convert a time into a string ============================================ _Description_: --- 3775,3781 ----  File: gfortran.info, Node: CTIME, Next: DATE_AND_TIME, Prev: CSHIFT, Up: Intrinsic Procedures ! 6.45 `CTIME' -- Convert a time into a string ============================================ _Description_: *************** _See Also_: *** 3767,3773 ****  File: gfortran.info, Node: DATE_AND_TIME, Next: DBLE, Prev: CTIME, Up: Intrinsic Procedures ! 6.45 `DATE_AND_TIME' -- Date and time subroutine ================================================ _Description_: --- 3820,3826 ----  File: gfortran.info, Node: DATE_AND_TIME, Next: DBLE, Prev: CTIME, Up: Intrinsic Procedures ! 6.46 `DATE_AND_TIME' -- Date and time subroutine ================================================ _Description_: *************** _See also_: *** 3833,3839 ****  File: gfortran.info, Node: DBLE, Next: DCMPLX, Prev: DATE_AND_TIME, Up: Intrinsic Procedures ! 6.46 `DBLE' -- Double conversion function ========================================= _Description_: --- 3886,3892 ----  File: gfortran.info, Node: DBLE, Next: DCMPLX, Prev: DATE_AND_TIME, Up: Intrinsic Procedures ! 6.47 `DBLE' -- Double conversion function ========================================= _Description_: *************** _See also_: *** 3869,3875 ****  File: gfortran.info, Node: DCMPLX, Next: DFLOAT, Prev: DBLE, Up: Intrinsic Procedures ! 6.47 `DCMPLX' -- Double complex conversion function =================================================== _Description_: --- 3922,3928 ----  File: gfortran.info, Node: DCMPLX, Next: DFLOAT, Prev: DBLE, Up: Intrinsic Procedures ! 6.48 `DCMPLX' -- Double complex conversion function =================================================== _Description_: *************** _Example_: *** 3912,3918 ****  File: gfortran.info, Node: DFLOAT, Next: DIGITS, Prev: DCMPLX, Up: Intrinsic Procedures ! 6.48 `DFLOAT' -- Double conversion function =========================================== _Description_: --- 3965,3971 ----  File: gfortran.info, Node: DFLOAT, Next: DIGITS, Prev: DCMPLX, Up: Intrinsic Procedures ! 6.49 `DFLOAT' -- Double conversion function =========================================== _Description_: *************** _See also_: *** 3945,3951 ****  File: gfortran.info, Node: DIGITS, Next: DIM, Prev: DFLOAT, Up: Intrinsic Procedures ! 6.49 `DIGITS' -- Significant digits function ============================================ _Description_: --- 3998,4004 ----  File: gfortran.info, Node: DIGITS, Next: DIM, Prev: DFLOAT, Up: Intrinsic Procedures ! 6.50 `DIGITS' -- Significant digits function ============================================ _Description_: *************** _Example_: *** 3982,3988 ****  File: gfortran.info, Node: DIM, Next: DOT_PRODUCT, Prev: DIGITS, Up: Intrinsic Procedures ! 6.50 `DIM' -- Positive difference ================================= _Description_: --- 4035,4041 ----  File: gfortran.info, Node: DIM, Next: DOT_PRODUCT, Prev: DIGITS, Up: Intrinsic Procedures ! 6.51 `DIM' -- Positive difference ================================= _Description_: *************** _Specific names_: *** 4025,4031 ****  File: gfortran.info, Node: DOT_PRODUCT, Next: DPROD, Prev: DIM, Up: Intrinsic Procedures ! 6.51 `DOT_PRODUCT' -- Dot product function ========================================== _Description_: --- 4078,4084 ----  File: gfortran.info, Node: DOT_PRODUCT, Next: DPROD, Prev: DIM, Up: Intrinsic Procedures ! 6.52 `DOT_PRODUCT' -- Dot product function ========================================== _Description_: *************** _Example_: *** 4069,4075 ****  File: gfortran.info, Node: DPROD, Next: DREAL, Prev: DOT_PRODUCT, Up: Intrinsic Procedures ! 6.52 `DPROD' -- Double product function ======================================= _Description_: --- 4122,4128 ----  File: gfortran.info, Node: DPROD, Next: DREAL, Prev: DOT_PRODUCT, Up: Intrinsic Procedures ! 6.53 `DPROD' -- Double product function ======================================= _Description_: *************** _Example_: *** 4103,4109 ****  File: gfortran.info, Node: DREAL, Next: DTIME, Prev: DPROD, Up: Intrinsic Procedures ! 6.53 `DREAL' -- Double real part function ========================================= _Description_: --- 4156,4162 ----  File: gfortran.info, Node: DREAL, Next: DTIME, Prev: DPROD, Up: Intrinsic Procedures ! 6.54 `DREAL' -- Double real part function ========================================= _Description_: *************** _See also_: *** 4137,4143 ****  File: gfortran.info, Node: DTIME, Next: EOSHIFT, Prev: DREAL, Up: Intrinsic Procedures ! 6.54 `DTIME' -- Execution time subroutine (or function) ======================================================= _Description_: --- 4190,4196 ----  File: gfortran.info, Node: DTIME, Next: EOSHIFT, Prev: DREAL, Up: Intrinsic Procedures ! 6.55 `DTIME' -- Execution time subroutine (or function) ======================================================= _Description_: *************** _Example_: *** 4205,4211 ****  File: gfortran.info, Node: EOSHIFT, Next: EPSILON, Prev: DTIME, Up: Intrinsic Procedures ! 6.55 `EOSHIFT' -- End-off shift elements of an array ==================================================== _Description_: --- 4258,4264 ----  File: gfortran.info, Node: EOSHIFT, Next: EPSILON, Prev: DTIME, Up: Intrinsic Procedures ! 6.56 `EOSHIFT' -- End-off shift elements of an array ==================================================== _Description_: *************** _Example_: *** 4263,4269 ****  File: gfortran.info, Node: EPSILON, Next: ERF, Prev: EOSHIFT, Up: Intrinsic Procedures ! 6.56 `EPSILON' -- Epsilon function ================================== _Description_: --- 4316,4322 ----  File: gfortran.info, Node: EPSILON, Next: ERF, Prev: EOSHIFT, Up: Intrinsic Procedures ! 6.57 `EPSILON' -- Epsilon function ================================== _Description_: *************** _Example_: *** 4295,4301 ****  File: gfortran.info, Node: ERF, Next: ERFC, Prev: EPSILON, Up: Intrinsic Procedures ! 6.57 `ERF' -- Error function ============================ _Description_: --- 4348,4354 ----  File: gfortran.info, Node: ERF, Next: ERFC, Prev: EPSILON, Up: Intrinsic Procedures ! 6.58 `ERF' -- Error function ============================ _Description_: *************** _Specific names_: *** 4331,4337 ****  File: gfortran.info, Node: ERFC, Next: ETIME, Prev: ERF, Up: Intrinsic Procedures ! 6.58 `ERFC' -- Error function ============================= _Description_: --- 4384,4390 ----  File: gfortran.info, Node: ERFC, Next: ETIME, Prev: ERF, Up: Intrinsic Procedures ! 6.59 `ERFC' -- Error function ============================= _Description_: *************** _Specific names_: *** 4367,4373 ****  File: gfortran.info, Node: ETIME, Next: EXIT, Prev: ERFC, Up: Intrinsic Procedures ! 6.59 `ETIME' -- Execution time subroutine (or function) ======================================================= _Description_: --- 4420,4426 ----  File: gfortran.info, Node: ETIME, Next: EXIT, Prev: ERFC, Up: Intrinsic Procedures ! 6.60 `ETIME' -- Execution time subroutine (or function) ======================================================= _Description_: *************** _See also_: *** 4435,4441 ****  File: gfortran.info, Node: EXIT, Next: EXP, Prev: ETIME, Up: Intrinsic Procedures ! 6.60 `EXIT' -- Exit the program with status. ============================================ _Description_: --- 4488,4494 ----  File: gfortran.info, Node: EXIT, Next: EXP, Prev: ETIME, Up: Intrinsic Procedures ! 6.61 `EXIT' -- Exit the program with status. ============================================ _Description_: *************** _See also_: *** 4471,4477 ****  File: gfortran.info, Node: EXP, Next: EXPONENT, Prev: EXIT, Up: Intrinsic Procedures ! 6.61 `EXP' -- Exponential function ================================== _Description_: --- 4524,4530 ----  File: gfortran.info, Node: EXP, Next: EXPONENT, Prev: EXIT, Up: Intrinsic Procedures ! 6.62 `EXP' -- Exponential function ================================== _Description_: *************** _Specific names_: *** 4511,4517 ****  File: gfortran.info, Node: EXPONENT, Next: FDATE, Prev: EXP, Up: Intrinsic Procedures ! 6.62 `EXPONENT' -- Exponent function ==================================== _Description_: --- 4564,4570 ----  File: gfortran.info, Node: EXPONENT, Next: FDATE, Prev: EXP, Up: Intrinsic Procedures ! 6.63 `EXPONENT' -- Exponent function ==================================== _Description_: *************** _Example_: *** 4545,4551 ****  File: gfortran.info, Node: FDATE, Next: FGET, Prev: EXPONENT, Up: Intrinsic Procedures ! 6.63 `FDATE' -- Get the current time as a string ================================================ _Description_: --- 4598,4604 ----  File: gfortran.info, Node: FDATE, Next: FGET, Prev: EXPONENT, Up: Intrinsic Procedures ! 6.64 `FDATE' -- Get the current time as a string ================================================ _Description_: *************** _Example_: *** 4589,4595 ****  File: gfortran.info, Node: FLOAT, Next: FLOOR, Prev: FGETC, Up: Intrinsic Procedures ! 6.64 `FLOAT' -- Convert integer to default real =============================================== _Description_: --- 4642,4648 ----  File: gfortran.info, Node: FLOAT, Next: FLOOR, Prev: FGETC, Up: Intrinsic Procedures ! 6.65 `FLOAT' -- Convert integer to default real =============================================== _Description_: *************** _See also_: *** 4622,4628 ****  File: gfortran.info, Node: FGET, Next: FGETC, Prev: FDATE, Up: Intrinsic Procedures ! 6.65 `FGET' -- Read a single character in stream mode from stdin ================================================================ _Description_: --- 4675,4681 ----  File: gfortran.info, Node: FGET, Next: FGETC, Prev: FDATE, Up: Intrinsic Procedures ! 6.66 `FGET' -- Read a single character in stream mode from stdin ================================================================ _Description_: *************** _See also_: *** 4674,4680 ****  File: gfortran.info, Node: FGETC, Next: FLOAT, Prev: FGET, Up: Intrinsic Procedures ! 6.66 `FGETC' -- Read a single character in stream mode ====================================================== _Description_: --- 4727,4733 ----  File: gfortran.info, Node: FGETC, Next: FLOAT, Prev: FGET, Up: Intrinsic Procedures ! 6.67 `FGETC' -- Read a single character in stream mode ====================================================== _Description_: *************** _See also_: *** 4726,4732 ****  File: gfortran.info, Node: FLOOR, Next: FLUSH, Prev: FLOAT, Up: Intrinsic Procedures ! 6.67 `FLOOR' -- Integer floor function ====================================== _Description_: --- 4779,4785 ----  File: gfortran.info, Node: FLOOR, Next: FLUSH, Prev: FLOAT, Up: Intrinsic Procedures ! 6.68 `FLOOR' -- Integer floor function ====================================== _Description_: *************** _See also_: *** 4765,4771 ****  File: gfortran.info, Node: FLUSH, Next: FNUM, Prev: FLOOR, Up: Intrinsic Procedures ! 6.68 `FLUSH' -- Flush I/O unit(s) ================================= _Description_: --- 4818,4824 ----  File: gfortran.info, Node: FLUSH, Next: FNUM, Prev: FLOOR, Up: Intrinsic Procedures ! 6.69 `FLUSH' -- Flush I/O unit(s) ================================= _Description_: *************** _Note_: *** 4793,4799 ****  File: gfortran.info, Node: FNUM, Next: FPUT, Prev: FLUSH, Up: Intrinsic Procedures ! 6.69 `FNUM' -- File number function =================================== _Description_: --- 4846,4852 ----  File: gfortran.info, Node: FNUM, Next: FPUT, Prev: FLUSH, Up: Intrinsic Procedures ! 6.70 `FNUM' -- File number function =================================== _Description_: *************** _Example_: *** 4827,4833 ****  File: gfortran.info, Node: FPUT, Next: FPUTC, Prev: FNUM, Up: Intrinsic Procedures ! 6.70 `FPUT' -- Write a single character in stream mode to stdout ================================================================ _Description_: --- 4880,4886 ----  File: gfortran.info, Node: FPUT, Next: FPUTC, Prev: FNUM, Up: Intrinsic Procedures ! 6.71 `FPUT' -- Write a single character in stream mode to stdout ================================================================ _Description_: *************** _See also_: *** 4873,4879 ****  File: gfortran.info, Node: FPUTC, Next: FRACTION, Prev: FPUT, Up: Intrinsic Procedures ! 6.71 `FPUTC' -- Write a single character in stream mode ======================================================= _Description_: --- 4926,4932 ----  File: gfortran.info, Node: FPUTC, Next: FRACTION, Prev: FPUT, Up: Intrinsic Procedures ! 6.72 `FPUTC' -- Write a single character in stream mode ======================================================= _Description_: *************** _See also_: *** 4923,4929 ****  File: gfortran.info, Node: FRACTION, Next: FREE, Prev: FPUTC, Up: Intrinsic Procedures ! 6.72 `FRACTION' -- Fractional part of the model representation ============================================================== _Description_: --- 4976,4982 ----  File: gfortran.info, Node: FRACTION, Next: FREE, Prev: FPUTC, Up: Intrinsic Procedures ! 6.73 `FRACTION' -- Fractional part of the model representation ============================================================== _Description_: *************** _Example_: *** 4958,4964 ****  File: gfortran.info, Node: FREE, Next: FSEEK, Prev: FRACTION, Up: Intrinsic Procedures ! 6.73 `FREE' -- Frees memory =========================== _Description_: --- 5011,5017 ----  File: gfortran.info, Node: FREE, Next: FSEEK, Prev: FRACTION, Up: Intrinsic Procedures ! 6.74 `FREE' -- Frees memory =========================== _Description_: *************** _See also_: *** 4994,5000 ****  File: gfortran.info, Node: FSEEK, Next: FSTAT, Prev: FREE, Up: Intrinsic Procedures ! 6.74 `FSEEK' -- Low level file positioning subroutine ===================================================== Not yet implemented in GNU Fortran. --- 5047,5053 ----  File: gfortran.info, Node: FSEEK, Next: FSTAT, Prev: FREE, Up: Intrinsic Procedures ! 6.75 `FSEEK' -- Low level file positioning subroutine ===================================================== Not yet implemented in GNU Fortran. *************** _See also_: *** 5025,5031 ****  File: gfortran.info, Node: FSTAT, Next: FTELL, Prev: FSEEK, Up: Intrinsic Procedures ! 6.75 `FSTAT' -- Get file status =============================== _Description_: --- 5078,5084 ----  File: gfortran.info, Node: FSTAT, Next: FTELL, Prev: FSEEK, Up: Intrinsic Procedures ! 6.76 `FSTAT' -- Get file status =============================== _Description_: *************** _See also_: *** 5059,5065 ****  File: gfortran.info, Node: FTELL, Next: GERROR, Prev: FSTAT, Up: Intrinsic Procedures ! 6.76 `FTELL' -- Current stream position ======================================= _Description_: --- 5112,5118 ----  File: gfortran.info, Node: FTELL, Next: GERROR, Prev: FSTAT, Up: Intrinsic Procedures ! 6.77 `FTELL' -- Current stream position ======================================= _Description_: *************** _See also_: *** 5100,5106 ****  File: gfortran.info, Node: GERROR, Next: GETARG, Prev: FTELL, Up: Intrinsic Procedures ! 6.77 `GERROR' -- Get last system error message ============================================== _Description_: --- 5153,5159 ----  File: gfortran.info, Node: GERROR, Next: GETARG, Prev: FTELL, Up: Intrinsic Procedures ! 6.78 `GERROR' -- Get last system error message ============================================== _Description_: *************** _See also_: *** 5132,5138 ****  File: gfortran.info, Node: GETARG, Next: GET_COMMAND, Prev: GERROR, Up: Intrinsic Procedures ! 6.78 `GETARG' -- Get command line arguments =========================================== _Description_: --- 5185,5191 ----  File: gfortran.info, Node: GETARG, Next: GET_COMMAND, Prev: GERROR, Up: Intrinsic Procedures ! 6.79 `GETARG' -- Get command line arguments =========================================== _Description_: *************** _See also_: *** 5185,5191 ****  File: gfortran.info, Node: GET_COMMAND, Next: GET_COMMAND_ARGUMENT, Prev: GETARG, Up: Intrinsic Procedures ! 6.79 `GET_COMMAND' -- Get the entire command line ================================================= _Description_: --- 5238,5244 ----  File: gfortran.info, Node: GET_COMMAND, Next: GET_COMMAND_ARGUMENT, Prev: GETARG, Up: Intrinsic Procedures ! 6.80 `GET_COMMAND' -- Get the entire command line ================================================= _Description_: *************** _See also_: *** 5221,5227 ****  File: gfortran.info, Node: GET_COMMAND_ARGUMENT, Next: GETCWD, Prev: GET_COMMAND, Up: Intrinsic Procedures ! 6.80 `GET_COMMAND_ARGUMENT' -- Get command line arguments ========================================================= _Description_: --- 5274,5280 ----  File: gfortran.info, Node: GET_COMMAND_ARGUMENT, Next: GETCWD, Prev: GET_COMMAND, Up: Intrinsic Procedures ! 6.81 `GET_COMMAND_ARGUMENT' -- Get command line arguments ========================================================= _Description_: *************** _See also_: *** 5270,5276 ****  File: gfortran.info, Node: GETCWD, Next: GETENV, Prev: GET_COMMAND_ARGUMENT, Up: Intrinsic Procedures ! 6.81 `GETCWD' -- Get current working directory ============================================== _Description_: --- 5323,5329 ----  File: gfortran.info, Node: GETCWD, Next: GETENV, Prev: GET_COMMAND_ARGUMENT, Up: Intrinsic Procedures ! 6.82 `GETCWD' -- Get current working directory ============================================== _Description_: *************** _See also_: *** 5304,5310 ****  File: gfortran.info, Node: GETENV, Next: GET_ENVIRONMENT_VARIABLE, Prev: GETCWD, Up: Intrinsic Procedures ! 6.82 `GETENV' -- Get an environmental variable ============================================== _Description_: --- 5357,5363 ----  File: gfortran.info, Node: GETENV, Next: GET_ENVIRONMENT_VARIABLE, Prev: GETCWD, Up: Intrinsic Procedures ! 6.83 `GETENV' -- Get an environmental variable ============================================== _Description_: *************** _See also_: *** 5346,5352 ****  File: gfortran.info, Node: GET_ENVIRONMENT_VARIABLE, Next: GETGID, Prev: GETENV, Up: Intrinsic Procedures ! 6.83 `GET_ENVIRONMENT_VARIABLE' -- Get an environmental variable ================================================================ _Description_: --- 5399,5405 ----  File: gfortran.info, Node: GET_ENVIRONMENT_VARIABLE, Next: GETGID, Prev: GETENV, Up: Intrinsic Procedures ! 6.84 `GET_ENVIRONMENT_VARIABLE' -- Get an environmental variable ================================================================ _Description_: *************** _Example_: *** 5380,5386 ****  File: gfortran.info, Node: GETGID, Next: GETLOG, Prev: GET_ENVIRONMENT_VARIABLE, Up: Intrinsic Procedures ! 6.84 `GETGID' -- Group ID function ================================== _Description_: --- 5433,5439 ----  File: gfortran.info, Node: GETGID, Next: GETLOG, Prev: GET_ENVIRONMENT_VARIABLE, Up: Intrinsic Procedures ! 6.85 `GETGID' -- Group ID function ================================== _Description_: *************** _See also_: *** 5407,5413 ****  File: gfortran.info, Node: GETLOG, Next: GETPID, Prev: GETGID, Up: Intrinsic Procedures ! 6.85 `GETLOG' -- Get login name =============================== _Description_: --- 5460,5466 ----  File: gfortran.info, Node: GETLOG, Next: GETPID, Prev: GETGID, Up: Intrinsic Procedures ! 6.86 `GETLOG' -- Get login name =============================== _Description_: *************** _See also_: *** 5443,5449 ****  File: gfortran.info, Node: GETPID, Next: GETUID, Prev: GETLOG, Up: Intrinsic Procedures ! 6.86 `GETPID' -- Process ID function ==================================== _Description_: --- 5496,5502 ----  File: gfortran.info, Node: GETPID, Next: GETUID, Prev: GETLOG, Up: Intrinsic Procedures ! 6.87 `GETPID' -- Process ID function ==================================== _Description_: *************** _See also_: *** 5474,5480 ****  File: gfortran.info, Node: GETUID, Next: GMTIME, Prev: GETPID, Up: Intrinsic Procedures ! 6.87 `GETUID' -- User ID function ================================= _Description_: --- 5527,5533 ----  File: gfortran.info, Node: GETUID, Next: GMTIME, Prev: GETPID, Up: Intrinsic Procedures ! 6.88 `GETUID' -- User ID function ================================= _Description_: *************** _See also_: *** 5501,5507 ****  File: gfortran.info, Node: GMTIME, Next: HOSTNM, Prev: GETUID, Up: Intrinsic Procedures ! 6.88 `GMTIME' -- Convert time to GMT info ========================================= _Description_: --- 5554,5560 ----  File: gfortran.info, Node: GMTIME, Next: HOSTNM, Prev: GETUID, Up: Intrinsic Procedures ! 6.89 `GMTIME' -- Convert time to GMT info ========================================= _Description_: *************** _See also_: *** 5556,5562 ****  File: gfortran.info, Node: HOSTNM, Next: HUGE, Prev: GMTIME, Up: Intrinsic Procedures ! 6.89 `HOSTNM' -- Get system host name ===================================== _Description_: --- 5609,5615 ----  File: gfortran.info, Node: HOSTNM, Next: HUGE, Prev: GMTIME, Up: Intrinsic Procedures ! 6.90 `HOSTNM' -- Get system host name ===================================== _Description_: *************** _Return value_: *** 5591,5597 ****  File: gfortran.info, Node: HUGE, Next: IACHAR, Prev: HOSTNM, Up: Intrinsic Procedures ! 6.90 `HUGE' -- Largest number of a kind ======================================= _Description_: --- 5644,5650 ----  File: gfortran.info, Node: HUGE, Next: IACHAR, Prev: HOSTNM, Up: Intrinsic Procedures ! 6.91 `HUGE' -- Largest number of a kind ======================================= _Description_: *************** _Example_: *** 5622,5628 ****  File: gfortran.info, Node: IACHAR, Next: IAND, Prev: HUGE, Up: Intrinsic Procedures ! 6.91 `IACHAR' -- Code in ASCII collating sequence ================================================= _Description_: --- 5675,5681 ----  File: gfortran.info, Node: IACHAR, Next: IAND, Prev: HUGE, Up: Intrinsic Procedures ! 6.92 `IACHAR' -- Code in ASCII collating sequence ================================================= _Description_: *************** _See also_: *** 5663,5669 ****  File: gfortran.info, Node: IAND, Next: IARGC, Prev: IACHAR, Up: Intrinsic Procedures ! 6.92 `IAND' -- Bitwise logical and ================================== _Description_: --- 5716,5722 ----  File: gfortran.info, Node: IAND, Next: IARGC, Prev: IACHAR, Up: Intrinsic Procedures ! 6.93 `IAND' -- Bitwise logical and ================================== _Description_: *************** _See also_: *** 5704,5710 ****  File: gfortran.info, Node: IARGC, Next: IBCLR, Prev: IAND, Up: Intrinsic Procedures ! 6.93 `IARGC' -- Get the number of command line arguments ======================================================== _Description_: --- 5757,5763 ----  File: gfortran.info, Node: IARGC, Next: IBCLR, Prev: IAND, Up: Intrinsic Procedures ! 6.94 `IARGC' -- Get the number of command line arguments ======================================================== _Description_: *************** _See also_: *** 5743,5749 ****  File: gfortran.info, Node: IBCLR, Next: IBITS, Prev: IARGC, Up: Intrinsic Procedures ! 6.94 `IBCLR' -- Clear bit ========================= _Description_: --- 5796,5802 ----  File: gfortran.info, Node: IBCLR, Next: IBITS, Prev: IARGC, Up: Intrinsic Procedures ! 6.95 `IBCLR' -- Clear bit ========================= _Description_: *************** _See also_: *** 5774,5780 ****  File: gfortran.info, Node: IBITS, Next: IBSET, Prev: IBCLR, Up: Intrinsic Procedures ! 6.95 `IBITS' -- Bit extraction ============================== _Description_: --- 5827,5833 ----  File: gfortran.info, Node: IBITS, Next: IBSET, Prev: IBCLR, Up: Intrinsic Procedures ! 6.96 `IBITS' -- Bit extraction ============================== _Description_: *************** _See also_: *** 5807,5813 ****  File: gfortran.info, Node: IBSET, Next: ICHAR, Prev: IBITS, Up: Intrinsic Procedures ! 6.96 `IBSET' -- Set bit ======================= _Description_: --- 5860,5866 ----  File: gfortran.info, Node: IBSET, Next: ICHAR, Prev: IBITS, Up: Intrinsic Procedures ! 6.97 `IBSET' -- Set bit ======================= _Description_: *************** _See also_: *** 5838,5844 ****  File: gfortran.info, Node: ICHAR, Next: IDATE, Prev: IBSET, Up: Intrinsic Procedures ! 6.97 `ICHAR' -- Character-to-integer conversion function ======================================================== _Description_: --- 5891,5897 ----  File: gfortran.info, Node: ICHAR, Next: IDATE, Prev: IBSET, Up: Intrinsic Procedures ! 6.98 `ICHAR' -- Character-to-integer conversion function ======================================================== _Description_: *************** _See also_: *** 5897,5903 ****  File: gfortran.info, Node: IDATE, Next: IEOR, Prev: ICHAR, Up: Intrinsic Procedures ! 6.98 `IDATE' -- Get current local time subroutine (day/month/year) ================================================================== _Description_: --- 5950,5956 ----  File: gfortran.info, Node: IDATE, Next: IEOR, Prev: ICHAR, Up: Intrinsic Procedures ! 6.99 `IDATE' -- Get current local time subroutine (day/month/year) ================================================================== _Description_: *************** _Example_: *** 5934,5941 ****  File: gfortran.info, Node: IEOR, Next: IERRNO, Prev: IDATE, Up: Intrinsic Procedures ! 6.99 `IEOR' -- Bitwise logical exclusive or ! =========================================== _Description_: `IEOR' returns the bitwise boolean exclusive-OR of I and J. --- 5987,5994 ----  File: gfortran.info, Node: IEOR, Next: IERRNO, Prev: IDATE, Up: Intrinsic Procedures ! 6.100 `IEOR' -- Bitwise logical exclusive or ! ============================================ _Description_: `IEOR' returns the bitwise boolean exclusive-OR of I and J. *************** _See also_: *** 5967,5973 ****  File: gfortran.info, Node: IERRNO, Next: INDEX, Prev: IEOR, Up: Intrinsic Procedures ! 6.100 `IERRNO' -- Get the last system error number ================================================== _Description_: --- 6020,6026 ----  File: gfortran.info, Node: IERRNO, Next: INDEX, Prev: IEOR, Up: Intrinsic Procedures ! 6.101 `IERRNO' -- Get the last system error number ================================================== _Description_: *************** _See also_: *** 5996,6002 ****  File: gfortran.info, Node: INDEX, Next: INT, Prev: IERRNO, Up: Intrinsic Procedures ! 6.101 `INDEX' -- Position of a substring within a string ======================================================== _Description_: --- 6049,6055 ----  File: gfortran.info, Node: INDEX, Next: INT, Prev: IERRNO, Up: Intrinsic Procedures ! 6.102 `INDEX' -- Position of a substring within a string ======================================================== _Description_: *************** _See also_: *** 6033,6039 ****  File: gfortran.info, Node: INT, Next: INT2, Prev: INDEX, Up: Intrinsic Procedures ! 6.102 `INT' -- Convert to integer type ====================================== _Description_: --- 6086,6092 ----  File: gfortran.info, Node: INT, Next: INT2, Prev: INDEX, Up: Intrinsic Procedures ! 6.103 `INT' -- Convert to integer type ====================================== _Description_: *************** _Specific names_: *** 6089,6095 ****  File: gfortran.info, Node: INT2, Next: INT8, Prev: INT, Up: Intrinsic Procedures ! 6.103 `INT2' -- Convert to 16-bit integer type ============================================== _Description_: --- 6142,6148 ----  File: gfortran.info, Node: INT2, Next: INT8, Prev: INT, Up: Intrinsic Procedures ! 6.104 `INT2' -- Convert to 16-bit integer type ============================================== _Description_: *************** _See also_: *** 6121,6127 ****  File: gfortran.info, Node: INT8, Next: IOR, Prev: INT2, Up: Intrinsic Procedures ! 6.104 `INT8' -- Convert to 64-bit integer type ============================================== _Description_: --- 6174,6180 ----  File: gfortran.info, Node: INT8, Next: IOR, Prev: INT2, Up: Intrinsic Procedures ! 6.105 `INT8' -- Convert to 64-bit integer type ============================================== _Description_: *************** _See also_: *** 6151,6157 ****  File: gfortran.info, Node: IOR, Next: IRAND, Prev: INT8, Up: Intrinsic Procedures ! 6.105 `IOR' -- Bitwise logical or ================================= _Description_: --- 6204,6210 ----  File: gfortran.info, Node: IOR, Next: IRAND, Prev: INT8, Up: Intrinsic Procedures ! 6.106 `IOR' -- Bitwise logical or ================================= _Description_: *************** _See also_: *** 6184,6190 ****  File: gfortran.info, Node: IRAND, Next: ISATTY, Prev: IOR, Up: Intrinsic Procedures ! 6.106 `IRAND' -- Integer pseudo-random number ============================================= _Description_: --- 6237,6243 ----  File: gfortran.info, Node: IRAND, Next: ISATTY, Prev: IOR, Up: Intrinsic Procedures ! 6.107 `IRAND' -- Integer pseudo-random number ============================================= _Description_: *************** _Example_: *** 6223,6229 ****  File: gfortran.info, Node: ISATTY, Next: ISHFT, Prev: IRAND, Up: Intrinsic Procedures ! 6.107 `ISATTY' -- Whether a unit is a terminal device. ====================================================== _Description_: --- 6276,6282 ----  File: gfortran.info, Node: ISATTY, Next: ISHFT, Prev: IRAND, Up: Intrinsic Procedures ! 6.108 `ISATTY' -- Whether a unit is a terminal device. ====================================================== _Description_: *************** _See also_: *** 6259,6265 ****  File: gfortran.info, Node: ISHFT, Next: ISHFTC, Prev: ISATTY, Up: Intrinsic Procedures ! 6.108 `ISHFT' -- Shift bits =========================== _Description_: --- 6312,6318 ----  File: gfortran.info, Node: ISHFT, Next: ISHFTC, Prev: ISATTY, Up: Intrinsic Procedures ! 6.109 `ISHFT' -- Shift bits =========================== _Description_: *************** _See also_: *** 6293,6299 ****  File: gfortran.info, Node: ISHFTC, Next: ITIME, Prev: ISHFT, Up: Intrinsic Procedures ! 6.109 `ISHFTC' -- Shift bits circularly ======================================= _Description_: --- 6346,6352 ----  File: gfortran.info, Node: ISHFTC, Next: ITIME, Prev: ISHFT, Up: Intrinsic Procedures ! 6.110 `ISHFTC' -- Shift bits circularly ======================================= _Description_: *************** _See also_: *** 6331,6337 ****  File: gfortran.info, Node: ITIME, Next: KILL, Prev: ISHFTC, Up: Intrinsic Procedures ! 6.110 `ITIME' -- Get current local time subroutine (hour/minutes/seconds) ========================================================================= _Description_: --- 6384,6390 ----  File: gfortran.info, Node: ITIME, Next: KILL, Prev: ISHFTC, Up: Intrinsic Procedures ! 6.111 `ITIME' -- Get current local time subroutine (hour/minutes/seconds) ========================================================================= _Description_: *************** _Example_: *** 6368,6374 ****  File: gfortran.info, Node: KILL, Next: KIND, Prev: ITIME, Up: Intrinsic Procedures ! 6.111 `KILL' -- Send a signal to a process ========================================== _Description_: --- 6421,6427 ----  File: gfortran.info, Node: KILL, Next: KIND, Prev: ITIME, Up: Intrinsic Procedures ! 6.112 `KILL' -- Send a signal to a process ========================================== _Description_: *************** _See also_: *** 6397,6403 ****  File: gfortran.info, Node: KIND, Next: LBOUND, Prev: KILL, Up: Intrinsic Procedures ! 6.112 `KIND' -- Kind of an entity ================================= _Description_: --- 6450,6456 ----  File: gfortran.info, Node: KIND, Next: LBOUND, Prev: KILL, Up: Intrinsic Procedures ! 6.113 `KIND' -- Kind of an entity ================================= _Description_: *************** _Example_: *** 6433,6439 ****  File: gfortran.info, Node: LBOUND, Next: LEN, Prev: KIND, Up: Intrinsic Procedures ! 6.113 `LBOUND' -- Lower dimension bounds of an array ==================================================== _Description_: --- 6486,6492 ----  File: gfortran.info, Node: LBOUND, Next: LEN, Prev: KIND, Up: Intrinsic Procedures ! 6.114 `LBOUND' -- Lower dimension bounds of an array ==================================================== _Description_: *************** _See also_: *** 6467,6473 ****  File: gfortran.info, Node: LEN, Next: LEN_TRIM, Prev: LBOUND, Up: Intrinsic Procedures ! 6.114 `LEN' -- Length of a character entity =========================================== _Description_: --- 6520,6526 ----  File: gfortran.info, Node: LEN, Next: LEN_TRIM, Prev: LBOUND, Up: Intrinsic Procedures ! 6.115 `LEN' -- Length of a character entity =========================================== _Description_: *************** _See also_: *** 6498,6504 ****  File: gfortran.info, Node: LEN_TRIM, Next: LGE, Prev: LEN, Up: Intrinsic Procedures ! 6.115 `LEN_TRIM' -- Length of a character entity without trailing blank characters ================================================================================== _Description_: --- 6551,6557 ----  File: gfortran.info, Node: LEN_TRIM, Next: LGE, Prev: LEN, Up: Intrinsic Procedures ! 6.116 `LEN_TRIM' -- Length of a character entity without trailing blank characters ================================================================================== _Description_: *************** _See also_: *** 6527,6533 ****  File: gfortran.info, Node: LGE, Next: LGT, Prev: LEN_TRIM, Up: Intrinsic Procedures ! 6.116 `LGE' -- Lexical greater than or equal ============================================ _Description_: --- 6580,6586 ----  File: gfortran.info, Node: LGE, Next: LGT, Prev: LEN_TRIM, Up: Intrinsic Procedures ! 6.117 `LGE' -- Lexical greater than or equal ============================================ _Description_: *************** _See also_: *** 6566,6572 ****  File: gfortran.info, Node: LGT, Next: LINK, Prev: LGE, Up: Intrinsic Procedures ! 6.117 `LGT' -- Lexical greater than =================================== _Description_: --- 6619,6625 ----  File: gfortran.info, Node: LGT, Next: LINK, Prev: LGE, Up: Intrinsic Procedures ! 6.118 `LGT' -- Lexical greater than =================================== _Description_: *************** _See also_: *** 6605,6611 ****  File: gfortran.info, Node: LINK, Next: LLE, Prev: LGT, Up: Intrinsic Procedures ! 6.118 `LINK' -- Create a hard link ================================== _Description_: --- 6658,6664 ----  File: gfortran.info, Node: LINK, Next: LLE, Prev: LGT, Up: Intrinsic Procedures ! 6.119 `LINK' -- Create a hard link ================================== _Description_: *************** _See also_: *** 6639,6645 ****  File: gfortran.info, Node: LLE, Next: LLT, Prev: LINK, Up: Intrinsic Procedures ! 6.119 `LLE' -- Lexical less than or equal ========================================= _Description_: --- 6692,6698 ----  File: gfortran.info, Node: LLE, Next: LLT, Prev: LINK, Up: Intrinsic Procedures ! 6.120 `LLE' -- Lexical less than or equal ========================================= _Description_: *************** _See also_: *** 6679,6685 ****  File: gfortran.info, Node: LLT, Next: LNBLNK, Prev: LLE, Up: Intrinsic Procedures ! 6.120 `LLT' -- Lexical less than ================================ _Description_: --- 6732,6738 ----  File: gfortran.info, Node: LLT, Next: LNBLNK, Prev: LLE, Up: Intrinsic Procedures ! 6.121 `LLT' -- Lexical less than ================================ _Description_: *************** _See also_: *** 6718,6724 ****  File: gfortran.info, Node: LNBLNK, Next: LOC, Prev: LLT, Up: Intrinsic Procedures ! 6.121 `LNBLNK' -- Index of the last non-blank character in a string =================================================================== _Description_: --- 6771,6777 ----  File: gfortran.info, Node: LNBLNK, Next: LOC, Prev: LLT, Up: Intrinsic Procedures ! 6.122 `LNBLNK' -- Index of the last non-blank character in a string =================================================================== _Description_: *************** _See also_: *** 6748,6754 ****  File: gfortran.info, Node: LOC, Next: LOG, Prev: LNBLNK, Up: Intrinsic Procedures ! 6.122 `LOC' -- Returns the address of a variable ================================================ _Description_: --- 6801,6807 ----  File: gfortran.info, Node: LOC, Next: LOG, Prev: LNBLNK, Up: Intrinsic Procedures ! 6.123 `LOC' -- Returns the address of a variable ================================================ _Description_: *************** _Example_: *** 6781,6787 ****  File: gfortran.info, Node: LOG, Next: LOG10, Prev: LOC, Up: Intrinsic Procedures ! 6.123 `LOG' -- Logarithm function ================================= _Description_: --- 6834,6840 ----  File: gfortran.info, Node: LOG, Next: LOG10, Prev: LOC, Up: Intrinsic Procedures ! 6.124 `LOG' -- Logarithm function ================================= _Description_: *************** _Specific names_: *** 6825,6831 ****  File: gfortran.info, Node: LOG10, Next: LOGICAL, Prev: LOG, Up: Intrinsic Procedures ! 6.124 `LOG10' -- Base 10 logarithm function =========================================== _Description_: --- 6878,6884 ----  File: gfortran.info, Node: LOG10, Next: LOGICAL, Prev: LOG, Up: Intrinsic Procedures ! 6.125 `LOG10' -- Base 10 logarithm function =========================================== _Description_: *************** _Specific names_: *** 6861,6867 ****  File: gfortran.info, Node: LOGICAL, Next: LONG, Prev: LOG10, Up: Intrinsic Procedures ! 6.125 `LOGICAL' -- Convert to logical type ========================================== _Description_: --- 6914,6920 ----  File: gfortran.info, Node: LOGICAL, Next: LONG, Prev: LOG10, Up: Intrinsic Procedures ! 6.126 `LOGICAL' -- Convert to logical type ========================================== _Description_: *************** _See also_: *** 6893,6899 ****  File: gfortran.info, Node: LONG, Next: LSHIFT, Prev: LOGICAL, Up: Intrinsic Procedures ! 6.126 `LONG' -- Convert to integer type ======================================= _Description_: --- 6946,6952 ----  File: gfortran.info, Node: LONG, Next: LSHIFT, Prev: LOGICAL, Up: Intrinsic Procedures ! 6.127 `LONG' -- Convert to integer type ======================================= _Description_: *************** _See also_: *** 6924,6930 ****  File: gfortran.info, Node: LSHIFT, Next: LSTAT, Prev: LONG, Up: Intrinsic Procedures ! 6.127 `LSHIFT' -- Left shift bits ================================= _Description_: --- 6977,6983 ----  File: gfortran.info, Node: LSHIFT, Next: LSTAT, Prev: LONG, Up: Intrinsic Procedures ! 6.128 `LSHIFT' -- Left shift bits ================================= _Description_: *************** _See also_: *** 6960,6966 ****  File: gfortran.info, Node: LSTAT, Next: LTIME, Prev: LSHIFT, Up: Intrinsic Procedures ! 6.128 `LSTAT' -- Get file status ================================ _Description_: --- 7013,7019 ----  File: gfortran.info, Node: LSTAT, Next: LTIME, Prev: LSHIFT, Up: Intrinsic Procedures ! 6.129 `LSTAT' -- Get file status ================================ _Description_: *************** _See also_: *** 6996,7002 ****  File: gfortran.info, Node: LTIME, Next: MALLOC, Prev: LSTAT, Up: Intrinsic Procedures ! 6.129 `LTIME' -- Convert time to local time info ================================================ _Description_: --- 7049,7055 ----  File: gfortran.info, Node: LTIME, Next: MALLOC, Prev: LSTAT, Up: Intrinsic Procedures ! 6.130 `LTIME' -- Convert time to local time info ================================================ _Description_: *************** _See also_: *** 7050,7056 ****  File: gfortran.info, Node: MALLOC, Next: MATMUL, Prev: LTIME, Up: Intrinsic Procedures ! 6.130 `MALLOC' -- Allocate dynamic memory ========================================= _Description_: --- 7103,7109 ----  File: gfortran.info, Node: MALLOC, Next: MATMUL, Prev: LTIME, Up: Intrinsic Procedures ! 6.131 `MALLOC' -- Allocate dynamic memory ========================================= _Description_: *************** _See also_: *** 7109,7115 ****  File: gfortran.info, Node: MATMUL, Next: MAX, Prev: MALLOC, Up: Intrinsic Procedures ! 6.131 `MATMUL' -- matrix multiplication ======================================= _Description_: --- 7162,7168 ----  File: gfortran.info, Node: MATMUL, Next: MAX, Prev: MALLOC, Up: Intrinsic Procedures ! 6.132 `MATMUL' -- matrix multiplication ======================================= _Description_: *************** _See also_: *** 7147,7153 ****  File: gfortran.info, Node: MAX, Next: MAXEXPONENT, Prev: MATMUL, Up: Intrinsic Procedures ! 6.132 `MAX' -- Maximum value of an argument list ================================================ _Description_: --- 7200,7206 ----  File: gfortran.info, Node: MAX, Next: MAXEXPONENT, Prev: MATMUL, Up: Intrinsic Procedures ! 6.133 `MAX' -- Maximum value of an argument list ================================================ _Description_: *************** _See also_: *** 7193,7199 ****  File: gfortran.info, Node: MAXEXPONENT, Next: MAXLOC, Prev: MAX, Up: Intrinsic Procedures ! 6.133 `MAXEXPONENT' -- Maximum exponent of a real kind ====================================================== _Description_: --- 7246,7252 ----  File: gfortran.info, Node: MAXEXPONENT, Next: MAXLOC, Prev: MAX, Up: Intrinsic Procedures ! 6.134 `MAXEXPONENT' -- Maximum exponent of a real kind ====================================================== _Description_: *************** _Example_: *** 7228,7234 ****  File: gfortran.info, Node: MAXLOC, Next: MAXVAL, Prev: MAXEXPONENT, Up: Intrinsic Procedures ! 6.134 `MAXLOC' -- Location of the maximum value within an array =============================================================== _Description_: --- 7281,7287 ----  File: gfortran.info, Node: MAXLOC, Next: MAXVAL, Prev: MAXEXPONENT, Up: Intrinsic Procedures ! 6.135 `MAXLOC' -- Location of the maximum value within an array =============================================================== _Description_: *************** _See also_: *** 7280,7286 ****  File: gfortran.info, Node: MAXVAL, Next: MCLOCK, Prev: MAXLOC, Up: Intrinsic Procedures ! 6.135 `MAXVAL' -- Maximum value of an array =========================================== _Description_: --- 7333,7339 ----  File: gfortran.info, Node: MAXVAL, Next: MCLOCK, Prev: MAXLOC, Up: Intrinsic Procedures ! 6.136 `MAXVAL' -- Maximum value of an array =========================================== _Description_: *************** _See also_: *** 7327,7333 ****  File: gfortran.info, Node: MCLOCK, Next: MCLOCK8, Prev: MAXVAL, Up: Intrinsic Procedures ! 6.136 `MCLOCK' -- Time function =============================== _Description_: --- 7380,7386 ----  File: gfortran.info, Node: MCLOCK, Next: MCLOCK8, Prev: MAXVAL, Up: Intrinsic Procedures ! 6.137 `MCLOCK' -- Time function =============================== _Description_: *************** _See also_: *** 7362,7368 ****  File: gfortran.info, Node: MCLOCK8, Next: MERGE, Prev: MCLOCK, Up: Intrinsic Procedures ! 6.137 `MCLOCK8' -- Time function (64-bit) ========================================= _Description_: --- 7415,7421 ----  File: gfortran.info, Node: MCLOCK8, Next: MERGE, Prev: MCLOCK, Up: Intrinsic Procedures ! 6.138 `MCLOCK8' -- Time function (64-bit) ========================================= _Description_: *************** _See also_: *** 7400,7406 ****  File: gfortran.info, Node: MERGE, Next: MIN, Prev: MCLOCK8, Up: Intrinsic Procedures ! 6.138 `MERGE' -- Merge variables ================================ _Description_: --- 7453,7459 ----  File: gfortran.info, Node: MERGE, Next: MIN, Prev: MCLOCK8, Up: Intrinsic Procedures ! 6.139 `MERGE' -- Merge variables ================================ _Description_: *************** _Return value_: *** 7430,7436 ****  File: gfortran.info, Node: MIN, Next: MINEXPONENT, Prev: MERGE, Up: Intrinsic Procedures ! 6.139 `MIN' -- Minimum value of an argument list ================================================ _Description_: --- 7483,7489 ----  File: gfortran.info, Node: MIN, Next: MINEXPONENT, Prev: MERGE, Up: Intrinsic Procedures ! 6.140 `MIN' -- Minimum value of an argument list ================================================ _Description_: *************** _See also_: *** 7475,7481 ****  File: gfortran.info, Node: MINEXPONENT, Next: MINLOC, Prev: MIN, Up: Intrinsic Procedures ! 6.140 `MINEXPONENT' -- Minimum exponent of a real kind ====================================================== _Description_: --- 7528,7534 ----  File: gfortran.info, Node: MINEXPONENT, Next: MINLOC, Prev: MIN, Up: Intrinsic Procedures ! 6.141 `MINEXPONENT' -- Minimum exponent of a real kind ====================================================== _Description_: *************** _Example_: *** 7504,7510 ****  File: gfortran.info, Node: MINLOC, Next: MINVAL, Prev: MINEXPONENT, Up: Intrinsic Procedures ! 6.141 `MINLOC' -- Location of the minimum value within an array =============================================================== _Description_: --- 7557,7563 ----  File: gfortran.info, Node: MINLOC, Next: MINVAL, Prev: MINEXPONENT, Up: Intrinsic Procedures ! 6.142 `MINLOC' -- Location of the minimum value within an array =============================================================== _Description_: *************** _See also_: *** 7556,7562 ****  File: gfortran.info, Node: MINVAL, Next: MOD, Prev: MINLOC, Up: Intrinsic Procedures ! 6.142 `MINVAL' -- Minimum value of an array =========================================== _Description_: --- 7609,7615 ----  File: gfortran.info, Node: MINVAL, Next: MOD, Prev: MINLOC, Up: Intrinsic Procedures ! 6.143 `MINVAL' -- Minimum value of an array =========================================== _Description_: *************** _See also_: *** 7604,7610 ****  File: gfortran.info, Node: MOD, Next: MODULO, Prev: MINVAL, Up: Intrinsic Procedures ! 6.143 `MOD' -- Remainder function ================================= _Description_: --- 7657,7663 ----  File: gfortran.info, Node: MOD, Next: MODULO, Prev: MINVAL, Up: Intrinsic Procedures ! 6.144 `MOD' -- Remainder function ================================= _Description_: *************** _Specific names_: *** 7655,7661 ****  File: gfortran.info, Node: MODULO, Next: MOVE_ALLOC, Prev: MOD, Up: Intrinsic Procedures ! 6.144 `MODULO' -- Modulo function ================================= _Description_: --- 7708,7714 ----  File: gfortran.info, Node: MODULO, Next: MOVE_ALLOC, Prev: MOD, Up: Intrinsic Procedures ! 6.145 `MODULO' -- Modulo function ================================= _Description_: *************** _Example_: *** 7701,7707 ****  File: gfortran.info, Node: MOVE_ALLOC, Next: MVBITS, Prev: MODULO, Up: Intrinsic Procedures ! 6.145 `MOVE_ALLOC' -- Move allocation from one object to another ================================================================ _Description_: --- 7754,7760 ----  File: gfortran.info, Node: MOVE_ALLOC, Next: MVBITS, Prev: MODULO, Up: Intrinsic Procedures ! 6.146 `MOVE_ALLOC' -- Move allocation from one object to another ================================================================ _Description_: *************** _Example_: *** 7741,7747 ****  File: gfortran.info, Node: MVBITS, Next: NEAREST, Prev: MOVE_ALLOC, Up: Intrinsic Procedures ! 6.146 `MVBITS' -- Move bits from one integer to another ======================================================= _Description_: --- 7794,7800 ----  File: gfortran.info, Node: MVBITS, Next: NEAREST, Prev: MOVE_ALLOC, Up: Intrinsic Procedures ! 6.147 `MVBITS' -- Move bits from one integer to another ======================================================= _Description_: *************** _See also_: *** 7780,7786 ****  File: gfortran.info, Node: NEAREST, Next: NEW_LINE, Prev: MVBITS, Up: Intrinsic Procedures ! 6.147 `NEAREST' -- Nearest representable number =============================================== _Description_: --- 7833,7839 ----  File: gfortran.info, Node: NEAREST, Next: NEW_LINE, Prev: MVBITS, Up: Intrinsic Procedures ! 6.148 `NEAREST' -- Nearest representable number =============================================== _Description_: *************** _Example_: *** 7818,7824 ****  File: gfortran.info, Node: NEW_LINE, Next: NINT, Prev: NEAREST, Up: Intrinsic Procedures ! 6.148 `NEW_LINE' -- New line character ====================================== _Description_: --- 7871,7877 ----  File: gfortran.info, Node: NEW_LINE, Next: NINT, Prev: NEAREST, Up: Intrinsic Procedures ! 6.149 `NEW_LINE' -- New line character ====================================== _Description_: *************** _Example_: *** 7850,7856 ****  File: gfortran.info, Node: NINT, Next: NOT, Prev: NEW_LINE, Up: Intrinsic Procedures ! 6.149 `NINT' -- Nearest whole number ==================================== _Description_: --- 7903,7909 ----  File: gfortran.info, Node: NINT, Next: NOT, Prev: NEW_LINE, Up: Intrinsic Procedures ! 6.150 `NINT' -- Nearest whole number ==================================== _Description_: *************** _See also_: *** 7893,7899 ****  File: gfortran.info, Node: NOT, Next: NULL, Prev: NINT, Up: Intrinsic Procedures ! 6.150 `NOT' -- Logical negation =============================== _Description_: --- 7946,7952 ----  File: gfortran.info, Node: NOT, Next: NULL, Prev: NINT, Up: Intrinsic Procedures ! 6.151 `NOT' -- Logical negation =============================== _Description_: *************** _See also_: *** 7922,7928 ****  File: gfortran.info, Node: NULL, Next: OR, Prev: NOT, Up: Intrinsic Procedures ! 6.151 `NULL' -- Function that returns an disassociated pointer ============================================================== _Description_: --- 7975,7981 ----  File: gfortran.info, Node: NULL, Next: OR, Prev: NOT, Up: Intrinsic Procedures ! 6.152 `NULL' -- Function that returns an disassociated pointer ============================================================== _Description_: *************** _See also_: *** 7959,7965 ****  File: gfortran.info, Node: OR, Next: PACK, Prev: NULL, Up: Intrinsic Procedures ! 6.152 `OR' -- Bitwise logical OR ================================ _Description_: --- 8012,8018 ----  File: gfortran.info, Node: OR, Next: PACK, Prev: NULL, Up: Intrinsic Procedures ! 6.153 `OR' -- Bitwise logical OR ================================ _Description_: *************** _See also_: *** 8005,8011 ****  File: gfortran.info, Node: PACK, Next: PERROR, Prev: OR, Up: Intrinsic Procedures ! 6.153 `PACK' -- Pack an array into an array of rank one ======================================================= _Description_: --- 8058,8064 ----  File: gfortran.info, Node: PACK, Next: PERROR, Prev: OR, Up: Intrinsic Procedures ! 6.154 `PACK' -- Pack an array into an array of rank one ======================================================= _Description_: *************** _See also_: *** 8064,8070 ****  File: gfortran.info, Node: PERROR, Next: PRECISION, Prev: PACK, Up: Intrinsic Procedures ! 6.154 `PERROR' -- Print system error message ============================================ _Description_: --- 8117,8123 ----  File: gfortran.info, Node: PERROR, Next: PRECISION, Prev: PACK, Up: Intrinsic Procedures ! 6.155 `PERROR' -- Print system error message ============================================ _Description_: *************** _See also_: *** 8090,8096 ****  File: gfortran.info, Node: PRECISION, Next: PRESENT, Prev: PERROR, Up: Intrinsic Procedures ! 6.155 `PRECISION' -- Decimal precision of a real kind ===================================================== _Description_: --- 8143,8149 ----  File: gfortran.info, Node: PRECISION, Next: PRESENT, Prev: PERROR, Up: Intrinsic Procedures ! 6.156 `PRECISION' -- Decimal precision of a real kind ===================================================== _Description_: *************** _Example_: *** 8125,8131 ****  File: gfortran.info, Node: PRESENT, Next: PRODUCT, Prev: PRECISION, Up: Intrinsic Procedures ! 6.156 `PRESENT' -- Determine whether an optional dummy argument is specified ============================================================================ _Description_: --- 8178,8184 ----  File: gfortran.info, Node: PRESENT, Next: PRODUCT, Prev: PRECISION, Up: Intrinsic Procedures ! 6.157 `PRESENT' -- Determine whether an optional dummy argument is specified ============================================================================ _Description_: *************** _Example_: *** 8164,8170 ****  File: gfortran.info, Node: PRODUCT, Next: RADIX, Prev: PRESENT, Up: Intrinsic Procedures ! 6.157 `PRODUCT' -- Product of array elements ============================================ _Description_: --- 8217,8223 ----  File: gfortran.info, Node: PRODUCT, Next: RADIX, Prev: PRESENT, Up: Intrinsic Procedures ! 6.158 `PRODUCT' -- Product of array elements ============================================ _Description_: *************** _See also_: *** 8212,8218 ****  File: gfortran.info, Node: RADIX, Next: RANDOM_NUMBER, Prev: PRODUCT, Up: Intrinsic Procedures ! 6.158 `RADIX' -- Base of a model number ======================================= _Description_: --- 8265,8271 ----  File: gfortran.info, Node: RADIX, Next: RANDOM_NUMBER, Prev: PRODUCT, Up: Intrinsic Procedures ! 6.159 `RADIX' -- Base of a model number ======================================= _Description_: *************** _Example_: *** 8244,8250 ****  File: gfortran.info, Node: RAN, Next: REAL, Prev: RANGE, Up: Intrinsic Procedures ! 6.159 `RAN' -- Real pseudo-random number ======================================== _Description_: --- 8297,8303 ----  File: gfortran.info, Node: RAN, Next: REAL, Prev: RANGE, Up: Intrinsic Procedures ! 6.160 `RAN' -- Real pseudo-random number ======================================== _Description_: *************** _See also_: *** 8264,8270 ****  File: gfortran.info, Node: RAND, Next: RANGE, Prev: RANDOM_SEED, Up: Intrinsic Procedures ! 6.160 `RAND' -- Real pseudo-random number ========================================= _Description_: --- 8317,8323 ----  File: gfortran.info, Node: RAND, Next: RANGE, Prev: RANDOM_SEED, Up: Intrinsic Procedures ! 6.161 `RAND' -- Real pseudo-random number ========================================= _Description_: *************** _See also_: *** 8305,8311 ****  File: gfortran.info, Node: RANDOM_NUMBER, Next: RANDOM_SEED, Prev: RADIX, Up: Intrinsic Procedures ! 6.161 `RANDOM_NUMBER' -- Pseudo-random number ============================================= _Description_: --- 8358,8364 ----  File: gfortran.info, Node: RANDOM_NUMBER, Next: RANDOM_SEED, Prev: RADIX, Up: Intrinsic Procedures ! 6.162 `RANDOM_NUMBER' -- Pseudo-random number ============================================= _Description_: *************** _See also_: *** 8348,8354 ****  File: gfortran.info, Node: RANDOM_SEED, Next: RAND, Prev: RANDOM_NUMBER, Up: Intrinsic Procedures ! 6.162 `RANDOM_SEED' -- Initialize a pseudo-random number sequence ================================================================= _Description_: --- 8401,8407 ----  File: gfortran.info, Node: RANDOM_SEED, Next: RAND, Prev: RANDOM_NUMBER, Up: Intrinsic Procedures ! 6.163 `RANDOM_SEED' -- Initialize a pseudo-random number sequence ================================================================= _Description_: *************** _See also_: *** 8406,8412 ****  File: gfortran.info, Node: RANGE, Next: RAN, Prev: RAND, Up: Intrinsic Procedures ! 6.163 `RANGE' -- Decimal exponent range of a real kind ====================================================== _Description_: --- 8459,8465 ----  File: gfortran.info, Node: RANGE, Next: RAN, Prev: RAND, Up: Intrinsic Procedures ! 6.164 `RANGE' -- Decimal exponent range of a real kind ====================================================== _Description_: *************** _Example_: *** 8435,8441 ****  File: gfortran.info, Node: REAL, Next: RENAME, Prev: RAN, Up: Intrinsic Procedures ! 6.164 `REAL' -- Convert to real type ==================================== _Description_: --- 8488,8494 ----  File: gfortran.info, Node: REAL, Next: RENAME, Prev: RAN, Up: Intrinsic Procedures ! 6.165 `REAL' -- Convert to real type ==================================== _Description_: *************** _See also_: *** 8489,8495 ****  File: gfortran.info, Node: RENAME, Next: REPEAT, Prev: REAL, Up: Intrinsic Procedures ! 6.165 `RENAME' -- Rename a file =============================== _Description_: --- 8542,8548 ----  File: gfortran.info, Node: RENAME, Next: REPEAT, Prev: REAL, Up: Intrinsic Procedures ! 6.166 `RENAME' -- Rename a file =============================== _Description_: *************** _See also_: *** 8524,8530 ****  File: gfortran.info, Node: REPEAT, Next: RESHAPE, Prev: RENAME, Up: Intrinsic Procedures ! 6.166 `REPEAT' -- Repeated string concatenation =============================================== _Description_: --- 8577,8583 ----  File: gfortran.info, Node: REPEAT, Next: RESHAPE, Prev: RENAME, Up: Intrinsic Procedures ! 6.167 `REPEAT' -- Repeated string concatenation =============================================== _Description_: *************** _Example_: *** 8555,8561 ****  File: gfortran.info, Node: RESHAPE, Next: RRSPACING, Prev: REPEAT, Up: Intrinsic Procedures ! 6.167 `RESHAPE' -- Function to reshape an array =============================================== _Description_: --- 8608,8614 ----  File: gfortran.info, Node: RESHAPE, Next: RRSPACING, Prev: REPEAT, Up: Intrinsic Procedures ! 6.168 `RESHAPE' -- Function to reshape an array =============================================== _Description_: *************** _See also_: *** 8601,8607 ****  File: gfortran.info, Node: RRSPACING, Next: RSHIFT, Prev: RESHAPE, Up: Intrinsic Procedures ! 6.168 `RRSPACING' -- Reciprocal of the relative spacing ======================================================= _Description_: --- 8654,8660 ----  File: gfortran.info, Node: RRSPACING, Next: RSHIFT, Prev: RESHAPE, Up: Intrinsic Procedures ! 6.169 `RRSPACING' -- Reciprocal of the relative spacing ======================================================= _Description_: *************** _See also_: *** 8631,8637 ****  File: gfortran.info, Node: RSHIFT, Next: SCALE, Prev: RRSPACING, Up: Intrinsic Procedures ! 6.169 `RSHIFT' -- Right shift bits ================================== _Description_: --- 8684,8690 ----  File: gfortran.info, Node: RSHIFT, Next: SCALE, Prev: RRSPACING, Up: Intrinsic Procedures ! 6.170 `RSHIFT' -- Right shift bits ================================== _Description_: *************** _See also_: *** 8667,8673 ****  File: gfortran.info, Node: SCALE, Next: SCAN, Prev: RSHIFT, Up: Intrinsic Procedures ! 6.170 `SCALE' -- Scale a real value =================================== _Description_: --- 8720,8726 ----  File: gfortran.info, Node: SCALE, Next: SCAN, Prev: RSHIFT, Up: Intrinsic Procedures ! 6.171 `SCALE' -- Scale a real value =================================== _Description_: *************** _Example_: *** 8701,8707 ****  File: gfortran.info, Node: SCAN, Next: SECNDS, Prev: SCALE, Up: Intrinsic Procedures ! 6.171 `SCAN' -- Scan a string for the presence of a set of characters ===================================================================== _Description_: --- 8754,8760 ----  File: gfortran.info, Node: SCAN, Next: SECNDS, Prev: SCALE, Up: Intrinsic Procedures ! 6.172 `SCAN' -- Scan a string for the presence of a set of characters ===================================================================== _Description_: *************** _See also_: *** 8743,8749 ****  File: gfortran.info, Node: SECNDS, Next: SECOND, Prev: SCAN, Up: Intrinsic Procedures ! 6.172 `SECNDS' -- Time function =============================== _Description_: --- 8796,8802 ----  File: gfortran.info, Node: SECNDS, Next: SECOND, Prev: SCAN, Up: Intrinsic Procedures ! 6.173 `SECNDS' -- Time function =============================== _Description_: *************** _Example_: *** 8783,8789 ****  File: gfortran.info, Node: SECOND, Next: SELECTED_INT_KIND, Prev: SECNDS, Up: Intrinsic Procedures ! 6.173 `SECOND' -- CPU time function =================================== _Description_: --- 8836,8842 ----  File: gfortran.info, Node: SECOND, Next: SELECTED_INT_KIND, Prev: SECNDS, Up: Intrinsic Procedures ! 6.174 `SECOND' -- CPU time function =================================== _Description_: *************** _See also_: *** 8819,8825 ****  File: gfortran.info, Node: SELECTED_INT_KIND, Next: SELECTED_REAL_KIND, Prev: SECOND, Up: Intrinsic Procedures ! 6.174 `SELECTED_INT_KIND' -- Choose integer kind ================================================ _Description_: --- 8872,8878 ----  File: gfortran.info, Node: SELECTED_INT_KIND, Next: SELECTED_REAL_KIND, Prev: SECOND, Up: Intrinsic Procedures ! 6.175 `SELECTED_INT_KIND' -- Choose integer kind ================================================ _Description_: *************** _Example_: *** 8857,8863 ****  File: gfortran.info, Node: SELECTED_REAL_KIND, Next: SET_EXPONENT, Prev: SELECTED_INT_KIND, Up: Intrinsic Procedures ! 6.175 `SELECTED_REAL_KIND' -- Choose real kind ============================================== _Description_: --- 8910,8916 ----  File: gfortran.info, Node: SELECTED_REAL_KIND, Next: SET_EXPONENT, Prev: SELECTED_INT_KIND, Up: Intrinsic Procedures ! 6.176 `SELECTED_REAL_KIND' -- Choose real kind ============================================== _Description_: *************** _Example_: *** 8913,8919 ****  File: gfortran.info, Node: SET_EXPONENT, Next: SHAPE, Prev: SELECTED_REAL_KIND, Up: Intrinsic Procedures ! 6.176 `SET_EXPONENT' -- Set the exponent of the model ===================================================== _Description_: --- 8966,8972 ----  File: gfortran.info, Node: SET_EXPONENT, Next: SHAPE, Prev: SELECTED_REAL_KIND, Up: Intrinsic Procedures ! 6.177 `SET_EXPONENT' -- Set the exponent of the model ===================================================== _Description_: *************** _Example_: *** 8949,8955 ****  File: gfortran.info, Node: SHAPE, Next: SIGN, Prev: SET_EXPONENT, Up: Intrinsic Procedures ! 6.177 `SHAPE' -- Determine the shape of an array ================================================ _Description_: --- 9002,9008 ----  File: gfortran.info, Node: SHAPE, Next: SIGN, Prev: SET_EXPONENT, Up: Intrinsic Procedures ! 6.178 `SHAPE' -- Determine the shape of an array ================================================ _Description_: *************** _See also_: *** 8988,8994 ****  File: gfortran.info, Node: SIGN, Next: SIGNAL, Prev: SHAPE, Up: Intrinsic Procedures ! 6.178 `SIGN' -- Sign copying function ===================================== _Description_: --- 9041,9047 ----  File: gfortran.info, Node: SIGN, Next: SIGNAL, Prev: SHAPE, Up: Intrinsic Procedures ! 6.179 `SIGN' -- Sign copying function ===================================== _Description_: *************** _Specific names_: *** 9030,9036 ****  File: gfortran.info, Node: SIGNAL, Next: SIN, Prev: SIGN, Up: Intrinsic Procedures ! 6.179 `SIGNAL' -- Signal handling subroutine (or function) ========================================================== _Description_: --- 9083,9089 ----  File: gfortran.info, Node: SIGNAL, Next: SIN, Prev: SIGN, Up: Intrinsic Procedures ! 6.180 `SIGNAL' -- Signal handling subroutine (or function) ========================================================== _Description_: *************** _Example_: *** 9078,9084 ****  File: gfortran.info, Node: SIN, Next: SINH, Prev: SIGNAL, Up: Intrinsic Procedures ! 6.180 `SIN' -- Sine function ============================ _Description_: --- 9131,9137 ----  File: gfortran.info, Node: SIN, Next: SINH, Prev: SIGNAL, Up: Intrinsic Procedures ! 6.181 `SIN' -- Sine function ============================ _Description_: *************** _See also_: *** 9121,9127 ****  File: gfortran.info, Node: SINH, Next: SIZE, Prev: SIN, Up: Intrinsic Procedures ! 6.181 `SINH' -- Hyperbolic sine function ======================================== _Description_: --- 9174,9180 ----  File: gfortran.info, Node: SINH, Next: SIZE, Prev: SIN, Up: Intrinsic Procedures ! 6.182 `SINH' -- Hyperbolic sine function ======================================== _Description_: *************** _See also_: *** 9158,9164 ****  File: gfortran.info, Node: SIZE, Next: SLEEP, Prev: SINH, Up: Intrinsic Procedures ! 6.182 `SIZE' -- Determine the size of an array ============================================== _Description_: --- 9211,9217 ----  File: gfortran.info, Node: SIZE, Next: SLEEP, Prev: SINH, Up: Intrinsic Procedures ! 6.183 `SIZE' -- Determine the size of an array ============================================== _Description_: *************** _See also_: *** 9197,9203 ****  File: gfortran.info, Node: SLEEP, Next: SNGL, Prev: SIZE, Up: Intrinsic Procedures ! 6.183 `SLEEP' -- Sleep for the specified number of seconds ========================================================== _Description_: --- 9250,9256 ----  File: gfortran.info, Node: SLEEP, Next: SNGL, Prev: SIZE, Up: Intrinsic Procedures ! 6.184 `SLEEP' -- Sleep for the specified number of seconds ========================================================== _Description_: *************** _Example_: *** 9224,9230 ****  File: gfortran.info, Node: SNGL, Next: SPACING, Prev: SLEEP, Up: Intrinsic Procedures ! 6.184 `SNGL' -- Convert double precision real to default real ============================================================= _Description_: --- 9277,9283 ----  File: gfortran.info, Node: SNGL, Next: SPACING, Prev: SLEEP, Up: Intrinsic Procedures ! 6.185 `SNGL' -- Convert double precision real to default real ============================================================= _Description_: *************** _See also_: *** 9253,9259 ****  File: gfortran.info, Node: SPACING, Next: SPREAD, Prev: SNGL, Up: Intrinsic Procedures ! 6.185 `SPACING' -- Smallest distance between two numbers of a given type ======================================================================== _Description_: --- 9306,9312 ----  File: gfortran.info, Node: SPACING, Next: SPREAD, Prev: SNGL, Up: Intrinsic Procedures ! 6.186 `SPACING' -- Smallest distance between two numbers of a given type ======================================================================== _Description_: *************** _See also_: *** 9290,9296 ****  File: gfortran.info, Node: SPREAD, Next: SQRT, Prev: SPACING, Up: Intrinsic Procedures ! 6.186 `SPREAD' -- Add a dimension to an array ============================================= _Description_: --- 9343,9349 ----  File: gfortran.info, Node: SPREAD, Next: SQRT, Prev: SPACING, Up: Intrinsic Procedures ! 6.187 `SPREAD' -- Add a dimension to an array ============================================= _Description_: *************** _See also_: *** 9331,9337 ****  File: gfortran.info, Node: SQRT, Next: SRAND, Prev: SPREAD, Up: Intrinsic Procedures ! 6.187 `SQRT' -- Square-root function ==================================== _Description_: --- 9384,9390 ----  File: gfortran.info, Node: SQRT, Next: SRAND, Prev: SPREAD, Up: Intrinsic Procedures ! 6.188 `SQRT' -- Square-root function ==================================== _Description_: *************** _Specific names_: *** 9374,9380 ****  File: gfortran.info, Node: SRAND, Next: STAT, Prev: SQRT, Up: Intrinsic Procedures ! 6.188 `SRAND' -- Reinitialize the random number generator ========================================================= _Description_: --- 9427,9433 ----  File: gfortran.info, Node: SRAND, Next: STAT, Prev: SQRT, Up: Intrinsic Procedures ! 6.189 `SRAND' -- Reinitialize the random number generator ========================================================= _Description_: *************** _See also_: *** 9415,9421 ****  File: gfortran.info, Node: STAT, Next: SUM, Prev: SRAND, Up: Intrinsic Procedures ! 6.189 `STAT' -- Get file status =============================== _Description_: --- 9468,9474 ----  File: gfortran.info, Node: STAT, Next: SUM, Prev: SRAND, Up: Intrinsic Procedures ! 6.190 `STAT' -- Get file status =============================== _Description_: *************** _See also_: *** 9490,9496 ****  File: gfortran.info, Node: SUM, Next: SYMLNK, Prev: STAT, Up: Intrinsic Procedures ! 6.190 `SUM' -- Sum of array elements ==================================== _Description_: --- 9543,9549 ----  File: gfortran.info, Node: SUM, Next: SYMLNK, Prev: STAT, Up: Intrinsic Procedures ! 6.191 `SUM' -- Sum of array elements ==================================== _Description_: *************** _See also_: *** 9537,9543 ****  File: gfortran.info, Node: SYMLNK, Next: SYSTEM, Prev: SUM, Up: Intrinsic Procedures ! 6.191 `SYMLNK' -- Create a symbolic link ======================================== _Description_: --- 9590,9596 ----  File: gfortran.info, Node: SYMLNK, Next: SYSTEM, Prev: SUM, Up: Intrinsic Procedures ! 6.192 `SYMLNK' -- Create a symbolic link ======================================== _Description_: *************** _See also_: *** 9573,9579 ****  File: gfortran.info, Node: SYSTEM, Next: SYSTEM_CLOCK, Prev: SYMLNK, Up: Intrinsic Procedures ! 6.192 `SYSTEM' -- Execute a shell command ========================================= _Description_: --- 9626,9632 ----  File: gfortran.info, Node: SYSTEM, Next: SYSTEM_CLOCK, Prev: SYMLNK, Up: Intrinsic Procedures ! 6.193 `SYSTEM' -- Execute a shell command ========================================= _Description_: *************** _See also_: *** 9605,9611 ****  File: gfortran.info, Node: SYSTEM_CLOCK, Next: TAN, Prev: SYSTEM, Up: Intrinsic Procedures ! 6.193 `SYSTEM_CLOCK' -- Time function ===================================== _Description_: --- 9658,9664 ----  File: gfortran.info, Node: SYSTEM_CLOCK, Next: TAN, Prev: SYSTEM, Up: Intrinsic Procedures ! 6.194 `SYSTEM_CLOCK' -- Time function ===================================== _Description_: *************** _See also_: *** 9649,9655 ****  File: gfortran.info, Node: TAN, Next: TANH, Prev: SYSTEM_CLOCK, Up: Intrinsic Procedures ! 6.194 `TAN' -- Tangent function =============================== _Description_: --- 9702,9708 ----  File: gfortran.info, Node: TAN, Next: TANH, Prev: SYSTEM_CLOCK, Up: Intrinsic Procedures ! 6.195 `TAN' -- Tangent function =============================== _Description_: *************** _See also_: *** 9687,9693 ****  File: gfortran.info, Node: TANH, Next: TIME, Prev: TAN, Up: Intrinsic Procedures ! 6.195 `TANH' -- Hyperbolic tangent function =========================================== _Description_: --- 9740,9746 ----  File: gfortran.info, Node: TANH, Next: TIME, Prev: TAN, Up: Intrinsic Procedures ! 6.196 `TANH' -- Hyperbolic tangent function =========================================== _Description_: *************** _See also_: *** 9725,9731 ****  File: gfortran.info, Node: TIME, Next: TIME8, Prev: TANH, Up: Intrinsic Procedures ! 6.196 `TIME' -- Time function ============================= _Description_: --- 9778,9784 ----  File: gfortran.info, Node: TIME, Next: TIME8, Prev: TANH, Up: Intrinsic Procedures ! 6.197 `TIME' -- Time function ============================= _Description_: *************** _See also_: *** 9763,9769 ****  File: gfortran.info, Node: TIME8, Next: TINY, Prev: TIME, Up: Intrinsic Procedures ! 6.197 `TIME8' -- Time function (64-bit) ======================================= _Description_: --- 9816,9822 ----  File: gfortran.info, Node: TIME8, Next: TINY, Prev: TIME, Up: Intrinsic Procedures ! 6.198 `TIME8' -- Time function (64-bit) ======================================= _Description_: *************** _See also_: *** 9799,9805 ****  File: gfortran.info, Node: TINY, Next: TRANSFER, Prev: TIME8, Up: Intrinsic Procedures ! 6.198 `TINY' -- Smallest positive number of a real kind ======================================================= _Description_: --- 9852,9858 ----  File: gfortran.info, Node: TINY, Next: TRANSFER, Prev: TIME8, Up: Intrinsic Procedures ! 6.199 `TINY' -- Smallest positive number of a real kind ======================================================= _Description_: *************** _Example_: *** 9827,9833 ****  File: gfortran.info, Node: TRANSFER, Next: TRANSPOSE, Prev: TINY, Up: Intrinsic Procedures ! 6.199 `TRANSFER' -- Transfer bit patterns ========================================= _Description_: --- 9880,9886 ----  File: gfortran.info, Node: TRANSFER, Next: TRANSPOSE, Prev: TINY, Up: Intrinsic Procedures ! 6.200 `TRANSFER' -- Transfer bit patterns ========================================= _Description_: *************** _Example_: *** 9881,9887 ****  File: gfortran.info, Node: TRANSPOSE, Next: TRIM, Prev: TRANSFER, Up: Intrinsic Procedures ! 6.200 `TRANSPOSE' -- Transpose an array of rank two =================================================== _Description_: --- 9934,9940 ----  File: gfortran.info, Node: TRANSPOSE, Next: TRIM, Prev: TRANSFER, Up: Intrinsic Procedures ! 6.201 `TRANSPOSE' -- Transpose an array of rank two =================================================== _Description_: *************** _Return value_: *** 9908,9914 ****  File: gfortran.info, Node: TRIM, Next: TTYNAM, Prev: TRANSPOSE, Up: Intrinsic Procedures ! 6.201 `TRIM' -- Remove trailing blank characters of a string ============================================================ _Description_: --- 9961,9967 ----  File: gfortran.info, Node: TRIM, Next: TTYNAM, Prev: TRANSPOSE, Up: Intrinsic Procedures ! 6.202 `TRIM' -- Remove trailing blank characters of a string ============================================================ _Description_: *************** _See also_: *** 9942,9948 ****  File: gfortran.info, Node: TTYNAM, Next: UBOUND, Prev: TRIM, Up: Intrinsic Procedures ! 6.202 `TTYNAM' -- Get the name of a terminal device. ==================================================== _Description_: --- 9995,10001 ----  File: gfortran.info, Node: TTYNAM, Next: UBOUND, Prev: TRIM, Up: Intrinsic Procedures ! 6.203 `TTYNAM' -- Get the name of a terminal device. ==================================================== _Description_: *************** _See also_: *** 9980,9986 ****  File: gfortran.info, Node: UBOUND, Next: UMASK, Prev: TTYNAM, Up: Intrinsic Procedures ! 6.203 `UBOUND' -- Upper dimension bounds of an array ==================================================== _Description_: --- 10033,10039 ----  File: gfortran.info, Node: UBOUND, Next: UMASK, Prev: TTYNAM, Up: Intrinsic Procedures ! 6.204 `UBOUND' -- Upper dimension bounds of an array ==================================================== _Description_: *************** _See also_: *** 10015,10021 ****  File: gfortran.info, Node: UMASK, Next: UNLINK, Prev: UBOUND, Up: Intrinsic Procedures ! 6.204 `UMASK' -- Set the file creation mask =========================================== _Description_: --- 10068,10074 ----  File: gfortran.info, Node: UMASK, Next: UNLINK, Prev: UBOUND, Up: Intrinsic Procedures ! 6.205 `UMASK' -- Set the file creation mask =========================================== _Description_: *************** _Arguments_: *** 10040,10046 ****  File: gfortran.info, Node: UNLINK, Next: UNPACK, Prev: UMASK, Up: Intrinsic Procedures ! 6.205 `UNLINK' -- Remove a file from the file system ==================================================== _Description_: --- 10093,10099 ----  File: gfortran.info, Node: UNLINK, Next: UNPACK, Prev: UMASK, Up: Intrinsic Procedures ! 6.206 `UNLINK' -- Remove a file from the file system ==================================================== _Description_: *************** _See also_: *** 10073,10079 ****  File: gfortran.info, Node: UNPACK, Next: VERIFY, Prev: UNLINK, Up: Intrinsic Procedures ! 6.206 `UNPACK' -- Unpack an array of rank one into an array =========================================================== _Description_: --- 10126,10132 ----  File: gfortran.info, Node: UNPACK, Next: VERIFY, Prev: UNLINK, Up: Intrinsic Procedures ! 6.207 `UNPACK' -- Unpack an array of rank one into an array =========================================================== _Description_: *************** _See also_: *** 10116,10122 ****  File: gfortran.info, Node: VERIFY, Next: XOR, Prev: UNPACK, Up: Intrinsic Procedures ! 6.207 `VERIFY' -- Scan a string for the absence of a set of characters ====================================================================== _Description_: --- 10169,10175 ----  File: gfortran.info, Node: VERIFY, Next: XOR, Prev: UNPACK, Up: Intrinsic Procedures ! 6.208 `VERIFY' -- Scan a string for the absence of a set of characters ====================================================================== _Description_: *************** _See also_: *** 10160,10166 ****  File: gfortran.info, Node: XOR, Prev: VERIFY, Up: Intrinsic Procedures ! 6.208 `XOR' -- Bitwise logical exclusive OR =========================================== _Description_: --- 10213,10219 ----  File: gfortran.info, Node: XOR, Prev: VERIFY, Up: Intrinsic Procedures ! 6.209 `XOR' -- Bitwise logical exclusive OR =========================================== _Description_: *************** Keyword Index *** 11550,11557 **** --- 11603,11612 ---- (line 6) * COMMAND_ARGUMENT_COUNT: COMMAND_ARGUMENT_COUNT. (line 6) + * COMPLEX: COMPLEX. (line 6) * complex conjugate: CONJG. (line 6) * complex numbers, conversion to <1>: DCMPLX. (line 6) + * complex numbers, conversion to <2>: COMPLEX. (line 6) * complex numbers, conversion to: CMPLX. (line 6) * complex numbers, imaginary part: AIMAG. (line 6) * complex numbers, real part <1>: REAL. (line 6) *************** Keyword Index *** 11563,11568 **** --- 11618,11624 ---- (line 96) * conversion, to character: CHAR. (line 6) * conversion, to complex <1>: DCMPLX. (line 6) + * conversion, to complex <2>: COMPLEX. (line 6) * conversion, to complex: CMPLX. (line 6) * conversion, to integer <1>: LONG. (line 6) * conversion, to integer <2>: INT8. (line 6) *************** Node: GFORTRAN_OPTIONAL_PLUS44779 *** 12207,12446 **** Node: GFORTRAN_DEFAULT_RECL45254 Node: GFORTRAN_LIST_SEPARATOR45743 Node: GFORTRAN_CONVERT_UNIT46352 ! Node: Fortran 2003 status48924 ! Node: Extensions50014 ! Node: Old-style kind specifications51221 ! Node: Old-style variable initialization52055 ! Node: Extensions to namelist53336 ! Node: X format descriptor without count field55301 ! Node: Commas in FORMAT specifications55797 ! Node: Missing period in FORMAT specifications56283 ! Node: I/O item lists56814 ! Node: BOZ literal constants57172 ! Node: Real array indices58682 ! Node: Unary operators58948 ! Node: Implicitly convert LOGICAL and INTEGER values59331 ! Node: Hollerith constants support60087 ! Node: Cray pointers61828 ! Node: CONVERT specifier67207 ! Node: OpenMP69174 ! Node: Intrinsic Procedures69824 ! Node: Introduction to Intrinsics82366 ! Node: ABORT84679 ! Node: ABS85396 ! Node: ACCESS86888 ! Node: ACHAR88777 ! Node: ACOS89717 ! Node: ACOSH90647 ! Node: ADJUSTL91620 ! Node: ADJUSTR92514 ! Node: AIMAG93414 ! Node: AINT94824 ! Node: ALARM96269 ! Node: ALL97903 ! Node: ALLOCATED99820 ! Node: AND100689 ! Node: ANINT101865 ! Node: ANY103203 ! Node: ASIN105132 ! Node: ASINH106077 ! Node: ASSOCIATED107030 ! Node: ATAN109855 ! Node: ATAN2110689 ! Node: ATANH111968 ! Node: BESJ0112950 ! Node: BESJ1113864 ! Node: BESJN114784 ! Node: BESY0115809 ! Node: BESY1116667 ! Node: BESYN117525 ! Node: BIT_SIZE118604 ! Node: BTEST119353 ! Node: CEILING120196 ! Node: CHAR121157 ! Node: CHDIR122244 ! Node: CHMOD123479 ! Node: CMPLX125272 ! Node: COMMAND_ARGUMENT_COUNT126615 ! Node: CONJG127503 ! Node: COS128527 ! Node: COSH129740 ! Node: COUNT130558 ! Node: CPU_TIME132092 ! Node: CSHIFT133016 ! Node: CTIME134659 ! Node: DATE_AND_TIME135872 ! Node: DBLE138235 ! Node: DCMPLX139075 ! Node: DFLOAT140314 ! Node: DIGITS141011 ! Node: DIM141955 ! Node: DOT_PRODUCT143091 ! Node: DPROD144521 ! Node: DREAL145240 ! Node: DTIME145904 ! Node: EOSHIFT148198 ! Node: EPSILON150259 ! Node: ERF150955 ! Node: ERFC151752 ! Node: ETIME152567 ! Node: EXIT154745 ! Node: EXP155604 ! Node: EXPONENT156701 ! Node: FDATE157447 ! Node: FLOAT158621 ! Node: FGET159331 ! Node: FGETC160980 ! Node: FLOOR162584 ! Node: FLUSH163526 ! Node: FNUM164178 ! Node: FPUT164914 ! Node: FPUTC166351 ! Node: FRACTION167927 ! Node: FREE168821 ! Node: FSEEK169658 ! Node: FSTAT170151 ! Node: FTELL171080 ! Node: GERROR172059 ! Node: GETARG172767 ! Node: GET_COMMAND174364 ! Node: GET_COMMAND_ARGUMENT175244 ! Node: GETCWD176640 ! Node: GETENV177444 ! Node: GET_ENVIRONMENT_VARIABLE178608 ! Node: GETGID179542 ! Node: GETLOG180077 ! Node: GETPID180833 ! Node: GETUID181561 ! Node: GMTIME182075 ! Node: HOSTNM183630 ! Node: HUGE184568 ! Node: IACHAR185283 ! Node: IAND186209 ! Node: IARGC187197 ! Node: IBCLR188225 ! Node: IBITS188886 ! Node: IBSET189804 ! Node: ICHAR190460 ! Node: IDATE192189 ! Node: IEOR193205 ! Node: IERRNO194082 ! Node: INDEX194641 ! Node: INT195735 ! Node: INT2197249 ! Node: INT8198029 ! Node: IOR198756 ! Node: IRAND199601 ! Node: ISATTY200690 ! Node: ISHFT201484 ! Node: ISHFTC202466 ! Node: ITIME203687 ! Node: KILL204704 ! Node: KIND205470 ! Node: LBOUND206308 ! Node: LEN207288 ! Node: LEN_TRIM208110 ! Node: LGE208822 ! Node: LGT210127 ! Node: LINK211397 ! Node: LLE212446 ! Node: LLT213743 ! Node: LNBLNK215006 ! Node: LOC215775 ! Node: LOG216506 ! Node: LOG10217708 ! Node: LOGICAL218574 ! Node: LONG219401 ! Node: LSHIFT220172 ! Node: LSTAT221135 ! Node: LTIME222161 ! Node: MALLOC223640 ! Node: MATMUL225318 ! Node: MAX226507 ! Node: MAXEXPONENT228012 ! Node: MAXLOC228821 ! Node: MAXVAL230954 ! Node: MCLOCK232746 ! Node: MCLOCK8233763 ! Node: MERGE234991 ! Node: MIN235752 ! Node: MINEXPONENT237254 ! Node: MINLOC237877 ! Node: MINVAL240010 ! Node: MOD241776 ! Node: MODULO243153 ! Node: MOVE_ALLOC244360 ! Node: MVBITS245418 ! Node: NEAREST246602 ! Node: NEW_LINE247718 ! Node: NINT248503 ! Node: NOT249523 ! Node: NULL250105 ! Node: OR250989 ! Node: PACK252146 ! Node: PERROR254133 ! Node: PRECISION254723 ! Node: PRESENT255542 ! Node: PRODUCT256641 ! Node: RADIX258168 ! Node: RAN258938 ! Node: RAND259408 ! Node: RANDOM_NUMBER260484 ! Node: RANDOM_SEED261813 ! Node: RANGE263689 ! Node: REAL264309 ! Node: RENAME265810 ! Node: REPEAT266843 ! Node: RESHAPE267568 ! Node: RRSPACING269030 ! Node: RSHIFT269716 ! Node: SCALE270687 ! Node: SCAN271454 ! Node: SECNDS272749 ! Node: SECOND273851 ! Node: SELECTED_INT_KIND274740 ! Node: SELECTED_REAL_KIND275896 ! Node: SET_EXPONENT277835 ! Node: SHAPE278824 ! Node: SIGN279930 ! Node: SIGNAL281006 ! Node: SIN282517 ! Node: SINH283558 ! Node: SIZE284315 ! Node: SLEEP285371 ! Node: SNGL285926 ! Node: SPACING286590 ! Node: SPREAD287598 ! Node: SQRT288736 ! Node: SRAND289920 ! Node: STAT291093 ! Node: SUM294073 ! Node: SYMLNK295544 ! Node: SYSTEM296690 ! Node: SYSTEM_CLOCK297652 ! Node: TAN298989 ! Node: TANH299770 ! Node: TIME300582 ! Node: TIME8301700 ! Node: TINY302851 ! Node: TRANSFER303448 ! Node: TRANSPOSE305473 ! Node: TRIM306157 ! Node: TTYNAM307013 ! Node: UBOUND307948 ! Node: UMASK308987 ! Node: UNLINK309575 ! Node: UNPACK310566 ! Node: VERIFY311846 ! Node: XOR313307 ! Node: Contributing314493 ! Node: Contributors315348 ! Node: Projects316818 ! Node: Proposed Extensions317610 ! Node: Copying319808 ! Node: GNU Free Documentation License339017 ! Node: Funding361429 ! Node: Option Index363954 ! Node: Keyword Index370608  End Tag Table --- 12263,12503 ---- Node: GFORTRAN_DEFAULT_RECL45254 Node: GFORTRAN_LIST_SEPARATOR45743 Node: GFORTRAN_CONVERT_UNIT46352 ! Node: Fortran 2003 status49195 ! Node: Extensions50285 ! Node: Old-style kind specifications51492 ! Node: Old-style variable initialization52326 ! Node: Extensions to namelist53607 ! Node: X format descriptor without count field55572 ! Node: Commas in FORMAT specifications56068 ! Node: Missing period in FORMAT specifications56554 ! Node: I/O item lists57085 ! Node: BOZ literal constants57443 ! Node: Real array indices58953 ! Node: Unary operators59219 ! Node: Implicitly convert LOGICAL and INTEGER values59602 ! Node: Hollerith constants support60358 ! Node: Cray pointers62099 ! Node: CONVERT specifier67478 ! Node: OpenMP69445 ! Node: Intrinsic Procedures70095 ! Node: Introduction to Intrinsics82695 ! Node: ABORT85008 ! Node: ABS85725 ! Node: ACCESS87217 ! Node: ACHAR89106 ! Node: ACOS90046 ! Node: ACOSH90976 ! Node: ADJUSTL91949 ! Node: ADJUSTR92843 ! Node: AIMAG93743 ! Node: AINT95153 ! Node: ALARM96598 ! Node: ALL98232 ! Node: ALLOCATED100149 ! Node: AND101018 ! Node: ANINT102194 ! Node: ANY103532 ! Node: ASIN105461 ! Node: ASINH106406 ! Node: ASSOCIATED107359 ! Node: ATAN110184 ! Node: ATAN2111018 ! Node: ATANH112297 ! Node: BESJ0113279 ! Node: BESJ1114193 ! Node: BESJN115113 ! Node: BESY0116138 ! Node: BESY1116996 ! Node: BESYN117854 ! Node: BIT_SIZE118933 ! Node: BTEST119682 ! Node: CEILING120525 ! Node: CHAR121486 ! Node: CHDIR122573 ! Node: CHMOD123808 ! Node: CMPLX125601 ! Node: COMMAND_ARGUMENT_COUNT127140 ! Node: COMPLEX128030 ! Node: CONJG129185 ! Node: COS130194 ! Node: COSH131407 ! Node: COUNT132225 ! Node: CPU_TIME133759 ! Node: CSHIFT134683 ! Node: CTIME136326 ! Node: DATE_AND_TIME137539 ! Node: DBLE139902 ! Node: DCMPLX140742 ! Node: DFLOAT141981 ! Node: DIGITS142678 ! Node: DIM143622 ! Node: DOT_PRODUCT144758 ! Node: DPROD146188 ! Node: DREAL146907 ! Node: DTIME147571 ! Node: EOSHIFT149865 ! Node: EPSILON151926 ! Node: ERF152622 ! Node: ERFC153419 ! Node: ETIME154234 ! Node: EXIT156412 ! Node: EXP157271 ! Node: EXPONENT158368 ! Node: FDATE159114 ! Node: FLOAT160288 ! Node: FGET160998 ! Node: FGETC162647 ! Node: FLOOR164251 ! Node: FLUSH165193 ! Node: FNUM165845 ! Node: FPUT166581 ! Node: FPUTC168018 ! Node: FRACTION169594 ! Node: FREE170488 ! Node: FSEEK171325 ! Node: FSTAT171818 ! Node: FTELL172747 ! Node: GERROR173726 ! Node: GETARG174434 ! Node: GET_COMMAND176031 ! Node: GET_COMMAND_ARGUMENT176911 ! Node: GETCWD178307 ! Node: GETENV179111 ! Node: GET_ENVIRONMENT_VARIABLE180275 ! Node: GETGID181209 ! Node: GETLOG181744 ! Node: GETPID182500 ! Node: GETUID183228 ! Node: GMTIME183742 ! Node: HOSTNM185297 ! Node: HUGE186235 ! Node: IACHAR186950 ! Node: IAND187876 ! Node: IARGC188864 ! Node: IBCLR189892 ! Node: IBITS190553 ! Node: IBSET191471 ! Node: ICHAR192127 ! Node: IDATE193856 ! Node: IEOR194872 ! Node: IERRNO195751 ! Node: INDEX196310 ! Node: INT197404 ! Node: INT2198918 ! Node: INT8199698 ! Node: IOR200425 ! Node: IRAND201270 ! Node: ISATTY202359 ! Node: ISHFT203153 ! Node: ISHFTC204135 ! Node: ITIME205356 ! Node: KILL206373 ! Node: KIND207139 ! Node: LBOUND207977 ! Node: LEN208957 ! Node: LEN_TRIM209779 ! Node: LGE210491 ! Node: LGT211796 ! Node: LINK213066 ! Node: LLE214115 ! Node: LLT215412 ! Node: LNBLNK216675 ! Node: LOC217444 ! Node: LOG218175 ! Node: LOG10219377 ! Node: LOGICAL220243 ! Node: LONG221070 ! Node: LSHIFT221841 ! Node: LSTAT222804 ! Node: LTIME223830 ! Node: MALLOC225309 ! Node: MATMUL226987 ! Node: MAX228176 ! Node: MAXEXPONENT229681 ! Node: MAXLOC230490 ! Node: MAXVAL232623 ! Node: MCLOCK234415 ! Node: MCLOCK8235432 ! Node: MERGE236660 ! Node: MIN237421 ! Node: MINEXPONENT238923 ! Node: MINLOC239546 ! Node: MINVAL241679 ! Node: MOD243445 ! Node: MODULO244822 ! Node: MOVE_ALLOC246029 ! Node: MVBITS247087 ! Node: NEAREST248271 ! Node: NEW_LINE249387 ! Node: NINT250172 ! Node: NOT251192 ! Node: NULL251774 ! Node: OR252658 ! Node: PACK253815 ! Node: PERROR255802 ! Node: PRECISION256392 ! Node: PRESENT257211 ! Node: PRODUCT258310 ! Node: RADIX259837 ! Node: RAN260607 ! Node: RAND261077 ! Node: RANDOM_NUMBER262153 ! Node: RANDOM_SEED263482 ! Node: RANGE265358 ! Node: REAL265978 ! Node: RENAME267479 ! Node: REPEAT268512 ! Node: RESHAPE269237 ! Node: RRSPACING270699 ! Node: RSHIFT271385 ! Node: SCALE272356 ! Node: SCAN273123 ! Node: SECNDS274418 ! Node: SECOND275520 ! Node: SELECTED_INT_KIND276409 ! Node: SELECTED_REAL_KIND277565 ! Node: SET_EXPONENT279504 ! Node: SHAPE280493 ! Node: SIGN281599 ! Node: SIGNAL282675 ! Node: SIN284186 ! Node: SINH285227 ! Node: SIZE285984 ! Node: SLEEP287040 ! Node: SNGL287595 ! Node: SPACING288259 ! Node: SPREAD289267 ! Node: SQRT290405 ! Node: SRAND291589 ! Node: STAT292762 ! Node: SUM295742 ! Node: SYMLNK297213 ! Node: SYSTEM298359 ! Node: SYSTEM_CLOCK299321 ! Node: TAN300658 ! Node: TANH301439 ! Node: TIME302251 ! Node: TIME8303369 ! Node: TINY304520 ! Node: TRANSFER305117 ! Node: TRANSPOSE307142 ! Node: TRIM307826 ! Node: TTYNAM308682 ! Node: UBOUND309617 ! Node: UMASK310656 ! Node: UNLINK311244 ! Node: UNPACK312235 ! Node: VERIFY313515 ! Node: XOR314976 ! Node: Contributing316162 ! Node: Contributors317017 ! Node: Projects318487 ! Node: Proposed Extensions319279 ! Node: Copying321477 ! Node: GNU Free Documentation License340686 ! Node: Funding363098 ! Node: Option Index365623 ! Node: Keyword Index372277  End Tag Table diff -Nrcpad gcc-4.2.0/gcc/fortran/gfortran.texi gcc-4.2.1/gcc/fortran/gfortran.texi *** gcc-4.2.0/gcc/fortran/gfortran.texi Sun Apr 29 10:49:14 2007 --- gcc-4.2.1/gcc/fortran/gfortran.texi Thu May 17 08:43:04 2007 *************** By setting the @env{GFORTRAN_CONVERT_UNI *** 611,617 **** to change the representation of data for unformatted files. The syntax for the @env{GFORTRAN_CONVERT_UNIT} variable is: @smallexample ! GFORTRAN_CONVERT_UNIT: mode | mode ';' exception ; mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ; exception: mode ':' unit_list | unit_list ; unit_list: unit_spec | unit_list unit_spec ; --- 611,617 ---- to change the representation of data for unformatted files. The syntax for the @env{GFORTRAN_CONVERT_UNIT} variable is: @smallexample ! GFORTRAN_CONVERT_UNIT: mode | mode ';' exception | exception ; mode: 'native' | 'swap' | 'big_endian' | 'little_endian' ; exception: mode ':' unit_list | unit_list ; unit_list: unit_spec | unit_list unit_spec ; *************** data representation for unformatted file *** 668,673 **** --- 668,678 ---- setting a default data representation for the whole program. The @code{CONVERT} specifier overrides the @option{-fconvert} compile options. + @emph{Note that the values specified via the GFORTRAN_CONVERT_UNIT + environment variable will override the CONVERT specifier in the + open statement}. This is to give control over data formats to + users who do not have the source code of their program available. + @c ===================================================================== @c PART II: LANGUAGE REFERENCE diff -Nrcpad gcc-4.2.0/gcc/fortran/intrinsic.texi gcc-4.2.1/gcc/fortran/intrinsic.texi *** gcc-4.2.0/gcc/fortran/intrinsic.texi Mon Apr 30 15:04:26 2007 --- gcc-4.2.1/gcc/fortran/intrinsic.texi Wed Jul 11 06:25:47 2007 *************** Some basic guidelines for editing this d *** 76,81 **** --- 76,82 ---- * @code{CHMOD}: CHMOD, Change access permissions of files * @code{CMPLX}: CMPLX, Complex conversion function * @code{COMMAND_ARGUMENT_COUNT}: COMMAND_ARGUMENT_COUNT, Get number of command line arguments + * @code{COMPLEX}: COMPLEX, Complex conversion function * @code{CONJG}: CONJG, Complex conjugate function * @code{COS}: COS, Cosine function * @code{COSH}: COSH, Hyperbolic cosine function *************** Elemental function *** 2083,2089 **** @end multitable @item @emph{Return value}: ! The return value is of type @code{COMPLEX(*)} @item @emph{Example}: @smallexample --- 2084,2093 ---- @end multitable @item @emph{Return value}: ! The return value is of @code{COMPLEX} type, with a kind equal to ! @var{KIND} if it is specified. If @var{KIND} is not specified, the ! result is of the default @code{COMPLEX} kind, regardless of the kinds of ! @var{X} and @var{Y}. @item @emph{Example}: @smallexample *************** program test_cmplx *** 2095,2100 **** --- 2099,2107 ---- print *, z, cmplx(x) end program test_cmplx @end smallexample + + @item @emph{See also}: + @ref{COMPLEX} @end table *************** end program test_command_argument_count *** 2143,2148 **** --- 2150,2206 ---- + @node COMPLEX + @section @code{COMPLEX} --- Complex conversion function + @fnindex COMPLEX + @cindex complex numbers, conversion to + @cindex conversion, to complex + + @table @asis + @item @emph{Description}: + @code{COMPLEX(X, Y)} returns a complex number where @var{X} is converted + to the real component and @var{Y} is converted to the imaginary + component. + + @item @emph{Standard}: + GNU extension + + @item @emph{Class}: + Elemental function + + @item @emph{Syntax}: + @code{RESULT = COMPLEX(X, Y)} + + @item @emph{Arguments}: + @multitable @columnfractions .15 .70 + @item @var{X} @tab The type may be @code{INTEGER(*)} or @code{REAL(*)}. + @item @var{Y} @tab The type may be @code{INTEGER(*)} or @code{REAL(*)}. + @end multitable + + @item @emph{Return value}: + If @var{X} and @var{Y} are both of @code{INTEGER} type, then the return + value is of default @code{COMPLEX} type. + + If @var{X} and @var{Y} are of @code{REAL} type, or one is of @code{REAL} + type and one is of @code{INTEGER} type, then the return value is of + @code{COMPLEX} type with a kind equal to that of the @code{REAL} + argument with the highest precision. + + @item @emph{Example}: + @smallexample + program test_complex + integer :: i = 42 + real :: x = 3.14 + print *, complex(i, x) + end program test_complex + @end smallexample + + @item @emph{See also}: + @ref{CMPLX} + @end table + + + @node CONJG @section @code{CONJG} --- Complex conjugate function @fnindex CONJG diff -Nrcpad gcc-4.2.0/gcc/fortran/primary.c gcc-4.2.1/gcc/fortran/primary.c *** gcc-4.2.0/gcc/fortran/primary.c Mon Mar 5 12:58:14 2007 --- gcc-4.2.1/gcc/fortran/primary.c Tue May 22 14:09:42 2007 *************** match_variable (gfc_expr ** result, int *** 2415,2421 **** case FL_PROCEDURE: /* Check for a nonrecursive function result */ ! if (sym->attr.function && (sym->result == sym || sym->attr.entry)) { /* If a function result is a derived type, then the derived type may still have to be resolved. */ --- 2415,2422 ---- case FL_PROCEDURE: /* Check for a nonrecursive function result */ ! if (sym->attr.function && (sym->result == sym || sym->attr.entry) ! && !sym->attr.external) { /* If a function result is a derived type, then the derived type may still have to be resolved. */ diff -Nrcpad gcc-4.2.0/gcc/fortran/resolve.c gcc-4.2.1/gcc/fortran/resolve.c *** gcc-4.2.0/gcc/fortran/resolve.c Thu Mar 1 09:43:53 2007 --- gcc-4.2.1/gcc/fortran/resolve.c Wed Jun 20 21:35:04 2007 *************** resolve_actual_arglist (gfc_actual_argli *** 1006,1011 **** --- 1006,1018 ---- e->ref->u.ar.as = sym->as; } + /* Expressions are assigned a default ts.type of BT_PROCEDURE in + primary.c (match_actual_arg). If above code determines that it + is a variable instead, it needs to be resolved as it was not + done at the beginning of this function. */ + if (gfc_resolve_expr (e) != SUCCESS) + return FAILURE; + argument_list: /* Check argument list functions %VAL, %LOC and %REF. There is nothing to do for %REF. */ *************** resolve_fl_procedure (gfc_symbol *sym, i *** 5742,5747 **** --- 5749,5759 ---- if (sym->ts.type == BT_CHARACTER) { gfc_charlen *cl = sym->ts.cl; + + if (cl && cl->length && gfc_is_constant_expr (cl->length) + && resolve_charlen (cl) == FAILURE) + return FAILURE; + if (!cl || !cl->length || cl->length->expr_type != EXPR_CONSTANT) { if (sym->attr.proc == PROC_ST_FUNCTION) diff -Nrcpad gcc-4.2.0/gcc/fortran/trans-array.c gcc-4.2.1/gcc/fortran/trans-array.c *** gcc-4.2.0/gcc/fortran/trans-array.c Sun Apr 29 06:16:45 2007 --- gcc-4.2.1/gcc/fortran/trans-array.c Thu May 31 18:50:56 2007 *************** gfc_conv_expr_descriptor (gfc_se * se, g *** 4422,4427 **** --- 4422,4429 ---- if (se->direct_byref) base = gfc_index_zero_node; + else if (GFC_ARRAY_TYPE_P (TREE_TYPE (desc))) + base = gfc_evaluate_now (gfc_conv_array_offset (desc), &loop.pre); else base = NULL_TREE; *************** gfc_conv_expr_descriptor (gfc_se * se, g *** 4489,4496 **** stride, info->stride[dim]); if (se->direct_byref) ! base = fold_build2 (MINUS_EXPR, TREE_TYPE (base), ! base, stride); /* Store the new stride. */ tmp = gfc_conv_descriptor_stride (parm, gfc_rank_cst[dim]); --- 4491,4510 ---- stride, info->stride[dim]); if (se->direct_byref) ! { ! base = fold_build2 (MINUS_EXPR, TREE_TYPE (base), ! base, stride); ! } ! else if (GFC_ARRAY_TYPE_P (TREE_TYPE (desc))) ! { ! tmp = gfc_conv_array_lbound (desc, n); ! tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (base), ! tmp, loop.from[dim]); ! tmp = fold_build2 (MULT_EXPR, TREE_TYPE (base), ! tmp, gfc_conv_array_stride (desc, n)); ! base = fold_build2 (PLUS_EXPR, TREE_TYPE (base), ! tmp, base); ! } /* Store the new stride. */ tmp = gfc_conv_descriptor_stride (parm, gfc_rank_cst[dim]); *************** gfc_conv_expr_descriptor (gfc_se * se, g *** 4511,4517 **** gfc_conv_descriptor_data_set (&loop.pre, parm, offset); } ! if (se->direct_byref && !se->data_not_needed) { /* Set the offset. */ tmp = gfc_conv_descriptor_offset (parm); --- 4525,4532 ---- gfc_conv_descriptor_data_set (&loop.pre, parm, offset); } ! if ((se->direct_byref || GFC_ARRAY_TYPE_P (TREE_TYPE (desc))) ! && !se->data_not_needed) { /* Set the offset. */ tmp = gfc_conv_descriptor_offset (parm); diff -Nrcpad gcc-4.2.0/gcc/fortran/trans-common.c gcc-4.2.1/gcc/fortran/trans-common.c *** gcc-4.2.0/gcc/fortran/trans-common.c Mon Oct 9 16:27:14 2006 --- gcc-4.2.1/gcc/fortran/trans-common.c Wed Jun 20 05:02:39 2007 *************** build_common_decl (gfc_common_head *com, *** 359,372 **** tree size = TYPE_SIZE_UNIT (union_type); if (tree_int_cst_lt (DECL_SIZE_UNIT (decl), size)) { ! /* Named common blocks of the same name shall be of the same size ! in all scoping units of a program in which they appear, but ! blank common blocks may be of different sizes. */ ! if (strcmp (com->name, BLANK_COMMON_NAME)) gfc_warning ("Named COMMON block '%s' at %L shall be of the " "same size", com->name, &com->where); ! DECL_SIZE_UNIT (decl) = size; ! } } /* If this common block has been declared in a previous program unit, --- 359,373 ---- tree size = TYPE_SIZE_UNIT (union_type); if (tree_int_cst_lt (DECL_SIZE_UNIT (decl), size)) { ! /* Named common blocks of the same name shall be of the same size ! in all scoping units of a program in which they appear, but ! blank common blocks may be of different sizes. */ ! if (strcmp (com->name, BLANK_COMMON_NAME)) gfc_warning ("Named COMMON block '%s' at %L shall be of the " "same size", com->name, &com->where); ! DECL_SIZE_UNIT (decl) = size; ! TREE_TYPE (decl) = union_type; ! } } /* If this common block has been declared in a previous program unit, diff -Nrcpad gcc-4.2.0/gcc/fortran/trans-expr.c gcc-4.2.1/gcc/fortran/trans-expr.c *** gcc-4.2.0/gcc/fortran/trans-expr.c Fri Feb 16 12:19:01 2007 --- gcc-4.2.1/gcc/fortran/trans-expr.c Thu May 31 18:50:56 2007 *************** gfc_conv_substring (gfc_se * se, gfc_ref *** 255,260 **** --- 255,264 ---- gfc_conv_string_parameter (se); else { + /* Avoid multiple evaluation of substring start. */ + if (!CONSTANT_CLASS_P (start.expr) && !DECL_P (start.expr)) + start.expr = gfc_evaluate_now (start.expr, &se->pre); + /* Change the start of the string. */ if (TYPE_STRING_FLAG (TREE_TYPE (se->expr))) tmp = se->expr; *************** gfc_conv_substring (gfc_se * se, gfc_ref *** 273,278 **** --- 277,286 ---- gfc_conv_expr_type (&end, ref->u.ss.end, gfc_charlen_type_node); gfc_add_block_to_block (&se->pre, &end.pre); } + + if (!CONSTANT_CLASS_P (end.expr) && !DECL_P (end.expr)) + end.expr = gfc_evaluate_now (end.expr, &se->pre); + tmp = fold_build2 (MINUS_EXPR, gfc_charlen_type_node, build_int_cst (gfc_charlen_type_node, 1), start.expr); *************** gfc_conv_function_call (gfc_se * se, gfc *** 2340,2356 **** /* Generate the actual call. */ gfc_conv_function_val (se, sym); /* If there are alternate return labels, function type should be integer. Can't modify the type in place though, since it can be shared ! with other functions. */ if (has_alternate_specifier && TREE_TYPE (TREE_TYPE (TREE_TYPE (se->expr))) != integer_type_node) { ! gcc_assert (! sym->attr.dummy); ! TREE_TYPE (sym->backend_decl) ! = build_function_type (integer_type_node, ! TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl))); ! se->expr = build_fold_addr_expr (sym->backend_decl); } fntype = TREE_TYPE (TREE_TYPE (se->expr)); --- 2348,2370 ---- /* Generate the actual call. */ gfc_conv_function_val (se, sym); + /* If there are alternate return labels, function type should be integer. Can't modify the type in place though, since it can be shared ! with other functions. For dummy arguments, the typing is done to ! to this result, even if it has to be repeated for each call. */ if (has_alternate_specifier && TREE_TYPE (TREE_TYPE (TREE_TYPE (se->expr))) != integer_type_node) { ! if (!sym->attr.dummy) ! { ! TREE_TYPE (sym->backend_decl) ! = build_function_type (integer_type_node, ! TYPE_ARG_TYPES (TREE_TYPE (sym->backend_decl))); ! se->expr = build_fold_addr_expr (sym->backend_decl); ! } ! else ! TREE_TYPE (TREE_TYPE (TREE_TYPE (se->expr))) = integer_type_node; } fntype = TREE_TYPE (TREE_TYPE (se->expr)); diff -Nrcpad gcc-4.2.0/libgfortran/ChangeLog gcc-4.2.1/libgfortran/ChangeLog *** gcc-4.2.0/libgfortran/ChangeLog Mon May 14 03:12:12 2007 --- gcc-4.2.1/libgfortran/ChangeLog Thu Jul 19 14:29:51 2007 *************** *** 1,3 **** --- 1,64 ---- + 2007-07-19 Release Manager + + * GCC 4.2.1 released. + + 2007-07-07 Jerry DeLisle + + PR libgfortran/32554 + Backport from trunk. + * io/write.c (output_float): Set edigits to a fixed size, avoiding + variation in field width calculation and eliminate buffer overrun. + + 2007-05-23 Jerry DeLisle + + PR libfortran/31964 + Backport from trunk. + * intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle + shift of bit-size number of bits. + + 2007-05-23 Tobias Burnus + + PR fortran/31917 + Backport from trunk. + * runtime/environ.c (mark_range): Fix setting default convert unit. + + 2007-05-22 Jerry DeLisle + + PR libfortran/31051 + Backport from trunk. + * io/transfer.c (formatted_transfer_scalar): Adjust position for pending + spaces when in writing mode. Clean up some formatting. + + 2007-05-22 Tobias Burnus + + PR libfortran/31915 + Backport from trunk. + * io/transfer.c (unformatted_read): Use proper size for real(10). + (unformatted_write): Ditto. + + 2007-05-20 Jerry DeLisle + + PR libfortran/31395 + Backport from 4.3. + * io/format.c (parse_format_list): Fix parsing. Regression against g77. + + 2007-05-20 Thomas Koenig + + PR fortran/31618 + Backport from trunk. + * io/transfer.c (read_block_direct): Instead of calling us_read, + set dtp->u.p.current_unit->current_record = 0 so that pre_position + will read the record marker. + (data_transfer_init): For different error conditions, call + generate_error, then return. + + 2007-05-20 Thomas Koenig + + PR libfortran/31196 + Backport from trunk. + * intrinsics/reshape_generic.c (reshape_internal): Increment + correct variable. + 2007-05-13 Release Manager * GCC 4.2.0 released. diff -Nrcpad gcc-4.2.0/libgfortran/intrinsics/ishftc.c gcc-4.2.1/libgfortran/intrinsics/ishftc.c *** gcc-4.2.0/libgfortran/intrinsics/ishftc.c Mon Oct 3 07:22:20 2005 --- gcc-4.2.1/libgfortran/intrinsics/ishftc.c Thu May 24 05:22:32 2007 *************** export_proto(ishftc4); *** 36,43 **** GFC_INTEGER_4 ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_INTEGER_4 mask; ! GFC_UINTEGER_4 bits; if (shift < 0) shift = shift + size; --- 36,42 ---- GFC_INTEGER_4 ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_UINTEGER_4 mask, bits; if (shift < 0) shift = shift + size; *************** ishftc4 (GFC_INTEGER_4 i, GFC_INTEGER_4 *** 45,53 **** if (shift == 0 || shift == size) return i; ! mask = (~(GFC_INTEGER_4)0) << size; ! bits = i & ~mask; ! return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask); } extern GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8, GFC_INTEGER_4, GFC_INTEGER_4); --- 44,57 ---- if (shift == 0 || shift == size) return i; ! /* In C, the result of the shift operator is undefined if the right operand ! is greater than or equal to the number of bits in the left operand. So we ! have to special case it for fortran. */ ! mask = ~((size == 32) ? 0 : (~0 << size)); ! ! bits = i & mask; ! ! return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift)); } extern GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8, GFC_INTEGER_4, GFC_INTEGER_4); *************** export_proto(ishftc8); *** 56,63 **** GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_INTEGER_8 mask; ! GFC_UINTEGER_8 bits; if (shift < 0) shift = shift + size; --- 60,66 ---- GFC_INTEGER_8 ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_UINTEGER_8 mask, bits; if (shift < 0) shift = shift + size; *************** ishftc8 (GFC_INTEGER_8 i, GFC_INTEGER_4 *** 65,73 **** if (shift == 0 || shift == size) return i; ! mask = (~(GFC_INTEGER_8)0) << size; ! bits = i & ~mask; ! return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask); } #ifdef HAVE_GFC_INTEGER_16 --- 68,81 ---- if (shift == 0 || shift == size) return i; ! /* In C, the result of the shift operator is undefined if the right operand ! is greater than or equal to the number of bits in the left operand. So we ! have to special case it for fortran. */ ! mask = ~((size == 64) ? 0 : (~0 << size)); ! ! bits = i & mask; ! ! return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift)); } #ifdef HAVE_GFC_INTEGER_16 *************** export_proto(ishftc16); *** 77,84 **** GFC_INTEGER_16 ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_INTEGER_16 mask; ! GFC_UINTEGER_16 bits; if (shift < 0) shift = shift + size; --- 85,91 ---- GFC_INTEGER_16 ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_4 shift, GFC_INTEGER_4 size) { ! GFC_UINTEGER_16 mask, bits; if (shift < 0) shift = shift + size; *************** ishftc16 (GFC_INTEGER_16 i, GFC_INTEGER_ *** 86,93 **** if (shift == 0 || shift == size) return i; ! mask = (~(GFC_INTEGER_16)0) << size; ! bits = i & ~mask; ! return (i & mask) | (bits >> (size - shift)) | ((i << shift) & ~mask); } #endif --- 93,105 ---- if (shift == 0 || shift == size) return i; ! /* In C, the result of the shift operator is undefined if the right operand ! is greater than or equal to the number of bits in the left operand. So we ! have to special case it for fortran. */ ! mask = ~((size == 128) ? 0 : (~0 << size)); ! ! bits = i & mask; ! ! return (i & ~mask) | ((bits << shift) & mask) | (bits >> (size - shift)); } #endif diff -Nrcpad gcc-4.2.0/libgfortran/intrinsics/reshape_generic.c gcc-4.2.1/libgfortran/intrinsics/reshape_generic.c *** gcc-4.2.0/libgfortran/intrinsics/reshape_generic.c Tue Nov 14 06:18:36 2006 --- gcc-4.2.1/libgfortran/intrinsics/reshape_generic.c Sun May 20 12:28:29 2007 *************** reshape_internal (parray *ret, parray *s *** 266,272 **** else { scount[n]++; ! sptr += sstride[n] * size; } } } --- 266,272 ---- else { scount[n]++; ! src += sstride[n] * size; } } } diff -Nrcpad gcc-4.2.0/libgfortran/io/format.c gcc-4.2.1/libgfortran/io/format.c *** gcc-4.2.0/libgfortran/io/format.c Tue Jul 4 01:36:31 2006 --- gcc-4.2.1/libgfortran/io/format.c Mon May 21 00:04:43 2007 *************** parse_format_list (st_parameter_dt *dtp) *** 860,869 **** case FMT_SLASH: get_fnode (fmt, &head, &tail, FMT_SLASH); tail->repeat = 1; ! ! /* Fall Through */ case FMT_COLON: goto optional_comma; case FMT_END: --- 860,870 ---- case FMT_SLASH: get_fnode (fmt, &head, &tail, FMT_SLASH); tail->repeat = 1; ! goto optional_comma; case FMT_COLON: + get_fnode (fmt, &head, &tail, FMT_COLON); + tail->repeat = 1; goto optional_comma; case FMT_END: diff -Nrcpad gcc-4.2.0/libgfortran/io/transfer.c gcc-4.2.1/libgfortran/io/transfer.c *** gcc-4.2.0/libgfortran/io/transfer.c Wed Apr 18 04:35:41 2007 --- gcc-4.2.1/libgfortran/io/transfer.c Wed May 23 02:24:31 2007 *************** read_block_direct (st_parameter_dt *dtp, *** 493,503 **** } else { ! /* Let's make sure the file position is correctly set for the ! next read statement. */ next_record_r_unf (dtp, 0); - us_read (dtp, 0); generate_error (&dtp->common, ERROR_SHORT_RECORD, NULL); return; } --- 493,503 ---- } else { ! /* Let's make sure the file position is correctly pre-positioned ! for the next read statement. */ + dtp->u.p.current_unit->current_record = 0; next_record_r_unf (dtp, 0); generate_error (&dtp->common, ERROR_SHORT_RECORD, NULL); return; } *************** unformatted_read (st_parameter_dt *dtp, *** 722,728 **** of the padding. If we hit a short record, then sz is adjusted accordingly, making later reads no-ops. */ ! sz = kind; for (i=0; iu.n + dtp->u.p.skips; dtp->u.p.skips = f->u.n + dtp->u.p.skips; --- 1152,1158 ---- /* Format codes that don't transfer data. */ case FMT_X: case FMT_TR: ! consume_data_flag = 0; pos = bytes_used + f->u.n + dtp->u.p.skips; dtp->u.p.skips = f->u.n + dtp->u.p.skips; *************** formatted_transfer_scalar (st_parameter_ *** 1160,1165 **** --- 1168,1174 ---- write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces); dtp->u.p.skips = dtp->u.p.pending_spaces = 0; } + if (dtp->u.p.mode == READING) read_x (dtp, f->u.n); *************** formatted_transfer_scalar (st_parameter_ *** 1167,1172 **** --- 1176,1183 ---- case FMT_TL: case FMT_T: + consume_data_flag = 0; + if (f->format == FMT_TL) { *************** formatted_transfer_scalar (st_parameter_ *** 1185,1192 **** } else /* FMT_T */ { ! consume_data_flag = 0; ! pos = f->u.n - 1; } /* Standard 10.6.1.1: excessive left tabbing is reset to the --- 1196,1205 ---- } else /* FMT_T */ { ! if (dtp->u.p.mode == READING) ! pos = f->u.n - 1; ! else ! pos = f->u.n - dtp->u.p.pending_spaces - 1; } /* Standard 10.6.1.1: excessive left tabbing is reset to the *************** data_transfer_init (st_parameter_dt *dtp *** 1753,1767 **** /* Check the action. */ if (read_flag && dtp->u.p.current_unit->flags.action == ACTION_WRITE) ! generate_error (&dtp->common, ERROR_BAD_ACTION, ! "Cannot read from file opened for WRITE"); if (!read_flag && dtp->u.p.current_unit->flags.action == ACTION_READ) ! generate_error (&dtp->common, ERROR_BAD_ACTION, ! "Cannot write to file opened for READ"); ! ! if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK) ! return; dtp->u.p.first_item = 1; --- 1766,1783 ---- /* Check the action. */ if (read_flag && dtp->u.p.current_unit->flags.action == ACTION_WRITE) ! { ! generate_error (&dtp->common, ERROR_BAD_ACTION, ! "Cannot read from file opened for WRITE"); ! return; ! } if (!read_flag && dtp->u.p.current_unit->flags.action == ACTION_READ) ! { ! generate_error (&dtp->common, ERROR_BAD_ACTION, ! "Cannot write to file opened for READ"); ! return; ! } dtp->u.p.first_item = 1; *************** data_transfer_init (st_parameter_dt *dtp *** 1770,1783 **** if ((cf & IOPARM_DT_HAS_FORMAT) != 0) parse_format (dtp); - if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK) - return; - if (dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED && (cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)) != 0) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Format present for UNFORMATTED data transfer"); if ((cf & IOPARM_DT_HAS_NAMELIST_NAME) != 0 && dtp->u.p.ionml != NULL) { --- 1786,1799 ---- if ((cf & IOPARM_DT_HAS_FORMAT) != 0) parse_format (dtp); if (dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED && (cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)) != 0) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Format present for UNFORMATTED data transfer"); ! return; ! } if ((cf & IOPARM_DT_HAS_NAMELIST_NAME) != 0 && dtp->u.p.ionml != NULL) { *************** data_transfer_init (st_parameter_dt *dtp *** 1787,1799 **** } else if (dtp->u.p.current_unit->flags.form == FORM_FORMATTED && !(cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT))) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Missing format for FORMATTED data transfer"); if (is_internal_unit (dtp) && dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Internal file cannot be accessed by UNFORMATTED data transfer"); /* Check the record or position number. */ --- 1803,1821 ---- } else if (dtp->u.p.current_unit->flags.form == FORM_FORMATTED && !(cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT))) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Missing format for FORMATTED data transfer"); ! } if (is_internal_unit (dtp) && dtp->u.p.current_unit->flags.form == FORM_UNFORMATTED) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "Internal file cannot be accessed by UNFORMATTED " ! "data transfer"); ! return; ! } /* Check the record or position number. */ *************** data_transfer_init (st_parameter_dt *dtp *** 1823,1871 **** if (dtp->u.p.advance_status != ADVANCE_UNSPECIFIED) { if (dtp->u.p.current_unit->flags.access == ACCESS_DIRECT) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification conflicts with sequential access"); if (is_internal_unit (dtp)) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification conflicts with internal file"); if ((cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)) != IOPARM_DT_HAS_FORMAT) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification requires an explicit format"); } if (read_flag) { if ((cf & IOPARM_EOR) != 0 && dtp->u.p.advance_status != ADVANCE_NO) ! generate_error (&dtp->common, ERROR_MISSING_OPTION, ! "EOR specification requires an ADVANCE specification of NO"); if ((cf & IOPARM_DT_HAS_SIZE) != 0 && dtp->u.p.advance_status != ADVANCE_NO) ! generate_error (&dtp->common, ERROR_MISSING_OPTION, ! "SIZE specification requires an ADVANCE specification of NO"); ! } else { /* Write constraints. */ if ((cf & IOPARM_END) != 0) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "END specification cannot appear in a write statement"); if ((cf & IOPARM_EOR) != 0) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "EOR specification cannot appear in a write statement"); if ((cf & IOPARM_DT_HAS_SIZE) != 0) ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "SIZE specification cannot appear in a write statement"); } if (dtp->u.p.advance_status == ADVANCE_UNSPECIFIED) dtp->u.p.advance_status = ADVANCE_YES; - if ((dtp->common.flags & IOPARM_LIBRETURN_MASK) != IOPARM_LIBRETURN_OK) - return; /* Sanity checks on the record number. */ if ((cf & IOPARM_DT_HAS_REC) != 0) --- 1845,1915 ---- if (dtp->u.p.advance_status != ADVANCE_UNSPECIFIED) { if (dtp->u.p.current_unit->flags.access == ACCESS_DIRECT) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification conflicts with sequential access"); ! return; ! } if (is_internal_unit (dtp)) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification conflicts with internal file"); ! return; ! } if ((cf & (IOPARM_DT_HAS_FORMAT | IOPARM_DT_LIST_FORMAT)) != IOPARM_DT_HAS_FORMAT) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "ADVANCE specification requires an explicit format"); ! return; ! } } if (read_flag) { if ((cf & IOPARM_EOR) != 0 && dtp->u.p.advance_status != ADVANCE_NO) ! { ! generate_error (&dtp->common, ERROR_MISSING_OPTION, ! "EOR specification requires an ADVANCE specification " ! "of NO"); ! return; ! } if ((cf & IOPARM_DT_HAS_SIZE) != 0 && dtp->u.p.advance_status != ADVANCE_NO) ! { ! generate_error (&dtp->common, ERROR_MISSING_OPTION, ! "SIZE specification requires an ADVANCE specification of NO"); ! return; ! } } else { /* Write constraints. */ if ((cf & IOPARM_END) != 0) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "END specification cannot appear in a write statement"); ! return; ! } if ((cf & IOPARM_EOR) != 0) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "EOR specification cannot appear in a write statement"); ! return; ! } if ((cf & IOPARM_DT_HAS_SIZE) != 0) ! { ! generate_error (&dtp->common, ERROR_OPTION_CONFLICT, ! "SIZE specification cannot appear in a write statement"); ! return; ! } } if (dtp->u.p.advance_status == ADVANCE_UNSPECIFIED) dtp->u.p.advance_status = ADVANCE_YES; /* Sanity checks on the record number. */ if ((cf & IOPARM_DT_HAS_REC) != 0) diff -Nrcpad gcc-4.2.0/libgfortran/io/write.c gcc-4.2.1/libgfortran/io/write.c *** gcc-4.2.0/libgfortran/io/write.c Fri Feb 23 18:13:16 2007 --- gcc-4.2.1/libgfortran/io/write.c Sun Jul 8 02:20:10 2007 *************** output_float (st_parameter_dt *dtp, cons *** 467,473 **** int nblanks; int i; sign_t sign; - double abslog; ft = f->format; w = f->u.real.w; --- 467,472 ---- *************** output_float (st_parameter_dt *dtp, cons *** 496,516 **** value = value + 0.5; } ! /* Printf always prints at least two exponent digits. */ ! if (value == 0) ! edigits = 2; ! else ! { ! #if defined(HAVE_GFC_REAL_10) || defined(HAVE_GFC_REAL_16) ! abslog = fabs((double) log10l(value)); ! #else ! abslog = fabs(log10(value)); ! #endif ! if (abslog < 100) ! edigits = 2; ! else ! edigits = 1 + (int) log10(abslog); ! } if (ft == FMT_F || ft == FMT_EN || ((ft == FMT_D || ft == FMT_E) && dtp->u.p.scale_factor != 0)) --- 495,503 ---- value = value + 0.5; } ! /* printf pads blanks for us on the exponent so we just need it big enough ! to handle the largest number of exponent digits expected. */ ! edigits=4; if (ft == FMT_F || ft == FMT_EN || ((ft == FMT_D || ft == FMT_E) && dtp->u.p.scale_factor != 0)) diff -Nrcpad gcc-4.2.0/libgfortran/runtime/environ.c gcc-4.2.1/libgfortran/runtime/environ.c *** gcc-4.2.0/libgfortran/runtime/environ.c Wed Oct 18 17:17:49 2006 --- gcc-4.2.1/libgfortran/runtime/environ.c Wed May 23 07:44:23 2007 *************** mark_range (int unit1, int unit2) *** 861,874 **** static int do_parse (void) { ! int tok, def; int unit1; int continue_ulist; char *start; unit_count = 0; - def = 0; start = p; /* Parse the string. First, let's look for a default. */ --- 861,873 ---- static int do_parse (void) { ! int tok; int unit1; int continue_ulist; char *start; unit_count = 0; start = p; /* Parse the string. First, let's look for a default. */ *************** do_parse (void) *** 923,928 **** --- 922,928 ---- break; case END: + def = endian; goto end; break; *************** do_parse (void) *** 939,944 **** --- 939,956 ---- tok = next_token (); switch (tok) { + case NATIVE: + if (next_token () != ':') + goto error; + endian = CONVERT_NATIVE; + break; + + case SWAP: + if (next_token () != ':') + goto error; + endian = CONVERT_SWAP; + break; + case LITTLE: if (next_token () != ':') goto error;