📄 cforthdf.h
字号:
#define INT_BYTEVVV INT_DOUBLEVVV#define INT_BYTEVVVV INT_DOUBLEVVVV#define INT_BYTEVVVVV INT_DOUBLEVVVVV#define INT_BYTEVVVVVV INT_DOUBLEVVVVVV#define INT_BYTEVVVVVVV INT_DOUBLEVVVVVVV#define INT_DOUBLEV( N,A,B,Y,Z) CFARGS##N(A,INTV,B,Y,Z,0)#define INT_DOUBLEVV( N,A,B,Y,Z) CFARGS##N(A,INTVV,B,Y,Z,0)#define INT_DOUBLEVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVV,B,Y,Z,0)#define INT_DOUBLEVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVV,B,Y,Z,0)#define INT_DOUBLEVVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVVV,B,Y,Z,0)#define INT_DOUBLEVVVVVV( N,A,B,Y,Z) CFARGS##N(A,INTVVVVVV,B,Y,Z,0)#define INT_DOUBLEVVVVVVV(N,A,B,Y,Z) CFARGS##N(A,INTVVVVVVV,B,Y,Z,0)#define INT_FLOATV INT_DOUBLEV#define INT_FLOATVV INT_DOUBLEVV#define INT_FLOATVVV INT_DOUBLEVVV#define INT_FLOATVVVV INT_DOUBLEVVVV#define INT_FLOATVVVVV INT_DOUBLEVVVVV#define INT_FLOATVVVVVV INT_DOUBLEVVVVVV#define INT_FLOATVVVVVVV INT_DOUBLEVVVVVVV#define INT_INTV INT_DOUBLEV#define INT_INTVV INT_DOUBLEVV#define INT_INTVVV INT_DOUBLEVVV#define INT_INTVVVV INT_DOUBLEVVVV#define INT_INTVVVVV INT_DOUBLEVVVVV#define INT_INTVVVVVV INT_DOUBLEVVVVVV#define INT_INTVVVVVVV INT_DOUBLEVVVVVVV#define INT_LOGICALV INT_DOUBLEV#define INT_LOGICALVV INT_DOUBLEVV#define INT_LOGICALVVV INT_DOUBLEVVV#define INT_LOGICALVVVV INT_DOUBLEVVVV#define INT_LOGICALVVVVV INT_DOUBLEVVVVV#define INT_LOGICALVVVVVV INT_DOUBLEVVVVVV#define INT_LOGICALVVVVVVV INT_DOUBLEVVVVVVV#define INT_LONGV INT_DOUBLEV#define INT_LONGVV INT_DOUBLEVV#define INT_LONGVVV INT_DOUBLEVVV#define INT_LONGVVVV INT_DOUBLEVVVV#define INT_LONGVVVVV INT_DOUBLEVVVVV#define INT_LONGVVVVVV INT_DOUBLEVVVVVV#define INT_LONGVVVVVVV INT_DOUBLEVVVVVVV#define INT_SHORTV INT_DOUBLEV#define INT_SHORTVV INT_DOUBLEVV#define INT_SHORTVVV INT_DOUBLEVVV#define INT_SHORTVVVV INT_DOUBLEVVVV#define INT_SHORTVVVVV INT_DOUBLEVVVVV#define INT_SHORTVVVVVV INT_DOUBLEVVVVVV#define INT_SHORTVVVVVVV INT_DOUBLEVVVVVVV#define INT_PVOID( N,A,B,Y,Z) CFARGS##N(A,B,B,Y,Z,0)#define INT_ROUTINE INT_PVOID/*CRAY coughs on the first, i.e. the usual trouble of not being able to define macros to macros with arguments. *//*#define INT_SIMPLE INT_PVOID*/#define INT_SIMPLE( N,A,B,Y,Z) INT_PVOID(N,A,B,Y,Z)#define INT_VOID INT_PVOID#define INT_STRING INT_PVOID#define INT_STRINGV INT_PVOID#define INT_PSTRING INT_PVOID#define INT_PSTRINGV INT_PVOID#define INT_PNSTRING INT_PVOID#define INT_PPSTRING INT_PVOID#define INT_ZTRINGV INT_PVOID#define INT_PZTRINGV INT_PVOID#define INT_STRVOID INT_PVOID#define INT_CF_0( N,A,B,Y,Z) #define UCF(TN,I,C) _SEP_(TN,C,COMMA) _INT(2,U,TN,A##I,0)#define UUCF(TN,I,C) _SEP_(TN,C,COMMA) _SEP_(TN,1,I) #define UUUCF(TN,I,C) _SEP_(TN,C,COLON) _INT(2,U,TN,A##I,0)#define UINT( T,A) typeP##T##VVVVVVV A#define UINTV( T,A) typeP##T##VVVVVV *A#define UINTVV( T,A) typeP##T##VVVVV *A#define UINTVVV( T,A) typeP##T##VVVV *A#define UINTVVVV( T,A) typeP##T##VVV *A#define UINTVVVVV( T,A) typeP##T##VV *A#define UINTVVVVVV( T,A) typeP##T##V *A#define UINTVVVVVVV(T,A) typeP##T *A#define UPINT( T,A) type##T##VVVVVVV *A#define UPVOID( T,A) void *A #define UROUTINE( T,A) void (*A)() #define UVOID( T,A) void A /* Needed for C calls FORTRAN subroutines. */#define USTRING( T,A) char *A /* via VOID and wrapper. */#define USTRINGV( T,A) char *A#define UPSTRING( T,A) char *A#define UPSTRINGV( T,A) char *A#define UZTRINGV( T,A) char *A#define UPZTRINGV( T,A) char *A/* VOID breaks U into U and UU. */#define UUINT( T,A) typeP##T##VVVVVVV A#define UUVOID( T,A) /* Needed for FORTRAN calls C subroutines. */#define UUSTRING( T,A) char *A /* Sun and VOID break U into U and PU. */#define PUBYTE( A) INTEGER_BYTE A#define PUDOUBLE( A) DOUBLE_PRECISION A#ifndef sunFortran#define PUFLOAT( A) float A#else#define PUFLOAT( A) FLOATFUNCTIONTYPE A#endif#define PUINT( A) int A#define PULOGICAL( A) int A#define PULONG( A) long A#define PUSHORT( A) short A#define PUSTRING( A) char *A #define PUVOID( A) void A#define EBYTE INTEGER_BYTE A0;#define EDOUBLE DOUBLE_PRECISION A0;#ifndef sunFortran#define EFLOAT float A0;#else#define EFLOAT float AA0; FLOATFUNCTIONTYPE A0;#endif#define EINT int A0;#define ELOGICAL int A0;#define ELONG long A0;#define ESHORT short A0;#define EVOID#ifdef vmsFortran#define ESTRING static char AA0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ static fstring A0 = \ {MAX_LEN_FORTRAN_FUNCTION_STRING,DSC$K_DTYPE_T,DSC$K_CLASS_S,AA0};\ memset(AA0, CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\ *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';#else#ifdef CRAYFortran#define ESTRING static char AA0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ static _fcd A0; *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';\ memset(AA0,CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\ A0 = _cptofcd(AA0,MAX_LEN_FORTRAN_FUNCTION_STRING);#else#define ESTRING static char A0[MAX_LEN_FORTRAN_FUNCTION_STRING+1]; \ memset(A0, CFORTRAN_NON_CHAR, \ MAX_LEN_FORTRAN_FUNCTION_STRING); \ *(A0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';#endif#endif/* ESTRING must use static char. array which is guaranteed to exist after function returns. *//* N.B.i) The diff. for 0 (Zero) and >=1 arguments. ii)That the following create an unmatched bracket, i.e. '(', which must of course be matched in the call. iii)Commas must be handled very carefully */#define GZINT( T,UN,LN) A0=CFC_(UN,LN)(#define GZVOID( T,UN,LN) CFC_(UN,LN)(#ifdef vmsFortran#define GZSTRING( T,UN,LN) CFC_(UN,LN)(&A0#else#ifdef CRAYFortran#define GZSTRING( T,UN,LN) CFC_(UN,LN)( A0#else#define GZSTRING( T,UN,LN) CFC_(UN,LN)( A0,MAX_LEN_FORTRAN_FUNCTION_STRING#endif#endif#define GINT GZINT#define GVOID GZVOID#define GSTRING( T,UN,LN) GZSTRING(T,UN,LN),#define PPBYTEVVVVVVV#define PPINTVVVVVVV /* These complement PPFLOATVVVVVVV. */#define PPDOUBLEVVVVVVV#define PPLOGICALVVVVVVV#define PPLONGVVVVVVV#define PPSHORTVVVVVVV#define BCF(TN,AN,C) _SEP_(TN,C,COMMA) _INT(2,B,TN,AN,0)#define BINT( T,A) (typeP##T##VVVVVVV) A#define BINTV( T,A) A#define BINTVV( T,A) (A)[0]#define BINTVVV( T,A) (A)[0][0]#define BINTVVVV( T,A) (A)[0][0][0]#define BINTVVVVV( T,A) (A)[0][0][0][0]#define BINTVVVVVV( T,A) (A)[0][0][0][0][0]#define BINTVVVVVVV(T,A) (A)[0][0][0][0][0][0]#define BPINT( T,A) P##T##VVVVVVV &A#define BSTRING( T,A) (char *) A#define BSTRINGV( T,A) (char *) A#define BPSTRING( T,A) (char *) A#define BPSTRINGV( T,A) (char *) A#define BPVOID( T,A) (void *) A#define BROUTINE( T,A) (void(*)())A#define BZTRINGV( T,A) (char *) A#define BPZTRINGV( T,A) (char *) A #define ZCF(TN,N,AN) _INT(3,Z,TN,N,AN)#define ZINT( T,I,A) (__cfztringv[I]=(int)A),#define ZPINT ZINT#define ZINTV( T,I,A)#define ZINTVV( T,I,A)#define ZINTVVV( T,I,A)#define ZINTVVVV( T,I,A)#define ZINTVVVVV( T,I,A)#define ZINTVVVVVV( T,I,A)#define ZINTVVVVVVV(T,I,A)#define ZSTRING( T,I,A)#define ZSTRINGV( T,I,A)#define ZPSTRING( T,I,A)#define ZPSTRINGV( T,I,A)#define ZPVOID( T,I,A)#define ZROUTINE( T,I,A)#define ZSIMPLE( T,I,A)#define ZZTRINGV( T,I,A)#define ZPZTRINGV( T,I,A)#define SCF(TN,NAME,I,A) STR_##TN(3,S,NAME,I,A,0)#define SLOGICAL( M,I,A)#define SPLOGICAL(M,I,A)#define SSTRING( M,I,A) ,sizeof(A)#define SSTRINGV( M,I,A) ,( (unsigned)0xFFFF*firstindexlength(A) \ +secondindexlength(A))#define SPSTRING( M,I,A) ,sizeof(A)#define SPSTRINGV SSTRINGV#define SZTRINGV( M,I,A) ,( (unsigned)0xFFFF*M##_ELEMS_##I \ +M##_ELEMLEN_##I+1)#define SPZTRINGV SZTRINGV#define HCF(TN,I) STR_##TN(3,H,COMMA, H,C##I,0)#define HHCF(TN,I) STR_##TN(3,H,COMMA,HH,C##I,0)#define HHHCF(TN,I) STR_##TN(3,H,COLON, H,C##I,0)#define H_CF_SPECIAL unsigned#define HH_CF_SPECIAL#define HLOGICAL( S,U,B)#define HPLOGICAL(S,U,B)#define HSTRING( S,U,B) A##S U##_CF_SPECIAL B#define HSTRINGV HSTRING #define HPSTRING HSTRING#define HPSTRINGV HSTRING#define HPNSTRING HSTRING#define HPPSTRING HSTRING#define HSTRVOID HSTRING#define HZTRINGV HSTRING#define HPZTRINGV HSTRING#define STR_BYTE( N,T,A,B,C,D)#define STR_DOUBLE( N,T,A,B,C,D) /* Can't add spaces inside */#define STR_FLOAT( N,T,A,B,C,D) /* expansion since it screws up */#define STR_INT( N,T,A,B,C,D) /* macro catenation kludge. */#define STR_LOGICAL( N,T,A,B,C,D) CFARGS##N(T,LOGICAL,A,B,C,D)#define STR_LONG( N,T,A,B,C,D)#define STR_SHORT( N,T,A,B,C,D)#define STR_BYTEV( N,T,A,B,C,D)#define STR_BYTEVV( N,T,A,B,C,D)#define STR_BYTEVVV( N,T,A,B,C,D)#define STR_BYTEVVVV( N,T,A,B,C,D)#define STR_BYTEVVVVV( N,T,A,B,C,D)#define STR_BYTEVVVVVV( N,T,A,B,C,D)#define STR_BYTEVVVVVVV( N,T,A,B,C,D)#define STR_DOUBLEV( N,T,A,B,C,D)#define STR_DOUBLEVV( N,T,A,B,C,D)#define STR_DOUBLEVVV( N,T,A,B,C,D)#define STR_DOUBLEVVVV( N,T,A,B,C,D)#define STR_DOUBLEVVVVV( N,T,A,B,C,D)#define STR_DOUBLEVVVVVV( N,T,A,B,C,D)#define STR_DOUBLEVVVVVVV( N,T,A,B,C,D)#define STR_FLOATV( N,T,A,B,C,D)#define STR_FLOATVV( N,T,A,B,C,D)#define STR_FLOATVVV( N,T,A,B,C,D)#define STR_FLOATVVVV( N,T,A,B,C,D)#define STR_FLOATVVVVV( N,T,A,B,C,D)#define STR_FLOATVVVVVV( N,T,A,B,C,D)#define STR_FLOATVVVVVVV( N,T,A,B,C,D)#define STR_INTV( N,T,A,B,C,D)#define STR_INTVV( N,T,A,B,C,D)#define STR_INTVVV( N,T,A,B,C,D)#define STR_INTVVVV( N,T,A,B,C,D)#define STR_INTVVVVV( N,T,A,B,C,D)#define STR_INTVVVVVV( N,T,A,B,C,D)#define STR_INTVVVVVVV( N,T,A,B,C,D)#define STR_LOGICALV( N,T,A,B,C,D)#define STR_LOGICALVV( N,T,A,B,C,D)#define STR_LOGICALVVV( N,T,A,B,C,D)#define STR_LOGICALVVVV( N,T,A,B,C,D)#define STR_LOGICALVVVVV( N,T,A,B,C,D)#define STR_LOGICALVVVVVV( N,T,A,B,C,D)#define STR_LOGICALVVVVVVV(N,T,A,B,C,D)#define STR_LONGV( N,T,A,B,C,D)#define STR_LONGVV( N,T,A,B,C,D)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -