Merge from vendor branch LIBSTDC++:
[dragonfly.git] / contrib / libf2c / f2c.h
1 /* f2c.h file for GNU Fortran run-time library
2    Copyright (C) 1998 Free Software Foundation, Inc.
3    Contributed by James Craig Burley.
4
5 This file is part of GNU Fortran.
6
7 GNU Fortran is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GNU Fortran is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Fortran; see the file COPYING.  If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA.  */
21
22 /* This file currently is just a stub through which g77's copy
23    of netlib's libf2c, which g77 builds and installs as libg2c.a
24    (to avoid conflict), #include's g77's version of f2c.h, named
25    g2c.h.  That file is, in turn, produced via g77's library
26    configuration process from g2c.h.in.
27
28    By going through this extra "hoop", it is easy to provide for
29    libg2c-specific configuration and typedefs that aren't appropriate
30    in g2c.h itself (since that is intended to be installed so it can
31    be shared with f2c users), without changing the libf2c (libg2c)
32    routines themselves.  (They continue to #include "f2c.h", just
33    like they do in netlib's version.)  */
34
35 #include "g2c.h"
36
37 /* For GNU Fortran (g77), we always enable the following behaviors for
38    libf2c, to make things easy on the programmer.  The alternate
39    behaviors have their uses, and g77 might provide them as compiler,
40    rather than library, options, so only a single copy of a shared libf2c
41    need be built for a system.  */
42
43 /* This makes unformatted I/O more consistent in relation to other
44    systems.  It is not required by the F77 standard.  */
45
46 #define Pad_UDread
47
48 /* This makes ERR= and IOSTAT= returns work properly in disk-full
49    situations, making things work more as expected.  It slows things
50    down, so g77 will probably someday choose the original implementation
51    on a case-by-case basis when it can be shown to not be necessary
52    (e.g. no ERR= or IOSTAT=) or when it is given the appropriate
53    compile-time option or, perhaps, source-code directive.
54
55    (No longer defined, since it really slows down NFS access too much.)  */
56
57 /* #define ALWAYS_FLUSH */
58
59 /* Most Fortran implementations do this, so to make it easier
60    to compare the output of g77-compiled programs to those compiled
61    by most other compilers, tell libf2c to put leading zeros in
62    appropriate places on output.  */
63
64 #define WANT_LEAD_0