fortran.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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 #ifndef _FORTRAN_H
00039 #define _FORTRAN_H
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 #if defined(_CRAY1)
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 #define _F_INT6 1
00092 #define _F_INT8 1
00093
00094 typedef int _f_int6;
00095 typedef long _f_int8;
00096 typedef _f_int6 _f_int;
00097 typedef _f_int8 _f_int4;
00098 typedef _f_int8 _f_int2;
00099 typedef _f_int8 _f_int1;
00100
00101 #define _F_LOG8 1
00102
00103 typedef long _f_log8;
00104 typedef _f_log8 _f_log;
00105 typedef _f_log8 _f_log4;
00106 typedef _f_log8 _f_log2;
00107 typedef _f_log8 _f_log1;
00108
00109 #define _F_REAL8 1
00110 #define _F_REAL16 1
00111
00112 typedef double _f_real8;
00113 typedef long double _f_real16;
00114
00115 typedef _f_real8 _f_real;
00116 typedef _f_real16 _f_dble;
00117 typedef _f_real8 _f_real4;
00118
00119 #define _F_COMP8 1
00120 #define _F_COMP16 1
00121
00122 #if !defined(__cplusplus)
00123 #if __STDC__ == 1
00124 #include <complex.h>
00125 #endif
00126 typedef _Complex double _f_comp8;
00127
00128 typedef _f_comp8 _f_comp;
00129 #endif
00130
00131 #endif
00132
00133
00134 #if defined(_CRAYMPP)
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145 #define _F_INT4 1
00146 #define _F_INT8 1
00147
00148 typedef short _f_int4;
00149 typedef int _f_int8;
00150 typedef _f_int8 _f_int;
00151 typedef _f_int4 _f_int2;
00152 typedef _f_int4 _f_int1;
00153
00154 #define _F_LOG4 1
00155 #define _F_LOG8 1
00156
00157 typedef short _f_log4;
00158 typedef long _f_log8;
00159 typedef _f_log8 _f_log;
00160 typedef _f_log4 _f_log2;
00161 typedef _f_log4 _f_log1;
00162
00163 #define _F_REAL4 1
00164 #define _F_REAL8 1
00165
00166 typedef float _f_real4;
00167 typedef double _f_real8;
00168 #if _LD64
00169 typedef struct {long x[2];} _f_real16;
00170 #define _F_REAL16 (-1)
00171 #else
00172 typedef long double _f_real16;
00173 #define _F_REAL16 1
00174 #endif
00175 typedef _f_real8 _f_real;
00176 typedef _f_real16 _f_dble;
00177 typedef _f_real4 _f_real2;
00178
00179 #define _F_COMP4 1
00180 #define _F_COMP8 1
00181
00182 #if !defined(__cplusplus)
00183 #include <complex.h>
00184 typedef _Complex float _f_comp4;
00185 typedef _Complex double _f_comp8;
00186
00187 typedef _f_comp8 _f_comp;
00188 #endif
00189
00190 #endif
00191
00192
00193 #if defined(__mips)
00194
00195
00196
00197
00198
00199 #define _F_INT1 1
00200 #define _F_INT2 1
00201 #define _F_INT4 1
00202 #define _F_INT8 1
00203
00204 typedef signed char _f_int1;
00205 typedef short _f_int2;
00206 typedef int _f_int4;
00207 typedef long long _f_int8;
00208 typedef _f_int4 _f_int;
00209
00210 #define _F_LOG1 1
00211 #define _F_LOG2 1
00212 #define _F_LOG4 1
00213 #define _F_LOG8 1
00214
00215 typedef signed char _f_log1;
00216 typedef short _f_log2;
00217 typedef int _f_log4;
00218 typedef long long _f_log8;
00219 typedef _f_log4 _f_log;
00220
00221 #define _F_REAL4 1
00222 #define _F_REAL8 1
00223 #define _F_REAL16 1
00224
00225 typedef float _f_real4;
00226 typedef double _f_real8;
00227 typedef long double _f_real16;
00228 typedef _f_real4 _f_real;
00229 typedef _f_real8 _f_dble;
00230
00231 #define _F_COMP4 (-1)
00232 #define _F_COMP8 (-1)
00233 #define _F_COMP16 (-1)
00234
00235 typedef struct {_f_real4 x[2];} _f_comp4;
00236 typedef struct {_f_real8 x[2];} _f_comp8;
00237 typedef struct {_f_real16 x[2];} _f_comp16;
00238 typedef _f_comp4 _f_comp;
00239
00240 #endif
00241
00242 #if defined(_LITTLE_ENDIAN)
00243
00244
00245
00246
00247 #define _F_INT1 1
00248 #define _F_INT2 1
00249 #define _F_INT4 1
00250 #define _F_INT8 1
00251
00252 typedef signed char _f_int1;
00253 typedef short _f_int2;
00254 typedef int _f_int4;
00255 typedef long _f_int8;
00256 typedef _f_int4 _f_int;
00257
00258 #define _F_LOG1 1
00259 #define _F_LOG2 1
00260 #define _F_LOG4 1
00261 #define _F_LOG8 1
00262
00263 typedef signed char _f_log1;
00264 typedef short _f_log2;
00265 typedef int _f_log4;
00266 typedef long _f_log8;
00267 typedef _f_log4 _f_log;
00268
00269 #define _F_REAL4 1
00270 #define _F_REAL8 1
00271 #define _F_REAL16 1
00272
00273 typedef float _f_real4;
00274 typedef double _f_real8;
00275 typedef long double _f_real16;
00276 typedef _f_real4 _f_real;
00277 typedef _f_real8 _f_dble;
00278
00279
00280 #ifdef _CRAY
00281 #define _F_COMP4 1
00282 #define _F_COMP8 1
00283 #define _F_COMP16 1
00284
00285 #if !defined(__cplusplus)
00286 #if __STDC__ == 1
00287 #include <complex.h>
00288 #endif
00289 typedef _Complex float _f_comp4;
00290 typedef _Complex double _f_comp8;
00291 typedef _Complex long double _f_comp16;
00292 typedef _f_comp8 _f_comp;
00293 #endif
00294
00295 #else
00296 #define _F_COMP4 (-1)
00297 #define _F_COMP8 (-1)
00298 #define _F_COMP16 (-1)
00299
00300 typedef struct {_f_real4 x[2];} _f_comp4;
00301 typedef struct {_f_real8 x[2];} _f_comp8;
00302 typedef struct {_f_real16 x[2];} _f_comp16;
00303 typedef _f_comp4 _f_comp;
00304 #endif
00305
00306 #endif
00307
00308 #if !defined(__mips) && defined(_WORD32) && !defined(_LITTLE_ENDIAN)
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320 #define _F_INT2 1
00321 #define _F_INT4 1
00322 #define _F_INT8 1
00323
00324 typedef int _f_int2;
00325 typedef int _f_int4;
00326 typedef long long _f_int8;
00327 typedef _f_int4 _f_int;
00328 typedef _f_int2 _f_int1;
00329
00330 #define _F_LOG2 1
00331 #define _F_LOG4 1
00332 #define _F_LOG8 1
00333
00334 typedef int _f_log2;
00335 typedef int _f_log4;
00336 typedef long long _f_log8;
00337 typedef _f_log4 _f_log;
00338 typedef _f_log2 _f_log1;
00339
00340 #define _F_REAL4 1
00341 #define _F_REAL8 1
00342 #if defined(_SOLARIS)
00343 #define _F_REAL16 1
00344 #endif
00345
00346 typedef float _f_real4;
00347 typedef double _f_real8;
00348 typedef long double _f_real16;
00349 typedef _f_real4 _f_real;
00350 typedef _f_real8 _f_dble;
00351
00352 #define _F_COMP4 (-1)
00353 #define _F_COMP8 (-1)
00354 #define _F_COMP16 (-1)
00355
00356 typedef struct {_f_real4 x[2];} _f_comp4;
00357 typedef struct {_f_real8 x[2];} _f_comp8;
00358 typedef struct {_f_real16 x[2];} _f_comp16;
00359 typedef _f_comp4 _f_comp;
00360
00361 #endif
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462 #if !defined(_UNICOS)
00463
00464 typedef struct _FCD {
00465 char *c_pointer;
00466 unsigned long byte_len;
00467 } _fcd;
00468
00469 typedef _fcd _dcf;
00470
00471
00472
00473 #define _fcdtodcf(f) (f)
00474 #define _dcftofcd(f) (f)
00475
00476
00477 #elif defined(_ADDR64)
00478
00479 typedef struct _FCD {
00480 char *c_pointer;
00481 unsigned long fcd_len;
00482 } _fcd;
00483
00484 typedef _fcd _dcf;
00485
00486
00487
00488 #define _fcdtodcf(f) (f)
00489 #define _dcftofcd(f) (f)
00490
00491
00492 #elif _ADDR32 && ! defined(_WORD32)
00493
00494 typedef union _FCD {
00495 char *c_pointer;
00496
00497 struct {
00498 unsigned bit_offset : 6,
00499 fcd_len : 26,
00500 word_addr : 32;
00501 } _F;
00502 } _dcf;
00503
00504 typedef void *_fcd;
00505
00506
00507
00508 #define _dcftofcd(f) (*(_fcd *) &f)
00509 #define _fcdtodcf(f) (*(_dcf *) &f)
00510
00511
00512 #elif _ADDR32 == 0
00513
00514 typedef union _FCD {
00515
00516 struct {
00517 unsigned bit_offset : 6,
00518 _Unused : 34,
00519 word_addr : 24;
00520 } _C;
00521
00522 struct {
00523 unsigned _Unused : 17,
00524 fcd_len : 17,
00525 bit_offset : 6,
00526 word_addr : 24;
00527 } _F;
00528 } _dcf;
00529
00530 typedef void *_fcd;
00531
00532
00533
00534 #define _dcftofcd(f) (*(_fcd *) &f)
00535 #define _fcdtodcf(f) (*(_dcf *) &f)
00536
00537 #endif
00538
00539 #if defined(__sun) || defined(__alpha)
00540 # include <cdefs.h>
00541 #else
00542 # include <sys/cdefs.h>
00543 #endif
00544
00545 __BEGIN_DECLS
00546 extern _fcd _cptofcd (char *_Ccp, unsigned _Len);
00547 extern char * _fcdtocp (_fcd _Fcd);
00548 extern unsigned long _fcdlen (_fcd _Fcd);
00549 extern _f_log _btol (long _BV);
00550 extern long _lvtob (_f_log _LV);
00551 extern long _ltob (_f_log *_LP);
00552 #ifdef _UNICOS
00553 extern char * _f2ccpy (_fcd f, ...);
00554 #endif
00555 extern char * _fc_copy (_fcd f, char *s, int slen);
00556 extern char * _fc_acopy (_fcd f);
00557 extern int _c2fcpy(char *c, _fcd f);
00558
00559 #if defined(_UNICOS) && !defined(_ADDR64) && !defined(_WORD32)
00560 extern int _isfcd (long _P);
00561 #endif
00562
00563 #ifdef _CRAYMPP
00564 extern void *_S2PC (void *_SDP, unsigned int _ELSZ);
00565 #endif
00566
00567 extern unsigned long _dvel_len (long _DVEL);
00568
00569 __END_DECLS
00570
00571 #if !defined(_UNICOS)
00572
00573 static _fcd
00574 __cptofcd(char *c, unsigned long l);
00575 static _fcd
00576 __cptofcd(char *c, unsigned long l)
00577 {
00578 _dcf f;
00579
00580 f.c_pointer = c;
00581 f.byte_len = l;
00582
00583 return (_dcftofcd(f));
00584 }
00585
00586 #define __fcdtocp(f) ((_fcdtodcf(f)).c_pointer)
00587
00588 #define __fcdlen(f) ((unsigned long) (_fcdtodcf(f)).byte_len)
00589
00590
00591 #elif defined(_ADDR64)
00592
00593 static _fcd
00594 __cptofcd(char *c, unsigned long l);
00595 static _fcd
00596 __cptofcd(char *c, unsigned long l)
00597 {
00598 _dcf f;
00599
00600 f.c_pointer = c;
00601 #ifdef _CRAYT3E
00602 f.fcd_len = l;
00603 #else
00604 f.fcd_len = l << 3;
00605 #endif
00606
00607 return (_dcftofcd(f));
00608 }
00609
00610 #define __fcdtocp(f) ((_fcdtodcf(f)).c_pointer)
00611
00612 #ifdef _CRAYT3E
00613 #define __fcdlen(f) ((unsigned long) (_fcdtodcf(f)).fcd_len)
00614 #else
00615 #define __fcdlen(f) ((unsigned long) ((_fcdtodcf(f)).fcd_len) >> 3)
00616 #endif
00617
00618
00619 #elif _ADDR32
00620
00621 static _fcd
00622 __cptofcd(char *c, unsigned long l);
00623 #pragma _CRI inline __cptofcd
00624 static _fcd
00625 __cptofcd(char *c, unsigned long l)
00626 {
00627 _dcf f;
00628
00629 f.c_pointer = c;
00630 f._F.fcd_len = l << 3;
00631
00632 return (_dcftofcd(f));
00633 }
00634
00635 static char *
00636 __fcdtocp(_fcd f);
00637 #pragma _CRI inline __fcdtocp
00638 static char *
00639 __fcdtocp(_fcd f)
00640 {
00641 char *c;
00642 _dcf d;
00643
00644 d = _fcdtodcf(f);
00645 d._F.fcd_len = 0;
00646 c = d.c_pointer;
00647
00648 return (c);
00649 }
00650
00651 #define __fcdlen(f) ((unsigned int) ((_fcdtodcf(f))._F.fcd_len) >> 3)
00652
00653 #define __isfcd(f) (__fcdlen(f) != 0)
00654
00655 #elif _ADDR32 == 0
00656
00657 static _fcd
00658 __cptofcd(char *c, unsigned long l);
00659 #pragma _CRI inline __cptofcd
00660 static _fcd
00661 __cptofcd(char *c, unsigned long l)
00662 {
00663 _dcf d;
00664
00665 d = *(_dcf *) &c;
00666 d._F.bit_offset = d._C.bit_offset;
00667 d._F._Unused = 0;
00668 d._F.fcd_len = l << 3;
00669
00670 return (_dcftofcd(d));
00671 }
00672
00673 static char *
00674 __fcdtocp(_fcd f);
00675 #pragma _CRI inline __fcdtocp
00676 static char *
00677 __fcdtocp(_fcd f)
00678 {
00679 char *c;
00680 _dcf d;
00681
00682 d = _fcdtodcf(f);
00683 d._C.bit_offset = d._F.bit_offset;
00684 d._C._Unused = 0;
00685 c = *(char **) &d;
00686
00687 return (c);
00688 }
00689
00690 #define __fcdlen(f) ((unsigned long) ((_fcdtodcf(f))._F.fcd_len) >> 3)
00691
00692 #define __isfcd(f) (__fcdlen(f) != 0)
00693
00694 #endif
00695
00696
00697
00698 #if defined(__mips) || defined(_CRAYIEEE) || defined(_SOLARIS) || \
00699 defined(_SUNOS) || defined(_ABSOFT) || defined(_LITTLE_ENDIAN)
00700
00701 #define __lvtob(l) ((long)((l) == 0 ? 0 : 1))
00702 #define __btol(b) ((_f_log)((b) == 0 ? 0 : 1))
00703
00704 #elif defined(_CRAY1)
00705
00706 #define __lvtob(l) ((long)((l) >> 63))
00707 #define __btol(b) ((_f_log)((b) == 0 ? 0 : -1))
00708
00709 #endif
00710
00711 #define __devl_len(dvl) ((long)((dvl) >> 3))
00712
00713
00714
00715 #define _cptofcd(_C, _L) __cptofcd(_C, _L)
00716 #define _fcdtocp(_F) __fcdtocp(_F)
00717 #define _fcdlen(_F) __fcdlen(_F)
00718 #define _btol(_BV) __btol(_BV)
00719 #define _lvtob(_LV) __lvtob(_LV)
00720 #define _ltob(_LP) __lvtob(*(_f_log *)_LP)
00721 #define __dvel_len(_DVEL) __dvel_len(long _DVEL)
00722
00723 #if !defined(_ADDR64) && !defined(_WORD32) && !defined(__mips) && \
00724 !defined(_LITTLE_ENDIAN)
00725 #define _isfcd(_U) __isfcd(_U)
00726 #endif
00727
00728
00729
00730
00731
00732
00733
00734
00735 #ifdef _CRAYT3D
00736 #define _issddptr(_P) ((unsigned)(_P) >> 63)
00737 #else
00738 #define _issddptr(_P) 0
00739 #define _S2PC(_PTR, _SIZE) ((void *)(_PTR))
00740 #endif
00741
00742 #endif