?? readme.netlib
字號:
If your compiler does not recognize ANSI C headers,compile with KR_headers defined: either add -DKR_headersto the definition of CFLAGS in the makefile, or insert#define KR_headersat the top of f2c.h , cabs.c , main.c , and sig_die.c .Under MS-DOS, compile s_paus.c with -DMSDOS.If you have a really ancient K&R C compiler that does not understandvoid, add -Dvoid=int to the definition of CFLAGS in the makefile.If you use a C++ compiler, first create a local f2c.h by appendingf2ch.add to the usual f2c.h, e.g., by issuing the command make f2c.hwhich assumes f2c.h is installed in /usr/include .If your system lacks onexit() and you are not using an ANSI Ccompiler, then you should compile main.c, s_paus.c, s_stop.c, andsig_die.c with NO_ONEXIT defined. See the comments about onexit inthe makefile.If your system has a double drem() function such that drem(a,b)is the IEEE remainder function (with double a, b), then you maywish to compile r_mod.c and d_mod.c with IEEE_drem defined.On some systems, you may also need to compile with -Ddrem=remainder .To check for transmission errors, issue the command make checkThis assumes you have the xsum program whose source, xsum.c,is distributed as part of "all from f2c/src". If you do nothave xsum, you can obtain xsum.c by sending the following E-mailmessage to netlib@netlib.bell-labs.com send xsum.c from f2c/srcThe makefile assumes you have installed f2c.h in a standardplace (and does not cause recompilation when f2c.h is changed);f2c.h comes with "all from f2c" (the source for f2c) and isavailable separately ("f2c.h from f2c").Most of the routines in libF77 are support routines for Fortranintrinsic functions or for operations that f2c chooses notto do "in line". There are a few exceptions, summarized below --functions and subroutines that appear to your program as ordinaryexternal Fortran routines.1. CALL ABORT prints a message and causes a core dump.2. ERF(r) and DERF(d) and the REAL and DOUBLE PRECISION error functions (with x REAL and d DOUBLE PRECISION); DERF must be declared DOUBLE PRECISION in your program. Both ERF and DERF assume your C library provides the underlying erf() function (which not all systems do).3. ERFC(r) and DERFC(d) are the complementary error functions: ERFC(r) = 1 - ERF(r) and DERFC(d) = 1.d0 - DERFC(d) (except that their results may be more accurate than explicitly evaluating the above formulae would give). Again, ERFC and r are REAL, and DERFC and d are DOUBLE PRECISION (and must be declared as such in your program), and ERFC and DERFC rely on your system's erfc().4. CALL GETARG(n,s), where n is an INTEGER and s is a CHARACTER variable, sets s to the n-th command-line argument (or to all blanks if there are fewer than n command-line arguments); CALL GETARG(0,s) sets s to the name of the program (on systems that support this feature). See IARGC below.5. CALL GETENV(name, value), where name and value are of type CHARACTER, sets value to the environment value, $name, of name (or to blanks if $name has not been set).6. NARGS = IARGC() sets NARGS to the number of command-line arguments (an INTEGER value).7. CALL SIGNAL(n,func), where n is an INTEGER and func is an EXTERNAL procedure, arranges for func to be invoked when signal n occurs (on systems where this makes sense).8. CALL SYSTEM(cmd), where cmd is of type CHARACTER, passes cmd to the system's command processor (on systems where this can be done).The makefile does not attempt to compile pow_qq.c, qbitbits.c,and qbitshft.c, which are meant for use with INTEGER*8. To useINTEGER*8, you must modify f2c.h to declare longint and ulongintappropriately; then add pow_qq.o to the POW = line in the makefile,and add " qbitbits.o qbitshft.o" to the makefile's F90BIT = line.Following Fortran 90, s_cat.c and s_copy.c allow the target of a(character string) assignment to be appear on its right-hand, atthe cost of some extra overhead for all run-time concatenations.If you prefer the extra efficiency that comes with the Fortran 77requirement that the left-hand side of a character assignment notbe involved in the right-hand side, compile s_cat.c and s_copy.cwith -DNO_OVERWRITE .If your system lacks a ranlib command, you don't need it.Either comment out the makefile's ranlib invocation, or installa harmless "ranlib" command somewhere in your PATH, such as theone-line shell script exit 0or (on some systems) exec /usr/bin/ar lts $1 >/dev/nullIf your compiler complains about the signal calls in main.c, s_paus.c,and signal_.c, you may need to adjust signal1.h suitably. See thecomments in signal1.h.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -