~ubuntu-branches/debian/jessie/eso-midas/jessie

« back to all changes in this revision

Viewing changes to incl/ftoc_hp.h

  • Committer: Package Import Robot
  • Author(s): Ole Streicher
  • Date: 2014-04-22 14:44:58 UTC
  • Revision ID: package-import@ubuntu.com-20140422144458-okiwi1assxkkiz39
Tags: upstream-13.09pl1.2+dfsg
ImportĀ upstreamĀ versionĀ 13.09pl1.2+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* @(#)ftoc_hp.h        19.1 (ESO-IPG) 02/25/03 13:49:32 */
 
2
/*++++++++++++++
 
3
.IDENTIFICATION ftoc_hp.h
 
4
.LANGUAGE       C
 
5
.AUTHOR         IPG
 
6
.ENVIRONMENT    Fortran compiler.
 
7
.KEYWORDS       
 
8
.VERSION  1.0   10-Sep-1990
 
9
.COMMENTS       The length of fortran strings are extra integers
 
10
                immediately FOLLOWING the CHARACTER argument.
 
11
---------------*/
 
12
 
 
13
#ifndef  FTOC_DEF               /* Avoid redefinitions */
 
14
#define  FTOC_DEF       0
 
15
 
 
16
typedef int fint2c;             /* Fortran INT passed to C */
 
17
typedef int flong2c;            /* Fortran LONG passed to C */
 
18
 
 
19
#include <stdarg.h>
 
20
char *ftoc_get();
 
21
 
 
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
 
26
           t  is the data type
 
27
 
 
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)
 
36
         */
 
37
 
 
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)
 
41
 
 
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))
 
45
 
 
46
#endif