00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __CFORTRAN_LOADED
00013 #define __CFORTRAN_LOADED
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 #ifndef LONGLONG_TYPE
00072 #if defined(_MSC_VER)
00073
00074 #if (_MSC_VER < 1300)
00075 typedef __int64 LONGLONG;
00076 #else
00077 typedef long long LONGLONG;
00078 #endif
00079
00080 #else
00081 typedef long long LONGLONG;
00082 #endif
00083
00084 #define LONGLONG_TYPE
00085 #endif
00086
00087
00088
00089
00090 #ifndef ANSI_C_preprocessor
00091 #ifdef __CF__KnR
00092 #define ANSI_C_preprocessor 0
00093 #else
00094 #ifdef __STDC__
00095 #define ANSI_C_preprocessor 1
00096 #else
00097 #define _cfleft 1
00098 #define _cfright
00099 #define _cfleft_cfright 0
00100 #define ANSI_C_preprocessor _cfleft_cfright
00101 #endif
00102 #endif
00103 #endif
00104
00105 #if ANSI_C_preprocessor
00106 #define _0(A,B) A##B
00107 #define _(A,B) _0(A,B)
00108 #define _2(A,B) A##B
00109 #define _3(A,B,C) _(A,_(B,C))
00110 #else
00111 #define _(A,B) AB
00112 #define _2(A,B) AB
00113 #define _3(A,B,C) ABC
00114 #endif
00115
00116 #if (defined(vax)&&defined(unix)) || (defined(__vax__)&&defined(__unix__))
00117 #define VAXUltrix
00118 #endif
00119
00120 #include <stdio.h>
00121 #include <string.h>
00122 #if !( defined(VAXUltrix) || defined(sun) || (defined(apollo)&&!defined(__STDCPP__)) )
00123 #include <stdlib.h>
00124 #else
00125 #include <malloc.h>
00126 #ifdef apollo
00127 #define __CF__APOLLO67
00128 #endif
00129 #endif
00130
00131 #if !defined(__GNUC__) && !defined(__sun) && (defined(sun)||defined(VAXUltrix)||defined(lynx))
00132 #define __CF__KnR
00133
00134 #endif
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147 #if defined(CLIPPERFortran) || defined(pgiFortran) || defined(__INTEL_COMPILER) || defined(INTEL_COMPILER) || defined(gFortran)
00148 #define f2cFortran
00149 #endif
00150
00151
00152
00153 #if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
00154 #if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
00155
00156 #if defined(lynx) || defined(VAXUltrix)
00157 #define f2cFortran
00158
00159
00160
00161 #endif
00162
00163
00164 #if defined(WIN32) && !defined(__CYGWIN__)
00165 #define PowerStationFortran
00166 #define VISUAL_CPLUSPLUS
00167 #endif
00168 #if defined(g77Fortran)
00169 #define f2cFortran
00170 #endif
00171 #if defined(__CYGWIN__)
00172 #define f2cFortran
00173 #endif
00174 #if defined(__GNUC__) && defined(linux)
00175 #define f2cFortran
00176 #endif
00177 #if defined(macintosh)
00178 #define f2cFortran
00179 #endif
00180 #if defined(__APPLE__)
00181 #define f2cFortran
00182 #endif
00183 #if defined(__hpux)
00184 #define hpuxFortran
00185 #endif
00186 #if defined(apollo)
00187 #define apolloFortran
00188 #endif
00189 #if defined(sun) || defined(__sun)
00190 #define sunFortran
00191 #endif
00192 #if defined(_IBMR2)
00193 #define IBMR2Fortran
00194 #endif
00195 #if defined(_CRAY)
00196 #define CRAYFortran
00197 #endif
00198 #if defined(_SX)
00199 #define SXFortran
00200 #endif
00201 #if defined(mips) || defined(__mips)
00202 #define mipsFortran
00203 #endif
00204 #if defined(vms) || defined(__vms)
00205 #define vmsFortran
00206 #endif
00207 #if defined(__alpha) && defined(__unix__)
00208 #define DECFortran
00209 #endif
00210 #if defined(__convex__)
00211 #define CONVEXFortran
00212 #endif
00213 #if defined(VISUAL_CPLUSPLUS)
00214 #define PowerStationFortran
00215 #endif
00216 #endif
00217 #endif
00218
00219
00220 #if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
00221 #if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
00222
00223 #error "cfortran.h: Can't find your environment among:\
00224 - GNU gcc (g77) on Linux. \
00225 - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...) \
00226 - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000 \
00227 - VAX VMS CC 3.1 and FORTRAN 5.4. \
00228 - Alpha VMS DEC C 1.3 and DEC FORTRAN 6.0. \
00229 - Alpha OSF DEC C and DEC Fortran for OSF/1 AXP Version 1.2 \
00230 - Apollo DomainOS 10.2 (sys5.3) with f77 10.7 and cc 6.7. \
00231 - CRAY \
00232 - NEC SX-4 SUPER-UX \
00233 - CONVEX \
00234 - Sun \
00235 - PowerStation Fortran with Visual C++ \
00236 - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 9000/730 \
00237 - LynxOS: cc or gcc with f2c. \
00238 - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77. \
00239 - f77 with vcc works; but missing link magic for f77 I/O. \
00240 - NO fort. None of gcc, cc or vcc generate required names.\
00241 - f2c/g77: Use #define f2cFortran, or cc -Df2cFortran \
00242 - gfortran: Use #define gFortran, or cc -DgFortran \
00243 (also necessary for g77 with -fno-f2c option) \
00244 - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran \
00245 - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran \
00246 - Absoft Pro Fortran: Use #define AbsoftProFortran \
00247 - Portland Group Fortran: Use #define pgiFortran \
00248 - Intel Fortran: Use #define INTEL_COMPILER"
00249
00250 #endif
00251 #endif
00252
00253
00254 #if defined(VAXC) && !defined(__VAXC)
00255 #define OLD_VAXC
00256 #pragma nostandard
00257 #endif
00258
00259
00260
00261
00262 #if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(appendus)
00263 #define CFC_(UN,LN) _(LN,_)
00264 #define orig_fcallsc(UN,LN) CFC_(UN,LN)
00265 #else
00266 #if defined(CRAYFortran) || defined(PowerStationFortran) || defined(AbsoftProFortran)
00267 #ifdef _CRAY
00268 #define CFC_(UN,LN) (UN)
00269 #else
00270 #define CFC_(UN,LN) UN
00271 #endif
00272 #define orig_fcallsc(UN,LN) CFC_(UN,LN)
00273 #else
00274 #define CF_SAME_NAMESPACE
00275 #ifdef vmsFortran
00276 #define CFC_(UN,LN) LN
00277
00278
00279 #define orig_fcallsc(UN,LN) UN
00280 #else
00281 #define CFC_(UN,LN) LN
00282 #define orig_fcallsc(UN,LN) CFC_(UN,LN)
00283 #endif
00284 #endif
00285 #endif
00286
00287 #define fcallsc(UN,LN) orig_fcallsc(UN,LN)
00288 #define preface_fcallsc(P,p,UN,LN) CFC_(_(P,UN),_(p,LN))
00289 #define append_fcallsc(P,p,UN,LN) CFC_(_(UN,P),_(LN,p))
00290
00291 #define C_FUNCTION(UN,LN) fcallsc(UN,LN)
00292 #define FORTRAN_FUNCTION(UN,LN) CFC_(UN,LN)
00293
00294 #ifndef COMMON_BLOCK
00295 #ifndef CONVEXFortran
00296 #ifndef CLIPPERFortran
00297 #if !(defined(AbsoftUNIXFortran)||defined(AbsoftProFortran))
00298 #define COMMON_BLOCK(UN,LN) CFC_(UN,LN)
00299 #else
00300 #define COMMON_BLOCK(UN,LN) _(_C,LN)
00301 #endif
00302 #else
00303 #define COMMON_BLOCK(UN,LN) _(LN,__)
00304 #endif
00305 #else
00306 #define COMMON_BLOCK(UN,LN) _3(_,LN,_)
00307 #endif
00308 #endif
00309
00310 #ifndef DOUBLE_PRECISION
00311 #if defined(CRAYFortran) && !defined(_CRAYT3E)
00312 #define DOUBLE_PRECISION long double
00313 #else
00314 #define DOUBLE_PRECISION double
00315 #endif
00316 #endif
00317
00318 #ifndef FORTRAN_REAL
00319 #if defined(CRAYFortran) && defined(_CRAYT3E)
00320 #define FORTRAN_REAL double
00321 #else
00322 #define FORTRAN_REAL float
00323 #endif
00324 #endif
00325
00326 #ifdef CRAYFortran
00327 #ifdef _CRAY
00328 #include <fortran.h>
00329 #else
00330 #include "fortran.h"
00331 #endif
00332 #define FLOATVVVVVVV_cfPP (FORTRAN_REAL *)
00333
00334 #define VOIDP (void *)
00335
00336 #else
00337 #define FLOATVVVVVVV_cfPP
00338 #define VOIDP
00339 #endif
00340
00341 #ifdef vmsFortran
00342 #if defined(vms) || defined(__vms)
00343 #include <descrip.h>
00344 #else
00345 #include "descrip.h"
00346 #endif
00347 #endif
00348
00349 #ifdef sunFortran
00350 #if defined(sun) || defined(__sun)
00351 #include <math.h>
00352 #else
00353 #include "math.h"
00354 #endif
00355
00356
00357
00358
00359
00360
00361
00362
00363 #endif
00364
00365 #ifndef apolloFortran
00366
00367 #define COMMON_BLOCK_DEF(DEFINITION, NAME) DEFINITION NAME
00368 #define CF_NULL_PROTO
00369 #else
00370
00371
00372 #define CF_NULL_PROTO ...
00373 #ifndef __CF__APOLLO67
00374 #define COMMON_BLOCK_DEF(DEFINITION, NAME) \
00375 DEFINITION NAME __attribute((__section(NAME)))
00376 #else
00377 #define COMMON_BLOCK_DEF(DEFINITION, NAME) \
00378 DEFINITION NAME #attribute[section(NAME)]
00379 #endif
00380 #endif
00381
00382 #ifdef __cplusplus
00383 #undef CF_NULL_PROTO
00384 #define CF_NULL_PROTO ...
00385 #endif
00386
00387
00388 #ifndef USE_NEW_DELETE
00389 #ifdef __cplusplus
00390 #define USE_NEW_DELETE 1
00391 #else
00392 #define USE_NEW_DELETE 0
00393 #endif
00394 #endif
00395 #if USE_NEW_DELETE
00396 #define _cf_malloc(N) new char[N]
00397 #define _cf_free(P) delete[] P
00398 #else
00399 #define _cf_malloc(N) (char *)malloc(N)
00400 #define _cf_free(P) free(P)
00401 #endif
00402
00403 #ifdef mipsFortran
00404 #define CF_DECLARE_GETARG int f77argc; char **f77argv
00405 #define CF_SET_GETARG(ARGC,ARGV) f77argc = ARGC; f77argv = ARGV
00406 #else
00407 #define CF_DECLARE_GETARG
00408 #define CF_SET_GETARG(ARGC,ARGV)
00409 #endif
00410
00411 #ifdef OLD_VAXC
00412 #pragma standard
00413 #endif
00414
00415 #define AcfCOMMA ,
00416 #define AcfCOLON ;
00417
00418
00419
00420
00421
00422 #define _cfMIN(A,B) (A<B?A:B)
00423
00424
00425
00426
00427
00428 #define firstindexlength(A) (sizeof(A[0])==1 ? 1 : (sizeof(A) / sizeof(A[0])) )
00429 #define secondindexlength(A) (sizeof(A[0])==1 ? sizeof(A) : sizeof(A[0]) )
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442 #if defined(NAGf90Fortran) || defined(f2cFortran) || defined(mipsFortran) || defined(PowerStationFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran) || defined(SXFortran)
00443
00444
00445 #define LOGICAL_STRICT
00446 #endif
00447
00448 #define C2FLOGICALV(A,I) \
00449 do {int __i; for(__i=0;__i<I;__i++) A[__i]=C2FLOGICAL(A[__i]); } while (0)
00450 #define F2CLOGICALV(A,I) \
00451 do {int __i; for(__i=0;__i<I;__i++) A[__i]=F2CLOGICAL(A[__i]); } while (0)
00452
00453 #if defined(apolloFortran)
00454 #define C2FLOGICAL(L) ((L)?-1:(L)&~((unsigned)1<<sizeof(int)*8-1))
00455 #define F2CLOGICAL(L) ((L)<0?(L):0)
00456 #else
00457 #if defined(CRAYFortran)
00458 #define C2FLOGICAL(L) _btol(L)
00459 #define F2CLOGICAL(L) _ltob(&(L))
00460 #else
00461 #if defined(IBMR2Fortran) || defined(vmsFortran) || defined(DECFortran) || defined(AbsoftUNIXFortran)
00462
00463 #define C2FLOGICAL(L) ((L)?(L)|1:(L)&~(int)1)
00464 #define F2CLOGICAL(L) ((L)&1?(L):0)
00465 #else
00466 #if defined(CONVEXFortran)
00467 #define C2FLOGICAL(L) ((L) ? ~0 : 0 )
00468 #define F2CLOGICAL(L) (L)
00469 #else
00470 #define C2FLOGICAL(L) (L)
00471 #define F2CLOGICAL(L) (L)
00472 #ifndef LOGICAL_STRICT
00473 #undef C2FLOGICALV
00474 #undef F2CLOGICALV
00475 #define C2FLOGICALV(A,I)
00476 #define F2CLOGICALV(A,I)
00477 #endif
00478 #endif
00479 #endif
00480 #endif
00481 #endif
00482
00483
00484
00485 #if defined(LOGICAL_STRICT) && !defined(CRAYFortran)
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497 #undef C2FLOGICAL
00498 #ifdef hpuxFortran800
00499 #define C2FLOGICAL(L) ((L)?0x01000000:0)
00500 #else
00501 #if defined(apolloFortran) || defined(vmsFortran) || defined(DECFortran)
00502 #define C2FLOGICAL(L) ((L)?-1:0)
00503 #else
00504 #define C2FLOGICAL(L) ((L)? 1:0)
00505 #endif
00506 #endif
00507 #endif
00508
00509
00510 #ifndef __CF__KnR
00511 static char *c2fstrv(char* cstr, char *fstr, int elem_len, int sizeofcstr)
00512 #else
00513 static char *c2fstrv( cstr, fstr, elem_len, sizeofcstr)
00514 char* cstr; char *fstr; int elem_len; int sizeofcstr;
00515 #endif
00516 { int i,j;
00517
00518
00519 for (i=0; i<sizeofcstr/elem_len; i++) {
00520 for (j=1; j<elem_len && *cstr; j++) *fstr++ = *cstr++;
00521 cstr += 1+elem_len-j;
00522 for (; j<elem_len; j++) *fstr++ = ' ';
00523 }
00524 return fstr-sizeofcstr+sizeofcstr/elem_len; }
00525
00526
00527 #ifndef __CF__KnR
00528 static char *f2cstrv(char *fstr, char* cstr, int elem_len, int sizeofcstr)
00529 #else
00530 static char *f2cstrv( fstr, cstr, elem_len, sizeofcstr)
00531 char *fstr; char* cstr; int elem_len; int sizeofcstr;
00532 #endif
00533 { int i,j;
00534
00535
00536 cstr += sizeofcstr;
00537 fstr += sizeofcstr - sizeofcstr/elem_len;
00538 for (i=0; i<sizeofcstr/elem_len; i++) {
00539 *--cstr = '\0';
00540 for (j=1; j<elem_len; j++) *--cstr = *--fstr;
00541 } return cstr; }
00542
00543
00544 #ifndef __CF__KnR
00545 static char *kill_trailing(char *s, char t)
00546 #else
00547 static char *kill_trailing( s, t) char *s; char t;
00548 #endif
00549 {char *e;
00550 e = s + strlen(s);
00551 if (e>s) {
00552 while (e>s && *--e==t);
00553 e[*e==t?0:1] = '\0';
00554 } return s; }
00555
00556
00557
00558
00559
00560 #ifndef __CF__KnR
00561 static char *kill_trailingn(char *s, char t, char *e)
00562 #else
00563 static char *kill_trailingn( s, t, e) char *s; char t; char *e;
00564 #endif
00565 {
00566 if (e==s) *e = '\0';
00567 else if (e>s) {
00568 while (e>s && *--e==t);
00569 e[*e==t?0:1] = '\0';
00570 } return s; }
00571
00572
00573
00574 #ifndef __CF__KnR
00575 static char *vkill_trailing(char* cstr, int elem_len, int sizeofcstr, char t)
00576 #else
00577 static char *vkill_trailing( cstr, elem_len, sizeofcstr, t)
00578 char* cstr; int elem_len; int sizeofcstr; char t;
00579 #endif
00580 { int i;
00581 for (i=0; i<sizeofcstr/elem_len; i++)
00582 kill_trailingn(cstr+elem_len*i,t,cstr+elem_len*(i+1)-1);
00583 return cstr; }
00584
00585 #ifdef vmsFortran
00586 typedef struct dsc$descriptor_s fstring;
00587 #define DSC$DESCRIPTOR_A(DIMCT) \
00588 struct { \
00589 unsigned short dsc$w_length; unsigned char dsc$b_dtype; \
00590 unsigned char dsc$b_class; char *dsc$a_pointer; \
00591 char dsc$b_scale; unsigned char dsc$b_digits; \
00592 struct { \
00593 unsigned : 3; unsigned dsc$v_fl_binscale : 1; \
00594 unsigned dsc$v_fl_redim : 1; unsigned dsc$v_fl_column : 1; \
00595 unsigned dsc$v_fl_coeff : 1; unsigned dsc$v_fl_bounds : 1; \
00596 } dsc$b_aflags; \
00597 unsigned char dsc$b_dimct; unsigned long dsc$l_arsize; \
00598 char *dsc$a_a0; long dsc$l_m [DIMCT]; \
00599 struct { \
00600 long dsc$l_l; long dsc$l_u; \
00601 } dsc$bounds [DIMCT]; \
00602 }
00603 typedef DSC$DESCRIPTOR_A(1) fstringvector;
00604
00605
00606 #define initfstr(F,C,ELEMNO,ELEMLEN) \
00607 ( (F).dsc$l_arsize= ( (F).dsc$w_length =(ELEMLEN) ) \
00608 *( (F).dsc$l_m[0]=(F).dsc$bounds[0].dsc$l_u=(ELEMNO) ), \
00609 (F).dsc$a_a0 = ( (F).dsc$a_pointer=(C) ) - (F).dsc$w_length ,(F))
00610
00611 #endif
00612 #define _NUM_ELEMS -1
00613 #define _NUM_ELEM_ARG -2
00614 #define NUM_ELEMS(A) A,_NUM_ELEMS
00615 #define NUM_ELEM_ARG(B) *_2(A,B),_NUM_ELEM_ARG
00616 #define TERM_CHARS(A,B) A,B
00617 #ifndef __CF__KnR
00618 static int num_elem(char *strv, unsigned elem_len, int term_char, int num_term)
00619 #else
00620 static int num_elem( strv, elem_len, term_char, num_term)
00621 char *strv; unsigned elem_len; int term_char; int num_term;
00622 #endif
00623
00624
00625
00626
00627 {
00628 unsigned num,i;
00629 if (num_term == _NUM_ELEMS || num_term == _NUM_ELEM_ARG)
00630 return term_char;
00631 if (num_term <=0) num_term = (int)elem_len;
00632 for (num=0; ; num++) {
00633 for (i=0; i<(unsigned)num_term && *strv==term_char; i++,strv++);
00634 if (i==(unsigned)num_term) break;
00635 else strv += elem_len-i;
00636 }
00637 if (0) {
00638 c2fstrv(0, 0, 0, 0); f2cstrv(0, 0, 0, 0); kill_trailing(0, 0);
00639 vkill_trailing(0, 0, 0, 0); num_elem(0, 0, 0, 0);
00640 }
00641 return (int)num;
00642 }
00643
00644
00645
00646
00647
00648
00649
00650
00651
00652 #define C2FCBSTR(CSTR,FSTR,DIM) \
00653 c2fstrv((char *)CSTR, (char *)FSTR, sizeof(FSTR)/cfelementsof(FSTR,DIM)+1, \
00654 sizeof(FSTR)+cfelementsof(FSTR,DIM))
00655
00656
00657 #define FCB2CSTR(FSTR,CSTR,DIM) \
00658 vkill_trailing(f2cstrv((char *)FSTR, (char *)CSTR, \
00659 sizeof(FSTR)/cfelementsof(FSTR,DIM)+1, \
00660 sizeof(FSTR)+cfelementsof(FSTR,DIM)), \
00661 sizeof(FSTR)/cfelementsof(FSTR,DIM)+1, \
00662 sizeof(FSTR)+cfelementsof(FSTR,DIM), ' ')
00663
00664 #define cfDEREFERENCE0
00665 #define cfDEREFERENCE1 *
00666 #define cfDEREFERENCE2 **
00667 #define cfDEREFERENCE3 ***
00668 #define cfDEREFERENCE4 ****
00669 #define cfDEREFERENCE5 *****
00670 #define cfelementsof(A,D) (sizeof(A)/sizeof(_(cfDEREFERENCE,D)(A)))
00671
00672
00673
00674
00675
00676
00677
00678 #ifdef OLD_VAXC
00679 #pragma nostandard
00680 #endif
00681
00682 #define ZTRINGV_NUM(I) I
00683 #define ZTRINGV_ARGFP(I) (*(_2(A,I)))
00684 #define ZTRINGV_ARGF(I) _2(A,I)
00685 #ifdef CFSUBASFUN
00686 #define ZTRINGV_ARGS(I) ZTRINGV_ARGF(I)
00687 #else
00688 #define ZTRINGV_ARGS(I) _2(B,I)
00689 #endif
00690
00691 #define PBYTE_cfVP(A,B) PINT_cfVP(A,B)
00692 #define PDOUBLE_cfVP(A,B)
00693 #define PFLOAT_cfVP(A,B)
00694 #ifdef ZTRINGV_ARGS_allows_Pvariables
00695
00696
00697
00698 #define PINT_cfVP(A,B) int B = (int)A;
00699 #else
00700 #define PINT_cfVP(A,B)
00701 #endif
00702 #define PLOGICAL_cfVP(A,B) int *B;
00703 #define PLONG_cfVP(A,B) PINT_cfVP(A,B)
00704 #define PSHORT_cfVP(A,B) PINT_cfVP(A,B)
00705
00706 #define VCF_INT_S(T,A,B) _(T,VVVVVVV_cfTYPE) B = A;
00707 #define VCF_INT_F(T,A,B) _(T,_cfVCF)(A,B)
00708
00709 #define BYTE_cfVCF(A,B)
00710 #define DOUBLE_cfVCF(A,B)
00711 #if !defined(__CF__KnR)
00712 #define FLOAT_cfVCF(A,B)
00713 #else
00714 #define FLOAT_cfVCF(A,B) FORTRAN_REAL B = A;
00715 #endif
00716 #define INT_cfVCF(A,B)
00717 #define LOGICAL_cfVCF(A,B)
00718 #define LONG_cfVCF(A,B)
00719 #define SHORT_cfVCF(A,B)
00720
00721
00722
00723
00724
00725
00726 typedef void (*cfCAST_FUNCTION)(CF_NULL_PROTO);
00727
00728 #define VCF(TN,I) _Icf4(4,V,TN,_(A,I),_(B,I),F)
00729 #define VVCF(TN,AI,BI) _Icf4(4,V,TN,AI,BI,S)
00730 #define INT_cfV(T,A,B,F) _(VCF_INT_,F)(T,A,B)
00731 #define INTV_cfV(T,A,B,F)
00732 #define INTVV_cfV(T,A,B,F)
00733 #define INTVVV_cfV(T,A,B,F)
00734 #define INTVVVV_cfV(T,A,B,F)
00735 #define INTVVVVV_cfV(T,A,B,F)
00736 #define INTVVVVVV_cfV(T,A,B,F)
00737 #define INTVVVVVVV_cfV(T,A,B,F)
00738 #define PINT_cfV( T,A,B,F) _(T,_cfVP)(A,B)
00739 #define PVOID_cfV( T,A,B,F)
00740 #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
00741 #define ROUTINE_cfV(T,A,B,F) void (*B)(CF_NULL_PROTO) = (cfCAST_FUNCTION)A;
00742 #else
00743 #define ROUTINE_cfV(T,A,B,F)
00744 #endif
00745 #define SIMPLE_cfV(T,A,B,F)
00746 #ifdef vmsFortran
00747 #define STRING_cfV(T,A,B,F) static struct {fstring f; unsigned clen;} B = \
00748 {{0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL},0};
00749 #define PSTRING_cfV(T,A,B,F) static fstring B={0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL};
00750 #define STRINGV_cfV(T,A,B,F) static fstringvector B = \
00751 {sizeof(A),DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
00752 #define PSTRINGV_cfV(T,A,B,F) static fstringvector B = \
00753 {0,DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
00754 #else
00755 #define STRING_cfV(T,A,B,F) struct {unsigned int clen, flen; char *nombre;} B;
00756 #define STRINGV_cfV(T,A,B,F) struct {char *s, *fs; unsigned flen; char *nombre;} B;
00757 #define PSTRING_cfV(T,A,B,F) int B;
00758 #define PSTRINGV_cfV(T,A,B,F) struct{char *fs; unsigned int sizeofA,flen;}B;
00759 #endif
00760 #define ZTRINGV_cfV(T,A,B,F) STRINGV_cfV(T,A,B,F)
00761 #define PZTRINGV_cfV(T,A,B,F) PSTRINGV_cfV(T,A,B,F)
00762
00763
00764
00765
00766 #define ACF(NAME,TN,AI,I) _(TN,_cfSTR)(4,A,NAME,I,AI,_(B,I),0)
00767 #define DEFAULT_cfA(M,I,A,B)
00768 #define LOGICAL_cfA(M,I,A,B) B=C2FLOGICAL(B);
00769 #define PLOGICAL_cfA(M,I,A,B) A=C2FLOGICAL(A);
00770 #define STRING_cfA(M,I,A,B) STRING_cfC(M,I,A,B,sizeof(A))
00771 #define PSTRING_cfA(M,I,A,B) PSTRING_cfC(M,I,A,B,sizeof(A))
00772 #ifdef vmsFortran
00773 #define AATRINGV_cfA( A,B, sA,filA,silA) \
00774 initfstr(B,_cf_malloc((sA)-(filA)),(filA),(silA)-1), \
00775 c2fstrv(A,B.dsc$a_pointer,(silA),(sA));
00776 #define APATRINGV_cfA( A,B, sA,filA,silA) \
00777 initfstr(B,A,(filA),(silA)-1),c2fstrv(A,A,(silA),(sA));
00778 #else
00779 #define AATRINGV_cfA( A,B, sA,filA,silA) \
00780 (B.s=_cf_malloc((sA)-(filA)),B.fs=c2fstrv(A,B.s,(B.flen=(silA)-1)+1,(sA)));
00781 #define APATRINGV_cfA( A,B, sA,filA,silA) \
00782 B.fs=c2fstrv(A,A,(B.flen=(silA)-1)+1,B.sizeofA=(sA));
00783 #endif
00784 #define STRINGV_cfA(M,I,A,B) \
00785 AATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
00786 #define PSTRINGV_cfA(M,I,A,B) \
00787 APATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
00788 #define ZTRINGV_cfA(M,I,A,B) AATRINGV_cfA( (char *)A,B, \
00789 (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1), \
00790 (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
00791 #define PZTRINGV_cfA(M,I,A,B) APATRINGV_cfA( (char *)A,B, \
00792 (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1), \
00793 (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
00794
00795 #define PBYTE_cfAAP(A,B) &A
00796 #define PDOUBLE_cfAAP(A,B) &A
00797 #define PFLOAT_cfAAP(A,B) FLOATVVVVVVV_cfPP &A
00798 #define PINT_cfAAP(A,B) &A
00799 #define PLOGICAL_cfAAP(A,B) B= &A
00800 #define PLONG_cfAAP(A,B) &A
00801 #define PSHORT_cfAAP(A,B) &A
00802
00803 #define AACF(TN,AI,I,C) _SEP_(TN,C,cfCOMMA) _Icf(3,AA,TN,AI,_(B,I))
00804 #define INT_cfAA(T,A,B) &B
00805 #define INTV_cfAA(T,A,B) _(T,VVVVVV_cfPP) A
00806 #define INTVV_cfAA(T,A,B) _(T,VVVVV_cfPP) A[0]
00807 #define INTVVV_cfAA(T,A,B) _(T,VVVV_cfPP) A[0][0]
00808 #define INTVVVV_cfAA(T,A,B) _(T,VVV_cfPP) A[0][0][0]
00809 #define INTVVVVV_cfAA(T,A,B) _(T,VV_cfPP) A[0][0][0][0]
00810 #define INTVVVVVV_cfAA(T,A,B) _(T,V_cfPP) A[0][0][0][0][0]
00811 #define INTVVVVVVV_cfAA(T,A,B) _(T,_cfPP) A[0][0][0][0][0][0]
00812 #define PINT_cfAA(T,A,B) _(T,_cfAAP)(A,B)
00813 #define PVOID_cfAA(T,A,B) (void *) A
00814 #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
00815 #define ROUTINE_cfAA(T,A,B) &B
00816 #else
00817 #define ROUTINE_cfAA(T,A,B) (cfCAST_FUNCTION)A
00818 #endif
00819 #define STRING_cfAA(T,A,B) STRING_cfCC(T,A,B)
00820 #define PSTRING_cfAA(T,A,B) PSTRING_cfCC(T,A,B)
00821 #ifdef vmsFortran
00822 #define STRINGV_cfAA(T,A,B) &B
00823 #else
00824 #ifdef CRAYFortran
00825 #define STRINGV_cfAA(T,A,B) _cptofcd(B.fs,B.flen)
00826 #else
00827 #define STRINGV_cfAA(T,A,B) B.fs
00828 #endif
00829 #endif
00830 #define PSTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
00831 #define ZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
00832 #define PZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
00833
00834 #if defined(vmsFortran) || defined(CRAYFortran)
00835 #define JCF(TN,I)
00836 #define KCF(TN,I)
00837 #else
00838 #define JCF(TN,I) _(TN,_cfSTR)(1,J,_(B,I), 0,0,0,0)
00839 #if defined(AbsoftUNIXFortran)
00840 #define DEFAULT_cfJ(B) ,0
00841 #else
00842 #define DEFAULT_cfJ(B)
00843 #endif
00844 #define LOGICAL_cfJ(B) DEFAULT_cfJ(B)
00845 #define PLOGICAL_cfJ(B) DEFAULT_cfJ(B)
00846 #define STRING_cfJ(B) ,B.flen
00847 #define PSTRING_cfJ(B) ,B
00848 #define STRINGV_cfJ(B) STRING_cfJ(B)
00849 #define PSTRINGV_cfJ(B) STRING_cfJ(B)
00850 #define ZTRINGV_cfJ(B) STRING_cfJ(B)
00851 #define PZTRINGV_cfJ(B) STRING_cfJ(B)
00852
00853
00854 #define KCF(TN,I) _(TN,_cfSTR)(1,KK,_(B,I), 0,0,0,0)
00855 #if defined(AbsoftUNIXFortran)
00856 #define DEFAULT_cfKK(B) , unsigned B
00857 #else
00858 #define DEFAULT_cfKK(B)
00859 #endif
00860 #define LOGICAL_cfKK(B) DEFAULT_cfKK(B)
00861 #define PLOGICAL_cfKK(B) DEFAULT_cfKK(B)
00862 #define STRING_cfKK(B) , unsigned B
00863 #define PSTRING_cfKK(B) STRING_cfKK(B)
00864 #define STRINGV_cfKK(B) STRING_cfKK(B)
00865 #define PSTRINGV_cfKK(B) STRING_cfKK(B)
00866 #define ZTRINGV_cfKK(B) STRING_cfKK(B)
00867 #define PZTRINGV_cfKK(B) STRING_cfKK(B)
00868 #endif
00869
00870 #define WCF(TN,AN,I) _(TN,_cfSTR)(2,W,AN,_(B,I), 0,0,0)
00871 #define DEFAULT_cfW(A,B)
00872 #define LOGICAL_cfW(A,B)
00873 #define PLOGICAL_cfW(A,B) *B=F2CLOGICAL(*B);
00874 #define STRING_cfW(A,B) (B.nombre=A,B.nombre[B.clen]!='\0'?B.nombre[B.clen]='\0':0);
00875 #define PSTRING_cfW(A,B) kill_trailing(A,' ');
00876 #ifdef vmsFortran
00877 #define STRINGV_cfW(A,B) _cf_free(B.dsc$a_pointer);
00878 #define PSTRINGV_cfW(A,B) \
00879 vkill_trailing(f2cstrv((char*)A, (char*)A, \
00880 B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0]), \
00881 B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0], ' ');
00882 #else
00883 #define STRINGV_cfW(A,B) _cf_free(B.s);
00884 #define PSTRINGV_cfW(A,B) vkill_trailing( \
00885 f2cstrv((char*)A,(char*)A,B.flen+1,B.sizeofA), B.flen+1,B.sizeofA,' ');
00886 #endif
00887 #define ZTRINGV_cfW(A,B) STRINGV_cfW(A,B)
00888 #define PZTRINGV_cfW(A,B) PSTRINGV_cfW(A,B)
00889
00890 #define NCF(TN,I,C) _SEP_(TN,C,cfCOMMA) _Icf(2,N,TN,_(A,I),0)
00891 #define NNCF(TN,I,C) UUCF(TN,I,C)
00892 #define NNNCF(TN,I,C) _SEP_(TN,C,cfCOLON) _Icf(2,N,TN,_(A,I),0)
00893 #define INT_cfN(T,A) _(T,VVVVVVV_cfTYPE) * A
00894 #define INTV_cfN(T,A) _(T,VVVVVV_cfTYPE) * A
00895 #define INTVV_cfN(T,A) _(T,VVVVV_cfTYPE) * A
00896 #define INTVVV_cfN(T,A) _(T,VVVV_cfTYPE) * A
00897 #define INTVVVV_cfN(T,A) _(T,VVV_cfTYPE) * A
00898 #define INTVVVVV_cfN(T,A) _(T,VV_cfTYPE) * A
00899 #define INTVVVVVV_cfN(T,A) _(T,V_cfTYPE) * A
00900 #define INTVVVVVVV_cfN(T,A) _(T,_cfTYPE) * A
00901 #define PINT_cfN(T,A) _(T,_cfTYPE) * A
00902 #define PVOID_cfN(T,A) void * A
00903 #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
00904 #define ROUTINE_cfN(T,A) void (**A)(CF_NULL_PROTO)
00905 #else
00906 #define ROUTINE_cfN(T,A) void ( *A)(CF_NULL_PROTO)
00907 #endif
00908 #ifdef vmsFortran
00909 #define STRING_cfN(T,A) fstring * A
00910 #define STRINGV_cfN(T,A) fstringvector * A
00911 #else
00912 #ifdef CRAYFortran
00913 #define STRING_cfN(T,A) _fcd A
00914 #define STRINGV_cfN(T,A) _fcd A
00915 #else
00916 #define STRING_cfN(T,A) char * A
00917 #define STRINGV_cfN(T,A) char * A
00918 #endif
00919 #endif
00920 #define PSTRING_cfN(T,A) STRING_cfN(T,A)
00921 #define PNSTRING_cfN(T,A) STRING_cfN(T,A)
00922 #define PPSTRING_cfN(T,A) STRING_cfN(T,A)
00923 #define PSTRINGV_cfN(T,A) STRINGV_cfN(T,A)
00924 #define ZTRINGV_cfN(T,A) STRINGV_cfN(T,A)
00925 #define PZTRINGV_cfN(T,A) PSTRINGV_cfN(T,A)
00926
00927
00928
00929
00930
00931
00932
00933
00934
00935
00936
00937 #ifndef MAX_PREPRO_ARGS
00938 #if !defined(__GNUC__) && (defined(VAXUltrix) || defined(__CF__APOLLO67) || (defined(sun)&&!defined(__sun)) || defined(_CRAY) || defined(__ultrix__) || (defined(__hpux)&&defined(__CF__KnR)))
00939 #define MAX_PREPRO_ARGS 31
00940 #else
00941 #define MAX_PREPRO_ARGS 99
00942 #endif
00943 #endif
00944
00945 #if defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
00946
00947
00948
00949
00950
00951 #define ABSOFT_cf1(T0) _(T0,_cfSTR)(0,ABSOFT1,0,0,0,0,0)
00952 #define ABSOFT_cf2(T0) _(T0,_cfSTR)(0,ABSOFT2,0,0,0,0,0)
00953 #define ABSOFT_cf3(T0) _(T0,_cfSTR)(0,ABSOFT3,0,0,0,0,0)
00954 #define DEFAULT_cfABSOFT1
00955 #define LOGICAL_cfABSOFT1
00956 #define STRING_cfABSOFT1 ,MAX_LEN_FORTRAN_FUNCTION_STRING
00957 #define DEFAULT_cfABSOFT2
00958 #define LOGICAL_cfABSOFT2
00959 #define STRING_cfABSOFT2 ,unsigned D0
00960 #define DEFAULT_cfABSOFT3
00961 #define LOGICAL_cfABSOFT3
00962 #define STRING_cfABSOFT3 ,D0
00963 #else
00964 #define ABSOFT_cf1(T0)
00965 #define ABSOFT_cf2(T0)
00966 #define ABSOFT_cf3(T0)
00967 #endif
00968
00969
00970
00971
00972 #define _Z
00973
00974 #define CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
00975 S(T1,1) S(T2,2) S(T3,3) S(T4,4) S(T5,5) S(T6,6) S(T7,7) \
00976 S(T8,8) S(T9,9) S(TA,10) S(TB,11) S(TC,12) S(TD,13) S(TE,14)
00977 #define CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
00978 S(T1,1) S(T2,2) S(T3,3) S(T4,4) S(T5,5) S(T6,6) S(T7,7) \
00979 S(T8,8) S(T9,9) S(TA,10) S(TB,11) S(TC,12) S(TD,13) S(TE,14) \
00980 S(TF,15) S(TG,16) S(TH,17) S(TI,18) S(TJ,19) S(TK,20) S(TL,21) \
00981 S(TM,22) S(TN,23) S(TO,24) S(TP,25) S(TQ,26) S(TR,27)
00982
00983 #define CFARGT14FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
00984 F(T1,1,0) F(T2,2,1) F(T3,3,1) F(T4,4,1) F(T5,5,1) F(T6,6,1) F(T7,7,1) \
00985 F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1) \
00986 M CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
00987 #define CFARGT27FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
00988 F(T1,1,0) F(T2,2,1) F(T3,3,1) F(T4,4,1) F(T5,5,1) F(T6,6,1) F(T7,7,1) \
00989 F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1) \
00990 F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1) \
00991 F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1) \
00992 M CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
00993
00994 #if !(defined(PowerStationFortran)||defined(hpuxFortran800))
00995
00996
00997
00998
00999
01000
01001
01002
01003
01004
01005
01006
01007
01008 #define CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01009 F(T1,1,0) F(T2,2,1) F(T3,3,1) F(T4,4,1) F(T5,5,1) F(T6,6,1) F(T7,7,1) \
01010 F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1) \
01011 M CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
01012 #define CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
01013 F(T1,1,0) F(T2,2,1) F(T3,3,1) F(T4,4,1) F(T5,5,1) F(T6,6,1) F(T7,7,1) \
01014 F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1) \
01015 F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1) \
01016 F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1) \
01017 M CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
01018
01019 #define CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
01020 F(T1,1,0) F(T2,2,1) F(T3,3,1) F(T4,4,1) F(T5,5,1) F(T6,6,1) F(T7,7,1) \
01021 F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1) \
01022 F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) \
01023 S(T1,1) S(T2,2) S(T3,3) S(T4,4) S(T5,5) S(T6,6) S(T7,7) \
01024 S(T8,8) S(T9,9) S(TA,10) S(TB,11) S(TC,12) S(TD,13) S(TE,14) \
01025 S(TF,15) S(TG,16) S(TH,17) S(TI,18) S(TJ,19) S(TK,20)
01026 #define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
01027 F(T1,A1,1,0) F(T2,A2,2,1) F(T3,A3,3,1) F(T4,A4,4,1) F(T5,A5,5,1) F(T6,A6,6,1) \
01028 F(T7,A7,7,1) F(T8,A8,8,1) F(T9,A9,9,1) F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
01029 F(TD,AD,13,1) F(TE,AE,14,1) S(T1,1) S(T2,2) S(T3,3) S(T4,4) \
01030 S(T5,5) S(T6,6) S(T7,7) S(T8,8) S(T9,9) S(TA,10) \
01031 S(TB,11) S(TC,12) S(TD,13) S(TE,14)
01032 #if MAX_PREPRO_ARGS>31
01033 #define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
01034 F(T1,A1,1,0) F(T2,A2,2,1) F(T3,A3,3,1) F(T4,A4,4,1) F(T5,A5,5,1) F(T6,A6,6,1) \
01035 F(T7,A7,7,1) F(T8,A8,8,1) F(T9,A9,9,1) F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
01036 F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
01037 F(TJ,AJ,19,1) F(TK,AK,20,1) S(T1,1) S(T2,2) S(T3,3) S(T4,4) \
01038 S(T5,5) S(T6,6) S(T7,7) S(T8,8) S(T9,9) S(TA,10) \
01039 S(TB,11) S(TC,12) S(TD,13) S(TE,14) S(TF,15) S(TG,16) \
01040 S(TH,17) S(TI,18) S(TJ,19) S(TK,20)
01041 #define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
01042 F(T1,A1,1,0) F(T2,A2,2,1) F(T3,A3,3,1) F(T4,A4,4,1) F(T5,A5,5,1) F(T6,A6,6,1) \
01043 F(T7,A7,7,1) F(T8,A8,8,1) F(T9,A9,9,1) F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
01044 F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
01045 F(TJ,AJ,19,1) F(TK,AK,20,1) F(TL,AL,21,1) F(TM,AM,22,1) F(TN,AN,23,1) F(TO,AO,24,1) \
01046 F(TP,AP,25,1) F(TQ,AQ,26,1) F(TR,AR,27,1) S(T1,1) S(T2,2) S(T3,3) \
01047 S(T4,4) S(T5,5) S(T6,6) S(T7,7) S(T8,8) S(T9,9) \
01048 S(TA,10) S(TB,11) S(TC,12) S(TD,13) S(TE,14) S(TF,15) \
01049 S(TG,16) S(TH,17) S(TI,18) S(TJ,19) S(TK,20) S(TL,21) \
01050 S(TM,22) S(TN,23) S(TO,24) S(TP,25) S(TQ,26) S(TR,27)
01051 #endif
01052 #else
01053 #define CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01054 F(T1,1,0) S(T1,1) F(T2,2,1) S(T2,2) F(T3,3,1) S(T3,3) F(T4,4,1) S(T4,4) \
01055 F(T5,5,1) S(T5,5) F(T6,6,1) S(T6,6) F(T7,7,1) S(T7,7) F(T8,8,1) S(T8,8) \
01056 F(T9,9,1) S(T9,9) F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
01057 F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14)
01058 #define CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
01059 F(T1,1,0) S(T1,1) F(T2,2,1) S(T2,2) F(T3,3,1) S(T3,3) F(T4,4,1) S(T4,4) \
01060 F(T5,5,1) S(T5,5) F(T6,6,1) S(T6,6) F(T7,7,1) S(T7,7) F(T8,8,1) S(T8,8) \
01061 F(T9,9,1) S(T9,9) F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
01062 F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
01063 F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20) \
01064 F(TL,21,1) S(TL,21) F(TM,22,1) S(TM,22) F(TN,23,1) S(TN,23) F(TO,24,1) S(TO,24) \
01065 F(TP,25,1) S(TP,25) F(TQ,26,1) S(TQ,26) F(TR,27,1) S(TR,27)
01066
01067 #define CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
01068 F(T1,1,0) S(T1,1) F(T2,2,1) S(T2,2) F(T3,3,1) S(T3,3) F(T4,4,1) S(T4,4) \
01069 F(T5,5,1) S(T5,5) F(T6,6,1) S(T6,6) F(T7,7,1) S(T7,7) F(T8,8,1) S(T8,8) \
01070 F(T9,9,1) S(T9,9) F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
01071 F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
01072 F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20)
01073 #define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
01074 F(T1,A1,1,0) S(T1,1) F(T2,A2,2,1) S(T2,2) F(T3,A3,3,1) S(T3,3) \
01075 F(T4,A4,4,1) S(T4,4) F(T5,A5,5,1) S(T5,5) F(T6,A6,6,1) S(T6,6) \
01076 F(T7,A7,7,1) S(T7,7) F(T8,A8,8,1) S(T8,8) F(T9,A9,9,1) S(T9,9) \
01077 F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12) \
01078 F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14)
01079 #if MAX_PREPRO_ARGS>31
01080 #define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
01081 F(T1,A1,1,0) S(T1,1) F(T2,A2,2,1) S(T2,2) F(T3,A3,3,1) S(T3,3) \
01082 F(T4,A4,4,1) S(T4,4) F(T5,A5,5,1) S(T5,5) F(T6,A6,6,1) S(T6,6) \
01083 F(T7,A7,7,1) S(T7,7) F(T8,A8,8,1) S(T8,8) F(T9,A9,9,1) S(T9,9) \
01084 F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12) \
01085 F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15) \
01086 F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18) \
01087 F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20)
01088 #define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
01089 F(T1,A1,1,0) S(T1,1) F(T2,A2,2,1) S(T2,2) F(T3,A3,3,1) S(T3,3) \
01090 F(T4,A4,4,1) S(T4,4) F(T5,A5,5,1) S(T5,5) F(T6,A6,6,1) S(T6,6) \
01091 F(T7,A7,7,1) S(T7,7) F(T8,A8,8,1) S(T8,8) F(T9,A9,9,1) S(T9,9) \
01092 F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12) \
01093 F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15) \
01094 F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18) \
01095 F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20) F(TL,AL,21,1) S(TL,21) \
01096 F(TM,AM,22,1) S(TM,22) F(TN,AN,23,1) S(TN,23) F(TO,AO,24,1) S(TO,24) \
01097 F(TP,AP,25,1) S(TP,25) F(TQ,AQ,26,1) S(TQ,26) F(TR,AR,27,1) S(TR,27)
01098 #endif
01099 #endif
01100
01101
01102 #define PROTOCCALLSFSUB1( UN,LN,T1) \
01103 PROTOCCALLSFSUB14(UN,LN,T1,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01104 #define PROTOCCALLSFSUB2( UN,LN,T1,T2) \
01105 PROTOCCALLSFSUB14(UN,LN,T1,T2,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01106 #define PROTOCCALLSFSUB3( UN,LN,T1,T2,T3) \
01107 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01108 #define PROTOCCALLSFSUB4( UN,LN,T1,T2,T3,T4) \
01109 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01110 #define PROTOCCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5) \
01111 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01112 #define PROTOCCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6) \
01113 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01114 #define PROTOCCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7) \
01115 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01116 #define PROTOCCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
01117 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01118 #define PROTOCCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
01119 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,CF_0,CF_0,CF_0,CF_0)
01120 #define PROTOCCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
01121 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
01122 #define PROTOCCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
01123 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
01124 #define PROTOCCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
01125 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
01126 #define PROTOCCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
01127 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
01128
01129
01130 #define PROTOCCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
01131 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
01132 #define PROTOCCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
01133 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
01134 #define PROTOCCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
01135 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
01136 #define PROTOCCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
01137 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
01138 #define PROTOCCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
01139 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
01140
01141 #define PROTOCCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
01142 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
01143 #define PROTOCCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
01144 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
01145 #define PROTOCCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
01146 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
01147 #define PROTOCCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
01148 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
01149 #define PROTOCCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
01150 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
01151 #define PROTOCCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
01152 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
01153
01154
01155 #ifndef FCALLSC_QUALIFIER
01156 #ifdef VISUAL_CPLUSPLUS
01157 #define FCALLSC_QUALIFIER __stdcall
01158 #else
01159 #define FCALLSC_QUALIFIER
01160 #endif
01161 #endif
01162
01163 #ifdef __cplusplus
01164 #define CFextern extern "C"
01165 #else
01166 #define CFextern extern
01167 #endif
01168
01169
01170 #ifdef CFSUBASFUN
01171 #define PROTOCCALLSFSUB0(UN,LN) \
01172 PROTOCCALLSFFUN0( VOID,UN,LN)
01173 #define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01174 PROTOCCALLSFFUN14(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
01175 #define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
01176 PROTOCCALLSFFUN20(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
01177 #define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
01178 PROTOCCALLSFFUN27(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
01179 #else
01180
01181
01182
01183 #define PROTOCCALLSFSUB0(UN,LN) _(VOID,_cfPU)(CFC_(UN,LN))();
01184 #ifndef __CF__KnR
01185 #define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01186 _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT14(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) );
01187 #define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
01188 _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT20(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) );
01189 #define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
01190 _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT27(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) );
01191 #else
01192 #define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01193 PROTOCCALLSFSUB0(UN,LN)
01194 #define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
01195 PROTOCCALLSFSUB0(UN,LN)
01196 #define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
01197 PROTOCCALLSFSUB0(UN,LN)
01198 #endif
01199 #endif
01200
01201
01202 #ifdef OLD_VAXC
01203 #pragma standard
01204 #endif
01205
01206
01207 #define CCALLSFSUB1( UN,LN,T1, A1) \
01208 CCALLSFSUB5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
01209 #define CCALLSFSUB2( UN,LN,T1,T2, A1,A2) \
01210 CCALLSFSUB5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
01211 #define CCALLSFSUB3( UN,LN,T1,T2,T3, A1,A2,A3) \
01212 CCALLSFSUB5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
01213 #define CCALLSFSUB4( UN,LN,T1,T2,T3,T4, A1,A2,A3,A4)\
01214 CCALLSFSUB5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
01215 #define CCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5, A1,A2,A3,A4,A5) \
01216 CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
01217 #define CCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6, A1,A2,A3,A4,A5,A6) \
01218 CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
01219 #define CCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7, A1,A2,A3,A4,A5,A6,A7) \
01220 CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
01221 #define CCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8, A1,A2,A3,A4,A5,A6,A7,A8) \
01222 CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
01223 #define CCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
01224 CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
01225 #define CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
01226 CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
01227 #define CCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
01228 CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
01229 #define CCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
01230 CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
01231 #define CCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
01232 CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
01233
01234 #ifdef __cplusplus
01235 #define CPPPROTOCLSFSUB0( UN,LN)
01236 #define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
01237 #define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
01238 #define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
01239 #else
01240 #define CPPPROTOCLSFSUB0(UN,LN) \
01241 PROTOCCALLSFSUB0(UN,LN)
01242 #define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01243 PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
01244 #define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
01245 PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
01246 #define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
01247 PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
01248 #endif
01249
01250 #ifdef CFSUBASFUN
01251 #define CCALLSFSUB0(UN,LN) CCALLSFFUN0(UN,LN)
01252 #define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
01253 CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)
01254 #else
01255
01256 #define CCALLSFSUB0( UN,LN) do{CPPPROTOCLSFSUB0(UN,LN) CFC_(UN,LN)();}while(0)
01257 #define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
01258 do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5) \
01259 VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,B10) \
01260 VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) \
01261 CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01262 ACF(LN,T1,A1,1) ACF(LN,T2,A2,2) ACF(LN,T3,A3,3) \
01263 ACF(LN,T4,A4,4) ACF(LN,T5,A5,5) ACF(LN,T6,A6,6) ACF(LN,T7,A7,7) \
01264 ACF(LN,T8,A8,8) ACF(LN,T9,A9,9) ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) \
01265 ACF(LN,TC,AC,12) ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) \
01266 CFC_(UN,LN)( CFARGTA14(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) );\
01267 WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \
01268 WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,10) \
01269 WCF(TB,AB,11) WCF(TC,AC,12) WCF(TD,AD,13) WCF(TE,AE,14) }while(0)
01270 #endif
01271
01272
01273 #if MAX_PREPRO_ARGS>31
01274 #define CCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF)\
01275 CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,0,0,0,0,0)
01276 #define CCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG)\
01277 CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,0,0,0,0)
01278 #define CCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH)\
01279 CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,0,0,0)
01280 #define CCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI)\
01281 CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,0,0)
01282 #define CCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)\
01283 CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,0)
01284
01285 #ifdef CFSUBASFUN
01286 #define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
01287 TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
01288 CCALLSFFUN20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
01289 TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK)
01290 #else
01291 #define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
01292 TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
01293 do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5) \
01294 VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,B10) \
01295 VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15) \
01296 VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20) \
01297 CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
01298 ACF(LN,T1,A1,1) ACF(LN,T2,A2,2) ACF(LN,T3,A3,3) ACF(LN,T4,A4,4) \
01299 ACF(LN,T5,A5,5) ACF(LN,T6,A6,6) ACF(LN,T7,A7,7) ACF(LN,T8,A8,8) \
01300 ACF(LN,T9,A9,9) ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12) \
01301 ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16) \
01302 ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20) \
01303 CFC_(UN,LN)( CFARGTA20(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) ); \
01304 WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) WCF(T6,A6,6) \
01305 WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
01306 WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
01307 WCF(TJ,AJ,19) WCF(TK,AK,20) }while(0)
01308 #endif
01309 #endif
01310
01311 #if MAX_PREPRO_ARGS>31
01312 #define CCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL)\
01313 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,0,0,0,0,0,0)
01314 #define CCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM)\
01315 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,0,0,0,0,0)
01316 #define CCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN)\
01317 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,0,0,0,0)
01318 #define CCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO)\
01319 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,0,0,0)
01320 #define CCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP)\
01321 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,0,0)
01322 #define CCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ)\
01323 CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,0)
01324
01325 #ifdef CFSUBASFUN
01326 #define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
01327 A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
01328 CCALLSFFUN27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
01329 A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR)
01330 #else
01331 #define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
01332 A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
01333 do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5) \
01334 VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,B10) \
01335 VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15) \
01336 VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20) \
01337 VVCF(TL,AL,B21) VVCF(TM,AM,B22) VVCF(TN,AN,B23) VVCF(TO,AO,B24) VVCF(TP,AP,B25) \
01338 VVCF(TQ,AQ,B26) VVCF(TR,AR,B27) \
01339 CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
01340 ACF(LN,T1,A1,1) ACF(LN,T2,A2,2) ACF(LN,T3,A3,3) ACF(LN,T4,A4,4) \
01341 ACF(LN,T5,A5,5) ACF(LN,T6,A6,6) ACF(LN,T7,A7,7) ACF(LN,T8,A8,8) \
01342 ACF(LN,T9,A9,9) ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12) \
01343 ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16) \
01344 ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20) \
01345 ACF(LN,TL,AL,21) ACF(LN,TM,AM,22) ACF(LN,TN,AN,23) ACF(LN,TO,AO,24) \
01346 ACF(LN,TP,AP,25) ACF(LN,TQ,AQ,26) ACF(LN,TR,AR,27) \
01347 CFC_(UN,LN)( CFARGTA27(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,\
01348 A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) ); \
01349 WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) WCF(T6,A6,6) \
01350 WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
01351 WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
01352 WCF(TJ,AJ,19) WCF(TK,AK,20) WCF(TL,AL,21) WCF(TM,AM,22) WCF(TN,AN,23) WCF(TO,AO,24) \
01353 WCF(TP,AP,25) WCF(TQ,AQ,26) WCF(TR,AR,27) }while(0)
01354 #endif
01355 #endif
01356
01357
01358
01359
01360
01361
01362
01363
01364
01365
01366
01367
01368
01369
01370
01371
01372 #define MAX_LEN_FORTRAN_FUNCTION_STRING 0x4FE
01373
01374
01375
01376 #define CFORTRAN_NON_CHAR 0x7F
01377
01378 #ifdef OLD_VAXC
01379 #pragma nostandard
01380 #endif
01381
01382 #define _SEP_(TN,C,cfCOMMA) _(__SEP_,C)(TN,cfCOMMA)
01383 #define __SEP_0(TN,cfCOMMA)
01384 #define __SEP_1(TN,cfCOMMA) _Icf(2,SEP,TN,cfCOMMA,0)
01385 #define INT_cfSEP(T,B) _(A,B)
01386 #define INTV_cfSEP(T,B) INT_cfSEP(T,B)
01387 #define INTVV_cfSEP(T,B) INT_cfSEP(T,B)
01388 #define INTVVV_cfSEP(T,B) INT_cfSEP(T,B)
01389 #define INTVVVV_cfSEP(T,B) INT_cfSEP(T,B)
01390 #define INTVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
01391 #define INTVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
01392 #define INTVVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
01393 #define PINT_cfSEP(T,B) INT_cfSEP(T,B)
01394 #define PVOID_cfSEP(T,B) INT_cfSEP(T,B)
01395 #define ROUTINE_cfSEP(T,B) INT_cfSEP(T,B)
01396 #define SIMPLE_cfSEP(T,B) INT_cfSEP(T,B)
01397 #define VOID_cfSEP(T,B) INT_cfSEP(T,B)
01398 #define STRING_cfSEP(T,B) INT_cfSEP(T,B)
01399 #define STRINGV_cfSEP(T,B) INT_cfSEP(T,B)
01400 #define PSTRING_cfSEP(T,B) INT_cfSEP(T,B)
01401 #define PSTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
01402 #define PNSTRING_cfSEP(T,B) INT_cfSEP(T,B)
01403 #define PPSTRING_cfSEP(T,B) INT_cfSEP(T,B)
01404 #define ZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
01405 #define PZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
01406
01407 #if defined(SIGNED_BYTE) || !defined(UNSIGNED_BYTE)
01408 #ifdef OLD_VAXC
01409 #define INTEGER_BYTE char
01410 #else
01411 #define INTEGER_BYTE signed char
01412 #endif
01413 #else
01414 #define INTEGER_BYTE unsigned char
01415 #endif
01416 #define BYTEVVVVVVV_cfTYPE INTEGER_BYTE
01417 #define DOUBLEVVVVVVV_cfTYPE DOUBLE_PRECISION
01418 #define FLOATVVVVVVV_cfTYPE FORTRAN_REAL
01419 #define INTVVVVVVV_cfTYPE int
01420 #define LOGICALVVVVVVV_cfTYPE int
01421 #define LONGVVVVVVV_cfTYPE long
01422 #define LONGLONGVVVVVVV_cfTYPE LONGLONG
01423 #define SHORTVVVVVVV_cfTYPE short
01424 #define PBYTE_cfTYPE INTEGER_BYTE
01425 #define PDOUBLE_cfTYPE DOUBLE_PRECISION
01426 #define PFLOAT_cfTYPE FORTRAN_REAL
01427 #define PINT_cfTYPE int
01428 #define PLOGICAL_cfTYPE int
01429 #define PLONG_cfTYPE long
01430 #define PLONGLONG_cfTYPE LONGLONG
01431 #define PSHORT_cfTYPE short
01432
01433 #define CFARGS0(A,T,V,W,X,Y,Z) _3(T,_cf,A)
01434 #define CFARGS1(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V)
01435 #define CFARGS2(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W)
01436 #define CFARGS3(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X)
01437 #define CFARGS4(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y)
01438 #define CFARGS5(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y,Z)
01439
01440 #define _Icf(N,T,I,X,Y) _(I,_cfINT)(N,T,I,X,Y,0)
01441 #define _Icf4(N,T,I,X,Y,Z) _(I,_cfINT)(N,T,I,X,Y,Z)
01442 #define BYTE_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01443 #define DOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INT,B,X,Y,Z,0)
01444 #define FLOAT_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01445 #define INT_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01446 #define LOGICAL_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01447 #define LONG_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01448 #define LONGLONG_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01449 #define SHORT_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z)
01450 #define PBYTE_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01451 #define PDOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,PINT,B,X,Y,Z,0)
01452 #define PFLOAT_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01453 #define PINT_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01454 #define PLOGICAL_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01455 #define PLONG_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01456 #define PLONGLONG_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01457 #define PSHORT_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z)
01458 #define BYTEV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01459 #define BYTEVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01460 #define BYTEVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01461 #define BYTEVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01462 #define BYTEVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01463 #define BYTEVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01464 #define BYTEVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01465 #define DOUBLEV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTV,B,X,Y,Z,0)
01466 #define DOUBLEVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVV,B,X,Y,Z,0)
01467 #define DOUBLEVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVV,B,X,Y,Z,0)
01468 #define DOUBLEVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVV,B,X,Y,Z,0)
01469 #define DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVV,B,X,Y,Z,0)
01470 #define DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVV,B,X,Y,Z,0)
01471 #define DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVVV,B,X,Y,Z,0)
01472 #define FLOATV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01473 #define FLOATVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01474 #define FLOATVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01475 #define FLOATVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01476 #define FLOATVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01477 #define FLOATVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01478 #define FLOATVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01479 #define INTV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01480 #define INTVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01481 #define INTVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01482 #define INTVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01483 #define INTVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01484 #define INTVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01485 #define INTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01486 #define LOGICALV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01487 #define LOGICALVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01488 #define LOGICALVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01489 #define LOGICALVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01490 #define LOGICALVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01491 #define LOGICALVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01492 #define LOGICALVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01493 #define LONGV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01494 #define LONGVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01495 #define LONGVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01496 #define LONGVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01497 #define LONGVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01498 #define LONGVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01499 #define LONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01500 #define LONGLONGV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01501 #define LONGLONGVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01502 #define LONGLONGVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01503 #define LONGLONGVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01504 #define LONGLONGVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01505 #define LONGLONGVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01506 #define LONGLONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01507 #define SHORTV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z)
01508 #define SHORTVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z)
01509 #define SHORTVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
01510 #define SHORTVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
01511 #define SHORTVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
01512 #define SHORTVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
01513 #define SHORTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
01514 #define PVOID_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,B,B,X,Y,Z,0)
01515 #define ROUTINE_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01516
01517
01518
01519
01520
01521
01522 #define SIMPLE_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01523 #define VOID_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01524 #define STRING_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01525 #define STRINGV_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01526 #define PSTRING_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01527 #define PSTRINGV_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01528 #define PNSTRING_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01529 #define PPSTRING_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01530 #define ZTRINGV_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01531 #define PZTRINGV_cfINT(N,A,B,X,Y,Z) PVOID_cfINT(N,A,B,X,Y,Z)
01532 #define CF_0_cfINT(N,A,B,X,Y,Z)
01533
01534
01535 #define UCF(TN,I,C) _SEP_(TN,C,cfCOMMA) _Icf(2,U,TN,_(A,I),0)
01536 #define UUCF(TN,I,C) _SEP_(TN,C,cfCOMMA) _SEP_(TN,1,I)
01537 #define UUUCF(TN,I,C) _SEP_(TN,C,cfCOLON) _Icf(2,U,TN,_(A,I),0)
01538 #define INT_cfU(T,A) _(T,VVVVVVV_cfTYPE) A
01539 #define INTV_cfU(T,A) _(T,VVVVVV_cfTYPE) * A
01540 #define INTVV_cfU(T,A) _(T,VVVVV_cfTYPE) * A
01541 #define INTVVV_cfU(T,A) _(T,VVVV_cfTYPE) * A
01542 #define INTVVVV_cfU(T,A) _(T,VVV_cfTYPE) * A
01543 #define INTVVVVV_cfU(T,A) _(T,VV_cfTYPE) * A
01544 #define INTVVVVVV_cfU(T,A) _(T,V_cfTYPE) * A
01545 #define INTVVVVVVV_cfU(T,A) _(T,_cfTYPE) * A
01546 #define PINT_cfU(T,A) _(T,_cfTYPE) * A
01547 #define PVOID_cfU(T,A) void *A
01548 #define ROUTINE_cfU(T,A) void (*A)(CF_NULL_PROTO)
01549 #define VOID_cfU(T,A) void A
01550 #define STRING_cfU(T,A) char *A
01551 #define STRINGV_cfU(T,A) char *A
01552 #define PSTRING_cfU(T,A) char *A
01553 #define PSTRINGV_cfU(T,A) char *A
01554 #define ZTRINGV_cfU(T,A) char *A
01555 #define PZTRINGV_cfU(T,A) char *A
01556
01557
01558 #define INT_cfUU(T,A) _(T,VVVVVVV_cfTYPE) A
01559 #define VOID_cfUU(T,A)
01560 #define STRING_cfUU(T,A) char *A
01561
01562
01563 #define BYTE_cfPU(A) CFextern INTEGER_BYTE FCALLSC_QUALIFIER A
01564 #define DOUBLE_cfPU(A) CFextern DOUBLE_PRECISION FCALLSC_QUALIFIER A
01565 #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
01566 #if defined (f2cFortran) && ! defined (gFortran)
01567
01568 #define FLOAT_cfPU(A) CFextern DOUBLE_PRECISION FCALLSC_QUALIFIER A
01569 #else
01570 #define FLOAT_cfPU(A) CFextern FORTRAN_REAL FCALLSC_QUALIFIER A
01571 #endif
01572 #else
01573 #define FLOAT_cfPU(A) CFextern FLOATFUNCTIONTYPE FCALLSC_QUALIFIER A
01574 #endif
01575 #define INT_cfPU(A) CFextern int FCALLSC_QUALIFIER A
01576 #define LOGICAL_cfPU(A) CFextern int FCALLSC_QUALIFIER A
01577 #define LONG_cfPU(A) CFextern long FCALLSC_QUALIFIER A
01578 #define SHORT_cfPU(A) CFextern short FCALLSC_QUALIFIER A
01579 #define STRING_cfPU(A) CFextern void FCALLSC_QUALIFIER A
01580 #define VOID_cfPU(A) CFextern void FCALLSC_QUALIFIER A
01581
01582 #define BYTE_cfE INTEGER_BYTE A0;
01583 #define DOUBLE_cfE DOUBLE_PRECISION A0;
01584 #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
01585 #define FLOAT_cfE FORTRAN_REAL A0;
01586 #else
01587 #define FLOAT_cfE FORTRAN_REAL AA0; FLOATFUNCTIONTYPE A0;
01588 #endif
01589 #define INT_cfE int A0;
01590 #define LOGICAL_cfE int A0;
01591 #define LONG_cfE long A0;
01592 #define SHORT_cfE short A0;
01593 #define VOID_cfE
01594 #ifdef vmsFortran
01595 #define STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING]; \
01596 static fstring A0 = \
01597 {MAX_LEN_FORTRAN_FUNCTION_STRING,DSC$K_DTYPE_T,DSC$K_CLASS_S,AA0};\
01598 memset(AA0, CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
01599 *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
01600 #else
01601 #ifdef CRAYFortran
01602 #define STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING]; \
01603 static _fcd A0; *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';\
01604 memset(AA0,CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
01605 A0 = _cptofcd(AA0,MAX_LEN_FORTRAN_FUNCTION_STRING);
01606 #else
01607
01608
01609 #define STRING_cfE static char A0[1+MAX_LEN_FORTRAN_FUNCTION_STRING]; \
01610 memset(A0, CFORTRAN_NON_CHAR, \
01611 MAX_LEN_FORTRAN_FUNCTION_STRING); \
01612 *(A0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
01613 #endif
01614 #endif
01615
01616
01617
01618
01619
01620
01621
01622 #define INT_cfGZ(T,UN,LN) A0=CFC_(UN,LN)(
01623 #define VOID_cfGZ(T,UN,LN) CFC_(UN,LN)(
01624 #ifdef vmsFortran
01625 #define STRING_cfGZ(T,UN,LN) CFC_(UN,LN)(&A0
01626 #else
01627 #if defined(CRAYFortran) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
01628 #define STRING_cfGZ(T,UN,LN) CFC_(UN,LN)( A0
01629 #else
01630 #define STRING_cfGZ(T,UN,LN) CFC_(UN,LN)( A0,MAX_LEN_FORTRAN_FUNCTION_STRING
01631 #endif
01632 #endif
01633
01634 #define INT_cfG(T,UN,LN) INT_cfGZ(T,UN,LN)
01635 #define VOID_cfG(T,UN,LN) VOID_cfGZ(T,UN,LN)
01636 #define STRING_cfG(T,UN,LN) STRING_cfGZ(T,UN,LN),
01637
01638 #define BYTEVVVVVVV_cfPP
01639 #define INTVVVVVVV_cfPP
01640 #define DOUBLEVVVVVVV_cfPP
01641 #define LOGICALVVVVVVV_cfPP
01642 #define LONGVVVVVVV_cfPP
01643 #define SHORTVVVVVVV_cfPP
01644 #define PBYTE_cfPP
01645 #define PINT_cfPP
01646 #define PDOUBLE_cfPP
01647 #define PLOGICAL_cfPP
01648 #define PLONG_cfPP
01649 #define PSHORT_cfPP
01650 #define PFLOAT_cfPP FLOATVVVVVVV_cfPP
01651
01652 #define BCF(TN,AN,C) _SEP_(TN,C,cfCOMMA) _Icf(2,B,TN,AN,0)
01653 #define INT_cfB(T,A) (_(T,VVVVVVV_cfTYPE)) A
01654 #define INTV_cfB(T,A) A
01655 #define INTVV_cfB(T,A) (A)[0]
01656 #define INTVVV_cfB(T,A) (A)[0][0]
01657 #define INTVVVV_cfB(T,A) (A)[0][0][0]
01658 #define INTVVVVV_cfB(T,A) (A)[0][0][0][0]
01659 #define INTVVVVVV_cfB(T,A) (A)[0][0][0][0][0]
01660 #define INTVVVVVVV_cfB(T,A) (A)[0][0][0][0][0][0]
01661 #define PINT_cfB(T,A) _(T,_cfPP)&A
01662 #define STRING_cfB(T,A) (char *) A
01663 #define STRINGV_cfB(T,A) (char *) A
01664 #define PSTRING_cfB(T,A) (char *) A
01665 #define PSTRINGV_cfB(T,A) (char *) A
01666 #define PVOID_cfB(T,A) (void *) A
01667 #define ROUTINE_cfB(T,A) (cfCAST_FUNCTION)A
01668 #define ZTRINGV_cfB(T,A) (char *) A
01669 #define PZTRINGV_cfB(T,A) (char *) A
01670
01671 #define SCF(TN,NAME,I,A) _(TN,_cfSTR)(3,S,NAME,I,A,0,0)
01672 #define DEFAULT_cfS(M,I,A)
01673 #define LOGICAL_cfS(M,I,A)
01674 #define PLOGICAL_cfS(M,I,A)
01675 #define STRING_cfS(M,I,A) ,sizeof(A)
01676 #define STRINGV_cfS(M,I,A) ,( (unsigned)0xFFFF*firstindexlength(A) \
01677 +secondindexlength(A))
01678 #define PSTRING_cfS(M,I,A) ,sizeof(A)
01679 #define PSTRINGV_cfS(M,I,A) STRINGV_cfS(M,I,A)
01680 #define ZTRINGV_cfS(M,I,A)
01681 #define PZTRINGV_cfS(M,I,A)
01682
01683 #define HCF(TN,I) _(TN,_cfSTR)(3,H,cfCOMMA, H,_(C,I),0,0)
01684 #define HHCF(TN,I) _(TN,_cfSTR)(3,H,cfCOMMA,HH,_(C,I),0,0)
01685 #define HHHCF(TN,I) _(TN,_cfSTR)(3,H,cfCOLON, H,_(C,I),0,0)
01686 #define H_CF_SPECIAL unsigned
01687 #define HH_CF_SPECIAL
01688 #define DEFAULT_cfH(M,I,A)
01689 #define LOGICAL_cfH(S,U,B)
01690 #define PLOGICAL_cfH(S,U,B)
01691 #define STRING_cfH(S,U,B) _(A,S) _(U,_CF_SPECIAL) B
01692 #define STRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
01693 #define PSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
01694 #define PSTRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
01695 #define PNSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
01696 #define PPSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
01697 #define ZTRINGV_cfH(S,U,B)
01698 #define PZTRINGV_cfH(S,U,B)
01699
01700
01701
01702 #define VOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01703 #define BYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01704 #define DOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01705 #define FLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01706 #define INT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01707 #define LOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,LOGICAL,A,B,C,D,E)
01708 #define LONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01709 #define LONGLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01710 #define SHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01711 #define BYTEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01712 #define BYTEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01713 #define BYTEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01714 #define BYTEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01715 #define BYTEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01716 #define BYTEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01717 #define BYTEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01718 #define DOUBLEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01719 #define DOUBLEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01720 #define DOUBLEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01721 #define DOUBLEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01722 #define DOUBLEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01723 #define DOUBLEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01724 #define DOUBLEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01725 #define FLOATV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01726 #define FLOATVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01727 #define FLOATVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01728 #define FLOATVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01729 #define FLOATVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01730 #define FLOATVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01731 #define FLOATVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01732 #define INTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01733 #define INTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01734 #define INTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01735 #define INTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01736 #define INTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01737 #define INTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01738 #define INTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01739 #define LOGICALV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01740 #define LOGICALVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01741 #define LOGICALVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01742 #define LOGICALVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01743 #define LOGICALVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01744 #define LOGICALVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01745 #define LOGICALVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01746 #define LONGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01747 #define LONGVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01748 #define LONGVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01749 #define LONGVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01750 #define LONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01751 #define LONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01752 #define LONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01753 #define LONGLONGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01754 #define LONGLONGVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01755 #define LONGLONGVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01756 #define LONGLONGVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01757 #define LONGLONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01758 #define LONGLONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01759 #define LONGLONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01760 #define SHORTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01761 #define SHORTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01762 #define SHORTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01763 #define SHORTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01764 #define SHORTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01765 #define SHORTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01766 #define SHORTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01767 #define PBYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01768 #define PDOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01769 #define PFLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01770 #define PINT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01771 #define PLOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PLOGICAL,A,B,C,D,E)
01772 #define PLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01773 #define PLONGLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01774 #define PSHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01775 #define STRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRING,A,B,C,D,E)
01776 #define PSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRING,A,B,C,D,E)
01777 #define STRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRINGV,A,B,C,D,E)
01778 #define PSTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRINGV,A,B,C,D,E)
01779 #define PNSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PNSTRING,A,B,C,D,E)
01780 #define PPSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PPSTRING,A,B,C,D,E)
01781 #define PVOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01782 #define ROUTINE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01783 #define SIMPLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
01784 #define ZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,ZTRINGV,A,B,C,D,E)
01785 #define PZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PZTRINGV,A,B,C,D,E)
01786 #define CF_0_cfSTR(N,T,A,B,C,D,E)
01787
01788
01789 #define CCF(NAME,TN,I) _(TN,_cfSTR)(5,C,NAME,I,_(A,I),_(B,I),_(C,I))
01790 #define DEFAULT_cfC(M,I,A,B,C)
01791 #define LOGICAL_cfC(M,I,A,B,C) A=C2FLOGICAL( A);
01792 #define PLOGICAL_cfC(M,I,A,B,C) *A=C2FLOGICAL(*A);
01793 #ifdef vmsFortran
01794 #define STRING_cfC(M,I,A,B,C) (B.clen=strlen(A),B.f.dsc$a_pointer=A, \
01795 C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.f.dsc$w_length=B.clen: \
01796 (memset((A)+B.clen,' ',C-B.clen-1),A[B.f.dsc$w_length=C-1]='\0'));
01797
01798 #define PSTRING_cfC(M,I,A,B,C) (B.dsc$a_pointer=A, C==sizeof(char*) ? \
01799 B.dsc$w_length=strlen(A): (A[C-1]='\0',B.dsc$w_length=strlen(A), \
01800 memset((A)+B.dsc$w_length,' ',C-B.dsc$w_length-1), B.dsc$w_length=C-1));
01801 #else
01802 #define STRING_cfC(M,I,A,B,C) (B.nombre=A,B.clen=strlen(A), \
01803 C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.flen=B.clen: \
01804 (memset(B.nombre+B.clen,' ',C-B.clen-1),B.nombre[B.flen=C-1]='\0'));
01805 #define PSTRING_cfC(M,I,A,B,C) (C==sizeof(char*)? B=strlen(A): \
01806 (A[C-1]='\0',B=strlen(A),memset((A)+B,' ',C-B-1),B=C-1));
01807 #endif
01808
01809 #define STRINGV_cfC(M,I,A,B,C) \
01810 AATRINGV_cfA( A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
01811 #define PSTRINGV_cfC(M,I,A,B,C) \
01812 APATRINGV_cfA( A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
01813 #define ZTRINGV_cfC(M,I,A,B,C) \
01814 AATRINGV_cfA( A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1), \
01815 (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1 )
01816 #define PZTRINGV_cfC(M,I,A,B,C) \
01817 APATRINGV_cfA( A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1), \
01818 (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1 )
01819
01820 #define BYTE_cfCCC(A,B) &A
01821 #define DOUBLE_cfCCC(A,B) &A
01822 #if !defined(__CF__KnR)
01823 #define FLOAT_cfCCC(A,B) &A
01824
01825 #else
01826 #define FLOAT_cfCCC(A,B) &B
01827 #endif
01828 #define INT_cfCCC(A,B) &A
01829 #define LOGICAL_cfCCC(A,B) &A
01830 #define LONG_cfCCC(A,B) &A
01831 #define SHORT_cfCCC(A,B) &A
01832 #define PBYTE_cfCCC(A,B) A
01833 #define PDOUBLE_cfCCC(A,B) A
01834 #define PFLOAT_cfCCC(A,B) A
01835 #define PINT_cfCCC(A,B) A
01836 #define PLOGICAL_cfCCC(A,B) B=A
01837 #define PLONG_cfCCC(A,B) A
01838 #define PSHORT_cfCCC(A,B) A
01839
01840 #define CCCF(TN,I,M) _SEP_(TN,M,cfCOMMA) _Icf(3,CC,TN,_(A,I),_(B,I))
01841 #define INT_cfCC(T,A,B) _(T,_cfCCC)(A,B)
01842 #define INTV_cfCC(T,A,B) A
01843 #define INTVV_cfCC(T,A,B) A
01844 #define INTVVV_cfCC(T,A,B) A
01845 #define INTVVVV_cfCC(T,A,B) A
01846 #define INTVVVVV_cfCC(T,A,B) A
01847 #define INTVVVVVV_cfCC(T,A,B) A
01848 #define INTVVVVVVV_cfCC(T,A,B) A
01849 #define PINT_cfCC(T,A,B) _(T,_cfCCC)(A,B)
01850 #define PVOID_cfCC(T,A,B) A
01851 #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
01852 #define ROUTINE_cfCC(T,A,B) &A
01853 #else
01854 #define ROUTINE_cfCC(T,A,B) A
01855 #endif
01856 #define SIMPLE_cfCC(T,A,B) A
01857 #ifdef vmsFortran
01858 #define STRING_cfCC(T,A,B) &B.f
01859 #define STRINGV_cfCC(T,A,B) &B
01860 #define PSTRING_cfCC(T,A,B) &B
01861 #define PSTRINGV_cfCC(T,A,B) &B
01862 #else
01863 #ifdef CRAYFortran
01864 #define STRING_cfCC(T,A,B) _cptofcd(A,B.flen)
01865 #define STRINGV_cfCC(T,A,B) _cptofcd(B.s,B.flen)
01866 #define PSTRING_cfCC(T,A,B) _cptofcd(A,B)
01867 #define PSTRINGV_cfCC(T,A,B) _cptofcd(A,B.flen)
01868 #else
01869 #define STRING_cfCC(T,A,B) A
01870 #define STRINGV_cfCC(T,A,B) B.fs
01871 #define PSTRING_cfCC(T,A,B) A
01872 #define PSTRINGV_cfCC(T,A,B) B.fs
01873 #endif
01874 #endif
01875 #define ZTRINGV_cfCC(T,A,B) STRINGV_cfCC(T,A,B)
01876 #define PZTRINGV_cfCC(T,A,B) PSTRINGV_cfCC(T,A,B)
01877
01878 #define BYTE_cfX return A0;
01879 #define DOUBLE_cfX return A0;
01880 #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
01881 #define FLOAT_cfX return A0;
01882 #else
01883 #define FLOAT_cfX ASSIGNFLOAT(AA0,A0); return AA0;
01884 #endif
01885 #define INT_cfX return A0;
01886 #define LOGICAL_cfX return F2CLOGICAL(A0);
01887 #define LONG_cfX return A0;
01888 #define SHORT_cfX return A0;
01889 #define VOID_cfX return ;
01890 #if defined(vmsFortran) || defined(CRAYFortran)
01891 #define STRING_cfX return kill_trailing( \
01892 kill_trailing(AA0,CFORTRAN_NON_CHAR),' ');
01893 #else
01894 #define STRING_cfX return kill_trailing( \
01895 kill_trailing( A0,CFORTRAN_NON_CHAR),' ');
01896 #endif
01897
01898 #define CFFUN(NAME) _(__cf__,NAME)
01899
01900
01901 #define CCALLSFFUN0(UN,LN) CFFUN(UN)()
01902
01903 #ifdef OLD_VAXC
01904 #pragma standard
01905 #endif
01906
01907 #define CCALLSFFUN1( UN,LN,T1, A1) \
01908 CCALLSFFUN5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
01909 #define CCALLSFFUN2( UN,LN,T1,T2, A1,A2) \
01910 CCALLSFFUN5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
01911 #define CCALLSFFUN3( UN,LN,T1,T2,T3, A1,A2,A3) \
01912 CCALLSFFUN5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
01913 #define CCALLSFFUN4( UN,LN,T1,T2,T3,T4, A1,A2,A3,A4)\
01914 CCALLSFFUN5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
01915 #define CCALLSFFUN5( UN,LN,T1,T2,T3,T4,T5, A1,A2,A3,A4,A5) \
01916 CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
01917 #define CCALLSFFUN6( UN,LN,T1,T2,T3,T4,T5,T6, A1,A2,A3,A4,A5,A6) \
01918 CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
01919 #define CCALLSFFUN7( UN,LN,T1,T2,T3,T4,T5,T6,T7, A1,A2,A3,A4,A5,A6,A7) \
01920 CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
01921 #define CCALLSFFUN8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8, A1,A2,A3,A4,A5,A6,A7,A8) \
01922 CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
01923 #define CCALLSFFUN9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
01924 CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
01925 #define CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
01926 CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
01927 #define CCALLSFFUN11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
01928 CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
01929 #define CCALLSFFUN12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
01930 CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
01931 #define CCALLSFFUN13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
01932 CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
01933
01934 #define CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
01935 ((CFFUN(UN)( BCF(T1,A1,0) BCF(T2,A2,1) BCF(T3,A3,1) BCF(T4,A4,1) BCF(T5,A5,1) \
01936 BCF(T6,A6,1) BCF(T7,A7,1) BCF(T8,A8,1) BCF(T9,A9,1) BCF(TA,AA,1) \
01937 BCF(TB,AB,1) BCF(TC,AC,1) BCF(TD,AD,1) BCF(TE,AE,1) \
01938 SCF(T1,LN,1,A1) SCF(T2,LN,2,A2) SCF(T3,LN,3,A3) SCF(T4,LN,4,A4) \
01939 SCF(T5,LN,5,A5) SCF(T6,LN,6,A6) SCF(T7,LN,7,A7) SCF(T8,LN,8,A8) \
01940 SCF(T9,LN,9,A9) SCF(TA,LN,10,AA) SCF(TB,LN,11,AB) SCF(TC,LN,12,AC) \
01941 SCF(TD,LN,13,AD) SCF(TE,LN,14,AE))))
01942
01943
01944
01945
01946
01947
01948
01949
01950
01951
01952
01953
01954
01955
01956 #define PROTOCCALLSFFUN0(F,UN,LN) \
01957 _(F,_cfPU)( CFC_(UN,LN))(CF_NULL_PROTO); \
01958 static _Icf(2,U,F,CFFUN(UN),0)() {_(F,_cfE) _Icf(3,GZ,F,UN,LN) ABSOFT_cf1(F));_(F,_cfX)}
01959
01960 #define PROTOCCALLSFFUN1( T0,UN,LN,T1) \
01961 PROTOCCALLSFFUN5 (T0,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
01962 #define PROTOCCALLSFFUN2( T0,UN,LN,T1,T2) \
01963 PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,CF_0,CF_0,CF_0)
01964 #define PROTOCCALLSFFUN3( T0,UN,LN,T1,T2,T3) \
01965 PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,CF_0,CF_0)
01966 #define PROTOCCALLSFFUN4( T0,UN,LN,T1,T2,T3,T4) \
01967 PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,T4,CF_0)
01968 #define PROTOCCALLSFFUN5( T0,UN,LN,T1,T2,T3,T4,T5) \
01969 PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
01970 #define PROTOCCALLSFFUN6( T0,UN,LN,T1,T2,T3,T4,T5,T6) \
01971 PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
01972 #define PROTOCCALLSFFUN7( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
01973 PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
01974 #define PROTOCCALLSFFUN8( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
01975 PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
01976 #define PROTOCCALLSFFUN9( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
01977 PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
01978 #define PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
01979 PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
01980 #define PROTOCCALLSFFUN11(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
01981 PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
01982 #define PROTOCCALLSFFUN12(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
01983 PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
01984 #define PROTOCCALLSFFUN13(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
01985 PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
01986
01987
01988
01989 #ifndef __CF__KnR
01990 #define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
01991 _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)( \
01992 CFARGT14FS(UCF,HCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ) \
01993 { CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) _(T0,_cfE) \
01994 CCF(LN,T1,1) CCF(LN,T2,2) CCF(LN,T3,3) CCF(LN,T4,4) CCF(LN,T5,5) \
01995 CCF(LN,T6,6) CCF(LN,T7,7) CCF(LN,T8,8) CCF(LN,T9,9) CCF(LN,TA,10) \
01996 CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14) _Icf(3,G,T0,UN,LN) \
01997 CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
01998 WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \
01999 WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,A10,10) \
02000 WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
02001 #else
02002 #define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02003 _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)( \
02004 CFARGT14FS(UUCF,HHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ) \
02005 CFARGT14FS(UUUCF,HHHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ; \
02006 { CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) _(T0,_cfE) \
02007 CCF(LN,T1,1) CCF(LN,T2,2) CCF(LN,T3,3) CCF(LN,T4,4) CCF(LN,T5,5) \
02008 CCF(LN,T6,6) CCF(LN,T7,7) CCF(LN,T8,8) CCF(LN,T9,9) CCF(LN,TA,10) \
02009 CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14) _Icf(3,G,T0,UN,LN) \
02010 CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
02011 WCF(T1,A1,1) WCF(T2,A2,2) WCF(T3,A3,3) WCF(T4,A4,4) WCF(T5,A5,5) \
02012 WCF(T6,A6,6) WCF(T7,A7,7) WCF(T8,A8,8) WCF(T9,A9,9) WCF(TA,A10,10) \
02013 WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
02014 #endif
02015
02016
02017
02018
02019
02020 #ifdef OLD_VAXC
02021 #pragma nostandard
02022 #endif
02023
02024 #if defined(vmsFortran) || defined(CRAYFortran)
02025 #define DCF(TN,I)
02026 #define DDCF(TN,I)
02027 #define DDDCF(TN,I)
02028 #else
02029 #define DCF(TN,I) HCF(TN,I)
02030 #define DDCF(TN,I) HHCF(TN,I)
02031 #define DDDCF(TN,I) HHHCF(TN,I)
02032 #endif
02033
02034 #define QCF(TN,I) _(TN,_cfSTR)(1,Q,_(B,I), 0,0,0,0)
02035 #define DEFAULT_cfQ(B)
02036 #define LOGICAL_cfQ(B)
02037 #define PLOGICAL_cfQ(B)
02038 #define STRINGV_cfQ(B) char *B; unsigned int _(B,N);
02039 #define STRING_cfQ(B) char *B=NULL;
02040 #define PSTRING_cfQ(B) char *B=NULL;
02041 #define PSTRINGV_cfQ(B) STRINGV_cfQ(B)
02042 #define PNSTRING_cfQ(B) char *B=NULL;
02043 #define PPSTRING_cfQ(B)
02044
02045 #ifdef __sgi
02046 #define ROUTINE_orig *(void**)&
02047 #else
02048 #define ROUTINE_orig (void *)
02049 #endif
02050
02051 #define ROUTINE_1 ROUTINE_orig
02052 #define ROUTINE_2 ROUTINE_orig
02053 #define ROUTINE_3 ROUTINE_orig
02054 #define ROUTINE_4 ROUTINE_orig
02055 #define ROUTINE_5 ROUTINE_orig
02056 #define ROUTINE_6 ROUTINE_orig
02057 #define ROUTINE_7 ROUTINE_orig
02058 #define ROUTINE_8 ROUTINE_orig
02059 #define ROUTINE_9 ROUTINE_orig
02060 #define ROUTINE_10 ROUTINE_orig
02061 #define ROUTINE_11 ROUTINE_orig
02062 #define ROUTINE_12 ROUTINE_orig
02063 #define ROUTINE_13 ROUTINE_orig
02064 #define ROUTINE_14 ROUTINE_orig
02065 #define ROUTINE_15 ROUTINE_orig
02066 #define ROUTINE_16 ROUTINE_orig
02067 #define ROUTINE_17 ROUTINE_orig
02068 #define ROUTINE_18 ROUTINE_orig
02069 #define ROUTINE_19 ROUTINE_orig
02070 #define ROUTINE_20 ROUTINE_orig
02071 #define ROUTINE_21 ROUTINE_orig
02072 #define ROUTINE_22 ROUTINE_orig
02073 #define ROUTINE_23 ROUTINE_orig
02074 #define ROUTINE_24 ROUTINE_orig
02075 #define ROUTINE_25 ROUTINE_orig
02076 #define ROUTINE_26 ROUTINE_orig
02077 #define ROUTINE_27 ROUTINE_orig
02078
02079 #define TCF(NAME,TN,I,M) _SEP_(TN,M,cfCOMMA) _(TN,_cfT)(NAME,I,_(A,I),_(B,I),_(C,I))
02080 #define BYTE_cfT(M,I,A,B,D) *A
02081 #define DOUBLE_cfT(M,I,A,B,D) *A
02082 #define FLOAT_cfT(M,I,A,B,D) *A
02083 #define INT_cfT(M,I,A,B,D) *A
02084 #define LOGICAL_cfT(M,I,A,B,D) F2CLOGICAL(*A)
02085 #define LONG_cfT(M,I,A,B,D) *A
02086 #define LONGLONG_cfT(M,I,A,B,D) *A
02087 #define SHORT_cfT(M,I,A,B,D) *A
02088 #define BYTEV_cfT(M,I,A,B,D) A
02089 #define DOUBLEV_cfT(M,I,A,B,D) A
02090 #define FLOATV_cfT(M,I,A,B,D) VOIDP A
02091 #define INTV_cfT(M,I,A,B,D) A
02092 #define LOGICALV_cfT(M,I,A,B,D) A
02093 #define LONGV_cfT(M,I,A,B,D) A
02094 #define LONGLONGV_cfT(M,I,A,B,D) A
02095 #define SHORTV_cfT(M,I,A,B,D) A
02096 #define BYTEVV_cfT(M,I,A,B,D) (void *)A
02097 #define BYTEVVV_cfT(M,I,A,B,D) (void *)A
02098 #define BYTEVVVV_cfT(M,I,A,B,D) (void *)A
02099 #define BYTEVVVVV_cfT(M,I,A,B,D) (void *)A
02100 #define BYTEVVVVVV_cfT(M,I,A,B,D) (void *)A
02101 #define BYTEVVVVVVV_cfT(M,I,A,B,D) (void *)A
02102 #define DOUBLEVV_cfT(M,I,A,B,D) (void *)A
02103 #define DOUBLEVVV_cfT(M,I,A,B,D) (void *)A
02104 #define DOUBLEVVVV_cfT(M,I,A,B,D) (void *)A
02105 #define DOUBLEVVVVV_cfT(M,I,A,B,D) (void *)A
02106 #define DOUBLEVVVVVV_cfT(M,I,A,B,D) (void *)A
02107 #define DOUBLEVVVVVVV_cfT(M,I,A,B,D) (void *)A
02108 #define FLOATVV_cfT(M,I,A,B,D) (void *)A
02109 #define FLOATVVV_cfT(M,I,A,B,D) (void *)A
02110 #define FLOATVVVV_cfT(M,I,A,B,D) (void *)A
02111 #define FLOATVVVVV_cfT(M,I,A,B,D) (void *)A
02112 #define FLOATVVVVVV_cfT(M,I,A,B,D) (void *)A
02113 #define FLOATVVVVVVV_cfT(M,I,A,B,D) (void *)A
02114 #define INTVV_cfT(M,I,A,B,D) (void *)A
02115 #define INTVVV_cfT(M,I,A,B,D) (void *)A
02116 #define INTVVVV_cfT(M,I,A,B,D) (void *)A
02117 #define INTVVVVV_cfT(M,I,A,B,D) (void *)A
02118 #define INTVVVVVV_cfT(M,I,A,B,D) (void *)A
02119 #define INTVVVVVVV_cfT(M,I,A,B,D) (void *)A
02120 #define LOGICALVV_cfT(M,I,A,B,D) (void *)A
02121 #define LOGICALVVV_cfT(M,I,A,B,D) (void *)A
02122 #define LOGICALVVVV_cfT(M,I,A,B,D) (void *)A
02123 #define LOGICALVVVVV_cfT(M,I,A,B,D) (void *)A
02124 #define LOGICALVVVVVV_cfT(M,I,A,B,D) (void *)A
02125 #define LOGICALVVVVVVV_cfT(M,I,A,B,D) (void *)A
02126 #define LONGVV_cfT(M,I,A,B,D) (void *)A
02127 #define LONGVVV_cfT(M,I,A,B,D) (void *)A
02128 #define LONGVVVV_cfT(M,I,A,B,D) (void *)A
02129 #define LONGVVVVV_cfT(M,I,A,B,D) (void *)A
02130 #define LONGVVVVVV_cfT(M,I,A,B,D) (void *)A
02131 #define LONGVVVVVVV_cfT(M,I,A,B,D) (void *)A
02132 #define LONGLONGVV_cfT(M,I,A,B,D) (void *)A
02133 #define LONGLONGVVV_cfT(M,I,A,B,D) (void *)A
02134 #define LONGLONGVVVV_cfT(M,I,A,B,D) (void *)A
02135 #define LONGLONGVVVVV_cfT(M,I,A,B,D) (void *)A
02136 #define LONGLONGVVVVVV_cfT(M,I,A,B,D) (void *)A
02137 #define LONGLONGVVVVVVV_cfT(M,I,A,B,D) (void *)A
02138 #define SHORTVV_cfT(M,I,A,B,D) (void *)A
02139 #define SHORTVVV_cfT(M,I,A,B,D) (void *)A
02140 #define SHORTVVVV_cfT(M,I,A,B,D) (void *)A
02141 #define SHORTVVVVV_cfT(M,I,A,B,D) (void *)A
02142 #define SHORTVVVVVV_cfT(M,I,A,B,D) (void *)A
02143 #define SHORTVVVVVVV_cfT(M,I,A,B,D) (void *)A
02144 #define PBYTE_cfT(M,I,A,B,D) A
02145 #define PDOUBLE_cfT(M,I,A,B,D) A
02146 #define PFLOAT_cfT(M,I,A,B,D) VOIDP A
02147 #define PINT_cfT(M,I,A,B,D) A
02148 #define PLOGICAL_cfT(M,I,A,B,D) ((*A=F2CLOGICAL(*A)),A)
02149 #define PLONG_cfT(M,I,A,B,D) A
02150 #define PLONGLONG_cfT(M,I,A,B,D) A
02151 #define PSHORT_cfT(M,I,A,B,D) A
02152 #define PVOID_cfT(M,I,A,B,D) A
02153 #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
02154 #define ROUTINE_cfT(M,I,A,B,D) _(ROUTINE_,I) (*A)
02155 #else
02156 #define ROUTINE_cfT(M,I,A,B,D) _(ROUTINE_,I) A
02157 #endif
02158
02159
02160
02161 #define TTSTR( A,B,D) \
02162 ((B=_cf_malloc(D+1))[D]='\0', memcpy(B,A,D), kill_trailing(B,' '))
02163 #define TTTTSTR( A,B,D) (!(D<4||A[0]||A[1]||A[2]||A[3]))?NULL: \
02164 memchr(A,'\0',D) ?A : TTSTR(A,B,D)
02165 #define TTTTSTRV( A,B,D,E) (_(B,N)=E,B=_cf_malloc(_(B,N)*(D+1)), (void *) \
02166 vkill_trailing(f2cstrv(A,B,D+1, _(B,N)*(D+1)), D+1,_(B,N)*(D+1),' '))
02167 #ifdef vmsFortran
02168 #define STRING_cfT(M,I,A,B,D) TTTTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
02169 #define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(A->dsc$a_pointer, B, \
02170 A->dsc$w_length , A->dsc$l_m[0])
02171 #define PSTRING_cfT(M,I,A,B,D) TTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
02172 #define PPSTRING_cfT(M,I,A,B,D) A->dsc$a_pointer
02173 #else
02174 #ifdef CRAYFortran
02175 #define STRING_cfT(M,I,A,B,D) TTTTSTR( _fcdtocp(A),B,_fcdlen(A))
02176 #define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(_fcdtocp(A),B,_fcdlen(A), \
02177 num_elem(_fcdtocp(A),_fcdlen(A),_3(M,_STRV_A,I)))
02178 #define PSTRING_cfT(M,I,A,B,D) TTSTR( _fcdtocp(A),B,_fcdlen(A))
02179 #define PPSTRING_cfT(M,I,A,B,D) _fcdtocp(A)
02180 #else
02181
02182
02183
02184
02185
02186 #define STRING_cfT(M,I,A,B,D) TTTTSTR( A,B,D)
02187 #define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(A,B,D, num_elem(A,D,_3(M,_STRV_A,I)))
02188 #define PSTRING_cfT(M,I,A,B,D) TTSTR( A,B,D), D+1
02189 #define PPSTRING_cfT(M,I,A,B,D) A
02190 #endif
02191 #endif
02192 #define PNSTRING_cfT(M,I,A,B,D) STRING_cfT(M,I,A,B,D)
02193 #define PSTRINGV_cfT(M,I,A,B,D) STRINGV_cfT(M,I,A,B,D)
02194 #define CF_0_cfT(M,I,A,B,D)
02195
02196 #define RCF(TN,I) _(TN,_cfSTR)(3,R,_(A,I),_(B,I),_(C,I),0,0)
02197 #define DEFAULT_cfR(A,B,D)
02198 #define LOGICAL_cfR(A,B,D)
02199 #define PLOGICAL_cfR(A,B,D) *A=C2FLOGICAL(*A);
02200 #define STRING_cfR(A,B,D) if (B) _cf_free(B);
02201 #define STRINGV_cfR(A,B,D) _cf_free(B);
02202
02203 #define RRRRPSTR( A,B,D) if (B) memcpy(A,B, _cfMIN(strlen(B),D)), \
02204 (D>strlen(B)?memset(A+strlen(B),' ', D-strlen(B)):0), _cf_free(B);
02205 #define RRRRPSTRV(A,B,D) c2fstrv(B,A,D+1,(D+1)*_(B,N)), _cf_free(B);
02206 #ifdef vmsFortran
02207 #define PSTRING_cfR(A,B,D) RRRRPSTR( A->dsc$a_pointer,B,A->dsc$w_length)
02208 #define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A->dsc$a_pointer,B,A->dsc$w_length)
02209 #else
02210 #ifdef CRAYFortran
02211 #define PSTRING_cfR(A,B,D) RRRRPSTR( _fcdtocp(A),B,_fcdlen(A))
02212 #define PSTRINGV_cfR(A,B,D) RRRRPSTRV(_fcdtocp(A),B,_fcdlen(A))
02213 #else
02214 #define PSTRING_cfR(A,B,D) RRRRPSTR( A,B,D)
02215 #define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A,B,D)
02216 #endif
02217 #endif
02218 #define PNSTRING_cfR(A,B,D) PSTRING_cfR(A,B,D)
02219 #define PPSTRING_cfR(A,B,D)
02220
02221 #define BYTE_cfFZ(UN,LN) INTEGER_BYTE FCALLSC_QUALIFIER fcallsc(UN,LN)(
02222 #define DOUBLE_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(
02223 #define INT_cfFZ(UN,LN) int FCALLSC_QUALIFIER fcallsc(UN,LN)(
02224 #define LOGICAL_cfFZ(UN,LN) int FCALLSC_QUALIFIER fcallsc(UN,LN)(
02225 #define LONG_cfFZ(UN,LN) long FCALLSC_QUALIFIER fcallsc(UN,LN)(
02226 #define LONGLONG_cfFZ(UN,LN) LONGLONG FCALLSC_QUALIFIER fcallsc(UN,LN)(
02227 #define SHORT_cfFZ(UN,LN) short FCALLSC_QUALIFIER fcallsc(UN,LN)(
02228 #define VOID_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(
02229 #ifndef __CF__KnR
02230
02231
02232 #if defined (f2cFortran) && ! defined (gFortran)
02233
02234 #define FLOAT_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(void
02235 #else
02236 #define FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(void
02237 #endif
02238 #ifdef vmsFortran
02239 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(fstring *AS
02240 #else
02241 #ifdef CRAYFortran
02242 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(_fcd AS
02243 #else
02244 #if defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
02245 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(char *AS
02246 #else
02247 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(char *AS, unsigned D0
02248 #endif
02249 #endif
02250 #endif
02251 #else
02252 #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
02253 #if defined (f2cFortran) && ! defined (gFortran)
02254
02255 #define FLOAT_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(
02256 #else
02257 #define FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(
02258 #endif
02259 #else
02260 #define FLOAT_cfFZ(UN,LN) FLOATFUNCTIONTYPE FCALLSC_QUALIFIER fcallsc(UN,LN)(
02261 #endif
02262 #if defined(vmsFortran) || defined(CRAYFortran) || defined(AbsoftUNIXFortran)
02263 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(AS
02264 #else
02265 #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(AS, D0
02266 #endif
02267 #endif
02268
02269 #define BYTE_cfF(UN,LN) BYTE_cfFZ(UN,LN)
02270 #define DOUBLE_cfF(UN,LN) DOUBLE_cfFZ(UN,LN)
02271 #ifndef __CF_KnR
02272 #if defined (f2cFortran) && ! defined (gFortran)
02273
02274 #define FLOAT_cfF(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(
02275 #else
02276 #define FLOAT_cfF(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(
02277 #endif
02278 #else
02279 #define FLOAT_cfF(UN,LN) FLOAT_cfFZ(UN,LN)
02280 #endif
02281 #define INT_cfF(UN,LN) INT_cfFZ(UN,LN)
02282 #define LOGICAL_cfF(UN,LN) LOGICAL_cfFZ(UN,LN)
02283 #define LONG_cfF(UN,LN) LONG_cfFZ(UN,LN)
02284 #define LONGLONG_cfF(UN,LN) LONGLONG_cfFZ(UN,LN)
02285 #define SHORT_cfF(UN,LN) SHORT_cfFZ(UN,LN)
02286 #define VOID_cfF(UN,LN) VOID_cfFZ(UN,LN)
02287 #define STRING_cfF(UN,LN) STRING_cfFZ(UN,LN),
02288
02289 #define INT_cfFF
02290 #define VOID_cfFF
02291 #ifdef vmsFortran
02292 #define STRING_cfFF fstring *AS;
02293 #else
02294 #ifdef CRAYFortran
02295 #define STRING_cfFF _fcd AS;
02296 #else
02297 #define STRING_cfFF char *AS; unsigned D0;
02298 #endif
02299 #endif
02300
02301 #define INT_cfL A0=
02302 #define STRING_cfL A0=
02303 #define VOID_cfL
02304
02305 #define INT_cfK
02306 #define VOID_cfK
02307
02308 #ifdef vmsFortran
02309 #define STRING_cfK \
02310 memcpy(AS->dsc$a_pointer,A0,_cfMIN(AS->dsc$w_length,(A0==NULL?0:strlen(A0))));\
02311 AS->dsc$w_length>(A0==NULL?0:strlen(A0))? \
02312 memset(AS->dsc$a_pointer+(A0==NULL?0:strlen(A0)),' ', \
02313 AS->dsc$w_length-(A0==NULL?0:strlen(A0))):0;
02314 #else
02315 #ifdef CRAYFortran
02316 #define STRING_cfK \
02317 memcpy(_fcdtocp(AS),A0, _cfMIN(_fcdlen(AS),(A0==NULL?0:strlen(A0))) ); \
02318 _fcdlen(AS)>(A0==NULL?0:strlen(A0))? \
02319 memset(_fcdtocp(AS)+(A0==NULL?0:strlen(A0)),' ', \
02320 _fcdlen(AS)-(A0==NULL?0:strlen(A0))):0;
02321 #else
02322 #define STRING_cfK memcpy(AS,A0, _cfMIN(D0,(A0==NULL?0:strlen(A0))) ); \
02323 D0>(A0==NULL?0:strlen(A0))?memset(AS+(A0==NULL?0:strlen(A0)), \
02324 ' ', D0-(A0==NULL?0:strlen(A0))):0;
02325 #endif
02326 #endif
02327
02328
02329
02330
02331
02332 #define BYTE_cfI return A0;
02333 #define DOUBLE_cfI return A0;
02334 #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
02335 #define FLOAT_cfI return A0;
02336 #else
02337 #define FLOAT_cfI RETURNFLOAT(A0);
02338 #endif
02339 #define INT_cfI return A0;
02340 #ifdef hpuxFortran800
02341
02342 #define LOGICAL_cfI return ((A0)?1:0);
02343 #else
02344 #define LOGICAL_cfI return C2FLOGICAL(A0);
02345 #endif
02346 #define LONG_cfI return A0;
02347 #define LONGLONG_cfI return A0;
02348 #define SHORT_cfI return A0;
02349 #define STRING_cfI return ;
02350 #define VOID_cfI return ;
02351
02352 #ifdef OLD_VAXC
02353 #pragma standard
02354 #endif
02355
02356 #define FCALLSCSUB0( CN,UN,LN) FCALLSCFUN0(VOID,CN,UN,LN)
02357 #define FCALLSCSUB1( CN,UN,LN,T1) FCALLSCFUN1(VOID,CN,UN,LN,T1)
02358 #define FCALLSCSUB2( CN,UN,LN,T1,T2) FCALLSCFUN2(VOID,CN,UN,LN,T1,T2)
02359 #define FCALLSCSUB3( CN,UN,LN,T1,T2,T3) FCALLSCFUN3(VOID,CN,UN,LN,T1,T2,T3)
02360 #define FCALLSCSUB4( CN,UN,LN,T1,T2,T3,T4) \
02361 FCALLSCFUN4(VOID,CN,UN,LN,T1,T2,T3,T4)
02362 #define FCALLSCSUB5( CN,UN,LN,T1,T2,T3,T4,T5) \
02363 FCALLSCFUN5(VOID,CN,UN,LN,T1,T2,T3,T4,T5)
02364 #define FCALLSCSUB6( CN,UN,LN,T1,T2,T3,T4,T5,T6) \
02365 FCALLSCFUN6(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6)
02366 #define FCALLSCSUB7( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
02367 FCALLSCFUN7(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7)
02368 #define FCALLSCSUB8( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
02369 FCALLSCFUN8(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8)
02370 #define FCALLSCSUB9( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
02371 FCALLSCFUN9(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9)
02372 #define FCALLSCSUB10(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
02373 FCALLSCFUN10(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA)
02374 #define FCALLSCSUB11(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
02375 FCALLSCFUN11(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB)
02376 #define FCALLSCSUB12(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
02377 FCALLSCFUN12(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC)
02378 #define FCALLSCSUB13(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
02379 FCALLSCFUN13(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD)
02380 #define FCALLSCSUB14(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02381 FCALLSCFUN14(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
02382 #define FCALLSCSUB15(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
02383 FCALLSCFUN15(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF)
02384 #define FCALLSCSUB16(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
02385 FCALLSCFUN16(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG)
02386 #define FCALLSCSUB17(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
02387 FCALLSCFUN17(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH)
02388 #define FCALLSCSUB18(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
02389 FCALLSCFUN18(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI)
02390 #define FCALLSCSUB19(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
02391 FCALLSCFUN19(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ)
02392 #define FCALLSCSUB20(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
02393 FCALLSCFUN20(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
02394 #define FCALLSCSUB21(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
02395 FCALLSCFUN21(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL)
02396 #define FCALLSCSUB22(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
02397 FCALLSCFUN22(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM)
02398 #define FCALLSCSUB23(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
02399 FCALLSCFUN23(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN)
02400 #define FCALLSCSUB24(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
02401 FCALLSCFUN24(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO)
02402 #define FCALLSCSUB25(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
02403 FCALLSCFUN25(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP)
02404 #define FCALLSCSUB26(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
02405 FCALLSCFUN26(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ)
02406 #define FCALLSCSUB27(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
02407 FCALLSCFUN27(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
02408
02409
02410 #define FCALLSCFUN1( T0,CN,UN,LN,T1) \
02411 FCALLSCFUN5 (T0,CN,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
02412 #define FCALLSCFUN2( T0,CN,UN,LN,T1,T2) \
02413 FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,CF_0,CF_0,CF_0)
02414 #define FCALLSCFUN3( T0,CN,UN,LN,T1,T2,T3) \
02415 FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,CF_0,CF_0)
02416 #define FCALLSCFUN4( T0,CN,UN,LN,T1,T2,T3,T4) \
02417 FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,T4,CF_0)
02418 #define FCALLSCFUN5( T0,CN,UN,LN,T1,T2,T3,T4,T5) \
02419 FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
02420 #define FCALLSCFUN6( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6) \
02421 FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
02422 #define FCALLSCFUN7( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
02423 FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
02424 #define FCALLSCFUN8( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
02425 FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
02426 #define FCALLSCFUN9( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
02427 FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
02428 #define FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
02429 FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
02430 #define FCALLSCFUN11(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
02431 FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
02432 #define FCALLSCFUN12(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
02433 FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
02434 #define FCALLSCFUN13(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
02435 FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
02436
02437
02438 #define FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
02439 FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
02440 #define FCALLSCFUN16(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
02441 FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
02442 #define FCALLSCFUN17(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
02443 FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
02444 #define FCALLSCFUN18(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
02445 FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
02446 #define FCALLSCFUN19(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
02447 FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
02448 #define FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
02449 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
02450 #define FCALLSCFUN21(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
02451 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
02452 #define FCALLSCFUN22(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
02453 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
02454 #define FCALLSCFUN23(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
02455 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
02456 #define FCALLSCFUN24(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
02457 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
02458 #define FCALLSCFUN25(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
02459 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
02460 #define FCALLSCFUN26(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
02461 FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
02462
02463
02464 #ifndef __CF__KnR
02465 #define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf2(T0)) \
02466 {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
02467
02468 #define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02469 CFextern _(T0,_cfF)(UN,LN) \
02470 CFARGT14(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ) \
02471 { CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02472 _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN( TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
02473 TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
02474 TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
02475 TCF(LN,TD,13,1) TCF(LN,TE,14,1) ); _Icf(0,K,T0,0,0) \
02476 CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) _(T0,_cfI) }
02477
02478 #define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
02479 CFextern _(T0,_cfF)(UN,LN) \
02480 CFARGT27(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) ) \
02481 { CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
02482 _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN( TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
02483 TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
02484 TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
02485 TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
02486 TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
02487 TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
02488 CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) _(T0,_cfI) }
02489
02490 #else
02491 #define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf3(T0)) _Icf(0,FF,T0,0,0)\
02492 {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
02493
02494 #define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02495 CFextern _(T0,_cfF)(UN,LN) \
02496 CFARGT14(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)) _Icf(0,FF,T0,0,0) \
02497 CFARGT14FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE); \
02498 { CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
02499 _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN( TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
02500 TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
02501 TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
02502 TCF(LN,TD,13,1) TCF(LN,TE,14,1) ); _Icf(0,K,T0,0,0) \
02503 CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) _(T0,_cfI)}
02504
02505 #define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
02506 CFextern _(T0,_cfF)(UN,LN) \
02507 CFARGT27(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)) _Icf(0,FF,T0,0,0) \
02508 CFARGT27FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR); \
02509 { CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
02510 _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN( TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
02511 TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
02512 TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
02513 TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
02514 TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
02515 TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
02516 CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) _(T0,_cfI)}
02517
02518 #endif
02519
02520
02521 #endif