GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
bfort(1) bfort(1)

bfort - program to extract short definitions for a Fortran to C interface

filenames
- Names the files from which lint definitions are to be extracted
-nomsgs
- Do not generate messages for routines that can not be converted to Fortran.
-nofort
- Generate messages for all routines/macros without a Fortran counterpart.
-dir name
- Directory for output file
-I name
- file that contains common includes
-mapptr
- translate pointers to integer indices
-ptrprefix
- prefix for names of functions to convert to/from pointers (default is __). The macro that selects the form based on the pointer size can be changed with -ptr64.
-anyname
- Generate a single Fortran wrapper that works for almost all systems, by adding C preprocessor names (see below). These names can be changed with -fcaps, -fuscore, and -fduscore.
-ferr
- Fortran versions return the value of the routine as the last argument (an integer). This is used in MPI and is a not uncommon approach for handling error returns.
-mpi
- Handle MPI datatypes (some things are pointers by definition)
-mpi2
- Handle MPI datatypes using MPI2 converstion functions (some things are pointers by definition)
-no_pmpi
- Do not generate PMPI names
-pmpi name
- Change macro used to select MPI profiling version
-noprofile
- Turn off the generation of the profiling version
-mnative
- Multiple indirects are native datatypes (no coercion)
-voidisptr
- Consider "void *" as a pointer to a structure.
-ansi
- C routines use ANSI prototype form rather than K&R C form
-ansiheader
- Generate ANSI-C style headers instead of Fortran interfaces This will be useful for creating ANSI prototypes without ANSI-fying the code. These use a trick to provide both ANSI and non-ANSI prototypes. The declarations are wrapped in "ANSI_ARGS", the definition of which should be
#ifdef ANSI_ARG
#undef ANSI_ARG
#endif
#ifdef __STDC__
#define ANSI_ARGS(a) a
#else
#define ANSI_ARGS(a) ()
#endif
    

-nodebug
- Do not add
#ifndef DEBUG_ALL
#define DEBUG_ALL
#endif
    

to the wrapper file.

-anyname
- Generate a single wrapper that can handle the three most common cases: trailing underscore, no underscore, and all caps. The choice is based on whether
FORTRANCAPS:       Names are uppercase, no trailing underscore
FORTRANUNDERSCORE: Names are lowercase, trailing underscore
are defined.  
FORTRANDOUBLEUNDERSCORE: Names are lowercase, with TWO trailing
    

underscores. This is needed when some versions of "f2c" are used to generate C for Fortran routines. Note that f2c uses two underscores ONLY when the name already contains an underscore (at least on the FreeBSD system that I use that uses f2c). To handle this case, the generated code contains the second underscore only when the name already contains one.

If -mapptr is also chosen, then

POINTER_64_BITS
    

will also be used to determine if pointers are to long to fit in a 32-bit Fortran integer. Routines that destroy a pointer will need to manually insert a call to __RmPointer. The routines for managing the pointers are in ptrcvt.c

In addition, if -mpi is used and -no_pmpi is not, the MPI profiling names are also generated, surrounded by MPI_BUILD_PROFILING.

We really need a way to specify a general type as a pointer, so that it will be handled as a pointer. The -mpi option is a kludge for a pressing need. Eventually should provide a "-ptr name" option and keep in a search space when looking for known types.

Bill Gropp

bfort.c
1/5/2000

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.