1
/* @(#)ftoc_hp.h 19.1 (ESO-IPG) 02/25/03 13:49:32 */
3
.IDENTIFICATION ftoc_hp.h
6
.ENVIRONMENT Fortran compiler.
8
.VERSION 1.0 10-Sep-1990
9
.COMMENTS The length of fortran strings are extra integers
10
immediately FOLLOWING the CHARACTER argument.
13
#ifndef FTOC_DEF /* Avoid redefinitions */
16
typedef int fint2c; /* Fortran INT passed to C */
17
typedef int flong2c; /* Fortran LONG passed to C */
22
/* In the following definitions:
23
p is the positional argument number (starting from 1)
24
a is the total number of FORTRAN arguments
25
s counts how many CHARACTER arguments exist before p
28
Example: if s' are CHARACTER arguments in the calling sequence
29
CALL SSP(a,b,s1,d,s2,s3)
30
==> a is defined by (p=1, a=6, s=0)
31
==> b is defined by (p=2, a=6, s=0)
32
==> s1 is defined by (p=3, a=6, s=0)
33
==> d is defined by (p=4, a=6, s=1)
34
==> s2 is defined by (p=5, a=6, s=1)
35
==> s3 is defined by (p=6, a=6, s=2)
38
#define PARAM(p,a,s,t) (((t *)(Cargs))[p + s - 1])
39
#define CHAR_LOC(p,a,s) PARAM(p,a,s,char *)
40
#define CHAR_LEN(p,a,s) PARAM(p,a,s+1,int)
42
#define C_STRING(p,a,s) ftoc_get(CHAR_LOC(p,a,s),CHAR_LEN(p,a,s),0)
43
#define STRIPPED_STRING(p,a,s) ftoc_get(CHAR_LOC(p,a,s),CHAR_LEN(p,a,s),1)
44
#define STRFCOPY(p,a,s,cs) ftoc_cpy(CHAR_LOC(p,a,s),cs,CHAR_LEN(p,a,s))