1
/* $Header: /tmp/hpctools/ga/tcgmsg-mpi/farg.h,v 1.14 2005-11-24 01:14:27 manoj Exp $ */
3
This include file defines ARGC_ and ARGV_ which are the appropriate
4
global variables to get at the command argument list in the
5
FORTRAN runtime environment.
6
This will need to be modified for each new machine (try using nm or
7
generating a full load map).
10
/* Used to be SEQUENT here but charged to _X_argv */
11
#if defined(SUN) || defined(ALLIANT) || defined(ENCORE) || defined(CONVEX) || \
18
# define ARGC_ _UT_argc
19
# define ARGV_ _UT_argv
22
#if (defined(SGI) || defined(ULTRIX))
23
# define ARGC_ f77argc
24
# define ARGV_ f77argv
33
# define ARGC_ p_xargc
34
# define ARGV_ p_xargv
44
# define getarg_ _gfortran_getarg_i8
46
# define getarg_ _gfortran_getarg_i4
48
# define iargc_ _gfortran_iargc
51
#if defined(PGLINUX) /* PGI compilers on Linux */
52
# define ARGC_ __argc_save
53
# define ARGV_ __argv_save
54
#elif defined(IFCLINUX)
56
# define ARGC_ for__l_argc
57
# define ARGV_ for__a_argv
62
#elif defined(SGILINUX)
63
# define ARGC_ _f90argc
64
# define ARGV_ _f90argv
65
#elif defined(MACX) && defined(XLFMAC)
69
/* g77/gcc fortran argc/argv interface on linux is unstable */
70
# if defined(LINUX) || defined(INTERIX) || defined(CYGWIN) || defined(MACX)
71
# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ > 90)))
72
# define ARGC_ f__xargc
73
# define ARGV_ f__xargv
82
# define ARGC_ _X_argc
83
# define ARGV_ _X_argv
87
# define ARGC_ _NXArgc
88
# define ARGV_ _NXArgv
92
/* ARGC_ and ARGV_ are allocated and constructed in pbeginf */
98
#if defined(HPUX) || defined(SUN) || defined(SOLARIS) || \
99
defined(PARAGON) || defined(FUJITSU) || defined(WIN32) || \
100
defined(LINUX64) || defined(NEC) || defined(LINUX) || \
101
defined(HITACHI) || defined(__crayx1) || defined(BGL) || \
102
defined (XLFMAC) || defined(ABSOFTMAC) || defined(GFORTRAN) || \
103
(defined(MACX) && defined(GFORTRAN)) || \
104
(defined(LINUX64) && defined(__alpha__))|| \
106
# define HAS_GETARG 1
114
# define getarg_ GETARG
115
# define iargc_ IARGC
116
# include <windows.h>
117
# include "winutil.h"
119
extern int FATR iargc_(void);
120
extern void FATR getarg_( NTYPE *, char*, int, NTYPE*);
123
# define hpargv_ hpargv
124
# define hpargc_ hpargc
126
extern int hpargv_();
127
extern int hpargc_();
128
#else /* ALL OTHER PLATFORMS */
130
extern void getarg_();
133
#if defined(__crayx1)
134
# define getarg_ pxfgetarg_
135
# define IARGC ipxfargc_
137
extern void FATR getarg_( NTYPE *, char*, NTYPE*, NTYPE*, int);
142
static void PrintCommandArgList()
146
for (i=0; i<ARGC_; i++)
147
(void) printf("argv(%d)=%s\n", i, ARGV_[i]);