インテル® Fortran ライブラリ・ リファレンス

インテル ® Fortran
ライブラリ・
リファレンス
Copyright © 1996-2002 Intel Corporation
無断での引用、転載を禁じます。
資料番号 : FWL-LIB-600-04J
【輸出規制に関する告知と注意事項】
本資料に掲載されている製品のうち、外国為替および外国為替管理法に定める戦略物資等または役務に
該当するものについては、輸出または再輸出する場合、同法に基づく日本政府の輸出許可が必要です。
また、米国産品である当社製品は日本からの輸出または再輸出に際し、原則として米国政府の事前許可
が必要です。
【資料内容に関する注意事項】
・本ドキュメントの内容を予告なしに変更することがあります。
・インテルでは、この資料に掲載された内容について、市販製品に使用した場合の保証あるいは特別な目
的に合うことの保証等は、いかなる場合についてもいたしかねます。また、このドキュメント内の誤り
についても責任を負いかねる場合があります。
・インテルでは、インテル製品の内部回路以外の使用にて責任を負いません。また、外部回路の特許につ
いても関知いたしません。
・本書の情報はインテル製品を使用できるようにする目的でのみ記載されています。
インテルは、製品について「取引条件」で提示されている場合を除き、インテル製品の販売や使用に関
して、いかなる特許または著作権の侵害をも含み、あらゆる責任を負わないものとします。
・いかなる形および方法によっても、インテルの文書による許可なく、この資料の一部またはすべてを複
写することは禁じられています。
Intel、インテル、Intel ロゴ、Itanium、Pentium は、アメリカ合衆国およびその他の国における Intel
Corporation またはその子会社の商標または登録商標です。
* 一般にブランド名または商品名は各社の商標または登録商標です。
Copyright © Intel Corporation 1996 - 2002.
Copyright © 1996 Hewlett-Packard Company.
Copyright © 1996 Edinburgh Portable Compilers, Ltd.
著作権法下での許可事項を除き、文書による事前の許可なく複製、改変、または翻訳を行うことは禁じ
られています。
権利の制限に関する規定。合衆国政府による使用、複製、または開示は、DFARS 252-227-7013 の
「Rights in Technical Data and Computer Software( テクニカル・データおよびコンピュータ・ソフトウェアに
おける権利 )」条項の副節 (c)(I)(ii) に記述された制限の対象となります。
Hewlett-Packard Company
3000 Hanover Street
Palo Alto, CA 94304 U.S.A
国防総省 (DOD) 以外の合衆国政府組織の権利は、FAR 52.227-19(c0(1,2) の記述に従うものとします。
Copyright © 1983-96 Hewlett-Packard Company.
Copyright © 1980, 1984, 1986 Novell, Inc.
本書の内容は、書籍『Fortran Top 90?90』に準拠しています。
Adams、Brainerd、Martin、Smith の各氏による Fortran 90 の主な特徴についての記述は、発行元である
Unicomp, Inc. の許可を得て掲載しています。
Copyright © 1979, 1980, 1983, 1985-1993 The Regents of the University of California. このソフトウェアおよび
マニュアルの一部は、カリフォルニア州立大学評議会 (The Regents of the University of California) から許諾
された資料に準拠しています。その開発に関し、カリフォルニア州立大学バークレー校 Computer
Systems Research Group および Electrical Engineering and Computer Sciences Department とその他の関係者各
位の貢献に謝意を表します。
目次
本書について
参考文献 ..................................................................................... xxi
表記規則 .................................................................................... xxii
第1章
組み込み手続き
組み込み手続きの概要 ............................................................... 1-1
組み込み手続きの可用性 ........................................................... 1-2
組み込みサブルーチンおよび関数 ............................................. 1-2
組み込みサブルーチン .......................................................... 1-3
要素別処理サブルーチンと非要素別処理サブルーチン ....... 1-3
組み込み関数 ........................................................................ 1-3
総称 (generic) 組み込みと個別 (specific) 組み込み関数名 1-4
要素別処理関数 ............................................................... 1-5
問い合わせ関数 ............................................................... 1-5
変形関数 .......................................................................... 1-6
INTRINSIC 属性および文 .......................................................... 1-7
組み込み手続きの文書化 ...................................................... 1-7
実引数としての組み込み手続き ........................................... 1-7
非標準の組み込み手続き ........................................................... 1-9
データ表現モデル ...................................................................... 1-9
データ表現モデルの組み込み関数 ...................................... 1-10
ビットモデル ...................................................................... 1-11
整数モデル .......................................................................... 1-11
iii
インテル ® Fortran ライブラリ・リファレンス
実数モデル .......................................................................... 1-12
組み込み手続きの機能分類 ...................................................... 1-13
総称 (generic) 組み込みおよび個別 (specific) 組み込みの概要 1-15
組み込み手続きの総称名および個別名の概要 .................... 1-15
組み込み手続きの仕様 ........................................................... 1-139
ABS(A) .............................................................................. 1-139
ACHAR(I) .......................................................................... 1-140
ACOS(X) ........................................................................... 1-141
ACOSD(X) ........................................................................ 1-142
ACOSH(X) ........................................................................ 1-143
ADJUSTL(STRING) .......................................................... 1-144
ADJUSTR(STRING) ......................................................... 1-145
AIMAG(Z) .......................................................................... 1-146
AINT(A, KIND) .................................................................. 1-147
ALL(MASK, DIM) .............................................................. 1-148
ALLOCATED(ARRAY) ...................................................... 1-150
AND(I, J) ........................................................................... 1-151
ANINT(A, KIND) ................................................................ 1-152
ANY(MASK, DIM) ............................................................. 1-153
ASIN(X) ............................................................................. 1-155
ASIND(X) .......................................................................... 1-156
ASINH(X) .......................................................................... 1-157
ASSOCIATED(POINTER, TARGET) ................................ 1-158
ATAN(X) ............................................................................ 1-160
ATAN2(Y, X) ...................................................................... 1-161
ATAN2D(Y, X) .................................................................... 1-163
ATAND(X) ......................................................................... 1-164
ATANH(X) ......................................................................... 1-165
BADDRESS(X) ................................................................. 1-166
BIT_SIZE(I) ....................................................................... 1-167
BTEST(I, POS) ................................................................. 1-168
CEILING(A) ....................................................................... 1-169
CHAR(I, KIND) .................................................................. 1-170
CMPLX(X, Y, KIND) .......................................................... 1-171
CONJG(Z) ......................................................................... 1-172
COS(X) ............................................................................. 1-173
iv
目次
COSD(X) ..........................................................................
COSH(X) ..........................................................................
COUNT(MASK, DIM) ........................................................
CPU_TIME(TIME) ............................................................
CSHIFT(ARRAY, SHIFT, DIM) ..........................................
DATE_AND_TIME(DATE, TIME, ZONE, VALUES) ..........
DBLE(A) ...........................................................................
DFLOAT(A) .......................................................................
DIGITS(X) .........................................................................
DIM(X, Y) ..........................................................................
DNUM(I) ...........................................................................
DOT_PRODUCT(VECTOR_A, VECTOR_B) ...................
DPROD(X, Y) ...................................................................
DREAL(A) .........................................................................
DSIGN ..............................................................................
EOSHIFT(ARRAY, SHIFT, BOUNDARY, DIM) .................
EPSILON(X) .....................................................................
EXP(X) ..............................................................................
EXPONENT(X) .................................................................
FLOOR(A) ........................................................................
FRACTION(X) ..................................................................
FREE(A) ...........................................................................
HFIX(A) .............................................................................
HUGE(X) ..........................................................................
IABS(A) .............................................................................
IACHAR(C) .......................................................................
IADDR(X) ..........................................................................
IAND(I, J) ..........................................................................
IBCLR(I, POS) ..................................................................
IBITS(I, POS, LEN) ...........................................................
IBSET(I, POS) ..................................................................
ICHAR(C) .........................................................................
IDIM(X, Y) .........................................................................
IEOR(I, J) ..........................................................................
IJINT(A) ............................................................................
IMAG(A) ............................................................................
1-174
1-175
1-176
1-178
1-179
1-181
1-183
1-184
1-185
1-186
1-187
1-188
1-189
1-190
1-191
1-192
1-195
1-196
1-197
1-198
1-199
1-200
1-201
1-202
1-203
1-203
1-204
1-205
1-206
1-207
1-208
1-209
1-210
1-211
1-212
1-213
v
インテル ® Fortran ライブラリ・リファレンス
INDEX(STRING, SUBSTRING, BACK) ............................. 1-214
INT(A, KIND) ..................................................................... 1-215
INT1(A) ............................................................................. 1-216
INT2(A) ............................................................................. 1-217
INT4(A) ............................................................................. 1-218
INT8(A) ............................................................................. 1-218
INUM(I) ............................................................................. 1-219
IOR(I, J) ............................................................................ 1-220
IQINT(A) ............................................................................ 1-221
ISHFT(I, SHIFT) ................................................................ 1-221
ISHFTC(I, SHIFT, SIZE) .................................................... 1-222
ISIGN(A, B) ....................................................................... 1-224
ISNAN(X) .......................................................................... 1-225
IXOR(I, J) .......................................................................... 1-225
JNUM(I) ............................................................................. 1-227
KIND(X) ............................................................................. 1-227
LBOUND(ARRAY, DIM) .................................................... 1-228
LEN(STRING) ................................................................... 1-230
LEN_TRIM(STRING) ........................................................ 1-231
LGE(STRING_A, STRING_B) .......................................... 1-232
LGT(STRING_A, STRING_B) ........................................... 1-233
LLE(STRING_A, STRING_B) ........................................... 1-234
LLT(STRING_A, STRING_B) ............................................ 1-235
LOC(X) .............................................................................. 1-236
LOG(X) .............................................................................. 1-236
LOG10(X) .......................................................................... 1-237
LOGICAL(L, KIND) ........................................................... 1-238
LSHFT(I, SHIFT) ............................................................... 1-239
LSHIFT(I, SHIFT) .............................................................. 1-239
MALLOC (I) ....................................................................... 1-240
MATMUL(MATRIX_A, MATRIX_B) ................................... 1-241
MAX(A1, A2, A3, ...) .......................................................... 1-243
MAXEXPONENT(X) .......................................................... 1-244
MAXLOC(ARRAY, MASK) ................................................ 1-245
MAXVAL(ARRAY, DIM, MASK) ......................................... 1-247
MCLOCK() ........................................................................ 1-249
vi
目次
MERGE(TSOURCE, FSOURCE, MASK) .........................
MIN(A1, A2, A3, ...) ..........................................................
MINEXPONENT(X) ..........................................................
MINLOC(ARRAY, MASK) .................................................
MINVAL(ARRAY, DIM, MASK) ..........................................
MOD(A, P) ........................................................................
MODULO(A, P) .................................................................
MVBITS(FROM, FROMPOS, LEN, TO, TOPOS) .............
NEAREST(X, S) ...............................................................
NINT(A, KIND) ..................................................................
NOT(I) ...............................................................................
OR(I, J) .............................................................................
PACK(ARRAY, MASK, VECTOR) .....................................
PRECISION(X) .................................................................
PRESENT(A) ....................................................................
PRODUCT(ARRAY, DIM, MASK) .....................................
RADIX(X) ..........................................................................
RANDOM_NUMBER(HARVEST) .....................................
RANDOM_SEED(SIZE, PUT, GET) .................................
RANGE(X) ........................................................................
REAL(A, KIND) .................................................................
REPEAT(STRING, NCOPIES) ..........................................
RESHAPE(SOURCE, SHAPE, PAD, ORDER) ................
RNUM(I) ...........................................................................
RRSPACING(X) ................................................................
RSHFT(I, SHIFT) ..............................................................
RSHIFT(I, SHIFT) .............................................................
SCALE(X, I) ......................................................................
SCAN(STRING, SET, BACK) ............................................
SELECTED_INT_KIND(R) ...............................................
SELECTED_REAL_KIND(P, R) ........................................
SET_EXPONENT(X, I) .....................................................
SHAPE(SOURCE) ............................................................
SIGN(A, B) ........................................................................
SIN(X) ...............................................................................
SIND(X) ............................................................................
1-250
1-251
1-252
1-253
1-255
1-257
1-258
1-259
1-260
1-261
1-262
1-263
1-264
1-266
1-267
1-268
1-270
1-271
1-272
1-273
1-274
1-276
1-277
1-278
1-279
1-280
1-280
1-281
1-282
1-283
1-284
1-285
1-286
1-287
1-288
1-289
vii
インテル ® Fortran ライブラリ・リファレンス
SINH(X) ............................................................................. 1-290
SIZE(ARRAY, DIM) ........................................................... 1-291
SPACING(X) ..................................................................... 1-292
SPREAD(SOURCE, DIM, NCOPIES) ............................... 1-293
SQRT(X) ........................................................................... 1-294
SUM(ARRAY, DIM, MASK) ............................................... 1-295
SYSTEM_CLOCK(COUNT, COUNT_RATE, COUNT_MAX) .....
1-297
TAN(X) .............................................................................. 1-298
TAND(X) ............................................................................ 1-299
TANH(X) ............................................................................ 1-300
TINY(X) ............................................................................. 1-301
TRANSFER(SOURCE, MOLD, SIZE) .............................. 1-302
TRANSPOSE(MATRIX) .................................................... 1-304
TRIM(STRING) ................................................................. 1-305
UBOUND(ARRAY, DIM) .................................................... 1-306
UNPACK(VECTOR, MASK, FIELD) .................................. 1-308
VERIFY(STRING, SET, BACK) ......................................... 1-310
XOR(I, J) ........................................................................... 1-312
第2章
ポータビリティ関数
ACCESS ............................................................................... 2-2
BEEPQQ ............................................................................... 2-4
BESJ0、BESJ1、BESJN、BESY0、BESY1、BESYN ....... 2-5
CDFLOAT ............................................................................. 2-7
CHANGEDIRQQ ................................................................... 2-7
CHANGEDRIVEQQ .............................................................. 2-8
CHDIR ................................................................................. 2-10
CLEARSTATUSFPQQ ........................................................ 2-11
CLOCK ................................................................................ 2-11
CLOCKX ............................................................................. 2-12
COMMITQQ ........................................................................ 2-13
COMPL ............................................................................... 2-15
CTIME ................................................................................. 2-16
DATE ................................................................................... 2-17
viii
目次
DATE4 ................................................................................
DBESJ0、DBESJ1、DBESJN、DBESY0、DBESY1、
DBESYN ..........................................................................
DCLOCK .............................................................................
DELDIRQQ .........................................................................
DELFILESQQ .....................................................................
DFLOATI .............................................................................
DFLOATJ ............................................................................
DFLOATK ...........................................................................
DRAND ...............................................................................
DRANSET ..........................................................................
DSHIFTL .............................................................................
DSHIFTR ............................................................................
DTIME ................................................................................
ETIME .................................................................................
EXIT ....................................................................................
FDATE ................................................................................
FGETC ...............................................................................
FINDFILEQQ ......................................................................
FLUSH ................................................................................
FOR_CHECK_FLAWED_PENTIUM ..................................
FOR_GET_FPE ..................................................................
FPUTC ................................................................................
FSEEK ................................................................................
FOR_SET_FPE ..................................................................
FOR_SET_REENTRANCY ................................................
FTELL .................................................................................
FULLPATHQQ ....................................................................
GERROR ............................................................................
GETARG .............................................................................
GETCHARQQ ....................................................................
GETCONTROLFPQQ ........................................................
GETCWD ............................................................................
GETDAT .............................................................................
GETDRIVEDIRQQ .............................................................
GETDRIVESIZEQQ ............................................................
GETDRIVESQQ .................................................................
2-18
2-19
2-21
2-22
2-23
2-24
2-25
2-26
2-26
2-27
2-28
2-29
2-30
2-31
2-32
2-33
2-34
2-35
2-36
2-37
2-38
2-39
2-40
2-41
2-42
2-44
2-45
2-47
2-48
2-50
2-52
2-54
2-55
2-56
2-58
2-61
ix
インテル ® Fortran ライブラリ・リファレンス
GETENV ............................................................................. 2-61
GETENVQQ ........................................................................ 2-62
GETFILEINFOQQ ............................................................... 2-64
GETGID .............................................................................. 2-69
GETLASTERROR ............................................................... 2-70
GETLASTERRORQQ ......................................................... 2-71
GETLOG ............................................................................. 2-73
GETPID ............................................................................... 2-74
GETPOS ............................................................................. 2-74
GETSTATUSFPQQ ............................................................. 2-75
GETSTRQQ ........................................................................ 2-77
GETTIM .............................................................................. 2-79
GETUID .............................................................................. 2-80
GMTIME .............................................................................. 2-81
HOSTNAM .......................................................................... 2-82
HOSTNM ............................................................................ 2-83
IARGC ................................................................................. 2-84
IDATE .................................................................................. 2-85
IDATE4 ................................................................................ 2-86
IEEE_FLAGS ...................................................................... 2-87
IEEE_HANDLER ................................................................. 2-88
IERRNO .............................................................................. 2-89
IFL_RUNTIME_INIT ............................................................ 2-90
IFLOAT ................................................................................ 2-91
IFLOATI ............................................................................... 2-91
IFLOATJ .............................................................................. 2-92
INMAX ................................................................................. 2-93
INTC .................................................................................... 2-93
IRAND ................................................................................. 2-94
IRANDM .............................................................................. 2-95
IRANGET ............................................................................ 2-95
IRANSET ............................................................................ 2-96
ISATTY ................................................................................ 2-96
ITIME .................................................................................. 2-97
JABS ................................................................................... 2-98
JDATE ................................................................................. 2-98
x
目次
JDATE4 .............................................................................. 2-99
KILL .................................................................................. 2-100
LCWRQQ ......................................................................... 2-100
LTIME ............................................................................... 2-102
MAKEDIRQQ .................................................................... 2-103
MATHERRQQ .................................................................. 2-105
NARGS ............................................................................. 2-108
NUMARG .......................................................................... 2-109
PACKTIMEQQ .................................................................. 2-110
PEEKCHARQQ ................................................................ 2-112
PERROR .......................................................................... 2-113
POPCNT ........................................................................... 2-114
POPPAR ........................................................................... 2-114
PUTC ................................................................................ 2-115
QSORT ............................................................................. 2-116
RAISEQQ ......................................................................... 2-117
RAN .................................................................................. 2-118
RAND ............................................................................... 2-119
RANDOM .......................................................................... 2-121
RANDU ............................................................................. 2-122
RANF ................................................................................ 2-123
RANGET ........................................................................... 2-124
RANSET ........................................................................... 2-124
RENAME .......................................................................... 2-125
RENAMEFILEQQ ............................................................. 2-126
RINDEX ............................................................................ 2-127
RUNQQ ............................................................................ 2-128
SCWRQQ ......................................................................... 2-129
SCANENV ........................................................................ 2-130
SEED ................................................................................ 2-131
SECNDS ........................................................................... 2-131
SETCONTROLFPQQ ....................................................... 2-133
SETDAT ............................................................................ 2-135
SETENVQQ ...................................................................... 2-136
SETERRORMODEQQ ..................................................... 2-138
SETFILETIMEQQ ............................................................. 2-140
xi
インテル ® Fortran ライブラリ・リファレンス
SETTIM ............................................................................. 2-142
SHIFTL .............................................................................. 2-143
SHIFTR ............................................................................. 2-144
SIGNALQQ ....................................................................... 2-145
SLEEP .............................................................................. 2-148
SLEEPQQ ......................................................................... 2-148
SPLITPATHQQ ................................................................. 2-149
SRAND ............................................................................. 2-151
SSWRQQ .......................................................................... 2-152
STAT ................................................................................. 2-153
SYSTEM ........................................................................... 2-155
SYSTEMQQ ...................................................................... 2-155
TIME ................................................................................. 2-157
TIMEF ............................................................................... 2-158
TOPEN .............................................................................. 2-159
TCLOSE ............................................................................ 2-160
TREAD .............................................................................. 2-161
TTYNAM ........................................................................... 2-162
TWRITE ............................................................................ 2-162
UNLINK ............................................................................. 2-163
UNPACKTIMEQQ ............................................................. 2-164
National Language Support ルーチン .................................... 2-166
NLSEnumCodepages ....................................................... 2-171
NLSEnumLocales ............................................................. 2-172
NLSGetEnvironmentCodepage ........................................ 2-173
NLSGetLocale ................................................................... 2-174
NLSGetLocaleInfo ............................................................. 2-175
NLSSetEnvironmentCodepage ......................................... 2-184
NLSSetLocale ................................................................... 2-186
地域書式設定手続き .............................................................. 2-188
NLSFormatCurrency ......................................................... 2-188
NLSFormatDate ................................................................ 2-190
NLSFormatNumber ........................................................... 2-192
NLSFormatTime ................................................................ 2-193
MBCS 問い合わせ手続き ....................................................... 2-195
MBCharLen ....................................................................... 2-195
xii
目次
MBCurMax ........................................................................ 2-196
MBLen .............................................................................. 2-197
MBLen_Trim ..................................................................... 2-198
MBNext ............................................................................. 2-199
MBPrev ............................................................................. 2-200
MBStrLead ........................................................................ 2-201
MBCS 変換手続き ................................................................. 2-202
MBConvertMBToUnicode ................................................. 2-202
MBConvertUnicodeToMB ................................................. 2-204
MBCS Fortran 等価手続き ..................................................... 2-206
MBINCHARQQ ................................................................. 2-206
MBINDEX ......................................................................... 2-207
MBLGE、MBLGT、MBLLE、MBLLT、MBLEQ、MBLNE .........
2-208
MBSCAN .......................................................................... 2-211
MBVERIFY ....................................................................... 2-212
MBJISTToJMS .................................................................. 2-213
MBJMSTToJIS .................................................................. 2-214
第3章
POSIX 関数
POSIX ライブラリのインターフェイス .................................... 3-1
PXFACCESS ........................................................................ 3-2
PXFAINTGET ....................................................................... 3-4
PXFAINTSET ........................................................................ 3-5
PXFCALLSUBHANDLE ........................................................ 3-6
PXFCHDIR ........................................................................... 3-7
PXFCHMOD ......................................................................... 3-7
PXFCHOWN ......................................................................... 3-8
PXFCLOSE .......................................................................... 3-9
PXFCLOSEDIR .................................................................. 3-10
PXFCONST ........................................................................ 3-11
PXFCREAT ......................................................................... 3-12
PXFDUP ............................................................................. 3-13
PXFDUP2 ........................................................................... 3-14
PXFEINTGET ..................................................................... 3-15
xiii
インテル ® Fortran ライブラリ・リファレンス
PXFEINTSET ...................................................................... 3-16
PXFESTRGET .................................................................... 3-17
PXFEXECV ......................................................................... 3-18
PXFEXECVE ...................................................................... 3-19
PXFEXECVP ...................................................................... 3-20
PXFEXIT ............................................................................. 3-21
PXFFASTEXIT .................................................................... 3-21
PXFFLUSH ......................................................................... 3-22
PXFFGETC ......................................................................... 3-23
PXFFILENO ........................................................................ 3-24
PXFFORK ........................................................................... 3-25
PXFFPUTC ......................................................................... 3-26
PXFFSEEK ......................................................................... 3-27
PXFFSTAT .......................................................................... 3-28
PXFFTELL .......................................................................... 3-29
PXFGETARG ...................................................................... 3-30
PXFGETC ........................................................................... 3-31
PXFGETCWD ..................................................................... 3-32
PXFGETGRGID .................................................................. 3-32
PXFGETGRNAM ................................................................ 3-33
PXFGETPWNAM ................................................................ 3-34
PXFGETPWUID .................................................................. 3-35
PXFGETSUBHANDLE ........................................................ 3-35
PXFINTGET ........................................................................ 3-36
PXFINTSET ........................................................................ 3-37
PXFISBLK ........................................................................... 3-38
PXFISCHR .......................................................................... 3-39
PXFISCONST ..................................................................... 3-40
PXFISDIR ........................................................................... 3-41
PXFISFIFO ......................................................................... 3-41
PXFISREG .......................................................................... 3-42
PXFKILL .............................................................................. 3-43
PXFLINK ............................................................................. 3-44
PXFLOCALTIME ................................................................. 3-45
PXFLSEEK ......................................................................... 3-46
PKFMKDIR ......................................................................... 3-47
xiv
目次
PXFMKFIFO .......................................................................
PXFOPEN ..........................................................................
PXFOPENDIR ....................................................................
PXFPIPE ............................................................................
PXFPUTC ...........................................................................
PXFREAD ...........................................................................
PXFREADDIR ....................................................................
PXFRENAME .....................................................................
PXFREWINDDIR ................................................................
PXFRMDIR .........................................................................
PXFSIGADDSET ................................................................
PXFSIGDELSET ................................................................
PXFSIGEMPTYSET ...........................................................
PXFSIGFILLSET ................................................................
PXFSIGISMEMBER ...........................................................
PXFSTAT ............................................................................
PXFSTRGET ......................................................................
PXFSTRUCTCOPY ............................................................
PXFSTRUCTCREATE ........................................................
PXFSTRUCTFREE ............................................................
PXFUCOMPARE ................................................................
PXFUMASK ........................................................................
PXFUNLINK .......................................................................
PXFUTIME .........................................................................
PXFWAIT ............................................................................
PXFWAITPID ......................................................................
PXFWIFEXITED .................................................................
PXFWEXITSTATUS ............................................................
PXFWIFSIGNALED ............................................................
PXFWIFSTOPPED .............................................................
PXFWRITE .........................................................................
PXFWSTOPSIG .................................................................
PXFWTERMSIG .................................................................
3-48
3-49
3-50
3-51
3-52
3-53
3-54
3-54
3-55
3-56
3-57
3-58
3-59
3-60
3-61
3-62
3-63
3-64
3-65
3-66
3-66
3-67
3-68
3-69
3-70
3-70
3-71
3-72
3-73
3-74
3-74
3-75
3-76
xv
インテル ® Fortran ライブラリ・リファレンス
第4章
QuickWin ライブラリ
QuickWin サブルーチンおよび関数 ........................................... 4-2
グラフィックス手続き ............................................................... 4-5
グラフィックス関数の説明 ...................................................... 4-14
ARC .................................................................................... 4-14
ARC_W ............................................................................... 4-15
GETARCINFO ..................................................................... 4-16
CLEARSCREEN ................................................................. 4-18
DISPLAYCURSOR ............................................................. 4-19
ELLIPSE ............................................................................. 4-20
ELLIPSE_W ........................................................................ 4-21
FLOODFILL ........................................................................ 4-22
FLOODFILL_W ................................................................... 4-23
FLOODFILLRGB ................................................................. 4-25
FLOODFILLRGB_W ........................................................... 4-26
GETBKCOLOR ................................................................... 4-27
GETCOLOR ........................................................................ 4-28
GETCURRENTPOSITION .................................................. 4-29
GETCURRENTPOSITION_W ............................................ 4-30
GETFILLMASK ................................................................... 4-31
GETIMAGE ......................................................................... 4-32
GETIMAGE_W .................................................................... 4-33
GETLINESTYLE ................................................................. 4-34
GETPHYSCOORD ............................................................. 4-35
GETPIXEL .......................................................................... 4-36
GETPIXEL_W ..................................................................... 4-37
GETPIXELS ........................................................................ 4-38
GETTEXTCOLOR ............................................................... 4-39
GETTEXTPOSITION .......................................................... 4-40
GETTEXTWINDOW ............................................................ 4-41
GETVIEWCOORD .............................................................. 4-42
GETVIEWCOORD_W ......................................................... 4-43
GETWINDOWCOORD ....................................................... 4-44
GETWRITEMODE .............................................................. 4-45
GRSTATUS ......................................................................... 4-46
xvi
目次
IMAGESIZE ........................................................................
IMAGESIZE_W ...................................................................
LINETO ...............................................................................
LINETO_W .........................................................................
LOADIMAGE ......................................................................
LOADIMAGE_W .................................................................
MOVETO ............................................................................
MOVETO_W .......................................................................
OUTTEXT ...........................................................................
PIE ......................................................................................
PIE_W ................................................................................
POLYGON ..........................................................................
POLYGON_W .....................................................................
PUTIMAGE .........................................................................
PUTIMAGE_W ...................................................................
RECTANGLE ......................................................................
RECTANGLE_W ................................................................
REMAPALLPALETTERGB .................................................
REMAPPALETTERGB .......................................................
SAVEIMAGE .......................................................................
SAVEIMAGE_W .................................................................
SAVEJPEG .........................................................................
SAVEJPEG_W ...................................................................
SCROLLTEXTWINDOW ....................................................
SETBKCOLOR ...................................................................
SETCLIPRGN .....................................................................
SETCOLOR ........................................................................
SETFILLMASK ...................................................................
SETLINESTYLE .................................................................
SETPIXEL ..........................................................................
SETPIXEL_W .....................................................................
SETPIXELS ........................................................................
SETTEXTCOLOR ...............................................................
SETTEXTPOSITION ..........................................................
SETTEXTWINDOW ............................................................
SETVIEWORG ...................................................................
4-48
4-49
4-50
4-51
4-52
4-53
4-54
4-55
4-56
4-56
4-58
4-60
4-61
4-63
4-65
4-68
4-69
4-70
4-72
4-74
4-75
4-76
4-77
4-78
4-79
4-80
4-81
4-82
4-83
4-84
4-85
4-86
4-87
4-88
4-89
4-90
xvii
インテル ® Fortran ライブラリ・リファレンス
SETVIEWPORT .................................................................. 4-91
SETWINDOW ..................................................................... 4-91
SETWRITEMODE ............................................................... 4-93
WRAPON ............................................................................ 4-95
GETCOLORRGB ................................................................ 4-96
GETBKCOLORRGB ........................................................... 4-97
GETPIXELRGB ................................................................... 4-99
GETPIXELRGB_W ........................................................... 4-100
SETPIXELSRGB ............................................................... 4-101
GETPIXELSRGB .............................................................. 4-103
SETCOLORRGB .............................................................. 4-104
SETBKCOLORRGB .......................................................... 4-106
SETPIXELRGB ................................................................. 4-107
SETPIXELRGB_W ............................................................ 4-108
RGBTOINTEGER ............................................................. 4-110
INTEGERTORGB ............................................................. 4-111
フォント操作関数 .................................................................. 4-112
GETFONTINFO ................................................................ 4-112
GETGTEXTEXTENT ......................................................... 4-113
OUTGTEXT ....................................................................... 4-114
INITIALIZEFONTS ............................................................ 4-115
SETFONT ......................................................................... 4-116
SETGTEXTROTATION ..................................................... 4-119
GETGTEXTROTATION ..................................................... 4-120
GETTEXTCOLORRGB ..................................................... 4-121
SETTEXTCOLORRGB ..................................................... 4-122
QuickWin との互換性サポート .............................................. 4-124
ABOUTBOXQQ ................................................................ 4-124
APPENDMENUQQ ........................................................... 4-125
CLICKMENUQQ ............................................................... 4-128
DELETEMENUQQ ............................................................ 4-129
FOCUSQQ ........................................................................ 4-130
GETACTIVEQQ ............................................................... 4-131
GETEXITQQ ..................................................................... 4-132
GETHWNDQQ .................................................................. 4-133
GETUNITQQ ..................................................................... 4-134
xviii
目次
GETWINDOWCONFIG ....................................................
GETWSIZEQQ .................................................................
INQFOCUSQQ .................................................................
INSERTMENUQQ ............................................................
MESSAGEBOXQQ ...........................................................
MODIFYMENUFLAGSQQ ................................................
MODIFYMENUROUTINEQQ ...........................................
MODIFYMENUSTRINGQQ ..............................................
REGISTERMOUSEEVENT ..............................................
SETACTIVEQQ ................................................................
SETEXITQQ .....................................................................
SETMESSAGEQQ ...........................................................
SETWINDOWCONFIG .....................................................
SETWINDOWMENUQQ ...................................................
SETWSIZEQQ ..................................................................
UNREGISTERMOUSEEVENT .........................................
WAITONMOUSEEVENT ..................................................
QuickWin デフォルト・メニューのサポート ........................
WINPRINT ........................................................................
WINSAVE .........................................................................
WINEXIT ...........................................................................
WINCOPY ........................................................................
WINPASTE .......................................................................
WINSIZETOFIT ................................................................
WINFULLSCREEN ...........................................................
WINSTATE ........................................................................
WINCASCADE .................................................................
WINTILE ...........................................................................
WINARRANGE .................................................................
WININPUT ........................................................................
WINCLEARPASTE ...........................................................
WINSTATUS .....................................................................
WININDEX ........................................................................
WINUSING .......................................................................
WINABOUT ......................................................................
WINSELECTTEXT ...........................................................
4-134
4-137
4-139
4-140
4-143
4-145
4-147
4-149
4-150
4-152
4-153
4-154
4-156
4-159
4-160
4-162
4-163
4-165
4-166
4-166
4-167
4-167
4-168
4-169
4-169
4-170
4-170
4-171
4-171
4-172
4-172
4-173
4-173
4-174
4-174
4-175
xix
インテル ® Fortran ライブラリ・リファレンス
WINSELECTGRAPHICS .................................................. 4-176
WINSELECTALL ............................................................... 4-176
NUL ................................................................................... 4-177
未知の関数 ............................................................................. 4-177
GETACTIVEPAGE ............................................................ 4-177
GETTEXTCURSOR .......................................................... 4-178
GETTEXTVECTOR .......................................................... 4-178
GETHANDLEQQ .............................................................. 4-179
GETVIDEOCONFIG ......................................................... 4-179
GETVISUALPAGE ............................................................ 4-180
REGISTERFONTS ........................................................... 4-180
SELECTPALETTE ............................................................ 4-181
SETACTIVEPAGE ............................................................ 4-181
SETFRAMEWINDOW ....................................................... 4-182
DSETGTEXTVECTOR ...................................................... 4-182
SETSTATUSMESSAGE ................................................... 4-183
SETTEXTCURSOR .......................................................... 4-183
SETTEXTFONT ................................................................ 4-184
SETTEXTROWS ............................................................... 4-184
SETVIDEOMODE ............................................................. 4-185
SETVIDEOMODEROWS .................................................. 4-185
SETVISUALPAGE ............................................................ 4-186
UNREGISTERFONTS ...................................................... 4-186
QuickWin 構成要素のための Windows ハンドルの参照 ........ 4-187
GETHANDLEFRAMEQQ .................................................. 4-187
GETHANDLECLIENTQQ .................................................. 4-187
GETHANDLECHILDQQ .................................................... 4-188
UNUSEDQQ ..................................................................... 4-188
索引
xx
本書について
本書では、インテル ® Fortran ライブラリの組み込み関数、ポータビ
リティ関数、POSIX 関数、および QuickWin ライブラリ関数と手続
きについて説明しています。インテル Fortran で使用可能なすべて
のライブラリの説明については、『インテル ® Fortran コンパイラ・
ユーザーズ・ガイド』の「ライブラリ」の項を参照してください。
本書は、次の章で構成されています。
第1章
インテル Fortran の組み込み関数について説明しま
す。
第2章
ポータビリティ関数について説明します。
第3章
POSIX 関数について説明します。
第4章
QuickWin ランタイム・ライブラリ関数について説
明します。
参考文献
次の資料には、インテル Fortran 95 言語に関する補足情報が記載さ
れています。
次の資料には、インテル Fortran コンパイラに関する補足情報が記
載されています。
•
『Fortran 95 Handbook』Jeanne C. Adams、Walter S. Brainerd、
Jeanne T. Martin、Brian T. Smith、Jerrold L. Wagener 共著、MIT
Press 刊、1997 年。標準版の Fortran 95 言語に関する総合的なガ
イドです。
xxi
インテル ® Fortran ライブラリ・リファレンス
•
•
•
『Fortran 90/95 Explained』Michael Metcalf、John Reid 共著、
Oxford University Press 刊、1996 年。Fortran 95 言語について簡
潔にまとめたものです。
Win 32 固有の情報については、Microsoft Win32 ソフトウェア開
発キットに付属のマニュアルを参照してください。
Microsoft Fortran PowerStation 32 については、Microsoft Fortran
Powerstation 32 Development System for Windows NT, Version 1.0 に
付属のマニュアルを参照してください。
ターゲット・アーキテクチャに関する情報は、インテルから提供さ
れているほか、大部分の専門書店でも入手できます。次のような役
立つ資料があります。
•
•
『Intel® Fortran プログラマ・リファレンス』資料番号 687928J
『Intel® Fortran コンパイラ・ユーザーズ・ガイド』資料番号
687931J
•
•
『Intel® C/C++ コンパイラ・ユーザーズ・ガイド』
『インテル ® アーキテクチャ最適化リファレンス・マニュアル』
インテル社、資料番号 245127J
『インテル・プロセッサの識別と CPUID 命令』資料番号 241618J
•
インテルの資料は、インテルのウェブサイト www.intel.co.jp から入
手できます。
表記規則
本書では、次の表記規則に従います。
xxii
This type style
構文の要素、予約語、キーワード、ファイル
名、コンピュータ出力、またはプログラム例
の一部分のいずれかを表します。テキスト
は、大文字に意味がない限り小文字で表記し
ます。
THIS TYPE STYLE
Fortranのソーステキストは大文字で表記しま
す。例では、l は小文字の L、1 は数字の 1
です。また、O は大文字の O、0 は数字の 0
です。
This type style
入力としてユーザが入力する文字そのものを
表します。
本書について
This type style
識別子、式、文字列、記号、または値のいず
れかのプレースホルダを表します。これらの
アイテムのいずれかをプレースホルダと置き
換えてください。
[items]
角括弧で囲まれたアイテムはオプションで
す。
{item | item}
中括弧内のアイテムのリストから 1 つだけ選
択します。縦の線 (|) はアイテムの区切りで
す。
...
省略記号は、前のアイテムの繰り返しが可能
であることを表します。
This type style
インテル Fortran 言語の拡張機能に相当する
構文要素や予約語などを表します。
This type style
インテル Fortran 言語の拡張機能に相当する
記述を表します。コード内で使用するときに
非標準の拡張機能を識別しやすいように、
ANSI 標準の Fortran 言語に対する拡張部分
は、本書全体を通してこのフォントと色で表
記されています。
xxiii
インテル ® Fortran ライブラリ・リファレンス
xxiv
組み込み手続き
組み込み手続きとは、デフォルトで、すべての FORTRAN 95 プロ
グラムおよび手続きで使用可能な組み込み関数およびサブルーチン
のことです(条件によっては、組み込み手続きを使用できなくなる
可能性があります。「組み込み手続きの可用性」の節を参照してく
ださい)。
本章では、インテル ® Fortran によって提供される組み込み手続きに
ついて説明します。インテル Fortran では、Fortran 95 標準規格で定
められているすべての組み込み手続きをサポートしています。ま
た、インテル Fortran では、言語の機能性を拡張するその他の非標
準組み込み手続きもサポートしています(「非標準の組み込み手続
き」の節を参照してください)。インテル Fortran 組み込み手続きは
ライブラリ libintrins.lib の中に入っています。
『インテル ® Fortran コンパイラ・ユーザーズ・ガイド』には、
portlib ライブラリや posix ライブラリなど、インテル Fortran に
付属するライブラリおよび ifl コンパイラ・ドライバが使用する他
のライブラリに関する詳細な情報が記載されています。portlib
ライブラリおよび posix ライブラリについては、本書の第 2 章お
よび第 3 章でも詳しく説明します。
組み込み手続きの概要
この節では、まず組み込み手続きを使用できない場合について説明
し、その後、インテル Fortran の組み込み関数およびサブルーチン
の概要を述べ、INTRINSIC 属性および文の使用方法について説明
し、さらに非標準の組み込み手続きについても解説します。
1-1
1
インテル ® Fortran ライブラリ・リファレンス
組み込み手続きの可用性
組み込み手続きは、すべてのプログラム単位で使用可能です。ただ
し、ユーザ定義手続き、変数、または定数を表すものなど、異なる
意味を持つ組み込み名をユーザが定義した場合は使用できません。
ユーザ定義手続きが明示的に定義されているときは、常に同じ名前
の組み込み手続きよりユーザ定義手続きが優先されます。
このようなことが起こるのは、ユーザ定義手続きが、明示的イン
ターフェイスを持つ場合、EXTERNAL 文中にある場合、または文関
数である場合などです。
ユーザ定義手続きが総称 (generic) 組み込み関数の拡張(EXTEND)
に使用され、引数の型が異なる場合、ユーザ定義手続きと組み込み
関数の両方が同じ名前を持つ可能性があります。
関数名が EXTERNAL 属性を持っている場合、組み込み関数は使用で
きません。
組み込みサブルーチンおよび関数
組み込み手続きには、組み込み関数と組み込みサブルーチンの両方
があります。
組み込みサブルーチンは CALL 文によって呼び出され、渡される引
数によって値を返すことができます。組み込み関数は式の一部分と
して引用され、評価されて値(「関数値」)を返し、この値が式で使
用されます。
組み込み手続きは、「分類」を識別する過程で、関数またはサブ
ルーチンとして識別されます。
組み込みサブルーチンは、さらに要素別処理サブルーチンまたは非
要素別処理サブルーチンに細分化することができます。
組み込み関数には、次の分類があります。
•
•
•
1-2
要素別処理関数
問い合わせ関数
変形関数
組み込み手続き
1
組み込み関数は総称名 (generic name) および個別名 (specific name) の
いずれかまたは両方によって参照できます。詳細については、「総
称 (generic) 組み込みと個別 (specific) 組み込み関数名」の項を参照
してください。
各組み込み関数の分類は、本章で後述する組み込み手続きの仕様の
一覧表に示しています (「組み込み手続きの仕様」の節を参照して
ください )。
組み込みサブルーチン
サブルーチンの引用は、CALL 文を使用して行われます。組み込み
サブルーチンが返す値はすべて、サブルーチンの引数を介して与え
られます。
次のコード例では、組み込みサブルーチン DATE_AND_TIME を呼び
出し、DATE_AND_TIME が引数 Dtime を使用して返す実時間時計
と日付データを取得します。
INTEGER Dtime(8)
CALL DATE_AND_TIME(VALUES=Dtime)
PRINT *, Dtime(1)
! print the year
要素別処理サブルーチンと非要素別処理サブルーチン
組み込みサブルーチンには、要素別処理サブルーチンと非要素別処
理サブルーチンがあります。
MVBITS は唯一の要素別処理サブルーチンです。他の組み込みサブ
ルーチンはすべて、非要素別に処理します。
MVBITS は、スカラ引数を指定するのと同じ方法で配列を引数とし
て使用できるという点で要素別処理といえます。MVBITS にはすべ
てのスカラ仮引数がありますが、形状適合配列を実引数として渡す
ことができます。これには、与えられた実引数配列の各要素に対し
て、対応するサブルーチンのスカラ形式を呼び出すような効果があ
ります。
1-3
1
インテル ® Fortran ライブラリ・リファレンス
組み込み関数
関数は、関数が値を返し、関数とサブルーチンの違いは、関数が引
用されるのは(文全体ではなく)式の一部分であるという点でサブ
ルーチンと異なります。各関数は結果を関数値として返します。こ
の値は、その関数を引用する式で使用されます。
式が受け入れ可能であれば、関数の引用が行われる可能性がありま
す。例えば、手続きに対する引数として、または出力リストおよび
その他の場所において、代入文の右辺で組み込み関数を使用するこ
とができます。
次のコードでは、SIN 組み込み関数が評価され、その結果が出力さ
れます。
Ar = N*Pi/180
! angle in radians
PRINT *, SIN(Ar) ! print sine of angle
次の文によって、Y と X の正弦関数の積が変数 Sxy に代入されま
す。
Sxy = SIN(X) * Y
総称 (generic) 組み込みと個別 (specific) 組み込み関数名
組み込み関数名には、総称名 (generic name) および個別名 (specific
name) の 2 種類があります。それぞれの組み込み関数が、総称名ま
たは 1 つ以上の個別名、あるいは総称名と個別名の両方を持ってい
ます。組み込み関数が総称名と個別名の両方を持つ場合、両方とも
関数の呼び出しに使用できます。
本章で後述する「総称組み込みおよび個別組み込みの概要」の節で
は、総称 (generic) 組み込み関数および対応する個別ルーチンの概要
を一覧表にしています(表 1-3 を参照してください )。
組み込み関数の総称名を引用すると、実引数のデータ型が呼び出さ
れる組み込み関数を決定します。組み込み関数の個別名を引用する
には、組み込み関数の実引数が特定のデータ型でなければなりませ
ん。
例えば、総称 (generic) 組み込み関数 ABS は、任意の数値型の引数
を受け入れることができます。しかし、この組み込み関数の個別
バージョンである DABS は倍精度の引数しか受け入れることができ
ません。
1-4
組み込み手続き
1
組み込み関数名は、総称名 (generic name) と個別名 (specific name) の
可能性があります。例えば、表 1-3 に示すとおり、組み込み手続き
SIN が倍精度の引数によって呼び出されると、個別関数 DSIN が呼び
出されます。ただし、SIN が REAL 引数によって呼び出されると、
個別関数 SIN が呼び出されます。
総称名は複数の型の引数に対して指定できるため、総称名を使用す
ると一般に組み込み関数の引用が簡単になります。
要素別処理関数
注:コマンド行オプションの中には、異なるデフォルトのデータ
型サイズを指定するため、別のまたは無効な組み込み手続き引用
を引き起こすものがあります。詳細については、「データ型サイ
ズおよびコマンド行オプション」の項を参照してください。
要素別処理組み込み関数は、スカラ引数を指定するのと同じ方法
で、配列を引数として使用することができます。
すべてのスカラ仮引数によって呼び出される要素別処理関数は、ス
カラ結果を出力します。ただし、形状適合配列引数で要素別処理関
数を呼び出すと、形状適合配列結果になります。これには、与えら
れた実引数配列の各要素に対して、対応する関数のスカラ形式を呼
び出すような効果があります。
配列引数とスカラ引数の両方を要素別処理関数に対して指定する
と、各スカラはすべての要素がスカラ値を持つ配列として処理され
ます。「スカラ配列」は配列引数に適合しています。
次のコードは、スカラ引数 ( 例えば N) と配列引数 ( 例えば X) がど
のように要素別処理組み込み関数 ABS を呼び出すかを示していま
す。
INTEGER N, Nabs
REAL X(5), Xabs(5)
N = -5
Nabs = ABS(N)
X =(/-4.5, 5.2, -3.9, -1.1, 8.7/)
Xabs = ABS(X)
1-5
1
インテル ® Fortran ライブラリ・リファレンス
ABS への呼び出しの後、Nabs の値は 5 となり、配列 Xabs の値は
[4.5 5.2 3.9 1.1 8.7] となります。
問い合わせ関数
問い合わせ組み込み関数は、引数の特性(引数の値ではなく)に基
づいて情報を返します。
次の文は、SIZE 問い合わせ関数がどのように配列 A の特性に関す
る情報を返すかを示しています。
REAL A(3:9, 4:10)
INTEGER SizA
SizA = SIZE(A)
SIZE 組み込み関数は、配列の 1 次元の寸法または配列要素の総数の
いずれかを返します。SIZE は問い合わせ組み込み関数なので、配
列要素の値ではなく配列の特性のみが考慮されます。
SIZE への呼び出しの後、変数 SizA の値は 49 になります。つまり、
配列 A の要素の総数は 49 です。
変形関数
変形組み込み関数には、要素別処理関数でも問い合わせ関数でもな
い関数すべてが含まれます。
一般に、変形関数は少なくとも 1 つの配列引数を要求し、スカラま
たは要素別に評価できない実引数に基づく配列を結果として返しま
す。多くの場合、配列の結果は、引数とは違う形状になります。
次のコードでは、ANY および ALL 変形組み込み関数を使用してい
ます。
INTEGER(4) A(5), B(5)
LOGICAL L1, L2
A =(/3, 5, 7, 9, 9/)
B =(/3, 4, 7, 8, 9/)
L1 = ANY(A .EQ. B)
L2 = ALL(A .EQ. B)
ANY および ALL 組み込み関数によって、論理配列の次元方向でどれ
かの値またはすべての値が .TRUE. かどうかを判定します。
1-6
組み込み手続き
1
上記のコードの場合、ANY および ALL に渡される実引数は 5 要素
の論理配列です。この配列は式 A .EQ. B の結果であり、値は
[.TRUE., .FALSE., .TRUE., .FALSE., .TRUE.] です。
上記の文が評価されると、論理変数 L1 の値は .TRUE.(A の少なく
とも 1 つの要素が対応する B の要素に等しい ) になり、L2 の値は
.FALSE.(A のすべての要素が対応する B の要素に等しいわけではな
い ) になります。
INTRINSIC 属性および文
INTRINSIC 属性および INTRINSIC 文はどちらも、名前を組み込
み手続きの総称名 (generic name) または個別名 (specific name) として
指定します。INTRINSIC 属性と EXTERNAL 属性は、相互に排他的
です。
通常、INTRINSIC 属性および文は、組み込み手続きを文書化する
かまたは組み込み手続きを実引数として渡すために使用されます。
関数は、INTRINSIC 文中または INTRINSIC 属性を使用した型宣
言文中で組み込み関数として宣言することができます。このような
宣言は、1 つの名前につき一度だけです。
組み込みサブルーチン名は、INTRINSIC 文を使用して組み込みと
して宣言することができます。サブルーチン名は型宣言文には記述
できないため、INTRINSIC 属性をサブルーチンに適用することは
できません。
組み込み手続きの文書化
INTRINSIC 属性および文を文書化の手法として使用して、名前が
組み込み手続き名であることを示すことができます。
これは、他の人がユーザのコードを使用する場合、特にそれが非標
準の組み込み手続きを実行するコードの場合に役立ちます。
実引数としての組み込み手続き
組み込み手続きを実引数としてサブルーチンや関数に渡すことがで
きます。組み込み手続きの個別名だけが渡されるため、渡された名
前が組み込み手続き名であることをコンパイラに知らせなければな
りません。
1-7
1
インテル ® Fortran ライブラリ・リファレンス
組み込み手続きが実引数として使用され、その名前が同じ有効域内
の他の場所に現れない場合、その組み込み手続きが組み込み手続き
であることを宣言しなければなりません。これは INTRINSIC 属性
( 組み込み関数の場合 ) または INTRINSIC 文 ( サブルーチンおよび
関数の場合 ) で行うことができます。
例えば、
CALL My_Subroutine(QSIN)
という文がプログラム単位内に現れ、QSIN が他に存在しない場合、
コンパイラは、QSIN は変数であり組み込み関数 SIN の個別名では
ないと判断します。このため、組み込み関数 QSIN が確実に渡され
るように、QSIN を組み込み関数として宣言しなければなりません。
注:実引数として使用できない組み込み手続きもあります。
次のコード例では、ユーザが記述したサブルーチン
My_Subroutine にどのように SIN および COS 組み込み関数を渡す
ことができるかを示しています。
PROGRAM Example
REAL(4), INTRINSIC :: SIN, COS
CALL My_Subroutine(SIN)
CALL My_Subroutine(COS)
END
SUBROUTINE My_Subroutine(TrigRtn)
REAL(4), EXTERNAL :: TrigRtn
REAL(4), PARAMETER :: Pi=3.1415926
INTEGER I
DO I=0, 360, 45
! Convert degrees to
! radians (I*Pi/180) and
! call the intrinsic routine
! passed as TrigRtn.
WRITE(6, 100) I," degrees ",TrigRtn(I*Pi/180)
END DO
100 FORMAT (I4, A9, F12.8)
1-8
組み込み手続き
1
END
INTRINSIC 属性を使用して、主プログラム単位内の型宣言文で両
方の関数を組み込み関数として宣言しています。
同様に、サブルーチンでは、EXTERNAL 属性によって仮引数
TrigRtn がデータ・オブジェクト名ではなく関数名であることを指
定しています。
非標準の組み込み手続き
インテル Fortran では、Fortran 95 標準規格によって定義されている
組み込み手続きをサポートするだけでなく、非標準組み込み手続き
も用意しています。非標準組み込み手続きは標準組み込み手続きと
同様、インテル Fortran 言語の一部であり、コマンド行オプション
で選択または選択解除を指定することはありません。
非標準組み込みルーチン名の一覧表は、表 1-3 にあります。すべて
の非標準手続きを含むすべての組み込み手続きを「組み込み手続き
の仕様」の節で説明しています。
非標準組み込み手続きは、標準規格で定義されていない追加機能、
他の Fortran 95 実装との互換性、および規格を越えたデータ型に対
する特定ルーチンを提供するために用意されています。
注:インテルが供給する非標準組み込み手続きをコード中で使用
すると、ポータビリティ ( 移植性 ) が制限される可能性がありま
す。他社製コンパイラは、インテルが供給する非標準組み込み手
続きをサポートしていない場合があります。
インテル Fortran では、標準組み込み手続きと同様の形式で非標準
組み込み手続きがサポートされています。つまり、インテル Fortran
コンパイラはルーチンの一般性、型、および仮引数の属性を認識し
ます。
インテル製以外の Fortran コンパイラは、インテルの非標準組み込
み手続きをサポートしていない可能性がありますが、INTRINSIC
文を使用すればマークされた手続きが組み込みルーチンとして認識
されなかったときすぐに知らせることができます。
1-9
1
インテル ® Fortran ライブラリ・リファレンス
データ表現モデル
Fortran 95 標準規格では、データ表現モデルを指定して、コン
ピュータでのデータ表現方法とデータ処理方法について定めていま
す。これらのモデルによって、Fortran 95 の組み込み関数が実行す
る計算処理について説明しています。
Fortran 95 には、次の 3 種類のデータ表現モデルがあります。
•
•
•
ビットモデル
整数モデル
実数モデル
実装方法に応じて、モデル・パラメータはできる限りその実現方法
に一致するように選択されています。ただし、完全に一致する必要
はなく、実装方法に特定の算術演算を強制することはありません。
データ表現モデルの組み込み関数
いくつかの組み込み関数によって 3 種類のデータ表現モデルに関す
る情報が提供されます。これらの組み込み関数の一覧表を表 1-1 に
示します。
表 1-1
1-10
データ表現モデルに関連する組み込み関数
組み込み関数
説明
BIT_SIZE(I)
種別 I の整数のビット数(I は種別番号ではな
く、オブジェクト)
DIGITS(X)
整数モデルまたは実数モデルにおける X の有
効桁数
EPSILON(X)
実数モデルで 1 と比べて小さな X の値
EXPONENT(X)
実数モデルにおける X の指数部の値
FRACTION(X)
実数モデルにおける X の小数部の値
HUGE(X)
整数モデルまたは実数モデルにおける X の最
大値
MAXEXPONENT(X)
実数モデルにおける X の指数部の最大値
MINEXPONENT(X)
実数モデルにおける X の指数部の最小値
NEAREST(X, S)
最も近い処理系の実数値
PRECISION(X)
実数モデルにおける X の 10 進精度
組み込み手続き
表 1-1
1
データ表現モデルに関連する組み込み関数 (続き)
組み込み関数
説明
整数モデルまたは実数モデルにおける X の底
(基数)
RADIX(X)
RANGE(X)
整数モデルまたは実数モデルにおける X の 10
進指数範囲
RRSPACING(X)
1/(X の前後の相対的な間隔 )
SCALE(X, I)
X と実数モデルのべき I との積
SET_EXPONENT(X, I)
X の実数モデルの指数を指数 I に設定
次ページにつづく
SPACING(X)
X の前後の絶対間隔
TINY(X)
実数モデルにおける X の最小数
DIGITS(X)
整数モデルまたは実数モデルにおける X の有
効桁数
ビットモデル
ビットモデルでは、次の数式に基づいて、負ではない整数型スカ
ラ・データ・オブジェクト a を、2 進数字 ( ビット ) の列として解
釈します。
n–1
a =
∑
bk 2
k
k=0
ここで、n は組み込み関数 BIT_SIZE で指定するビット数であり、
各 bk のビット値は 0 または 1 です。ビットには、0 から始まる番号
が、右から左に付けられます。
整数モデル
整数モデルは次の数式で表されます。
q–1
k
i = s
dk r
k=0
∑
この数式で使用する文字の意味は、次のとおりです。
1-11
1
インテル ® Fortran ライブラリ・リファレンス
i
整数値
s
符号 (+1 または –1)
r
組み込み関数RADIXで指定する基数(インテルのシ
ステムの場合は常に 2)
q
組み込み関数DIGITSで指定する桁数(1以上の整数)
dk
k 番目の数字であり、0 ≤ dk < r の整数。数字には、
1 から始まる番号が、左から右に付けられます。
実数モデル
実数モデルは次の数式で表されます。
p
x = sb
e
∑
fk b
–k
k=1
この数式で使用する文字の意味は、次のとおりです。
1-12
x
実数値
s
符号 (+1 または –1)
b
底 ( 実基数 ) であり、組み込み関数 RADIX で指定す
る 2 以上の整数 ( インテルのシステムの場合は常
に 2)
e
組み込み関数 MINEXPONENT と組み込み関数
MAXEXPONENT で指定する、最小値 (lmin) と最大
値 (lmax) の間の整数
p
仮数の桁数であり、組み込み関数 DIGITS で指定
する 2 以上の整数
fk
k 番目の数字であり、0 ≤ fk < b の整数。ただし、
f1 は、すべての fk が 0 の場合に限り、0 になり得ま
す。数字には、1 から始まる番号が、左から右に
付けられます。
組み込み手続き
1
組み込み手続きの機能分類
表 1-2 に、組み込み手続きを分類ごとにアルファベット順に並べた
一覧を示します。各組み込み手続きの詳細については、「組み込み
手続きの仕様」の節を参照してください。
表 1-2
組み込み手続きの分類
分類
組み込みルーチン
配列構成 (Array construction)
MERGE, PACK, SPREAD, UNPACK
配列問い合わせ (Array inquiry)
ALLOCATED, LBOUND, SHAPE, SIZE, UBOUND
配列内位置 (Array location)
MAXLOC, MINLOC
配列操作 (Array manipulation)
CSHIFT, EOSHIFT, TRANSPOSE
配列集計 (Array reduction)
ALL, ANY, COUNT, MAXVAL, MINVAL, PRODUCT, SUM
配列変形 (Array reshape)
RESHAPE
ビット問い合わせ (Bit inquiry)
BIT_SIZE
ビット操作 (Bit manipulation)
BTEST, IAND, IBCLR, IBITS, IBSET, IEOR, IOR, ISHFT,
ISHFTC, MVBITS, NOT
文字処理 (Character computation)
ACHAR, ADJUSTL, ADJUSTR, CHAR, IACHAR,
ICHAR, INDEX, LEN_TRIM, LGE, LGT, LLE, LLT,
REPEAT, SCAN, TRIM, VERIFY
文字問い合わせ (Character
inquiry)
LEN
浮動小数点操作 (FP manipulation)
EXPONENT, FRACTION, NEAREST, RRSPACING,
SCALE, SET_EXPONENT, SPACING
種別 (Kind)
KIND, SELECT_INT_KIND, SELECTED_REAL_KIND
論理 (Logical)
LOGICAL
数学計算 (Math computation)
ACOS, ASIN, ATAN, ATAN2, COS, COSH, EXP, LOG,
LOG10, SIN, SINH, SQRT, TAN, TANH
行列積 (Matrix multiply)
MATMUL
非標準組み込み手続き
(Nonstandard inrtinsic procedure)
ACOSD, ACOSH, AND, ASIND, ASINH, ATAN2D,
ATAND, ATANH, BADDRESS, COSD, DCMPLX,
DFLOAT, DNUM, DREAL, FREE, HFIX, IACHAR,
IADDR, IDIM, IJINT, IMAG, INT1, INT2, INT4, INT8,
INUM, ISIGN, ISNAN, IXOR, JNUM, LOC, LSHFT,
LSHIFT, MALLOC, MCLOCK, OR, QNUM, QPROD,
RNUM, RSHFT, RSHIFT, SIND, TAND, XOR
次ページにつづく
1-13
1
インテル ® Fortran ライブラリ・リファレンス
表 1-2
組み込み手続きの分類 (続き)
分類
組み込みルーチン
数値演算 (Numeric computation)
ABS, AIMAG, AINT, ANINT, CEILING, CMPLX, CONJG,
DBLE, DIM, DPROD, FLOOR, INT, MAX, MIN, MOD,
MODULO, NINT, REAL, SIGN
数値問い合わせ (Numeric inquiry)
DIGITS, EPSILON, HUGE, MAXEXPONENTS,
MINEXPONENTS, PRECISION, RADIX, RANGE, TINY
ポインタ結合状態問い合わせ
(Pointer inquiry)
ASSOCIATED
プリフェッチ (Prefetching)
MM_PREFETCH
引数実在問い合わせ (Presence
inquiry)
PRESENT
疑似乱数 (Pseudorandam
number)
RANDOM_NUMBER, RANDOM_SEED
時刻 (Time)
DATE_AND_TIME, SYSTEM_CLOCK
転換 (Transfer)
TRANSFER
ベクトルの内積 (Vector multiply)
DOT_PRODUCT
次ページにつづく
1-14
組み込み手続き
1
総称組み込みおよび個別組み込みの概要
「総称 (generic) 組み込みと個別 (specific) 組み込み関数名」の項で前
述したとおり、各組み込み手続きは、総称名 (generic name) または 1
つ以上の個別名 (specific name)、あるいは総称名と個別名の両方を
持ちます。表 1-3 に、インテル Fortran がサポートする標準および非
標準の総称組み込み (generic intrinsic) および個別組み込み (specific
intrinsic) 手続きをすべてまとめています。
組み込み手続きの総称名および個別名の概要
表 1-3 では、総称組み込みおよび個別組み込み手続きの概要を一覧
表にしています。この表では、アルファベット順に記載していま
す。
分類情報は、組み込みが Fortran 95 標準規格に対する拡張(「非標
準」)であるかどうかを示します。これらの手続きによって、非標
準の動作が実現されます。この文字色で名前および説明を記載する
関数も、Fortran 95 標準規格に対する拡張です。
また、分類情報は、どの組み込み手続きがサブルーチンでどれが関
数であるのか、そしてそれらが個別手続きであるかまたは総称手続
きであるかを示します。型(例えば INTEGER)の後に現れる括弧
内の数字は、KIND の値を表します。
1-15
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き
組み込み手続き
説明
ABS
絶対値
分類
総称要素別処理関数
要約
generic ABS(A)
INTEGER(1) function BABS(A)
INTEGER(1) ::A
INTEGER(2) function HABS(A)
INTEGER(2) ::A
INTEGER function IABS(A)
INTEGER ::A
INTEGER(8) function ABS(A)
INTEGER(8) ::A
REAL function ABS(A)
REAL ::A
DOUBLE PRECISION function
DABS(A)
DOUBLE PRECISION ::A
REAL function CABS(A)
COMPLEX ::A
DOUBLE PRECISION function
CDABS(A)
DOUBLE COMPLEX ::A
DOUBLE PRECISION function
ZABS(A)
DOUBLE COMPLEX ::A
REAL(16) function QABS(X)
REAL(16) :: X
COMPLEX(16) function CQABS(X)
COMPLEX(16) ::X
end
次ページにつづく
1-16
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ACHAR
ASCII 値に対応する文字を返します。
分類
総称要素別処理関数
要約
generic ACHAR(I)
CHARACTER function
INTEGER(1) ::I
CHARACTER function
INTEGER(2) ::I
CHARACTER function
INTEGER(4) ::I
CHARACTER function
INTEGER(8) ::I
end
ACOS
ACHAR(I)
ACHAR(I)
ACHAR(I)
ACHAR(I)
逆余弦関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic ACOS(X)
REAL function ACOS(X)
REAL ::X
DOUBLE PRECISION function
DACOS(X)
DOUBLE PRECISION::X
REAL(16) function QACOS(X)
QACOS(X)
REAL(16) X
end
次ページにつづく
1-17
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ACOSD
逆余弦関数(ラジアン単位)
分類
非標準の総称要素別処理関数
要約
generic ACOSD(X)
REAL function ACOSD(X)
REAL(4) ::X
DOUBLE PRECISION function
DACOSD(X)
DOUBLE PRECISION ::X
REAL(16) function QACOSD(X)
QACOSD(X)
REAL(16) X
end
ACOSH
逆双曲線余弦関数(ラジアン単位)
分類
非標準の総称要素別処理関数
要約
generic ACOSH(X)
REAL function ACOSH(X)
REAL(4) ::X
DOUBLE PRECISION function
DACOSH(X)
DOUBLE PRECISION ::X
REAL(16) function QACOSH(X)
REAL(16) ::X
end
次ページにつづく
1-18
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ADJUSTL
先頭の空白を取り除き、文字列を左詰めにします。
分類
総称要素別処理関数
要約
generic ADJUSTL(STRING)
CHARACTER function
ADJUSTL(STRING)
CHARACTER ::STRING
end
ADJUSTR
末尾の空白を取り除き、文字列を右詰めにします。
分類
総称要素別処理関数
要約
generic ADJUSTR(STRING)
CHARACTER function
ADJUSTR(STRING)
CHARACTER ::STRING
end
AIMAG
複素数の虚部
分類
総称要素別処理関数
要約
generic AIMAG(Z)
REAL function AIMAG(Z)
COMPLEX ::Z
DOUBLE PRECISION function
DIMAG(Z)
DOUBLE COMPLEX ::Z
QIMAG(Z)
COMPLEX*32 ::Z
end
AIMAX0
「MAX(A1, A2, A3, ...)」 を参照。
AIMIN0
「MIN(A1, A2, A3, ...)」 を参照。
次ページにつづく
1-19
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
AINT
整数値への切り捨て
分類
総称要素別処理関数
要約
generic AINT(A,KIND)
REAL(4) function AINT(A,KIND)
REAL(4) ::A
INTEGER,OPTIONAL ::KIND
REAL(8) function DINT(A)
REAL (8)::A
REAL(16) function QINT(A)
REAL(16) ::A
end
AJMAX0
「MAX(A1, A2, A3, ...)」を参照。
AJMIN0
「MIN(A1, A2, A3, ...)」を参照。
AKMAX0
「MAX(A1, A2, A3, ...)」を参照。
AKMIN0
「MIN(A1, A2, A3, ...)」を参照。
次ページにつづく
1-20
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ALL
MASK の DIM 番目の次元にある要素の値がすべて .TRUE. である
かどうかを判定します。
分類
総称変形関数
要約
generic ALL(MASK,DIM)
! MASK must be array-valued, DIM
must be scalar
LOGICAL(1) function
ALL(MASK,DIM)
LOGICAL(1) :: MASK
INTEGER,OPTIONAL::DIM
LOGICAL(2) function
ALL(MASK,DIM)
LOGICAL(2) :: MASK
INTEGER,OPTIONAL::DIM
LOGICAL(4) function
ALL(MASK,DIM)
LOGICAL(4) :: MASK
INTEGER,OPTIONAL::DIM
LOGICAL(8) function
ALL(MASK,DIM)
LOGICAL(8) :: MASK
INTEGER,OPTIONAL::DIM
end
次ページにつづく
1-21
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ALLOCATED
割り付け配列が、現在割り付けられているかどうかを示します。
分類
総称問い合わせ関数
要約
generic ALLOCATED(ARRAY)
! ARRAY must be an allocatable
array
LOGICAL function
ALLOCATED(ARRAY)
INTEGER(1) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
INTEGER(2) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
INTEGER(4) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
INTEGER(8) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
REAL(4) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
REAL(8) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
COMPLEX(4) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
COMPLEX(8) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
次ページにつづく
1-22
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
ALLOCATED(つづき)
説明
LOGICAL(1) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
LOGICAL(2) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
LOGICAL(4) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
LOGICAL(8) ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
CHARACTER ::ARRAY
LOGICAL function
ALLOCATED(ARRAY)
DERIVED_TYPE ::ARRAY
end
ALOG
「LOG(X)」を参照。
ALOG10
「LOG10(X)」を参照。
AMAX0
「MAX(A1, A2, A3, ...)」 を参照。
AMAX1
「MAX(A1, A2, A3, ...)」 を参照。
AMIN0
「MIN(A1, A2, A3, ...)」 を参照。
AMIN1
「MIN(A1, A2, A3, ...)」 を参照。
AMOD
「MOD(A, P)」を参照。
次ページにつづく
1-23
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
AND
ビットごとの論理積
分類
非標準の総称要素別処理関数
要約
generic AND(I,J)
INTEGER(1) function AND(I,J)
INTEGER(1) ::I,J
INTEGER(2) function AND(I,J)
INTEGER(2) ::I,J
INTEGER(4) function AND(I,J)
INTEGER(4) ::I,J
INTEGER(8) function AND(I,J)
INTEGER(8) ::I,J
end
ANINT
最も近い整数値
分類
総称要素別処理関数
要約
generic ANINT(A,KIND)
REAL(4) function ANINT(A,KIND)
REAL(4) ::A
INTEGER,OPTIONAL ::KIND
REAL(8) function DNINT(A)
REAL(8) ::A
REAL(16) function QNINT(A,KIND)
REAL(16) :: A
end
次ページにつづく
1-24
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ANY
MASK の DIM 番目の次元にある要素の値が 1 つでも .TRUE. で
あるかどうかを判定します。
分類
総称変形関数
要約
generic ANY(MASK,DIM)
! MASK must be array-valued, DIM
must be scalar
LOGICAL(1) function
ANY(MASK,DIM)
LOGICAL(1) :: MASK;
INTEGER,OPTIONAL::DIM
LOGICAL(2) function
ANY(MASK,DIM)
LOGICAL(2) :: MASK;
INTEGER,OPTIONAL::DIM
LOGICAL(4) function
ANY(MASK,DIM)
LOGICAL(4) :: MASK;
INTEGER,OPTIONAL::DIM
LOGICAL(8) function
ANY(MASK,DIM)
LOGICAL(8) :: MASK;
INTEGER,OPTIONAL::DIM
end
次ページにつづく
1-25
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ASIN
逆正弦関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic ASIN(X)
REAL function
ASIN(X)
REAL ::X
DASIN(X)
DOUBLE PRECISION ::X
QASIN(X)
REAL(16) :: X
end
ASIND
逆正弦関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic ASIND(X)
REAL function ASIND(X)
REAL ::X
DOUBLE PRECISION function
DASIND(X)
DOUBLE PRECISION ::X
QASIND(X)
REAL(16) :: X
end
次ページにつづく
1-26
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ASINH
逆双曲線正弦関数(ラジアン単位)
分類
非標準の総称要素別処理関数
要約
generic ASINH(X)
REAL function ASINH(X)
REAL ::X
DOUBLE PRECISION function
DASINH(X)
DOUBLE PRECISION ::X
REAL(16) function QASINH(X)
REAL(16) :: X
end
ASSOCIATED
ポインタの結合状態を返します。すなわち、ポインタが指示先と
結合しているかどうかを示します。
分類
総称問い合わせ関数
要約
generic ASSOCIATED(POINTER,TARGET)
! POINTER must be a pointer.
! TARGET is optional.
! TARGET must be a pointer or
target.
! TARGET may be of any type,
including derived type.
LOGICAL function
ASSOCIATED(POINTER,TARGET)
end
次ページにつづく
1-27
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ATAN
逆正接関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic ATAN(X)
REAL function ATAN(X)
REAL ::X
DOUBLE PRECISION function
DATAN(X)
DOUBLE PRECISION ::X
REAL(16) function QATAN(X)
REAL(16) :: X
end
ATAN2
逆正接関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic ATAN2(Y,X)
REAL function ATAN2(Y,X)
REAL ::Y,X
DOUBLE PRECISION function
DATAN2(Y,X)
DOUBLE PRECISION ::Y,X
REAL(16) function QATAN2(Y,X)
REAL(16) :: Y,X
end
次ページにつづく
1-28
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ATAND
逆正接関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic ATAN2D(X)
REAL function ATAND(X)
REAL ::X
DOUBLE PRECISION function
DATAND(X)
DOUBLE PRECISION ::X
REAL(16) function QATAN2D(X)
REAL(16) :: X
end
ATAN2D
逆正接関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic ATAN2D(Y,X)
REAL function ATAN2D(Y,X)
REAL ::Y,X
DOUBLE PRECISION function
DATAN2D(Y,X)
DOUBLE PRECISION ::Y,X
REAL(16) function QATAN2D(Y,X)
REAL(16) :: Y,X
end
次ページにつづく
1-29
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ATANH
逆双曲線正接関数
分類
非標準の総称要素別処理関数
要約
generic ATANH(X)
REAL function ATANH(X)
REAL ::X
DOUBLE PRECISION function
DATANH(X)
DOUBLE PRECISION ::X
REAL(16) function QATANH(X)
REAL(16) :: X
end
BABS
ABS を参照。
BADDRESS
引数のアドレスを返します。
分類
非標準の総称問い合わせ関数
要約
INTEGER function BADDRESS(X)
! X は、構造型を含むどの型でもかまいません。
BBCLR
IBCLR を参照。
BBITS
IBITS を参照。
BBSET
IBSET を参照。
BBTEST
BTEST を参照。
BDIM
DIM を参照。
BIAND
IAND を参照。
BIEOR
IEOR を参照。
BIOR
IOR を参照。
BITEST
BTEST を参照。
次ページにつづく
1-30
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
BIT_SIZE
整数型のビットの数を返します。
分類
総称問い合わせ関数
要約
generic BIT_SIZE(I)
INTEGER(1) function
BIT_SIZE(I)
INTEGER(1) ::I
INTEGER(2) function
BIT_SIZE(I)
INTEGER(2) ::I
INTEGER(4) function
BIT_SIZE(I)
INTEGER(4) ::I
INTEGER(8) function
BIT_SIZE(I)
INTEGER(8) ::I
end
BIXOR
IXOR を参照。
BJTEST
BTEST を参照。
BKTEST
BTEST を参照。
BMOD
「MOD(A, P)」を参照。
BMVBITS
MVBITS を参照。
BNOT
NOT を参照。
BSHFT
ISHFT を参照。
BSHFTC
BSHFTC を参照。
BSIGN
SIGN を参照。
次ページにつづく
1-31
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
BTEST
整数値のビットを調べます。
分類
総称要素別処理関数
要約
generic BTEST(I,POS)
LOGICAL(1) function
BBTEST(I,POS)
INTEGER(1) :: I,POS
LOGICAL(2) function
BITEST(I,POS)
INTEGER(2) :: I,POS
LOGICAL(2) function
HTEST(I,POS)
INTEGER(2) :: I,POS
LOGICAL(4) function
BJTEST(I,POS)
INTEGER(4) :: I,POS
LOGICAL(8) function
BKTEST(I,POS)
INTEGER(8) :: I,POS
end
CABS
ABS を参照。
CCOS
COS を参照。
CDABS
ABS を参照。
CDCOS
COS を参照。
CDEXP
CDLOG
EXP を参照。
「LOG(X)」を参照。
CDSIN
SIN を参照。
CDSQRT
SQRT を参照。
次ページにつづく
1-32
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
CEILING
次の大きい整数を返します。
分類
総称要素別処理関数
要約
generic CEILING(A)
REAL(4) function CEILING(A)
REAL(4) ::A
REAL(8) function CEILING(A)
REAL(8) ::A
REAL(16) function CEILING(A)
REAL(16) ::A
end
CEXP
EXP を参照。
CHAR
文字値に対応する整数を返します。
分類
総称要素別処理関数
要約
generic CHAR(I,KIND)
INTEGER(1) function
CHAR(I,KIND)
INTEGER(1) ::I;
INTEGER,OPTIONAL ::KIND
INTEGER(2) function
CHAR(I,KIND)
INTEGER(2) ::I;
INTEGER,OPTIONAL ::KIND
INTEGER(4) function
CHAR(I,KIND)
INTEGER(4) ::I;
INTEGER,OPTIONAL ::KIND
INTEGER(8) function
CHAR(I,KIND)
INTEGER(8) ::I;
INTEGER,OPTIONAL ::KIND
end
次ページにつづく
1-33
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
CLOG
CMPLX
説明
「LOG(X)」を参照。
複素型に変換します。
分類
総称要素別処理関数
要約
generic CMPLX(X,Y,KIND)
COMPLEX function
CMPLX(X,Y,KIND)
INTEGER(1) ::X;
INTEGER(1),OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function
CMPLX(X,Y,KIND)
INTEGER(2) ::X;
INTEGER(2),OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function
CMPLX(X,Y,KIND)
INTEGER(4) ::X;
INTEGER(4),OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function
CMPLX(X,Y,KIND)
INTEGER(8) ::X;
INTEGER(8),OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function
次ページにつづく
1-34
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
CMPLX(X,Y,KIND)
REAL
::X;
REAL,OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function
CMPLX(X,Y,KIND)
DOUBLE PRECISION ::X;
DOUBLE PRECISION,OPTIONAL ::Y
INTEGER,OPTIONAL ::KIND
COMPLEX function CMPLX(X,KIND)
COMPLEX ::X;
INTEGER,OPTIONAL ::KIND
COMPLEX function CMPLX(X,KIND)
DOUBLE COMPLEX ::X;
INTEGER,OPTIONAL ::KIND
end
CMPLX(つづき)
CONJG
1
共役複素数
分類
総称要素別処理関数
要約
generic CONJG(Z)
COMPLEX function CONJG(Z)
COMPLEX ::Z
DOUBLE COMPLEX function
DCONJG(Z)
DOUBLE COMPLEX ::Z
COMPLEX(16) function QCONJG(Z)
COMPLEX(16) :: Z
end
次ページにつづく
1-35
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
COS
余弦関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic COS(X)
REAL function COS(X)
REAL ::X
REAL(8) function DCOS(X)
DOUBLE PRECISION ::X
COMPLEX function CCOS(X)
COMPLEX ::X
DOUBLE COMPLEX function CDCOS(X)
DOUBLE COMPLEX ::X
DOUBLE COMPLEX function ZCOS(X)
DOUBLE COMPLEX ::X
REAL(16) function QCOS(X)
REAL(16) :: X
COMPLEX(16) functon CQCOS(X)
COMPLEX(16) :: X
end
COSD
余弦関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic COSD(X)
REAL function COSD(X)
REAL ::X
DOUBLE PRECISION function DCOSD(X)
DOUBLE PRECISION ::X
end
次ページにつづく
1-36
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
COSH
双曲線余弦関数
分類
総称要素別処理関数
要約
generic COSH(X)
REAL function COSH(X)
REAL ::X
DOUBLE PRECISION function
DCOSH(X)
DOUBLE PRECISION ::X
REAL(16) function QCOSH(X)
REAL(16) :: X
end
次ページにつづく
1-37
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
COUNT
MASK の DIM 番目の次元中の .TRUE. である要素の個数を数えま
す。
分類
総称変形関数
要約
generic COUNT(MASK,DIM)
!MASK must be array-valued, DIM
must be scalar
INTEGER function
COUNT(MASK,DIM)
LOGICAL(1) :: MASK
INTEGER,OPTIONAL::DIM
INTEGER function
COUNT(MASK,DIM)
LOGICAL(2) :: MASK
INTEGER,OPTIONAL::DIM
INTEGER function
COUNT(MASK,DIM)
LOGICAL(4) :: MASK
INTEGER,OPTIONAL::DIM
INTEGER function
COUNT(MASK,DIM)
LOGICAL(8) :: MASK
INTEGER,OPTIONAL::DIM
end
CPU_TIME
現在の処理系時刻を返します。経過した CPU_TIME を取得する
には、組み込み手続きを 2 回呼び出します。1 回目で開始時刻を
取得し、2 回目で終了時刻を取得し、終了時刻から開始時刻を減
算します。
分類
総称サブルーチン
要約
SUBROUTINE CPU_TIME(TIME)
!TIME は REAL scalar の変数です。
Intel Fortranでの型宣言は REAL(4),
REAL(8), REAL(16) または
DOUBLE-PRECISION を使用します。
1-38
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
次ページにつづく
CSHIFT
配列式上で要素の循環シフトを行います。
分類
総称変形関数
要約
generic CSHIFT(ARRAY,SHIFT,DIM)
! ARRAY must be array-valued,
! DIM must be scalar
INTEGER(1) function
CSHIFT(ARRAY,SHIFT,DIM)
INTEGER(1) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
INTEGER(2) function
CSHIFT(ARRAY,SHIFT,DIM)
INTEGER(2) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
INTEGER(4) function
CSHIFT(ARRAY,SHIFT,DIM)
INTEGER(4) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
INTEGER(8) function
CSHIFT(ARRAY,SHIFT,DIM)
INTEGER(8) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
REAL(4) function
CSHIFT(ARRAY,SHIFT,DIM)
REAL(4) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
次ページにつづく
1-39
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
CSHIFT(つづき)
説明
DOUBLE PRECISION function
CSHIFT(ARRAY,SHIFT,DIM)
DOUBLE PRECISION ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
LOGICAL(1) function
CSHIFT(ARRAY,SHIFT,DIM)
REAL(16) ::ARRAY; INTEGER ::
SHIFT; INTEGER,OPTIONAL ::DIM
LOGICAL(1) ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
LOGICAL(2) function
CSHIFT(ARRAY,SHIFT,DIM)
LOGICAL(2) ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
LOGICAL(4) function
CSHIFT(ARRAY,SHIFT,DIM)
LOGICAL(4) ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
LOGICAL(8) function
CSHIFT(ARRAY,SHIFT,DIM)
LOGICAL(8) ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
COMPLEX function
CSHIFT(ARRAY,SHIFT,DIM)
COMPLEX ::ARRAY;
INTEGER :: SHIFT;
INTEGER,OPTIONAL ::DIM
次ページにつづく
1-40
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
CSHIFT(つづき)
説明
DOUBLE COMPLEX function
CSHIFT(ARRAY,SHIFT,DIM)
DOUBLE COMPLEX ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
COMPLEX(16) function
CSHIFT(ARRAY,SHIFT,DIM)
COMPLEX(16) ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
CHARACTER function
CSHIFT(ARRAY,SHIFT,DIM)
CHARACTER ::ARRAY; INTEGER ::
SHIFT; INTEGER,OPTIONAL ::DIM
DERIVED_TYPE function
CSHIFT(ARRAY,SHIFT,DIM)
DERIVED_TYPE ::ARRAY; INTEGER
:: SHIFT; INTEGER,OPTIONAL ::DIM
end
CSIN
SIN を参照。
CSQRT
SQRT を参照。
CTAN
TAN を参照。
DABS
ABS を参照。
DACOS
ACOS を参照。
DACOSD
ACOSD を参照。
DACOSH
ACOSH を参照。
DASIN
ASIN を参照。
DASIND
ASIND を参照。
DASINH
ASINH を参照。
DATAN
ATAN を参照。
次ページにつづく
1-41
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DATAN2
ATAN2 を参照。
DATAN2D
ATAN2D を参照。
DATAND
ATAND を参照。
DATANH
ATANH を参照。
DATE_AND_TIME
システムの現在の日付と時刻を返します。
分類
総称サブルーチン
要約
subroutine
DATE_AND_TIME(DATE,TIME,ZONE,VALUES)
CHARACTER,OPTIONAL ::DATE
CHARACTER,OPTIONAL ::TIME
CHARACTER,OPTIONAL ::ZONE
CHARACTER,OPTIONAL ::VALUES
次ページにつづく
1-42
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DBLE
倍精度型に変換します。
分類
総称要素別処理関数
要約
generic DBLE(A)
DOUBLE PRECISION function
DBLE(A)
INTEGER(1) ::A
DOUBLE PRECISION function
DBLE(A)
INTEGER(2) ::A
DOUBLE PRECISION function
DBLE(A)
INTEGER(4) ::A
DOUBLE PRECISION function
DBLE(A)
INTEGER(8) ::A
DOUBLE PRECISION function
DBLE(A)
REAL(4) ::A
DOUBLE PRECISION function
DBLE(A)
REAL(8) ::A
DOUBLE PRECISION function
DBLE(A)
REAL(16) ::A
DOUBLE PRECISION function
DBLE(A)
COMPLEX(4) ::A
DOUBLE PRECISION function
DBLE(A)
COMPLEX(8) ::A
次ページにつづく
1-43
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DOUBLE PRECISION function
DBLE(A)
COMPLEX(16) ::A
end
DBLE(つづき)
DBLEQ
DBLE を参照。
次ページにつづく
1-44
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DCMPLX
倍精度複素数型に変換します。
分類
非標準の総称要素別処理関数
要約
generic DCMPLX(X,Y)
COMPLEX(8) function
DCMPLX(X,Y)
INTEGER(1) ::X;
INTEGER(1),OPTIONAL ::Y
COMPLEX(8) function
DCMPLX(X,Y)
INTEGER(2) ::X;
INTEGER(2),OPTIONAL ::Y
COMPLEX(8) function
DCMPLX(X,Y)
INTEGER(4) ::X;
INTEGER(4),OPTIONAL ::Y
COMPLEX(8) function
DCMPLX(X,Y)
INTEGER(8) ::X;
INTEGER(8),OPTIONAL ::Y
COMPLEX(8) function DCMPLX(X,Y)
REAL(4) ::X;
REAL(4),OPTIONAL ::Y
COMPLEX(8) function
DCMPLX(X,Y)
DOUBLE PRECISION ::X;
DOUBLE PRECISION,OPTIONAL ::Y
DOUBLE COMPLEX function
DCMPLX(X,Y)
REAL(16) ::X;
REAL(16),OPTIONAL ::Y
次ページにつづく
1-45
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
COMPLEX(8) function DCMPLX(X)
COMPLEX(4) ::X
COMPLEX(8) function DCMPLX(X)
COMPLEX(8) ::X
end
DCMPLX(つづき)
DCONJG
CONJG を参照。
DCOS
COS を参照。
DCOSD
COSD を参照。
DCOSH
COSH を参照。
DDIM
DIM を参照。
DDINT
AINT を参照。
DEXP
EXP を参照。
DFLOAT
倍精度型に変換します。
分類
非標準の総称要素別処理関数
要約
generic DFLOAT(A)
DOUBLE PRECISION function
DFLOAT(A)
INTEGER(1) ::A
DOUBLE PRECISION function
DFLOTI(A)
INTEGER(2) ::A
DOUBLE PRECISION function
DFLOTJ(A)
INTEGER(4) ::A
DOUBLE PRECISION function
DFLOTK(A)
INTEGER(8) ::A
end
DFLOTI
DFLOAT を参照。
次ページにつづく
1-46
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DFLOTJ
DFLOAT を参照。
DFLOTK
DFLOAT を参照。
DIGITS
モデルでの有効桁数を返します。
分類
総称問い合わせ関数
要約
generic DIGITS(X)
INTEGER function DIGITS(X)
INTEGER(1) ::X
INTEGER function DIGITS(X)
INTEGER(2) ::X
INTEGER function DIGITS(X)
INTEGER(4) ::X
INTEGER function DIGITS(X)
INTEGER(8) ::X
INTEGER function DIGITS(X)
REAL ::X
INTEGER function DIGITS(X)
DOUBLE PRECISION ::X
end
次ページにつづく
1-47
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DIM
正の差分
分類
総称要素別処理関数
要約
generic DIM(X,Y)
INTEGER(1) function BDIM(X,Y)
INTEGER(1) ::X,Y
INTEGER(2) function HDIM(X,Y)
INTEGER(2) ::X,Y
INTEGER(4) function IDIM(X,Y)
INTEGER(4) ::X,Y
INTEGER(8) function KDIM(X,Y)
INTEGER(8) ::X,Y
REAL function DIM(X,Y)
REAL ::X,Y
DOUBLE PRECISION function
DIM(X,Y)
DOUBLE PRECISION ::X,Y
end
DIMAG
IMAG を参照。
DINT
AINT を参照。
DLOG
「LOG(X)」を参照。
DLOG10
「LOG10(X)」を参照。
DMAX1
「MAX(A1, A2, A3, ...)」を参照。
DMIN1
「MIN(A1, A2, A3, ...)」を参照。
DMOD
「MOD(A, P)」を参照。
DNINT
ANINT を参照。
次ページにつづく
1-48
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DNUM
倍精度型に変換します。
分類
非標準の個別要素別処理関数
要約
DOUBLE PRECISION function DNUM(I)
CHARACTER ::I
DOT_PRODUCT
数値型または論理型のベクトルの内積
分類
総称変形関数
要約
generic DOT_PRODUCT(VECTOR_A,VECTOR_B)
注
VECTOR_A は、数値型(整数型、実数型、または複素数型)また
は論理型でなければなりません。値は、1 次元配列でなければな
りません。
VECTOR_B は、VECTOR_A が数値型のときは数値型でなければな
らず、VECTOR_A が論理型のときは論理型でなければなりませ
ん。VECTOR_A と同じ形状でなければなりません。
引数が数値型の場合:
VECTOR_A が整数型または実数型の場合、結果の値は
SUM(VECTOR_A* VECTOR_B) とします。
VECTOR_A が複素数型の場合、結果の値は
CONJG(VECTOR_A) * VECTOR_B とします。
VECTOR_A が論理型の場合、結果の値は
ANY(VECTOR_A .AND. VECTOR_B) とします。
DPROD
倍精度実数型の積
分類
総称要素別処理関数
要約
generic DPROD(X,Y)
DOUBLE PRECISION function
DPROD(X,Y)
REAL ::X,Y
end
次ページにつづく
1-49
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DREAL
倍精度型に変換します。
分類
非標準の総称要素別処理関数
要約
generic DREAL(A)
DOUBLE PRECISION function
DREAL(A)
INTEGER(1) ::A
DOUBLE PRECISION function
DREAL(A)
INTEGER(2) ::A
DOUBLE PRECISION function
DREAL(A)
INTEGER(4) ::A
DOUBLE PRECISION function
DREAL(A)
INTEGER(8) ::A
DOUBLE PRECISION function
DREAL(A)
REAL(4) ::A
DOUBLE PRECISION function
DREAL(A)
REAL(8) ::A
DOUBLE PRECISION function
DREAL(A)
REAL(16):: A
DOUBLE PRECISION function
DREAL(A)
COMPLEX(4) ::A
DOUBLE PRECISION function
DREAL(A)
COMPLEX(8) ::A
DOUBLE PRECISION function
DREAL(A)
COMPLEX(16) :: A
end
次ページにつづく
1-50
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
DSIGN
SIGN を参照。
DSIN
SIN を参照。
DSIND
SIND を参照。
DSINH
SINH を参照。
DSQRT
SQRT を参照。
DTAN
TAN を参照。
DTAND
TAND を参照。
DTANH
TANH を参照。
EOSHIFT
配列式でのエンド・オフ・シフトを行います。
分類
総称変形関数
要約
generic CSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
! ARRAY must be array-valued
! SHIFT must be of type
integer--see Notes below
! DIM must be a scalar integer
! BOUNDARY and DIM are optional
INTEGER(1) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
INTEGER(1) ::ARRAY,
BOUNDARY
INTEGER(2) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
INTEGER(2) ::ARRAY,
BOUNDARY
INTEGER(4) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
INTEGER(4) ::ARRAY,
BOUNDARY
INTEGER(8) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
INTEGER(8) ::ARRAY,
BOUNDARY
次ページにつづく
1-51
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
EOSHIFT(つづき)
説明
REAL function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
REAL ::ARRAY, BOUNDARY
DOUBLE PRECISION function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
DOUBLE PRECISION ::ARRAY,
BOUNDARY
LOGICAL(1) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
LOGICAL(1) ::ARRAY,
BOUNDARY
LOGICAL(2) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
LOGICAL(2) ::ARRAY,
BOUNDARY
LOGICAL(4) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
LOGICAL(4) ::ARRAY,
BOUNDARY
LOGICAL(8) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
次ページにつづく
1-52
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LOGICAL(8) ::ARRAY,
BOUNDARY
COMPLEX(4) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
COMPLEX(4) ::ARRAY,
BOUNDARY
COMPLEX(8) function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
COMPLEX(8) ::ARRAY,
BOUNDARY
CHARACTER function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
CHARACTER ::ARRAY,
BOUNDARY
DERIVED TYPE function
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM)
DERIVED_TYPE ::ARRAY,
BOUNDARY
end
EOSHIFT(つづき)
注
SHIFT は整数型でなければなりません。ARRAY が 1 次元配列であ
る場合、SHIFT はスカラでなければなりません。ARRAY が 2 次
元以上の配列である場合は、192 ページの「EOSHIFT(ARRAY,
SHIFT, BOUNDARY, DIM)」の項を参照してください。
EPSILON
実数モデルにおいて、1 と比較してほとんど無視できる正の数を
返します。
分類
総称問い合わせ関数
要約
generic EPSILON(X)
REAL function EPSILON(X)
REAL ::X
DOUBLE PRECISION function
EPSILON(X)
DOUBLE PRECISION ::X
end
次ページにつづく
1-53
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
次ページにつづく
EXP
指数関数
分類
総称要素別処理関数
要約
generic EXP(X)
REAL function EXP(X)
REAL ::X
DOUBLE PRECISION function
DEXP(X)
DOUBLE PRECISION ::X
COMPLEX function CEXP(X)
COMPLEX ::X
DOUBLE COMPLEX function
CDEXP(X)
DOUBLE COMPLEX ::X
DOUBLE COMPLEX function
ZEXP(X)
DOUBLE COMPLEX ::X
end
EXPONENT
引数の値がモデルの数として表現されているとき、指数部を返し
ます。
分類
総称要素別処理関数
要約
generic EXPONENT(X)
INTEGER function EXPONENT(X)
REAL(4) ::X
INTEGER function EXPONENT(X)
REAL(8) ::X
end
FLOAT
REAL を参照。
FLOATI
REAL を参照。
FLOATJ
REAL を参照。
次ページにつづく
1-54
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
FLOATK
REAL を参照。
FLOOR
引数の値以下で最大の整数を返します。
分類
総称要素別処理関数
要約
generic FLOOR(A)
REAL function FLOOR(A)
REAL ::A
DOUBLE PRECISION function
FLOOR(A)
DOUBLE PRECISION ::A
REAL(16) function FLOOR(A)
REAL(16)::A
end
FRACTION
引数の値をモデルの数として表現したときの小数部を返します。
分類
総称要素別処理関数
要約
generic FRACTION(X)
REAL function FRACTION(X)
REAL ::X
DOUBLE PRECISION function
FRACTION(X)
DOUBLE PRECISION ::X
REAL(16) function FRACTION(X)
REAL(16) X
end
FREE(A)
現在割り当てられているメモリを解放します。
分類 非標準の要素別サブルーチン
HABS
ABS を参照。
HBCLR
IBCLR を参照。
HBITS
IBITS を参照。
次ページにつづく
1-55
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
HBSET
IBSET を参照。
HDIM
DIM を参照。
HFIX
INTEGER(2) 型に変換します。
分類
非標準の総称要素別処理関数
要約
generic HFIX(A)
INTEGER(2) function HFIX(A)
INTEGER(1) ::A
INTEGER(2) function HFIX(A)
INTEGER(2) ::A
INTEGER(2) function HFIX(A)
INTEGER(4) ::A
INTEGER(2) function HFIX(A)
INTEGER(8) ::A
INTEGER(2) function IIDINT(A)
DOUBLE PRECISION ::A
INTEGER(2) function HFIX(A)
COMPLEX(4) ::A
INTEGER(2) function HFIX(A)
COMPLEX(8) ::A
end
HIAND
IAND を参照。
HIEOR
IEOR を参照。
HIOR
IOR を参照。
HIXOR
IXOR を参照。
HMOD
「MOD(A, P)」を参照。
HMVBITS
MVBITS を参照。
HNOT
NOT を参照。
HSHFT
ISHFT を参照。
HSHFTC
ISHFTC を参照。
次ページにつづく
1-56
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
HSIGN
SIGN を参照。
HTEST
BTEST を参照。
HUGE
モデル表現値の中で最大の数を返します。
分類
総称問い合わせ関数
要約
generic HUGE(X)
INTEGER(1) function HUGE(X)
INTEGER(1) ::X
INTEGER(2) function HUGE(X)
INTEGER(2) ::X
INTEGER(4) function HUGE(X)
INTEGER(4) ::X
INTEGER(8) function HUGE(X)
INTEGER(8) ::X
REAL function HUGE(X)
REAL ::X
DOUBLE PRECISION function
HUGE(X)
DOUBLE PRECISION ::X
REAL(16) function HUGE(X)
REAL(16) HUGE
end
次ページにつづく
1-57
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IABS
整数の絶対値
分類
総称要素別処理関数
要約
generic IABS(A)
INTEGER(1) function
INTEGER(1) ::A
INTEGER(2) function
INTEGER(2) ::A
INTEGER(4) function
INTEGER(4) ::A
INTEGER(8) function
INTEGER(8) ::A
end
IACHAR
IABS(A)
IIABS(A)
JIABS(A)
KIABS(A)
ASCII 順序における文字の位置を返します。
分類
総称要素別処理関数
要約
generic IACHAR(C)
INTEGER function IACHAR(C)
CHARACTER ::C
end
次ページにつづく
1-58
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IADDR
引数のアドレスを返します。
分類
非標準の個別問い合わせ関数
要約
INTEGER function IADDR(X)
! X may be any one of the
following:
INTEGER(1) ::X
INTEGER(2) ::X
INTEGER(4) ::X
INTEGER(8) ::X
REAL ::X
DOUBLE PRECISION ::X
COMPLEX ::X
DOUBLE COMPLEX ::X
LOGICAL(1) ::X
LOGICAL(2) ::X
LOGICAL(4) ::X
LOGICAL(8) ::X
CHARACTER ::X
DERIVED_TYPE :: X
次ページにつづく
1-59
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IAND
ビットごとの論理積
分類
総称要素別処理関数
要約
generic IAND(I,J)
INTEGER(1) function BIAND(I,J)
INTEGER(1) ::I,J
INTEGER(2) function HIAND(I,J)
INTEGER(2) ::I,J
INTEGER(2) function IIAND(I,J)
INTEGER(2) ::I,J
INTEGER(4) function JIAND(I,J)
INTEGER(4) ::I,J
INTEGER(8) function KIAND(I,J)
INTEGER(8) ::I,J
end
次ページにつづく
1-60
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IBCLR
1 つのビットを 0 にクリアします。
分類
総称要素別処理関数
要約
generic IBCLR(I,POS)
INTEGER(1) function
BBCLR(I,POS)
INTEGER(1) :: I,POS
INTEGER(2) function
HBCLR(I,POS)
INTEGER(2) :: I,POS
INTEGER(2) function
IIBCLR(I,POS)
INTEGER(2) :: I,POS
INTEGER(4) function
JIBCLR(I,POS)
INTEGER(4) :: I,POS
INTEGER(8) function
KIBCLR(I,POS)
INTEGER(8) :: I,POS
end
次ページにつづく
1-61
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IBITS
ビットの並びを取り出します。
分類
総称要素別処理関数
要約
generic IBITS(I,POS,LEN)
INTEGER(1) function
BBITS(I,POS,LEN)
INTEGER(1) :: I,POS,LEN
INTEGER(2) function
HBITS(I,POS,LEN)
INTEGER(2) :: I,POS,LEN
INTEGER(2) function
IIBITS(I,POS,LEN)
INTEGER(2) :: I,POS,LEN
INTEGER(4) function
JIBITS(I,POS,LEN)
INTEGER(4) :: I,POS,LEN
INTEGER(8) function
KIBITS(I,POS,LEN)
INTEGER(8) :: I,POS,LEN
end
次ページにつづく
1-62
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IBSET
1 つのビットを 1 にセットします。
分類
総称要素別処理関数
要約
generic IBSET(I,POS)
INTEGER(1) function
BBSET(I,POS)
INTEGER(1) :: I,POS
INTEGER(2) function
HBSET(I,POS)
INTEGER(2) :: I,POS
INTEGER(2) function
IIBSET(I,POS)
INTEGER(2) :: I,POS
INTEGER(4) function
JIBSET(I,POS)
INTEGER(4) :: I,POS
INTEGER(8) function
KIBSET(I,POS)
INTEGER(8) :: I,POS
end
ICHAR
文字に対応する ASCII 値を返します。
分類
総称要素別処理関数
要約
generic ICHAR(C)
INTEGER function ICHAR(C)
CHARACTER ::C
end
次ページにつづく
1-63
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IDIM
整数型の正の差分
分類
非標準の個別要素別処理関数
要約
generic function DIM(X,Y)
INTEGER(1) function BDIM(X,Y)
INTEGER(1) ::X,Y
INTEGER(2) function IIDIM(X,Y)
INTEGER(2) ::X,Y
INTEGER(4) function JIDIM(X,Y)
INTEGER(4) ::X,Y
INTEGER(8) function KIDIM(X,Y)
INTEGER(8) ::X,Y
end
IDINT
INT8 を参照。
IDNINT
NINT を参照。
IEOR
ビットごとの排他的論理和
分類
総称要素別処理関数
要約
generic IEOR(I,J)
INTEGER(1) function BIEOR(I,J)
INTEGER(1) ::I,J
INTEGER(2) function HIEOR(I,J)
INTEGER(2) ::I,J
INTEGER(2) function IIEOR(I,J)
INTEGER(2) ::I,J
INTEGER(4) function JIEOR(I,J)
INTEGER(4) ::I,J
INTEGER(8) function KIEOR(I,J)
INTEGER(8) ::I,J
end
次ページにつづく
1-64
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IFIX
INT を参照。
IIABS
IABS を参照。
IIAND
IAND を参照。
IIBCLR
IBCLR を参照。
IIBITS
IBITS を参照。
IIBSET
IBSET を参照。
IIDIM
IDIM を参照。
IIDINT
IDINT を参照。
IIDNNT
NINT を参照。
IIEOR
IEOR を参照。
IIFIX
INT を参照。
IINT
INT を参照。
IIOR
IOR を参照。
IIQINT
IQINT を参照。
IIQNNT
NINT を参照。
IISHFT
ISHFT を参照。
IISHFTC
ISHFTC を参照。
IISIGN
SIGN を参照。
IIXOR
IXOR を参照。
IJINT
INTEGER(2) 型に変換します。
分類
非標準の個別要素別処理関数
要約
INTEGER(2) function IJINT(A)
INTEGER(4) ::A
次ページにつづく
1-65
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IMAG
複素数の虚部
分類
非標準の総称要素別処理関数
要約
generic IMAG(Z)
REAL function IMAG(Z)
COMPLEX ::Z
DOUBLE PRECISION function
DIMAG(Z)
DOUBLE COMPLEX ::Z
end
IMAX0
「MAX(A1, A2, A3, ...)」を参照。
IMAX1
「MAX(A1, A2, A3, ...)」を参照。
IMIN0
「MIN(A1, A2, A3, ...)」を参照。
IMIN1
「MIN(A1, A2, A3, ...)」を参照。
IMOD
「MOD(A, P)」を参照。
INDEX
文字列内の部分列の開始位置を返します。
分類
総称要素別処理関数
要約
generic INDEX(STRING,SUBSTRING,BACK)
INTEGER function
INDEX(STRING,SUBSTRING,BACK)
CHARACTER::STRING
CHARACTER::SUBSTRING
LOGICAL,OPTIONAL::BACK
end
ININT
NINT を参照。
INOT
NOT を参照。
次ページにつづく
1-66
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INT
整数型に変換します。
分類
総称要素別処理関数
要約
generic INT(A,KIND)
INTEGER(2) function IINT(A)
REAL ::A
INTEGER function INT(A, KIND)
INTEGER(1) ::A;
INTEGER,OPTIONAL ::KIND
INTEGER function INT(A, KIND)
INTEGER(2) ::A
INTEGER,OPTIONAL ::KIND
INTEGER(4) function IFIX(A)
REAL ::A
INTEGER(8) function KIFIX(A)
REAL ::A
INTEGER(8) function KINT(A
REAL ::A
INTEGER(4) function JIFIX(A)
REAL ::A
INTEGER(4) function JINT(A)
REAL ::A
INTEGER(4) function IDINT(A)
DOUBLE PRECISION ::A
INTEGER(4) function JIDINT(A)
DOUBLE PRECISION ::A
INTEGER(2) function IIQINT(A)
REAL(16) :: A
INTEGER function INT(A, KIND)
COMPLEX ::A
次ページにつづく
1-67
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
INT(つづき)
説明
INTEGER,OPTIONAL ::KIND
INTEGER function INT(A, KIND)
COMPLEX(8) ::A
INTEGER,OPTIONAL ::KIND
INTEGER function INT(A,KIND)
COMPLEX(16) :: A
INTEGER,OPTIONAL ::KIND
end
次ページにつづく
1-68
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INT1
INTEGER(1) 型に変換します。
分類
非標準の総称要素別処理関数
要約
generic INT1(A)
INTEGER(1) function INT1(A)
INTEGER(1) ::A
INTEGER(1) function INT1(A)
INTEGER(2) ::A
INTEGER(1) function INT1(A)
INTEGER(4) ::A
INTEGER(1) function INT1(A)
INTEGER(8) ::A
INTEGER(1) function INT1(A)
REAL ::A
INTEGER(1) function INT1(A)
DOUBLE PRECISION ::A
INTEGER(1) function INT1(A)
REAL(16) :: A
INTEGER(1) function INT1(A)
COMPLEX ::A
INTEGER(1) function INT1(A)
DOUBLE COMPLEX ::A
INTEGER(1) function INT1(A)
COMPLEX(16) :: A
INTEGER(1) function INT1(A)
LOGICAL(1) ::A
INTEGER(1) function INT1(A)
LOGICAL(2) ::A
INTEGER(1) function INT1(A)
LOGICAL(4) ::A
INTEGER(1) function INT1(A)
LOGICAL(8) ::A
end
次ページにつづく
1-69
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
次ページにつづく
INT2
INTEGER(2) 型に変換します。
分類
非標準の総称要素別処理関数
要約
generic INT2(A)
INTEGER(2) function INT2(A)
INTEGER(1) ::A
INTEGER(2) function INT2(A)
INTEGER(2) ::A
INTEGER(2) function INT2(A)
INTEGER(4) ::A
INTEGER(2) function INT2(A)
INTEGER(8) ::A
INTEGER(2) function INT2(A)
REAL ::A
INTEGER(2) function INT2(A)
DOUBLE PRECISION ::A
INTEGER(2) function INT2(A)
COMPLEX ::A
INTEGER(2) function INT2(A)
DOUBLE COMPLEX ::A
INTEGER(2) function INT2(A)
LOGICAL(1) ::A
INTEGER(2) function INT2(A)
LOGICAL(2) ::A
INTEGER(2) function INT2(A)
LOGICAL(4) ::A
INTEGER(2) function INT2(A)
LOGICAL(8) ::A
end
次ページにつづく
1-70
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INT4
INTEGER(4) 型に変換します。
分類
非標準の総称要素別処理関数
要約
generic INT4(A)
INTEGER(4) function INT4(A)
INTEGER(1) ::A
INTEGER(4) function INT4(A)
INTEGER(2) ::A
INTEGER(4) function INT4(A)
INTEGER(4) ::A
INTEGER(4) function INT4(A)
INTEGER(8) ::A
INTEGER(4) function INT4(A)
REAL ::A
INTEGER(4) function INT4(A)
DOUBLE PRECISION ::A
INTEGER(4) function INT4(A)
REAL(16) :: A
INTEGER(4) function INT4(A)
COMPLEX ::A
INTEGER(4) function INT4(A)
DOUBLE COMPLEX ::A
INTEGER(4) function INT4(A)
COMPLEX(16) :: A
end
次ページにつづく
1-71
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INT8
INTEGER(8) 型に変換します。
分類
非標準の総称要素別処理関数
要約
generic INT8(A)
INTEGER(8) function INT8(A)
INTEGER(1) ::A
INTEGER(8) function INT8(A)
INTEGER(2) ::A
INTEGER(8) function INT8(A)
INTEGER(4) ::A
INTEGER(8) function INT8(A)
INTEGER(8) ::A
INTEGER(8) function INT8(A)
REAL ::A
INTEGER(8) function INT8(A)
DOUBLE PRECISION ::A
INTEGER(8) function INT8(A)
REAL(16) ::A
INTEGER(8) function INT8(A)
COMPLEX ::A
INTEGER(8) function INT8(A)
DOUBLE COMPLEX ::A
INTEGER(8) function KIDINT(A)
DOUBLE PRECISION ::A
INTEGER(8) function INT8(A)
COMPLEX(16) :: A
INTEGER(8) function KIDINT(A)
DOUBLE PRECISION ::A
end
次ページにつづく
1-72
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INUM
文字型を INTEGER(2) 型に変換します。
分類
非標準の個別要素別処理関数
要約
INTEGER(2) function INUM(I)
CHARACTER ::I
注 : ASCII 文字表現の文字は数値でなければな
らず、結果は INTEGER(2) 型の数に適合しなけ
ればなりません。
IOR
論理和
分類
総称要素別処理関数
要約
generic IOR(I,J)
INTEGER(1) function BIOR(I,J)
INTEGER(1) ::I,J
INTEGER(2) function HIOR(I,J)
INTEGER(2) ::I,J
INTEGER(2) function IIOR(I,J)
INTEGER(2) ::I,J
INTEGER(4) function JIOR(I,J)
INTEGER(4) ::I,J
INTEGER(8) function KIOR(I,J)
INTEGER(8) ::I,J
end
IQNINT
NINT を参照。
次ページにつづく
1-73
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ISHFT
論理シフト
分類
総称要素別処理関数
要約
generic ISHFT(I,SHIFT)
INTEGER(1) function
BSHFT(I,SHIFT)
INTEGER(1) ::I,SHIFT
INTEGER(2) function
HSHFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(2) function
IISHFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(4) function
JISHFT(I,SHIFT)
INTEGER(4) ::I,SHIFT
INTEGER(8) function
KISHFT(I,SHIFT)
INTEGER(8) ::I,SHIFT
end
次ページにつづく
1-74
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ISHFTC
右端のビット並びの循環シフト
分類
総称要素別処理関数
要約
generic ISHFTC(I,SHIFT,SIZE)
INTEGER(1) function
BSHFTC(I,SHIFT,SIZE)
INTEGER(1) ::I,SHIFT
INTEGER(1),OPTIONAL ::
SIZE
INTEGER(2) function
HSHFTC(I,SHIFT,SIZE)
INTEGER(2) ::I,SHIFT
INTEGER(2),OPTIONAL ::
SIZE
INTEGER(2) function
IISHFTC(I,SHIFT,SIZE)
INTEGER(2) ::I,SHIFT
INTEGER(2),OPTIONAL ::
SIZE
INTEGER(4) function
JISHFTC(I,SHIFT,SIZE)
INTEGER(4) ::I,SHIFT
INTEGER(4),OPTIONAL ::
SIZE
INTEGER(8) function
KISHFTC(I,SHIFT,SIZE)
INTEGER(8) ::I,SHIFT
INTEGER(8),OPTIONAL ::
SIZE
end
次ページにつづく
1-75
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
ISIGN
A の絶対値と B の符号の積。SIGN も参照。
分類
非標準の総称関数
要約
generic ISIGN(A,B)
INTEGER(1) function BSIGN(A,B)
INTEGER(1) ::A,B
INTEGER(2) function
IISIGN(A,B)
INTEGER(2) ::A,B
INTEGER(4) function
JISIGN(A,B)
INTEGER(4) ::A,B
INTEGER(8) function
KISIGN(A,B)
INTEGER(8) ::A,B
end
ISNAN
値が NaN であるかを判定します。
分類
非標準の総称要素別処理関数
要約
generic ISNAN(X)
LOGICAL function ISNAN(X)
REAL ::X
LOGICAL function ISNAN(X)
DOUBLE PRECISION ::X
LOGICAL function ISNAN(X)
end
次ページにつづく
1-76
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
IXOR
排他的論理和
分類
非標準の総称要素別処理関数
要約
generic IXOR(I,J)
INTEGER(1) function BIXOR(I,J)
INTEGER(1) ::I,J
INTEGER(2) function HIXOR(I,J)
INTEGER(2) ::I,J
INTEGER(2) function IIXOR(I,J)
INTEGER(2) ::I,J
INTEGER(4) function JIXOR(I,J)
INTEGER(4) ::I,J
INTEGER(8) function IXOR(I,J)
INTEGER(8) ::I,J
end
JIABS
IABS を参照。
JIAND
IAND を参照。
JIBCLR
IBCLR を参照。
JIBITS
IBITS を参照。
JIBSET
IBSET を参照。
JIDIM
IDIM を参照。
JIDINT
IDINT を参照。
JIDNNT
NINT を参照。
JIEOR
IEOR を参照。
JIFIX
INT を参照。
JINT
INT を参照。
JIOR
IOR を参照。
JIQINT
IQINT を参照。
JIQNNT
NINT を参照。
次ページにつづく
1-77
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
JISHFT
ISHFT を参照。
JISHFTC
ISHFTC を参照。
JISIGN
SIGN を参照。
JIXOR
IXOR を参照。
JMAX0
「MAX(A1, A2, A3, ...)」を参照。
JMAX1
「MAX(A1, A2, A3, ...)」を参照。
JMIN0
「MIN(A1, A2, A3, ...)」を参照。
JMIN1
「MAX(A1, A2, A3, ...)」を参照。
JMOD
「MOD(A, P)」を参照。
JNINT
NINT を参照。
JNOT
NOT を参照。
JNUM
文字型を整数型に変換します。
分類
非標準の個別要素別処理関数
要約
INTEGER(4) function JNUM(I)
CHARACTER ::I
注 : ASCII 文字表現の文字は数値でなければならず、結果は
INTEGER(4) 型の数に適合しなければなりません。
KIABS
IABS を参照。
KIAND
IAND を参照。
KIBCLR
IBCLR を参照。
KIBITS
IBITS を参照。
KIBSET
IBSET を参照。
KIDIM
IDIM を参照。
KIDINT
IDINT を参照。
KIDNNT
NINT を参照。
KIEOR
IEOR を参照。
KIFIX
INT を参照。
次ページにつづく
1-78
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
KIND
引数の種別型パラメータ値を返します。
分類
総称問い合わせ関数
要約
generic KIND(X)
INTEGER function KIND(X)
INTEGER(1) ::X
INTEGER function KIND(X)
INTEGER(2) ::X
INTEGER function KIND(X)
INTEGER(4) ::X
INTEGER function KIND(X)
INTEGER(8) ::X
INTEGER function KIND(X)
REAL(4) ::X
INTEGER function KIND(X)
REAL(8) ::X
INTEGER function KIND(X)
REAL(16)::X
INTEGER function KIND(X)
COMPLEX(4) ::X
INTEGER function KIND(X)
COMPLEX(8) ::X
INTEGER function KIND(X)
COMPLEX(16)::X
INTEGER function KIND(X)
LOGICAL(1) ::X
INTEGER function KIND(X)
LOGICAL(2) ::X
INTEGER function KIND(X)
LOGICAL(4) ::X
INTEGER function KIND(X)
LOGICAL(8) ::X
end
次ページにつづく
1-79
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
KINT
INT を参照。
KIOR
IOR を参照。
KIQINT
IQINT を参照。
KIQNNT
NINT を参照。
KISHFT
ISHFT を参照。
KISHFTC
ISHFTC を参照。
KISIGN
SIGN を参照。
KMAX0
「MAX(A1, A2, A3, ...)」を参照。
KMAX1
「MAX(A1, A2, A3, ...)」を参照。
KMIN0
「MIN(A1, A2, A3, ...)」を参照。
KMIN1
「MAX(A1, A2, A3, ...)」を参照。
KMOD
「MOD(A, P)」を参照。
KNINT
NINT を参照。
KNOT
NOT を参照。
次ページにつづく
1-80
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LBOUND
配列の次元の下限を返します。
分類
総称問い合わせ関数
要約
generic LBOUND(ARRAY,DIM)
!ARRAY must be array-valued, DIM must be
scalar
INTEGER function
LBOUND(ARRAY,DIM)
LOGICAL(1) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
LOGICAL(2) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
LOGICAL(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
LOGICAL(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
次ページにつづく
1-81
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
LBOUND(つづき)
説明
INTEGER(1) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
INTEGER(2) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
INTEGER(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
INTEGER(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
REAL(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
REAL(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
LBOUND(ARRAY,DIM)
REAL(16) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
COMPLEX(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
次ページにつづく
1-82
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INTEGER function
LBOUND(ARRAY,DIM)
COMPLEX(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
LBOUND(ARRAY,DIM)
COMPLEX(16) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function LBOUND(ARRAY,
DIM)
CHARACTER ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function LBOUND(ARRAY,
DIM)
DERIVED_TYPE ::ARRAY;
INTEGER, OPTIONAL ::DIM
end
LBOUND(つづき)
LEN
1
文字引数の長さを返します。
分類
総称問い合わせ関数
要約
generic LEN(STRING)
INTEGER function LEN(STRING)
CHARACTER::STRING
end
LEN_TRIM
末尾の空白を除いた文字列の長さを返します。
分類
総称問い合わせ関数
要約
generic LEN_TRIM(STRING)
INTEGER function
LEN_TRIM(STRING)
CHARACTER::STRING
end
次ページにつづく
1-83
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LGE
文字列が辞書的にもう 1 つの文字列以上であるかどうかを判定し
ます。
分類
総称要素別処理関数
要約
generic LGE(STRING_A,STRING_B)
LOGICAL function
LGE(STRING_A,STRING_B)
CHARACTER
::STRING_A,STRING_B
end
LGT
文字列が辞書的にもう 1 つの文字列より大きいかどうかを判定し
ます。
分類
総称要素別処理関数
要約
generic LGT(STRING_A,STRING_B)
LOGICAL function
LGT(STRING_A,STRING_B)
CHARACTER
::STRING_A,STRING_B
end
LLE
文字列が辞書的にもう 1 つの文字列以下であるかどうかを判定し
ます。
分類
総称要素別処理関数
要約
generic LLE(STRING_A,STRING_B)
LOGICAL function
LLE(STRING_A,STRING_B)
CHARACTER
::STRING_A,STRING_B
end
次ページにつづく
1-84
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LLT
文字列が辞書的にもう 1 つの文字列より小さいかどうかを判定し
ます。
分類
総称要素別処理関数
要約
generic LLT(STRING_A,STRING_B)
LOGICAL function
LLT(STRING_A,STRING_B)
CHARACTER
::STRING_A,STRING_B
end
LOC
引数のアドレスを返します。
分類
非標準の総称問い合わせ関数
要約
INTEGER function LOC(X)
! X may be any one of the
following:
INTEGER(1) ::X
INTEGER(2) ::X
INTEGER(4) ::X
INTEGER(8) ::X
REAL ::X
DOUBLE PRECISION ::X
REAL(16)::X
COMPLEX ::X
DOUBLE COMPLEX ::X
COMPLEX(16)::X
LOGICAL(1) ::X
LOGICAL(2) ::X
LOGICAL(4) ::X
LOGICAL(8) ::X
次ページにつづく
1-85
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
CHARACTER ::X
DERIVED TYPE ::X
LOC(つづき)
注 : Itanium® ベースのアプリケーションの場合、LOC 関数の戻
り型は INTEGER*8 です。
LOG
自然対数
分類
総称要素別処理関数
要約
generic LOG(X)
REAL function ALOG(X)
REAL ::X
DOUBLE PRECISION function
DLOG(X)
DOUBLE PRECISION ::X
REAL(16) function QLOG(X)
REAL(16) :: X
COMPLEX function CLOG(X)
COMPLEX ::X
DOUBLE COMPLEX function
CDLOG(X)
DOUBLE COMPLEX ::X
DOUBLE COMPLEX function
ZLOG(X)
DOUBLE COMPLEX ::X
COMPLEX(16) CQLOG(X)
COMPLEX(16) :: X
end
次ページにつづく
1-86
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LOG10
常用対数
分類
総称要素別処理関数
要約
generic LOG10(X)
REAL function ALOG10(X)
REAL ::X
DOUBLE PRECISION function
DLOG10(X)
DOUBLE PRECISION ::X
REAL(16) function QLOG10(X)
REAL(16) :: X
end
次ページにつづく
1-87
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LOGICAL
論理型に変換します。
分類
総称要素別処理関数
要約
generic LOGICAL(L,KIND)
LOGICAL(KIND) function
LOGICAL(L,KIND)
LOGICAL(1) ::L
INTEGER,OPTIONAL ::KIND
LOGICAL(KIND) function
LOGICAL(L,KIND)
LOGICAL(2) ::L
INTEGER,OPTIONAL ::KIND
LOGICAL(KIND) function
LOGICAL(L,KIND)
LOGICAL(4) ::L
INTEGER,OPTIONAL ::KIND
LOGICAL(KIND) function
LOGICAL(L,KIND)
LOGICAL(8) ::L
INTEGER,OPTIONAL ::KIND
LOGICAL function LOGICAL(L)
LOGICAL(1) ::L
LOGICAL function LOGICAL(L)
LOGICAL(2) ::L
LOGICAL function LOGICAL(L)
LOGICAL(4) ::L
LOGICAL function LOGICAL(L)
LOGICAL(8) ::L
end
次ページにつづく
1-88
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LSHFT
左方向のシフト
分類
非標準の総称要素別処理関数
要約
generic LSHFT(I,SHIFT)
INTEGER(1) function
LSHFT(I,SHIFT)
INTEGER(1) ::I,SHIFT
INTEGER(2) function
LSHFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(4) function
LSHFT(I,SHIFT)
INTEGER(4) ::I,SHIFT
INTEGER(8) function
LSHFT(I,SHIFT)
INTEGER(8) ::I,SHIFT
end
注 : SHIFT は、I と同じ KIND の正の整数式でなければなりません。
次ページにつづく
1-89
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
LSHIFT
左方向のシフト
分類
非標準の総称要素別処理関数
要約
generic LSHIFT(I,SHIFT)
INTEGER(1) function
LSHIFT(I,SHIFT)
INTEGER(1) ::I,SHIFT
INTEGER(2) function
LSHIFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(4) function
LSHIFT(I,SHIFT)
INTEGER(4) ::I,SHIFT
INTEGER(8) function
LSHIFT(I,SHIFT)
INTEGER(8) ::I,SHIFT
end
注 : SHIFT は、I と同じ KIND の正の整数式でなければなりません。
MALLOC(I)
メモリブロックの開始位置
分類
非標準の要素別処理関数
次ページにつづく
1-90
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MATMUL
行列積
分類
総称変形関数
要約
generic MATMAL(MATRIX_A,MATRIX_B)
注
MATRIX_A は、数値型または論理型でなければなりません。値は
1 次元配列または 2 次元配列でなければなりません。
MATRIX_B は、MATRIX_A が数値型のときは数値型でなければな
らず、MATRIX_A が論理型のときは論理型でなければなりませ
ん。MATRIX_A が 1 次元配列の場合、MATRIX_B は 2 次元配列
でなければなりません。MATRIX_A が 2 次元配列の場合、
MATRIX_B は 1 次元配列でなければなりません。
引数が論理型のとき、結果も論理型です。
引数が数値型のとき、結果も数値型です。
MAX
最大値
分類
総称要素別処理関数
要約
generic MAX(A1,A2,...)
REAL function
AIMAX0(A1,A2,...)
INTEGER(2) ::A1,A2,...
REAL function
AJMAX0(A1,A2,...)
INTEGER(4) ::A1,A2,...
REAL function
AKMAX0(A1,A2,...)
INTEGER(8) ::A1,A2,...
REAL function AMAX0(A1,A2,...)
INTEGER ::A1,A2,...
INTEGER(2) function
IMAX1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(4) function
JMAX1(A1,A2,...)
次ページにつづく
1-91
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
MAX(つづき)
説明
REAL ::A1,A2,...
INTEGER function
MAX1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(8) function
KMAX1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(1) function
MAX(A1,A2,...)
INTEGER(1) ::A1,A2,...
INTEGER(2) function
IMAX0(A1,A2,...)
INTEGER(2) ::A1,A2,...
INTEGER(4) function
JMAX0(A1,A2,...)
INTEGER(4) ::A1,A2,...
INTEGER function
MAX0(A1,A2,...)
INTEGER ::A1,A2,
...
INTEGER(8) function
KMAX0(A1,A2,...)
INTEGER(8) ::A1,A2,...
REAL function AMAX1(A1,A2,...)
REAL ::A1,A2,...
DOUBLE PRECISION function
XMAX1(A1,A2,...)
DOUBLE
PRECISION
::A1,A2,...
end
次ページにつづく
1-92
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MAX0
「MAX(A1, A2, A3, ...)」を参照。
MAX1
「MAX(A1, A2, A3, ...)」を参照。
MAXEXPONENT
引数と同じ型および同じ種別型パラメータのモデルで最大の指数
を返します。
分類
総称問い合わせ関数
要約
generic MAXEXPONENT(X)
INTEGER function
MAXEXPONENT(X)
REAL ::X
INTEGER function
MAXEXPONENT(X)
DOUBLE PRECISION ::X
INTEGER function MAXEXPONENT(X)
REAL(16) :: X
end
次ページにつづく
1-93
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MAXLOC
MASK によって指定された配列要素のうち、最大の値を持つ最初
の要素の位置を返します。
分類
総称変形関数
要約
generic MAXLOC(ARRAY,MASK)
! ARRAY must be array-valued
INTEGER function
MAXLOC(ARRAY,MASK)
INTEGER(1) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
INTEGER(2) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
INTEGER(4) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
INTEGER(8) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
REAL(4) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
REAL(8) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
次ページにつづく
1-94
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MAXLOC(ARRAY,MASK)
REAL(16) ::ARRAY;
LOGICAL,OPTIONAL ::MASK
INTEGER function
MAXLOC(ARRAY,MASK)
end
MAXLOC(つづき)
MAXVAL
1
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応
する配列要素の最大値
分類
総称変形関数
要約
generic MAXVAL(ARRAY,MASK,DIM)
! ARRAY must be array-valued
INTEGER(1) function
MAXVAL(ARRAY,DIM,MASK)
INTEGER(1) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
INTEGER(2) function
MAXVAL(ARRAY,DIM,MASK)
INTEGER(2) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
INTEGER(4) function
MAXVAL(ARRAY,DIM,MASK)
INTEGER(4) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
INTEGER(8) function
次ページにつづく
1-95
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MAXVAL(ARRAY,DIM,MASK)
INTEGER(8) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
REAL(4) function
MAXVAL(ARRAY,DIM,MASK)
REAL(4) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
REAL(8) function
MAXVAL(ARRAY,DIM,MASK)
REAL(8) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
REAL(16) function
MAXVAL(ARRAY,DIM,MASK)
REAL(16) ::ARRAY
INTEGER,OPTIONAL ::DIM
LOGICAL,OPTIONAL ::MASK
end
MAXVAL(つづき)
MCLOCK
プログラムに時間アカウンティングを返します。
分類
非標準の個別問い合わせ関数
要約
INTEGER function MCLOCK()
MERGE
MASK の値に従っていずれか一方の値を選択します。
分類
総称要素別処理関数
要約
generic MERGE(TSOURCE,FSOURCE,MASK)
TSOURCE はどの型でもかまいません。
FSOURCE は TSOURCE と同じ型でなければなりません。
MASK は論理型でなければなりません。
次ページにつづく
1-96
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MIN
最小値
分類
総称要素別処理関数
要約
generic MIN(A1,A2,...)
REAL function
AIMIN0(A1,A2,...)
INTEGER(2) ::A1,A2,...
REAL function
AJMIN0(A1,A2,...)
INTEGER(4) ::A1,A2,...
REAL function
AKMIN0(A1,A2,...)
INTEGER(8) ::A1,A2,...
REAL function AMIN0(A1,A2,...)
INTEGER ::A1,A2,...
INTEGER(2) function
IMIN1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(4) function
JMIN1(A1,A2,...)
REAL ::A1,A2,...
INTEGER function
MIN1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(8) function
KMIN1(A1,A2,...)
REAL ::A1,A2,...
INTEGER(1) function
MIN(A1,A2,...)
INTEGER(1) ::A1,A2,...
INTEGER(2) function
IMIN0(A1,A2,...)
次ページにつづく
1-97
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
MIN(つづき)
説明
INTEGER(2) ::A1,A2,...
INTEGER(4) function
JMIN0(A1,A2,...)
INTEGER(4) ::A1,A2,...
INTEGER function
MIN0(A1,A2,...)
INTEGER ::A1,A2,...
INTEGER(8) function
KMIN0(A1,A2,...)
INTEGER(8) ::A1,A2,...
REAL function AMIN1(A1,A2,...)
REAL ::A1,A2,...
DOUBLE PRECISION function
DMIN1(A1,A2,...)
DOUBLE
PRECISION
::A1,A2,...
REAL(16) function
QMIN1(A1,A2...)
REAL(16) :: A1,A2,...
end
MIN0
「MAX(A1, A2, A3, ...)」を参照。
MIN1
「MAX(A1, A2, A3, ...)」を参照。
次ページにつづく
1-98
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MINEXPONENT
引数と同じ型および同じ種別型パラメータのモデルで最小の指数
を返します。
分類
総称問い合わせ関数
要約
generic MINEXPONENT(X)
INTEGER function
MINEXPONENT(X)
REAL ::X
INTEGER function
MINEXPONENT(X)
DOUBLE PRECISION ::XINTEGER
function MINEXPONENT(X)
REAL(16) :: X
end
次ページにつづく
1-99
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MINLOC
MASK によって指定された配列要素のうち、最小の値を持つ最初
の要素の位置を返します。
分類
総称変形関数
要約
generic MINLOC(ARRAY,MASK)
! ARRAY must be array-valued
INTEGER function
MINLOC(ARRAY,MASK)
INTEGER(1) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
MINLOC(ARRAY,MASK)
INTEGER(2) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
MINLOC(ARRAY,MASK)
INTEGER(4) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
MINLOC(ARRAY,MASK)
INTEGER(8) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
MINLOC(ARRAY,MASK)
REAL(4) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
次ページにつづく
1-100
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MINLOC(ARRAY,MASK)
REAL(8) ::ARRAY
LOGICAL,OPTIONAL ::MASK
INTEGER function
MINLOC(ARRAY,MASK)
REAL(16) ::ARRAY
LOGICAL,OPTIONAL ::MASK
MINLOC(つづき)
MINVAL
1
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応
する配列要素の最小値
分類
総称変形関数
要約
generic MINVAL(ARRAY,MASK,DIM)
! ARRAY must be array-valued
INTEGER(1) function
MINVAL(ARRAY,DIM,MASK)
INTEGER(1) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(2) function
MINVAL(ARRAY,DIM,MASK)
INTEGER(2) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(4) function
MINVAL(ARRAY,DIM,MASK)
INTEGER(4) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(8) function
MINVAL(ARRAY,DIM,MASK)
INTEGER(8) ::ARRAY
次ページにつづく
1-101
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
MINVAL(つづき)
説明
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL function
MINVAL(ARRAY,DIM,MASK)
REAL ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(8) function
MINVAL(ARRAY,DIM,MASK)
DOUBLE PRECISION ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(16) function
MINVAL(ARRAY,DIM,MASK)
REAL(16) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
end
次ページにつづく
1-102
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MOD
剰余関数
分類
総称要素別処理関数
要約
generic MOD(A,P)
INTEGER(1) function BMOD(A,P)
INTEGER(1) ::A,P
LOGICAL(1) function BMOD(A,P)
LOGICAL(1) ::A,P
INTEGER(2) function HMOD(A,P)
INTEGER(2) ::A,P
INTEGER(2) function IMOD(A,P)
INTEGER(2) ::A,P
INTEGER(4) function JMOD(A,P)
INTEGER(4) ::A,P
INTEGER(8) function KMOD(A,P)
INTEGER(8) ::A,P
REAL function AMOD(A,P)
REAL ::A,P
DOUBLE PRECISION function
DMOD(A,P)
DOUBLE PRECISION ::A,P
REAL(16) function QMOD(A,P)
REAL(16) :: A,P
end
次ページにつづく
1-103
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MODULO
モジュロ関数
分類
総称要素別処理関数
要約
generic MODULO(A,P)
INTEGER(1) function
MODULO(A,P)
INTEGER(1) ::A,P
INTEGER(2) function
MODULO(A,P)
INTEGER(2) ::A,P
INTEGER(4) function
MODULO(A,P)
INTEGER(4) ::A,P
INTEGER(8) function
MODULO(A,P)
INTEGER(8) ::A,P
REAL function MODULO(A,P)
REAL ::A,P
DOUBLE PRECISION function
MODULO(A,P)
DOUBLE PRECISION ::A,P
end
次ページにつづく
1-104
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MVBITS
1 つのデータ・オブジェクトから他のデータ・オブジェクトに
ビット列をコピーします。
分類
総称要素別処理サブルーチン
要約
generic MVBITS(FROM,FROMPOS,LEN,TO,TOPOS)
subroutine
BMVBITS(FROM,FROMPOS,LEN,TO,TOPO
S)
INTEGER(1):: FROM,TO
INTEGER :: FROMPOS, TOPOS,
LEN
subroutine
HMVBITS(FROM,FROMPOS,LEN,TO,TOPO
S)
INTEGER(2):: FROM,TO
INTEGER :: FROMPOS, TOPOS,
LEN
subroutine
MVBITS(FROM,FROMPOS,LEN,TO,TOPOS
)
INTEGER(4):: FROM,TO
INTEGER :: FROMPOS, TOPOS,
LEN
subroutine
MVBITS(FROM,FROMPOS,LEN,TO,TOPOS
)
INTEGER(8):: FROM,TO
INTEGER :: FROMPOS, TOPOS,
LEN
end
次ページにつづく
1-105
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
NEAREST
指定された方向で処理系が表現可能な最も近い数を返します。
分類
総称要素別処理関数
要約
generic NEAREST(X,S)
REAL(4) function NEAREST(X,S)
REAL(4) ::X,S
REAL(8) function NEAREST(X,S)
REAL(8) ::X,S
REAL(16) function NEAREST(X,S)
REAL(16) :: X,S
end
NINT
最も近い整数
分類
総称要素別処理関数
要約
generic NINT(A,KIND)
INTEGER(KIND) function
NINT(A,KIND)
REAL ::A;
INTEGER,OPTIONAL::KIND
INTEGER(KIND) function
NINT(A,KIND)
DOUBLE PRECISION ::A;
次ページにつづく
1-106
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
NINT(つづき)
最も近い整数
分類
総称要素別処理関数
要約
INTEGER,OPTIONAL::KIND
INTEGER function IDNINT(A)
DOUBLE PRECISION::A
INTEGER(2) function ININT(A)
REAL A
INTEGER(4) function NINT(A)
REAL ::A
INTEGER(2) function IIDNNT(A)
DOUBLE PRECISION::A
INTEGER(2) function IIQNNT(A)
REAL(16) :: A
INTEGER(4) function JNINT(A)
REAL ::A
INTEGER(4) function JIDNNT(A)
DOUBLE PRECISION::A
INTEGER(4) function IQNINT(A)
REAL(16) :: A
INTEGER(8) function KNINT(A)
REAL ::A
INTEGER(8) function KIDNNT(A)
DOUBLE PRECISION::A
INTEGER(8) function KIQNNT(A)
REAL(16) A
end
次ページにつづく
1-107
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
NOT
ビットごとの否定
分類
総称要素別処理関数
要約
generic NOT(I)
INTEGER(1) function
INTEGER(1) ::I
INTEGER(2) function
INTEGER(2) ::I
INTEGER(2) function
INTEGER(2) ::I
INTEGER(4) function
INTEGER(4) ::I
INTEGER(8) function
INTEGER(8) ::I
end
OR
BNOT(I)
HNOT(I)
INOT(I)
JNOT(I)
KNOT(I)
ビットごとの論理和
分類
総称要素別処理関数
要約
generic OR(I,J)
INTEGER(1) function OR(I,J)
INTEGER(1) ::I,J
INTEGER(2) function OR(I,J)
INTEGER(2) ::I,J
INTEGER(4) function OR(I,J)
INTEGER(4) ::I,J
INTEGER(8) function OR(I,J)
INTEGER(8) ::I,J
end
次ページにつづく
1-108
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
PACK
1
説明
マスクに従って、配列を 1 次元配列にします。
分類
総称変形関数
要約
generic PACK(ARRAY,MASK,VECTOR)
注
ARRAY はどの型でもかまいませんが、配列値を
とらなければなりません。
MASK は論理型でなければならず、ARRAY と形状
適合しなければなりません。
VECTOR は省略可能です。ARRAY と同じ型でなけ
ればならず、スカラでなければなりません。
結果は ARRAY と同じ型の 1 次元配列です。
PRECISION
引数と同じ種別型パラメータを持つ実数モデルの 10 進精度を返
します。
分類
総称問い合わせ関数
要約
generic PRECISION(X)
INTEGER function PRECISION(X)
REAL ::X
INTEGER function PRECISION(X)
DOUBLE PRECISION ::X
INTEGER function PRECISION(X)
REAL(16) :: X
end
次ページにつづく
1-109
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
MM_PREFETCH
R を含むキャッシュ・ラインをキャッシュ内にプリフェッチしま
す。整定数 I によって、プリフェッチの型が選択されます。
分類
非標準の関数
要約
SUBROUTINE MM_PREFETCH(R, I)
REAL R
INTEGER I
I=0
I=1
I=2
I=3
MM_PREFETCH
==>
==>
==>
==>
PREFETCH
PREFETCHTNT1
PREFETCHTNT2
PREFETCHTNTA
D を含むキャッシュ・ラインをキャッシュ内にプリフェッチしま
す。整定数 I によって、プリフェッチの型が選択されます。
分類
非標準の関数
要約
SUBROUTINE MM_PREFETCH(D, I)
DOUBLE PRECISION D
INTEGER I
I=0
I=1
I=2
I=3
==>
==>
==>
==>
PREFETCHNTA
PREFETCHT0
PREFETCHT1
PREFETCHT2
次ページにつづく
1-110
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
PRESENT
省略可能な引数が実在するかどうかを判定します。
分類
総称問い合わせ関数
要約
generic PRESENT(A)
注
A はどの型でもかまいませんが、PRESENT 関数
の引用を含む手続きの中で参照可能な、省略可
能な引数でなければなりません。結果は
LOGICAL 型です。
次ページにつづく
1-111
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
PRODUCT
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応
する配列のすべての要素の積を計算します。
分類
総称変形関数
要約
generic PRODUCT(ARRAY,DIM,MASK)
!ARRAY must be array-valued, DIM
must be scalar
INTEGER(1) function
PRODUCT(ARRAY,DIM,MASK)
INTEGER(1) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(2) function
PRODUCT(ARRAY,DIM,MASK)
INTEGER(2) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(4) function
PRODUCT(ARRAY,DIM,MASK)
INTEGER(4) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(8) function
PRODUCT(ARRAY,DIM,MASK)
INTEGER(8) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(4) function
PRODUCT(ARRAY,DIM,MASK)
REAL(4) ::ARRAY
次ページにつづく
1-112
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(8) function
PRODUCT(ARRAY,DIM,MASK)
REAL(8) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
LOGICAL,OPTIONAL ::MASK
PRODUCT(つづき)
end
QABS
「ABS(A)」を参照。
QACOS
「ACOS(X)」を参照。
QACOSD
「ACOSD(X)」を参照。
QACOSH
「ACOSH(X)」を参照。
QASIN
「ASIN(X)」を参照。
QASIND
「ASIND(X)」を参照。
QASINH
「ASINH(X)」を参照。
QATAN
「ATAN(X)」を参照。
QATAN2
「ATAN2(Y, X)」を参照。
QATAN2D
「ATAN2D(Y, X)」を参照。
QATAND
「ATAND(X)」を参照。
QATANH
「ATANH(X)」を参照。
QCOS
「COS(X)」を参照。
QCOSD
「COSD(X)」を参照。
QCOSH
「COSH(X)」を参照。
QDIM
「DIM(X, Y)」を参照。
QEXP
「EXP(X)」を参照。
QINT
「AINT(A, KIND)」を参照。
QLOG
「LOG(X)」を参照。
QLOG10
「LOG10(X)」を参照。
次ページにつづく
1-113
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
QMAX1
「MAX(A1, A2, A3, ...)」を参照。
QMIN1
「MIN(A1, A2, A3, ...)」を参照。
QMOD
「MOD(A, P)」を参照。
QNINT
「AINT(A, KIND)」を参照。
QPROD
倍精度の積
分類
非標準の総称要素別処理関数
要約
generic QPROD(X,Y)
DOUBLE PRECISION ::X,Y
end
QSIGN
「SIGN(A, B)」を参照。
QSIN
「SIN(X)」を参照。
QSIND
「SIND(X)」を参照。
QSINH
「SINH(X)」を参照。
QSQRT
「SQRT(X)」を参照。
QTAN
「TAN(X)」を参照。
QTAND
「TAND(X)」を参照。
QTANH
「TANH(X)」を参照。
次ページにつづく
1-114
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
RADIX
引数と同じ型および同じ種別型パラメータのモデルの基数を返し
ます。
分類
総称問い合わせ関数
要約
generic RADIX(X)
INTEGER function RADIX(X)
INTEGER(1) ::X
INTEGER function RADIX(X)
INTEGER(2) ::X
INTEGER function RADIX(X)
INTEGER(4) ::X
INTEGER function RADIX(X)
INTEGER(8) ::X
INTEGER function RADIX(X)
REAL ::X
INTEGER function RADIX(X)
DOUBLE PRECISION ::X
end
RANDOM_NUMBER
0. から 1. の範囲の擬似乱数を生成します。
分類
総称サブルーチン
要約
generic RANDOM_NUMBER(HARVEST)
subroutine
RANDOM_NUMBER(HARVEST)
REAL ::HARVEST
subroutine
RANDOM_NUMBER(HARVEST)
DOUBLE PRECISION ::HARVEST
end
次ページにつづく
1-115
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
RANDOM_SEED
RANDOM_NUMBER で使用する擬似乱数生成器を再始動するか、ま
たは問い合わせます。
分類
総称サブルーチン
要約
generic RANDOM_SEED(SIZE,PUT,GET)
! There must be exactly one or no
arguments
!
! PUT and GET must be a rank-one
and
! must be of sufficient size
subroutine
RANDOM_SEED(SIZE,PUT,GET)
INTEGER,OPTIONAL
::SIZE,PUT,GET
end
次ページにつづく
1-116
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
RANGE
引数と同じ種別型パラメータとなる整数または実数モデルの 10
進指数範囲を返します。
分類
総称問い合わせ関数
要約
generic RANGE(X)
INTEGER function RANGE(X)
INTEGER(1) ::X
INTEGER function RANGE(X)
INTEGER(2) ::X
INTEGER function RANGE(X)
INTEGER(4) ::X
INTEGER function RANGE(X)
INTEGER(8) ::X
INTEGER function RANGE(X)
REAL(4) ::X
INTEGER function RANGE(X)
REAL(8) ::X
end
次ページにつづく
1-117
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
REAL
実数型に変換します。
分類
総称要素別処理関数
要約
generic REAL(A,KIND)
REAL function FLOAT(A)
INTEGER ::A
REAL function REAL(A)
INTEGER(1) ::A
REAL function FLOATI(A)
INTEGER(2) ::A
REAL function FLOATJ(A)
INTEGER(4) ::A
REAL function FLOATK(A)
INTEGER(8) ::A
REAL function SNGL(A)
REAL ::A
REAL function REAL(A)
REAL ::A
REAL function REAL(A)
DOUBLE PRECISION ::A
REAL function REAL(A)
COMPLEX ::A
REAL function REAL(A)
DOUBLE COMPLEX ::A
end
次ページにつづく
1-118
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
REPEAT
文字列のコピーをいくつか連結します。
分類
総称変形関数
要約
generic REPEAT(STRING,NCOPIES)
CHARACTER function
REPEAT(STRING,NCOPIES)
CHARACTER ::STRING
INTEGER ::NCOPIES
end
RESHAPE
与えられた配列要素から、指定された形状の配列を構成します。
分類
総称変形関数
要約
generic RESHAPE(SOURCE,SHAPE,PAD,ORDER)
注
SOURCE はどの型でもかまいませんが、配列値をとらなければな
りません。
SHAPE は整数型の 1 次元配列であって、大きさが一定でなければ
なりません。
PAD は省略可能です。SOURCE と同じ型でなければなりません。
ORDER は省略可能です。整数型でなければなりません。
結果は SOURCE と同じ型です。
RNUM
文字を実数型に変換します。
分類
非標準の個別要素別処理関数
要約
REAL function RNUM(I)
CHARACTER ::I
次ページにつづく
1-119
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
RRSPACING
モデル数値における引数値前後の相対的な間隔の逆数を返しま
す。
分類
総称要素別処理関数
要約
generic RRSPACING(X)
REAL function RRSPACING(X)
REAL ::X
DOUBLE PRECISION function
RRSPACING(X)
DOUBLE PRECISION ::X
REAL(16) RRSPACING(X)
REAL(16) :: X
end
RSHFT
ビットごとの右方向シフト
分類
非標準の総称要素別処理関数
要約
generic RSHIFT(I,SHIFT)
INTEGER(1) function
RSHFT(I,SHIFT)
INTEGER(1) ::I,SHIFT
INTEGER(2) function
RSHFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(4) function
RSHFT(I,SHIFT)
INTEGER(4) ::I,SHIFT
INTEGER(8) function
RSHFT(I,SHIFT)
INTEGER(8) ::I,SHIFT
end
注 : SHIFT は、I と同じ KIND の正の整数でなければなりません。
次ページにつづく
1-120
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
RSHIFT
ビットごとの右方向シフト
分類
非標準の総称要素別処理関数
要約
generic RSHIFT(I,SHIFT)
INTEGER(1) function
RSHIFT(I,SHIFT)
INTEGER(1) ::I,SHIFT
INTEGER(2) function
RSHIFT(I,SHIFT)
INTEGER(2) ::I,SHIFT
INTEGER(4) function
RSHIFT(I,SHIFT)
INTEGER(4) ::I,SHIFT
INTEGER(8) function
RSHIFT(I,SHIFT)
INTEGER(8) ::I,SHIFT
end
注 : SHIFT は、I と同じ KIND の正の整数でなければなりません。
SCALE
X*(b**I)を返します。ここで、b は X のモデルの基数です。
分類
総称要素別処理関数
要約
generic SCALE(X,I)
REAL function SCALE(X,I)
REAL ::X; INTEGER ::I
DOUBLE PRECISION function
SCALE(X,I)
DOUBLE PRECISION ::X; INTEGER ::I
REAL(16) function SCALE(X,I)
REAL(16) :: X
INTEGER::I
end
次ページにつづく
1-121
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SCAN
文字列を走査して、文字集合中に指定した文字があるかどうかを
判定します。
分類
総称要素別処理関数
要約
generic SCAN(STRING,SET,BACK)
INTEGER function
SCAN(STRING,SET,BACK)
CHARACTER ::STRING,SET
LOGICAL,OPTIONAL :: BACK
end
SELECTED_INT_KIND
-10**r <n <10**rの範囲にあるすべての整数値nを表現する整
数型の種別型パラメータ値を返します。
分類
総称変形関数
要約
generic SELECTED_INT_KIND(R)
INTEGER function
SELECTED_INT_KIND(R)
INTEGER ::R
end
SELECTED_REAL_KIND
10 進精度が P 桁以上で 10 進指数範囲が R 以上である実数型の
種別型パラメータ値を返します。
分類
総称変形関数
要約
generic SELECTED_REAL_KIND(P,R)
! At least one argument must be
present.
INTEGER function
SELECTED_REAL_KIND(P,R)
INTEGER,OPTIONAL ::P,R
end
次ページにつづく
1-122
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SET_EXPONENT
指数部が I で、小数部が X のモデル表現の小数部である数表現
の実数を返します。
分類
総称要素別処理関数
要約
generic SET_EXPONENT(X,I)
REAL function
SET_EXPONENT(X,I)
REAL ::X; INTEGER ::I
DOUBLE PRECISION function
SET_EXPONENT(X,I)
DOUBLE PRECISION ::X; INTEGER
::I
REAL(16) function
SET_EXPONENT(X,I)
REAL(16) :: X
INTEGER :: I
end
SHAPE
配列またはスカラの形状を返します。
分類
総称問い合わせ関数
要約
generic SHAPE(SOURCE)
注
SOURCE はどの型でもかまいません。
結果は整数型の 1 次元配列です。
次ページにつづく
1-123
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SIGN
A の絶対値と B の符号の積
分類
総称要素別処理関数
要約
generic SIGN(A,B)
INTEGER(1) function BSIGN(A,B)
INTEGER(1) ::A,B
INTEGER(2) function HSIGN(A,B)
INTEGER(2) ::A,B
INTEGER(2) function
IISIGN(A,B)
INTEGER(2) ::A,B
INTEGER(4) function ISIGN(A,B)
INTEGER(4) ::A,B
INTEGER(4) function JSIGN(A,B)
INTEGER(4) ::A,B
INTEGER(8) function
KISIGN(A,B)
INTEGER(8) ::A,B
REAL function SIGN(A,B)
REAL ::A,B
DOUBLE PRECISION function
DSIGN(A,B)
DOUBLE PRECISION ::A,B
REAL(16) function QSIGN(A,B)
REAL(16) :: A,B
end
次ページにつづく
1-124
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SIN
正弦関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic SIN(X)
REAL function SIN(X)
REAL ::X
DOUBLE PRECISION function
DSIN(X)
DOUBLE PRECISION ::X
COMPLEX function CSIN(X)
COMPLEX ::X
DOUBLE COMPLEX function
CDSIN(X)
DOUBLE COMPLEX ::X
DOUBLE COMPLEX function
ZSIN(X)
DOUBLE COMPLEX ::X
REAL(16) function QSIN(X)
REAL(16) X
COMPLEX(16) function CQSIN(X)
COMPLEX(16) ::X
end
次ページにつづく
1-125
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SIND
正弦関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic SIND(X)
REAL function SIND(X)
REAL ::X
DOUBLE PRECISION function
DSIND(X)
DOUBLE PRECISION ::X
end
SINH
双曲線正弦関数
分類
総称要素別処理関数
要約
generic SINH(X)
REAL function SINH(X)
REAL ::X
DOUBLE PRECISION function
DSINH(X)
DOUBLE PRECISION ::X
REAL(16) function QSINH(X)
REAL(16) :: X
end
次ページにつづく
1-126
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SIZE
配列要素の総数または指定した次元の寸法を返します。
分類
非標準の総称問い合わせ関数
要約
generic SIZE(ARRAY,DIM)
注
ARRAY はどの型でもかまいませんが、配列値をとらなければなり
ません。
DIM は省略可能です。整数型でなければならず、配列値をとって
はなりません。
結果は整数型です。
SIZEOF
引数が使用する記憶域のバイト数を返します。
分類
総称問い合わせ関数
要約
generic SIZEOF(A)
注
A はどの型でもかまいません。結果は整数型です。A がポインタ
である場合、関数は A 自身の大きさではなく、A が指すものの大
きさを返します。
SNGL
REAL を参照。
SNGLQ
REAL を参照。
SPACING
モデル数値における引数値前後の間隔の絶対値を返します。
分類
総称要素別処理関数
要約
generic SPACING(X)
REAL function SPACING(X)
REAL ::X
DOUBLE PRECISION function
SPACING(X)
DOUBLE PRECISION ::X
end
1-127
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SPREAD
配列を複製して次元を付け加えます。
分類
総称変形関数
要約
generic SPREAD(SOURCE,DIM,NCOPIES)
注
SOURCE はどの型でもかまいません。
DIM は整数型のスカラでなければなりません。
NCOPIES は整数型のスカラでなければなりません。
結果は SOURCE と同じ型です。
次ページにつづく
1-128
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SQRT
平方根
分類
総称要素別処理関数
要約
generic SQRT(X)
REAL function SQRT(X)
REAL ::X
DOUBLE PRECISION function
DSQRT(X)
DOUBLE PRECISION ::X
COMPLEX function CSQRT(X)
COMPLEX ::X
DOUBLE COMPLEX function
CDSQRT(X)
DOUBLE COMPLEX ::X
DOUBLE COMPLEX function
ZSQRT(X)
DOUBLE COMPLEX ::X
REAL(16) function QSQRT(X)
REAL(16) :: X
COMPLEX(16) function CQSQRT(X)
COMPLEX(16) :: X
end
次ページにつづく
1-129
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
SUM
MASK 中の .TRUE. である要素に対応する ARRAY の要素を、
DIM 番
目の次元について合計します。
分類
総称変形関数
要約
generic SUM(ARRAY,MASK,DIM)
! ARRAY must be array-valued
INTEGER(1) function
SUM(ARRAY,DIM,MASK)
INTEGER(1) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(2) function
SUM(ARRAY,DIM,MASK)
INTEGER(2) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(4) function
SUM(ARRAY,DIM,MASK)
INTEGER(4) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
INTEGER(8) function
SUM(ARRAY,DIM,MASK)
INTEGER(8) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(4) function
SUM(ARRAY,DIM,MASK)
REAL(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
end
次ページにつづく
1-130
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
REAL(8) function
SUM(ARRAY,DIM,MASK)
REAL(8) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
REAL(16) function
SUM(ARRAY,DIM,MASK)
REAL(16) ::ARRAY
INTEGER,OPTIONAL ::DIM;
LOGICAL,OPTIONAL ::MASK
SUM(つづき)
SYSTEM_CLOCK
実時間時計から整数データを返します。
分類
総称サブルーチン
要約
generic
SYSTEM_CLOCK(COUNT,COUNT_RATE,COUNT_MAX)
subroutine
SYSTEM_CLOCK(COUNT,COUNT_RATE,CO
UNT_MAX)
INTEGER,OPTIONAL
::COUNT,COUNT_RATE,COUNT_MAX
end
次ページにつづく
1-131
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
TAN
正接関数(ラジアン単位)
分類
総称要素別処理関数
要約
generic TAN(X)
REAL function TAN(X)
REAL ::X
DOUBLE PRECISION function
DTAN(X)
DOUBLE PRECISION ::X
COMPLEX function CTAN(X)
COMPLEX ::X
DOUBLE COMPLEX function
ZTAN(X)
DOUBLE COMPLEX ::X
REAL(16) function QTAN(X)
REAL(16) :: X
COMPLEX(16) function CQTAN(X)
COMPLEX(16) :: X
end
TAND
正接関数(度単位)
分類
非標準の総称要素別処理関数
要約
generic TAND(X)
REAL function TAND(X)
REAL ::X
DOUBLE PRECISION function
DTAND(X)
DOUBLE PRECISION ::X
REAL(16) function QTAND(X)
REAL(16) :: X
end
次ページにつづく
1-132
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
TANH
双曲線正接関数
分類
総称要素別処理関数
要約
generic TANH(X)
REAL function TANH(X)
REAL ::X
DOUBLE PRECISION function
DTANH(X)
DOUBLE PRECISION ::X
REAL(16) function QTANH
REAL(16) QTANH
end
TINY
引数と同じ型および同じ種別型パラメータのモデルで最小の正の
数を返します。
分類
総称問い合わせ関数
要約
generic TINY(X)
REAL function TINY(X)
REAL ::X
DOUBLE PRECISION function
TINY(X)
DOUBLE PRECISION ::X
REAL(16) function TINY(X)
REAL(16) :: X
end
次ページにつづく
1-133
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
TRANSFER
物理表現は SOURCE と同じですが、型および種別型パラメータ
を MOLD のものにした結果を返します。
分類
総称変形関数
要約
generic TRANSFER(SOURCE,MOLD,SIZE)
注
SOURCE はどの型でもかまいません。
MOLD はどの型でもかまいません。
SIZE は省略可能です。整数型のスカラでなければなりません。
結果は MOLD と同じ型です。
TRANSPOSE
2 次元配列を転置します。
分類
総称変形関数
要約
generic TRANSPOSE(MATRIX)
注
MATRIX はどの型でもかまいませんが、2 次元配列でなければな
りません。
結果は MATRIX と同じ型とします。
TRIM
引数の後ろの空白を削除したものを返します。
分類
総称変形関数
要約
generic TRIM(STRING)
CHARACTER function
TRIM(STRING)
CHARACTER ::STRING
end
次ページにつづく
1-134
組み込み手続き
表 1-3
1
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
UBOUND
配列の次元の上限を返します。
分類
総称問い合わせ関数
要約
generic UBOUND(ARRAY,DIM)
!ARRAY must be array-valued, DIM
must be scalar
INTEGER function
UBOUND(ARRAY,DIM)
LOGICAL(1) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
LOGICAL(2) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
LOGICAL(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
LOGICAL(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
INTEGER(1) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
INTEGER(2) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
INTEGER(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
次ページにつづく
1-135
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
UBOUND(つづき)
説明
INTEGER function
UBOUND(ARRAY,DIM)
INTEGER(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
REAL(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
REAL(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
REAL(16) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
COMPLEX(4) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
COMPLEX(8) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
COMPLEX(16) ::ARRAY;
INTEGER,OPTIONAL ::DIM
INTEGER function
UBOUND(ARRAY,DIM)
CHARACTER ::ARRAY;
INTEGER,OPTIONAL ::DIM
次ページにつづく
1-136
組み込み手続き
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
INTEGER function
UBOUND(ARRAY,DIM)
DERIVED_TYPE ::ARRAY;
INTEGER,OPTIONAL ::DIM
end
UBOUND(つづき)
UNPACK
1
1 次元配列の要素をマスクに従って配列に配布します。
分類
総称変形関数
要約
generic UNPACK(VECTOR,MASK,FIELD)
注
VECTOR はどの型でもかまいませんが、1 次元配列でなければな
りません。
MASK は論理型でなければなりません。配列値をとらなければな
りません。
FIELD は VECTOR と同じ型でなければなりません。
結果は VECTOR と同じ型です。
VERIFY
文字列中の文字が、指定した文字集合中に含まれているかどうか
を調べ、文字集合に含まれない文字列中の最初の文字の位置を返
します。
分類
総称要素別処理関数
要約
generic VERIFY(STRING,SET,BACK)
INTEGER function
VERIFY(STRING,SET,BACK)
CHARACTER ::STRING, SET
LOGICAL,OPTIONAL ::BACK
end
次ページにつづく
1-137
1
インテル ® Fortran ライブラリ・リファレンス
表 1-3
総称 (generic) 組み込み および個別 (specific) 組み込み手続き (続き)
組み込み手続き
説明
XOR
ビットごとの排他的論理和
分類
非標準の総称要素別処理関数
要約
generic XOR(I,J)
INTEGER(1) function XOR(I,J)
INTEGER(1) ::I,J
INTEGER(2) function XOR(I,J)
INTEGER(2) ::I,J
INTEGER(4) function XOR(I,J)
INTEGER(4) ::I,J
INTEGER(8) function XOR(I,J)
INTEGER(8) ::I,J
end
注 : この関数は、すべての形式で IXOR として指定することもで
きます。
ZABS
ABS を参照。
ZCOS
COS を参照。
ZEXP
EXP を参照。
ZLOG
「LOG(X)」を参照。
ZSIN
SIN を参照。
ZSQRT
SQRT を参照。
ZTAN
TAN を参照。
組み込み手続きの仕様
この節では、インテル Fortran の組み込み手続きについて説明しま
す。組み込み関数名ごとにアルファベット順で説明しています。
1-138
組み込み手続き
1
すべての総称 (generic) 組み込み手続きおよび個別 (specific) 組み込
み手続きの要約については、「総称組み込みおよび個別組み込みの
概要」節にある表 1-3 を参照してください。
この節に記載されているすべての組み込み手続きは総称 (generic) で
す。つまり、各組み込み手続きは、2 つ以上の引数の型、種別、次
元数で呼び出されます。
多くの場合、組み込み関数結果の種別と型は、「主な」引数の種別
と型と同じです。例えば、SIN 関数は、実数型引数または複素数型
引数のいかなる種別によっても呼び出せます。結果は引数の型と種
別を持ちます。
組み込み手続き引用はキーワードを使用します。実引数式の前に
は、仮引数名、つまり引数キーワードと、等号 (=) が付きます。引
数キーワードについては、以降の手続きの説明の中に示します。
一部の組み込み手続きの引数は省略可能です。省略可能な引数につ
いては、以降の説明の中で注記します。
ABS(A)
意味
絶対値
分類
要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果の型および型パラメータ
A が複素数型の場合、結果の型は実数型とします。それ以外の場合、
結果の型は A と同じとします。
1-139
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
A が整数型または実数型の場合、結果の値は |A| とします。
A が複素数 (x, y) の場合、結果の値は
値とします。
x2 + y2
の処理系依存の近似
例
ABS(-1) の値は 1 です。
ABS(-1.5) の値は 1.5 です。
ABS((3.0, 4.0)) の値は 5.0 です。
ACHAR(I)
整数を ASCII 表現に変換します。
意味
ASCII 大小順序における指定した位置の文字を返します。関数
IACHAR の逆関数です。
分類
要素別処理関数
引数
I は、整数型でなければなりません。
結果の型および型パラメータ
種別型パラメータ値 KIND('A') を持つ長さ 1 の文字型とします。
結果の値
I の値が 0 ≤ I ≤ 127 の範囲である場合、結果の値は ASCII 大小順序に
おける位置 I の文字とします。ただし、処理系がその文字を表現で
きないときの結果は、処理系依存とします。
1-140
組み込み手続き
1
処理系が大文字または小文字のどちらかを表現することができず、
I が表現できないほうの文字に対応するとき、結果は処理系が表現
できるほうの文字とします。
処理系で表現できる任意の文字 C に対して、ACHAR(IACHAR(C))
は、値 C を持たなければなりません。
例
ACHAR(88) の値は 'X' です。
ACHAR(42) の値は '*' です。
ACOS(X)
意味
逆余弦関数(余弦関数の逆関数)(ラジアン単位)
分類
要素別処理関数
引数
X は、実数型で、|X| ≤ 1 を満たす値でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、ラジアンで表した arccos(X) の処理系依存の近似値
とし、0 ≤ ACOS(X) ≤ π の範囲とします。
例
ACOS(0.54030231) の値は 1.0 です。
1-141
1
インテル ® Fortran ライブラリ・リファレンス
ACOS(.1_HIGH) の値は 1.4706289056333 であり、種別は HIGH で
す。
ACOSD(X)
意味
逆余弦関数(余弦関数の逆関数)(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型で、|X| ≤ 1 を満たす値でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、度で表した arccos(X) の処理系依存の近似値とし、
0 ≤ ACOSD(X) ≤ 180 の範囲とします。
例
ACOSD(0.0000001) の値は 89.99999 です。
ACOSD(0.5) の値は 60.0 です。
ACOSD(-1.0) の値は 180.0 です。
1-142
組み込み手続き
1
ACOSH(X)
意味
逆双曲線余弦関数(ラジアン単位)
分類
非標準の要素別処理関数
引数
X は、実数型で、X ≥ 1 を満たす値でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X の逆双曲線余弦関数の処理系依存の近似値とし、0 ≤
ACOSH(X) の範囲とします。
例
ACOSH(1.0) の値は 0.0 です。
ACOSH(180.0) の値は 5.8861 です。
ACOSH(0.0) の値は NaN(数値ではありません)です。
1-143
1
インテル ® Fortran ライブラリ・リファレンス
ADJUSTL(STRING)
意味
先頭の空白を取り除き、末尾に空白を挿入して、左詰めにします。
分類
要素別処理関数
引数
STRING は、文字型でなければなりません。
結果の型
STRING と同じ長さおよび同じ種別型パラメータの文字型とします。
結果の値
結果の値は、STRING の先頭の空白を削除し、同数の空白を末尾に
挿入した文字列とします。
例
ADJUSTL(’bbWORD’) は ’WORDbb’ です。
1-144
組み込み手続き
1
ADJUSTR(STRING)
意味
末尾の空白を取り除き、先頭に空白を挿入して、右詰めにします。
分類
要素別処理関数
引数
STRING は、文字型でなければなりません。
結果の型
STRING と同じ長さおよび同じ種別型パラメータの文字型とします。
結果の値
結果の値は、STRING の末尾の空白を削除し、同数の空白を先頭に
挿入した文字列とします。
例
ADJUSTR(’WORDbb’) の値は ’bbWORD’ です。
1-145
1
インテル ® Fortran ライブラリ・リファレンス
AIMAG(Z)
意味
複素数の虚部
分類
要素別処理関数
引数
Z は、複素数型でなければなりません。
結果の型および型パラメータ
Z と同じ種別型パラメータの実数型とします。
結果の値
Z の値が (x, y) であるとき、結果の値は y とします。
例
AIMAG((2.0, 3.0)) の値は 3.0 です。
AIMAG((2.0_HIGH, 3.0)) の値は 3.0 であり、種別は HIGH です。
複素定数表現部は、より高精度を持つ部分と同じ精度を持ちます。
1-146
組み込み手続き
1
AINT(A, KIND)
省略可能な引数
KIND
意味
整数値への切り捨て
分類
要素別処理関数
引数
A
実数型でなければなりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
結果の型は、実数型とします。KIND を指定したとき、種別型パラ
メータは KIND の指定に従います。KIND を省略したとき、種別型
パラメータは、A と同じとします。
結果の値
|A| <1 のとき、AINT(A) の値は 0 とします。A ≥ 1 のとき、AINT(A)
の値は、A の絶対値以下で最大の整数値に A の符号を付けたものと
します。
例
AINT(2.783) の値は 2.0 です。
AINT(-2.783) の値は -2.0 です。
AINT(2.1111111111111_HIGH)およびAINT(2.1111111111111,
HIGH) の値は 2.0 であり、種別は HIGH です。
1-147
1
インテル ® Fortran ライブラリ・リファレンス
ALL(MASK, DIM)
省略可能な引数
DIM
意味
MASK のDIM 番目の次元にある要素の値がすべて.TRUE. であるかど
うかを判定します。
分類
変形関数
引数
MASK
論理型でなければならず、スカラであってはなりません。
DIM(省略可能)
整数型スカラで、1 ≤ DIM ≤ n の範囲の値でなければなりません。
ここで、n は MASK の次元数とします。対応する実引数は、省略可
能な仮引数であってはなりません。
結果の型、型パラメータ、および形状
結果は、MASK と同じ種別型パラメータの論理型とします。DIM が
省略されているかまたは MASK の次元数が 1 である場合、結果はス
カラとします。それ以外の場合、結果は n-1 次元の配列とし、その
形状は (d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、(d1, d2, ...,
dn) は、MASK の形状とします。
1-148
組み込み手続き
1
結果の値
ケース 1
ALL(MASK) の結果の値は、MASK のすべての要素
が .TRUE. であるかまたは MASK の大きさが 0 で
あるとき .TRUE. とし、MASK のいずれかの要素
が .FALSE. であるとき .FALSE. とします。
ケース 2
MASK が 1 次元配列のとき、ALL(MASK, DIM) の
値は ALL(MASK) の値と同じとします。MASK が 2
次元以上のとき、ALL(MASK, DIM) の要素 (s1, s2,
..., sDIM-1, sDIM+1, ..., sn) の値は、ALL(MASK (s1, s2,
..., sDIM-1,:, sDIM+1, ..., sn)) と同じとします。
例
ケース 1
ALL((/ .TRUE., .FALSE.,.TRUE. /)) の値
は .FALSE. です。
ALL((/ .TRUE._BIT, .TRUE._BIT,
.TRUE._BIT /)) の値は .TRUE._BIT です。
ケース 2
B が配列
135
246
C が配列
0 3 5
7 4 8
であるとき、ALL(B .NE. C, DIM = 1) は
[.TRUE., .FALSE., .FALSE.]であり、ALL(B
.NE. C, DIM =2) は [.FALSE., .FALSE.] で
す。
1-149
1
インテル ® Fortran ライブラリ・リファレンス
ALLOCATED(ARRAY)
意味
割り付け配列が、現在割り付けられているかどうかを示します。
分類
問い合わせ関数
引数
ARRAY は、割り付け配列でなければなりません。
結果の型、型パラメータ、および形状
基本論理型スカラとします。
結果の値
結果の値は、ARRAY が現在割り付けられているとき .TRUE. とし、
割り付けられていないとき .FALSE. とします。配列の割り付け状
態が不定であるときの結果は規定しません。
例
次の文
REAL, ALLOCATABLE :: A(:,:)
ALLOCATE (A(10,10))
PRINT *, ALLOCATED (A)
が処理されると T が出力されます。
1-150
組み込み手続き
1
AND(I, J)
意味
ビットごとの論理積
分類
非標準の要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J の論理積をと
ることによって得られる値とします。
I
J
AND(I, J)
1
1
1
1
0
0
0
1
0
0
0
1
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
次のプログラムでは、出力 " 11 5 1" が生成されます。
1-151
1
インテル ® Fortran ライブラリ・リファレンス
K には 2 進値 0001(10 進数の 1) が割り当てられます。
PROGRAM andtest
INTEGER I, J, K
I = B’1011’
J = B’0101’
K = AND(I, J)
PRINT *, I, J, K
END
ANINT(A, KIND)
省略可能な引数
KIND
意味
最も近い整数値を返します(四捨五入)
。
分類
要素別処理関数
引数
A
実数型でなければなりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
結果の型は、実数型とします。KIND を指定したとき、種別型パラ
メータは KIND の指定に従います。KIND を省略したとき、種別型
パラメータは、A と同じとします。
1-152
組み込み手続き
1
結果の値
A> 0 である場合、ANINT(A) の値は AINT(A+0.5) とします。A≤ 0 で
ある場合、ANINT(A) の値は AINT(A-0.5) とします。
例
ANINT(2.783) の値は 3.0 です。
ANINT(-2.783) の値は -3.0 です。
ANINT(2.7837837837837_HIGH) および
ANINT(2.7837837837837,HIGH) の値は 3.0 であり、種別は HIGH
です。
ANY(MASK, DIM)
省略可能な引数
DIM
意味
MASKのDIM番目の次元にある要素の値が1つでも.TRUE.であるかど
うかを判定します。
分類
変形関数
引数
MASK
論理型でなければならず、スカラであってはなり
ません。
DIM(省略可能)整数型スカラで、1 ≤ DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は MASK の次元数とし
ます。対応する実引数は、省略可能な仮引数で
あってはなりません。
1-153
1
インテル ® Fortran ライブラリ・リファレンス
結果の型、型パラメータ、および形状
結果は、MASK と同じ種別型パラメータの論理型とします。DIM が
省略されているかまたは MASK の次元数が 1 である場合、結果はス
カラとします。それ以外の場合、結果は n-1 次元の配列とし、その
形状は (d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、(d1, d2, ...,
dn) は、MASK の形状とします。
結果の値
ケース 1
ANY(MASK) の結果の値は、MASK のどれかの要素
が .TRUE. であるとき .TRUE. とし、どの要素も
.TRUE.でないときまたはMASKの大きさが0である
とき .FALSE. とします。
ケース 2
MASK が 1 次元配列のとき、ANY(MASK, DIM) の
値は ANY(MASK) の値と同じとします。MASK が 2
次元以上のとき、ANY(MASK, DIM) の要素 (s1,
s2, ..., sDIM-1, sDIM+1, ..., sn) の値は、
ANY(MASK(s1, s2, ..., sDIM-1,:, sDIM+1,
...,sn) と同じとします。
例
ケース 1
ANY((/ .TRUE., .FALSE.,.TRUE. /)) の値
は .TRUE. です。
ANY((/ .FALSE._BIT, .FALSE._BIT,
.FALSE._BIT /)) の値は .FALSE._BIT です。
ケース 2
B が配列
1 3 5
2 4 6
C が配列
0 3 5
7 4 8
1-154
組み込み手続き
1
であるとき、ANY(B .NE. C, DIM = 1) は [.TRUE.,
.FALSE., .TRUE.] であり、ANY(B .NE. C, DIM = 2) は
[.TRUE., .TRUE.] です。
ASIN(X)
意味
逆正弦関数(正弦関数の逆関数)(ラジアン単位)
分類
要素別処理関数
引数
X は、実数型で、|X| ≤ 1 を満たす値でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、ラジアンで表した arcsin(X) の処理系依存の近似値
とし、-π/2 ≤ ASIN(X) ≤ π/2 の範囲とします。
例
ASIN(0.84147098) の値は 1.0 です。
ASIN(1.0_HIGH) の値は 1.5707963267949 であり、種別は HIGH で
す。
1-155
1
インテル ® Fortran ライブラリ・リファレンス
ASIND(X)
意味
逆正弦関数(正弦関数の逆関数)(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型で、|X| ≤ 1 を満たす値でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、度で表した arcsin(X) の処理系依存の近似値とし、
-90 ≤ ASIND(X) ≤ 90 の範囲とします。
例
ASIND(-1.0) の値は -90.0 です。
ASIND(0.5) の値は 30.0 です。
1-156
組み込み手続き
1
ASINH(X)
意味
逆双曲線正弦関数(ラジアン単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X の逆双曲線正弦関数の処理系依存の近似値としま
す。
例
ASINH(-1.0) の値は -0.88137 です。
ASINH(180.0) の値は 5.88611 です。
1-157
1
インテル ® Fortran ライブラリ・リファレンス
ASSOCIATED(POINTER, TARGET)
省略可能な引数
TARGET
意味
ポインタ引数の結合状態を返します。すなわち、ポインタが指示先
と結合しているかどうかを示します。
分類
問い合わせ関数
引数
POINTER
ポインタでなければなりません。どの型でも
かまいません。ポインタ結合状態が不定で
あってはなりません。
TARGET(省略可能) ポインタまたは指示先でなければなりませ
ん。ポインタである場合、ポインタ結合状態
が不定であってはなりません。
結果の型
結果の型は、基本論理型スカラとします。
結果の値
1-158
ケース 1
TARGET を省略した場合、結果の値は、POINTER
が現在指示先と結合しているとき .TRUE. とし、
結合していないとき .FALSE. とします。
ケース 2
TARGET が指定されていて指示先である場合、結
果の値は、POINTER が現在 TARGET と結合してい
るとき .TRUE. とし、結合していないとき
.FALSE. とします。
組み込み手続き
ケース 3
1
TARGET が指定されていてポインタである場合、
POINTER と TARGET が現在同一の指示先と結合し
ているとき .TRUE. とし、同一でないとき
.FALSE. とします。POINTER または TARGET が空
状態であるとき、結果の値は .FALSE. とします。
例
ケース 1
PTR が現在指示先と結合している場合、
ASSOCIATED(PTR) は .TRUE. です。
ケース 2
次の文が処理されると、ASSOCIATED(PTR,
TAR) は .TRUE. になります。
REAL, TARGET :: TAR (0:100)
REAL, POINTER :: PTR(:)
PTR => TAR
TAR および PTR の添字の範囲は両方とも 0:100 で
す。
ポインタ代入文が、
PTR => TAR(:)
または
PTR => TAR(0:100)
であれば、ASSOCIATED(PTR, TAR) は依然とし
て .TRUE. ですが、いずれの場合も PTR の添字の
範囲は 1:101 です。ただし、ポインタ代入文が、
PTR => TAR(0:99)
である場合、TAR(0:99) は TAR と同一ではない
ため、ASSOCIATED(PTR, TAR) は .FALSE. と
なります。
1-159
1
インテル ® Fortran ライブラリ・リファレンス
ケース 3
次の文が処理されると、ASSOCIATED(PTR1,
PTR2) は .TRUE. になります。
REAL, POINTER :: PTR1(:), PTR2(:)
ALLOCATE(PTR1(0:10))
PTR2 => PTR1
NULLIFY(PTR1)
または
NULLIFY(PTR2)
のいずれかを実行した後は、文
ASSOCIATED(PTR1, PTR2)は.FALSE.と評価さ
れます。
ATAN(X)
意味
逆正接関数(正接関数の逆関数)(ラジアン単位)
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、ラジアンで表した arctan(X) の処理系依存の近似値
とし、-π/2 ≤ ATAN(X) ≤ π/2 の範囲とします。
1-160
組み込み手続き
1
例
ATAN(1.5574077) の値は 1.0 です。
ATAN(2.0_HIGH/3.0) の値は 0.58800260354757 であり、種別は
HIGH です。
ATAN2(Y, X)
意味
逆正接関数(正接関数の逆関数)(ラジアン単位)。結果は、(0.0,
0.0) ではない複素数 (X, Y) の主偏角とします。
分類
要素別処理関数
引数
Y
実数型でなければなりません。
X
Y と同じ型および同じ種別型パラメータでなけれ
ばなりません。Y が 0.0 である場合、X は 0.0 で
あってはなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、ラジアンで表した複素数 (X, Y) の偏角の主値に対する
処理系依存の近似値とします。
値の範囲は、-π ≤ ATAN2(Y, X) ≤ π とします。その値は、X が 0.0
でない場合、arctan(Y/ X) の値の処理系依存の近似値とします。
1-161
1
インテル ® Fortran ライブラリ・リファレンス
その場合、Y> 0 であるとき、結果の値は正とします。Y= 0 であると
き、結果の値は、X> 0 ならば 0 とし、X< 0 ならば π とします。Y< 0
であるとき、結果の値は負とします。X= 0 である場合、結果の絶対
値は π/2 とします。
例
ATAN2(1.5574077, 1.0) の値は 1.0 です。
Y の値が
1 1
–1 –1
であり、X の値が
–1 1
–1 1
であるとき、ATAN2(Y, X) の値は、
3π
-----4
–--------3π
4
π
--4
–π
--4
です。
1-162
組み込み手続き
1
ATAN2D(Y, X)
意味
逆正接関数(正接関数の逆関数)(度単位)
分類
非標準の要素別処理関数
引数
Y
実数型でなければなりません。
X
Y と同じ型および同じ種別型パラメータでなけれ
ばなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、度で表した複素数 (X, Y) の偏角の主値に対する処理系
依存の近似値とし、-90 < ATAN2D(Y, X) < 90 の範囲とします。
例
ATAN2D(1.0, 1.0) の値は 45.0 です。
ATAN2D(1.0, 0.0) の値は 90.0 です。
ATAN2D(8735.0, 1.0) の値は 89.99344 です。
1-163
1
インテル ® Fortran ライブラリ・リファレンス
ATAND(X)
意味
逆正接関数(正接関数の逆関数)(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、度で表した arctan(X) の処理系依存の近似値とし、
-90 < ATAND(X) < 90 の範囲とします。
例
ATAND(1.0) の値は 45.0 です。
ATAND(0.0) の値は 0.0 です。
ATAND(-94373.0) の値は -89.9994 です。
1-164
組み込み手続き
1
ATANH(X)
意味
逆双曲線正接関数(ラジアン単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X の逆双曲線正接関数の処理系依存の近似値としま
す。
例
ATANH(0.0) の値は 0.0 です。
ATANH(-0.77) の値は -1.02033 です。
ATANH(0.5) の値は 0.549306 です。
1-165
1
インテル ® Fortran ライブラリ・リファレンス
BADDRESS(X)
意味
X のアドレスを返します。
分類
非標準の問い合わせ関数
引数
X は、どの型でもかまいません。
結果の型
結果の型は、基本整数型とします。
例
次のプログラム
PROGRAM batest
INTEGER X(5), I
DO I=1, 5
PRINT *, BADDRESS(X(I))
END DO
END
から、次の出力が生成されます。
2063835808
2063835812
2063835816
2063835820
2063835824
1-166
組み込み手続き
1
BIT_SIZE(I)
意味
引数の種別型パラメータを持つ整数型のモデルについて、「ビット
モデル」の項で定義したビット数 n を返します。
分類
問い合わせ関数
引数
I は、整数型でなければなりません。
結果の型、型パラメータ、および形状
I と同じ種別型パラメータの整数型スカラとします。
結果の値
結果の値は、引数の種別型パラメータを持つ整数型のモデルについ
て、「ビットモデル」の項においてビット操作のために定義した
ビット数 n とします。引数の種別型パラメータは整数型になりま
す。
例
モデルにおいて n が 32 の場合、BIT_SIZE(1) の値は 32 になりま
す。
1-167
1
インテル ® Fortran ライブラリ・リファレンス
BTEST(I, POS)
意味
整数値のビットを調べます。
分類
要素別処理関数
引数
I
整数型でなければなりません。
POS
整数型でなければなりません。値は、0 以上
BIT_SIZE(I) 未満でなければなりません。
結果の型
基本論理型とします。
結果の値
I の第 POS ビットが 1 であるとき、結果の値は .TRUE. とします。I の
第 POS ビットが 0 であるとき、結果の値は .FALSE. とします。整
数値をビット列として解釈するモデルについては、「ビットモデル」
の項を参照してください。
例
BTEST(8, 3) の値は .TRUE. です。
BTEST(8_SHORT, 3) の値は .TRUE. です。
A の値が [1, 2, 3, 4] であるとき、BTEST(A, 2) の値は [.FALSE.,
.FALSE., .FALSE., .TRUE.] であり、BTEST(2, A) の値は
[.TRUE., .FALSE., .FALSE., .FALSE.] です。
1-168
組み込み手続き
1
CEILING(A)
意味
引数の値以上で最小の整数を返します。
分類
要素別処理関数
引数
A は、実数型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
結果の値は、A 以上で最小の整数とします。処理系がこの値を基本
整数型で表現できないときの結果は規定しません。
例
CEILING(3.7) の値は 4 です。
CEILING(-3.7) の値は –3 です。
CEILING(20.0_HIGH/3) の値は 7 です。
1-169
1
インテル ® Fortran ライブラリ・リファレンス
CHAR(I, KIND)
省略可能な引数
KIND
意味
指定された種別型パラメータに対応する処理系大小順序における指
定された位置の文字を返します。関数 ICHAR の逆関数です。
分類
要素別処理関数
引数
I
整数型で、値が 0 ≤ I ≤ n-1 の範囲でなければ
なりません。ここで、n は指定された種別型
パラメータに対応する処理系大小順序におけ
る文字の個数とします。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
長さ 1 の文字型とします。KIND を指定したとき、種別型パラメー
タは KIND の指定に従います。KIND を省略したとき、種別型パラ
メータは基本文字型のものとします。
結果の値
結果は、指定した種別型パラメータに対応する処理系大小順序にお
ける位置 I の文字とします。
ICHAR(CHAR(I, KIND(C)))の値は0 ≤ I ≤ n-1の範囲のIにならな
ければならず、処理系が表現可能な任意の文字 C に対して、
CHAR(ICHAR(C), KIND(C)) の値は C にならなければなりません。
1-170
組み込み手続き
1
例
ASCII 大小順序を使用する処理系では、CHAR(88) は 'X' です。
CMPLX(X, Y, KIND)
省略可能な引数
Y、KIND
意味
複素数型に変換します。
分類
要素別処理関数
引数
X
整数型、実数型、または複素数型でなければ
なりません。
Y(省略可能)
整数型または実数型でなければなりません。
X が複素数型のときは、指定してはなりませ
ん。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
結果の型は、複素数型とします。KIND を指定したとき、種別型パ
ラメータは KIND の指定に従います。KIND を省略したとき、種別
型パラメータは基本実数型のものとします。
結果の値
Y を省略し、X が複素数ではない場合、Y にはゼロを指定したものと
みなします。
1-171
1
インテル ® Fortran ライブラリ・リファレンス
Y を省略し、X が複素数である場合、Y には AIMAG(X) を指定したも
のとみなします。
CMPLX(X, Y, KIND) の値は、実部が REAL(X, KIND) で虚部が
REAL(Y, KIND) である複素数の値とします。
例
CMPLX(-3) は -3.0 + 0i です。
CMPLX((4.1,0.0), KIND=HIGH)、CMPLX((4.1,0),
KIND=HIGH)、および CMPLX(4.1, KIND=HIGH) はそれぞれ 4.1 +
0.0i であり、種別は HIGH です。
CONJG(Z)
意味
共役複素数
分類
要素別処理関数
引数
Z は、複素数型でなければなりません。
結果の型および型パラメータ
Z と同じとします。
結果の値
Z の値が (x, y) のとき、結果の値は (x, -y) とします。
例
CONJG((2.0, 3.0) は (2.0, - 3.0) です。
CONJG((0., -4.1_HIGH)) は 0 + 4.1i であり、種別は HIGH です。
1-172
組み込み手続き
1
COS(X)
意味
余弦関数(ラジアン単位)
分類
要素別処理関数
引数
X は、実数型または複素数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、cos(X) の処理系依存の近似値とします。X が実数型
のとき、ラジアンでの値とみなされます。X が複素数型のとき、そ
の実部がラジアンでの値とみなされます。
例
COS(1.0) の値は 0.54030231 です。
COS((1.0_HIGH, 1.0)) の値は次のとおりです。
0.83373002513115 - 0.98889770576287i、種別は HIGH。
1-173
1
インテル ® Fortran ライブラリ・リファレンス
COSD(X)
意味
余弦関数(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、cos(X) の処理系依存の近似値とします。
例
COSD(0.0) の値は 1.0 です。
COSD(60.0) の値は 0.5 です。
1-174
組み込み手続き
1
COSH(X)
意味
双曲線余弦関数
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、cosh(X) の処理系依存の近似値とします。
例
COSH(1.0) の値は 1.5430806 です。
COSH(0.1_HIGH) の値は 1.0050041680558 であり、種別は HIGH で
す。
1-175
1
インテル ® Fortran ライブラリ・リファレンス
COUNT(MASK, DIM)
省略可能な引数
DIM
意味
MASK の DIM 番目の次元中の .TRUE. である要素の個数を数えます。
分類
変形関数
引数
MASK
論理型でなければならず、スカラであってはなり
ません。
DIM(省略可能)整数型スカラで、1 ≤ DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は MASK の次元数とし
ます。対応する実引数は、省略可能な仮引数で
あってはなりません。
結果の型、型パラメータ、および形状
結果は、基本整数型とします。DIM が省略されているかまたは
MASK の次元数が 1 である場合、結果はスカラとします。それ以外の
場合、結果は n-1 次元の配列とし、その形状は (d1, d2, ...,
dDIM-1, dDIM+1, ..., dn) とします。ここで、(d1, d2, ...,
dn) は、MASK の形状とします。
1-176
組み込み手続き
1
結果の値
ケース 1
COUNT(MASK) の結果の値は、MASK 中の .TRUE.
である要素の個数とします。MASK の大きさが 0
であるとき、0 とします。
ケース 2
MASK が 1 次元配列のとき、COUNT(MASK, DIM)
の値は COUNT(MASK) の値と同じとします。MASK
が 2 次元以上のとき、COUNT(MASK, DIM) の要
素 (s1, s2, ..., sDIM-1, sDIM+1, ..., sn)
の値は、COUNT(MASK(s1, s2,...,sDIM-1,:,
sDIM+1,...,sn)) と同じとします。
例
ケース 1
COUNT((/ .TRUE., .FALSE., .TRUE. /))
の値は 2 です。
ケース 2
B が配列
1 3 5
2 4 6
C が配列
0 3 5
7 4 8
であるとき、COUNT(B .NE. C, DIM = 1) は
[2, 0, 1] であり、COUNT(B .NE. C, DIM =
2) は [1, 2] です。
1-177
1
インテル ® Fortran ライブラリ・リファレンス
CPU_TIME(TIME)
意味
CPU_TIME は、処理系依存の時刻を秒単位で返します。経過した
CPU_TIME を取得するには、組み込み手続きを 2 回呼び出す必要が
あります。1 回目で開始時刻を取得し、2 回目で終了時刻を取得し、
終了時刻から開始時刻を減算します。
分類
サブルーチン
引数
TIME は実数型のスカラでなければなりません。
インテル Fortran では、拡張機能として、実数 *8 バイト型、実数
*16 バイト型、または倍精度型のを許容します。
結果の型および型パラメータ
TIME と同じとします。
例
PROGRAM TIMEIT
REAL STARTTIME/0.0/,STOPTIME/0.0/
A = 1.2
CALL CPU_TIME(STARTTIME)
DO I = 1,100000
B = CCOS(CMPLX(a,0.0)) * CSIN(CMPLX(a,0.0))
ENDDO
CALL CPU_TIME(STOPTIME)
PRINT *,'CPU TIME WAS ',STOPTIME - STARTTIME
END
1-178
組み込み手続き
1
CSHIFT(ARRAY, SHIFT, DIM)
省略可能な引数
DIM
意味
次元数が 1 である配列式上で要素の循環シフトを行うか、または次
元数が 2 以上である配列式の指定された次元にある 1 次元の部分配
列のすべてにおいて要素の循環シフトを行います。
部分配列の端から外にはみ出した要素は、反対側の端に送られま
す。それぞれの部分配列は、異なる方向に異なる量だけシフトして
もかまいません(左側にシフトする場合は正の数で、右側にシフト
する場合は負の数になります)。
分類
変形関数
引数
ARRAY
どの型でもかまいません。スカラであってはなり
ません。
SHIFT
整数型でなければなりません。ARRAY の次元数が 1
である場合、スカラでなければなりません。
ARRAY の次元数が 2 以上である場合、スカラまたは
n-1 次元の配列で形状が (d1, d2, ..., dDIM-1,
dDIM+1, ..., dn) でなければなりません。ここ
で、(d1, d2, ..., dn) は、ARRAY の形状とし
ます。
DIM(省略可能)整数型スカラで、1 ≤ DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は ARRAY の次元数とし
ます。DIM を省略したときは、1 が指定されたも
のとみなします。
1-179
1
インテル ® Fortran ライブラリ・リファレンス
結果の型、型パラメータ、および形状
結果の型、型パラメータ、および形状は、ARRAY と同じとします。
結果の値
ケース 1
ARRAY が 1 次元配列である場合、結果の i 番目の
要素は、ARRAY(1 + MODULO(i+ SHIFT - 1,
SIZE(ARRAY))) とします。
ケース 2
ARRAY が 2 次元以上の配列である場合、結果の部
分配列 (s1, s2, ..., sDIM-1,:, sDIM+1,
...., sn) の値は、CSHIFT(ARRAY(s1,
s2,...,sDIM-1,:, sDIM+1,....,sn), sh,1)と
します。ここで、sh は SHIFT または SHIFT(s1,
s2,...,sDIM-1,sDIM+1,...,sn) とします。
例
ケース 1
V が配列 [1, 2, 3, 4, 5, 6] であれば、V の要素を左に
2 つ循環シフトさせたときの作用は、値が
[3,4,5,6,1,2] である CSHIFT(V, SHIFT = 2) に
よって得られます。
CSHIFT(V, SHIFT = -2) の場合は、右に 2 つ
循環シフトされ、値が [5,6,1,2,3,4] となります。
ケース 2
2 次元配列の行がすべて、同じ量または異なる量
だけシフトします。M が配列
1 2 3
4 5 6
7 8 9
であるとき、CSHIFT(M, SHIFT = -1, DIM = 2) の値は、
3 1 2
6 4 5
9 7 8
であり、CSHIFT(M, SHIFT = (/ -1, 1, 0
/), DIM = 2) の値は、
1-180
組み込み手続き
1
3 1 2
5 6 4
7 8 9
です。
DATE_AND_TIME(DATE, TIME, ZONE, VALUES)
省略可能な引数
DATE、TIME、ZONE、VALUES
意味
実時間時計のデータおよび ISO 8601: 1988 (" Data elements and
interchange formats -Information interchange -Representation of dates and
times") で規定された表示方法と互換性のある形式の日付を返しま
す。
分類
サブルーチン
引数
DATE(省略可能)
基本文字型スカラでなければなりません。完
全な値を格納するには、8 文字以上の長さが
必要です。INTENT(OUT) 引数とします。左
側の 8 文字に、CCYYMMDD という形式の値
を設定します。ここで、CC は世紀、YY は西
暦年、MM は月、DD は日とします。年月日が
利用できないときは、空白を設定します。
TIME(省略可能)
基本文字型スカラでなければなりません。完
全な値を格納するには、10 文字以上の長さ
が必要です。INTENT(OUT) 引数とします。
1-181
1
インテル ® Fortran ライブラリ・リファレンス
左側の 10 文字に、hhmmss.sss という形式
の値を設定します。ここで、hh は時、mm は
分、ss.sss は秒およびミリ秒とします。時
計が利用できないときは、空白を設定しま
す。
ZONE(省略可能)
基本文字型スカラでなければなりません。完
全な値を格納するには、5 文字以上の長さが
必要です。INTENT(OUT) 引数とします。左
側の 5 文字に、± hhmm という形式の値を設
定します。ここで、hh と mm は、それぞれ
時および端数の分とし、協定世界時 (UTC)
からの時差を表します。時計が利用できない
ときは、空白を設定します。
VALUES(省略可能) 基本整数型の 1 次元配列でなければなりませ
ん。INTENT(OUT) 引数とします。大きさ
は、8 以上でなければなりません。VALUES
に返される値は、次のとおりとします。
VALUES(1)
年 ( 例えば 1990。ただし、年月日が利用でき
ないときは -HUGE(0))
VALUES(2)
月 ( ただし、年月日が利用できないときは
-HUGE(0))
VALUES(3)
日 ( ただし、年月日が利用できないときは
-HUGE(0))
VALUES(4)
分で表した協定世界時(UTC)からの時差(ただ
し、これが利用できないときは -HUGE(0))
VALUES(5)
0 〜 23 の範囲の時 ( ただし、時計が利用できな
いときは -HUGE(0))
VALUES(6)
0 〜 59 の範囲の分 ( ただし、時計が利用できな
いときは -HUGE(0))
VALUES(7)
0 〜 60 の範囲の秒 ( ただし、時計が利用できな
いときは -HUGE(0))
VALUES(8)
0 〜 999 の範囲のミリ秒 ( ただし、時計が利用
できないときは -HUGE(0))
HUGE 組み込み関数については、「HUGE(X)」の項で説明します。
1-182
組み込み手続き
1
例
INTEGER DATE_TIME (8)
CHARACTER (LEN = 10) BIG_BEN (3)
CALL DATE_AND_TIME (BIG_BEN (1), BIG_BEN (2),
BIG_BEN (3), DATE_TIME)
&
スイスのジュネーブにおいて、1985 年 4 月 12 日 15:27:35.5 に呼び
出された場合、BIG_BEN(1) に値 "19850412bb"、BIG_BEN(2)
に値 "152735.500"、BIG_BEN(3) に値 "+0100bbbbb" が割り当て
られ、DATE_TIME には値 "1985, 4, 12, 60, 15, 27, 35, 500" が割り当て
られます。
UTC は CCIR Recommendation 460-2 ( グリニッチ標準時としても知
られる ) によって定められていることに注意してください。
DBLE(A)
意味
倍精度実数型に変換します。
分類
要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果の型および型パラメータ
倍精度実数型とします。
結果の値
ケース 1
A が倍精度実数型のとき、DBLE(A)=A とします。
1-183
1
インテル ® Fortran ライブラリ・リファレンス
ケース 2
A が整数型または実数型のとき、結果の値は倍精
度実数型が持つ有効桁数で表した A の上位の部分
とします。
ケース 3
A が複素数型のとき、結果の値は倍精度実数型が
持つ有効桁数で表した A の実部の上位の部分とし
ます。
例
DBLE(-.3) は、倍精度実数型の –0.3 です。
DBLE(1.0_HIGH/3) は、倍精度実数型の 0.33333333333333 です。
DFLOAT(A)
意味
倍精度型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型でなければなりません。
結果の型および型パラメータ
倍精度型とします。
例
DFLOAT(56) は、倍精度型の 56.0 です。
1-184
組み込み手続き
1
DIGITS(X)
意味
引数と同じ型および同じ種別型パラメータのモデルでの有効桁数を
返します。
分類
問い合わせ関数
引数
X は、整数型または実数型でなければなりません。値は、スカラま
たは配列です。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、X が整数型のとき q とし、X が実数型のとき p としま
す。ここで、q と p は X と同じ型および同じ種別型パラメータのモ
デルにおける「データ表現モデル」の項で定義した値とします。
例
「実数モデル」の項で説明したモデルの実数 X に対して、
DIGITS(X) の値は 24 になります。
1-185
1
インテル ® Fortran ライブラリ・リファレンス
DIM(X, Y)
意味
超過分 X-Y が正のときは X-Y、正でないときはゼロとします。
分類
要素別処理関数
引数
X
整数型または実数型でなければなりません。
Y
X と同じ型および同じ種別型パラメータでなけれ
ばなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X>Y のとき X-Y とし、それ以外の場合はゼロとしま
す。
例
DIM(5, 3) の値は 2 です。DIM(-3.0, 2.0) の値は 0.0 です。
1-186
組み込み手続き
1
DNUM(I)
意味
倍精度実数型に変換します。
分類
非標準の要素別処理関数
引数
I は、文字型でなければなりません。
結果の型
倍精度型とします。
例
DNUM("3.14159") は、倍精度型の 3.14159 です。
次のコードによって、x が 311.0 に設定されます。
CHARACTER(3) i
DOUBLE PRECISION x
i = "311"
x = DNUM(I)
1-187
1
インテル ® Fortran ライブラリ・リファレンス
DOT_PRODUCT(VECTOR_A, VECTOR_B)
意味
数値型または論理型のベクトルの内積
分類
変形関数
引数
VECTOR_A
数値型(整数型、実数型、または複素数型)また
は論理型でなければなりません。値は、1 次元配
列でなければなりません。
VECTOR_B
VECTOR_A が数値型のときは数値型、VECTOR_A
が論理型のときは論理型でなければなりません。
値は、1 次元配列で、VECTOR_A と同じ大きさで
なければなりません。
結果の型、型パラメータ、および形状
結果はスカラとします。
引数が数値型のとき、結果の型および種別型パラメータは引数の型
によって決まる式 VECTOR_A * VECTOR_B の型および種別型パラ
メータと同じとします。
引数が論理型のとき、結果は式 VECTOR_A .AND. VECTOR_B の種
別型パラメータを持つ論理型とします。
1-188
組み込み手続き
1
結果の値
ケース 1
VECTOR_A が整数型または実数型の場合、結果の
値は SUM(VECTOR_A* VECTOR_B) とします。ベ
クトルの大きさが 0 であるとき、結果の値はゼロ
とします。
ケース 2
VECTOR_A が複素数型の場合、結果の値は
SUM(CONJG(VECTOR_A)* VECTOR_B) とします。
ベクトルの大きさが 0 であるとき、結果の値はゼ
ロとします。
ケース 3
VECTOR_A が論理型の場合、結果の値は
ANY(VECTOR_A .AND. VECTOR_B) とします。
ベクトルの大きさが 0 であるとき、結果の値は
.FALSE. とします。
例
ケース 1
DOT_PRODUCT( (/ 1, 2, 3 /), (/ 2, 3, 4
/)) の値は 20 です。
ケース 2
DOT_PRODUCT( (/ (1.0, 2.0), (2.0, 3.0)
/), (/ (1.0, 1.0), (1.0, 4.0) /) ) の値
は 17 + 4i です。
ケース 3
DOT_PRODUCT( (/ .TRUE., .FALSE. /), (/
.TRUE., .TRUE. /) ) の値は .TRUE. です。
DPROD(X, Y)
意味
倍精度実数型の積
分類
要素別処理関数
1-189
1
インテル ® Fortran ライブラリ・リファレンス
引数
X
基本実数型でなければなりません。
Y
基本実数型でなければなりません。
結果の型および型パラメータ
倍精度実数型とします。
結果の値
結果の値は、X と Y の積に対する処理系依存の近似値とします。
例
DPROD(-3.0, 2.0) の値は、倍精度実数型の –6.0 です。
DREAL(A)
意味
倍精度型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果
倍精度型とします。
1-190
組み込み手続き
1
例
DREAL(91) は倍精度型の 91.0 です。
次のコードによって、x が 45.34 に設定されます。
COMPLEX p
DOUBLE PRECISION x
p = (45.34, 1.0)
x = DREAL(p)
DSIGN
絶対値に第 2 の引数の符号を付けて
返します。
意味
この関数は、第 1 の引数の絶対値に第 2 の引数の符号を付けて返す
ことによって、符号付け替えを行います。
分類
非標準の要素別処理関数
プロトタイプ
引数
A1
絶対値が結果の絶対値となる数値とします。
A2
符号が結果の符合となる数値とします。
結果
A2>=0 のとき |A1|、または、b<0 のとき -|A1|、
A2 が 0 のとき、
処理において +0 と –0 が区別されない場合、
結果は |A1| とします。
区別される場合、–0 に対する値は -|A1|、
1-191
1
インテル ® Fortran ライブラリ・リファレンス
+0 に対する値は |A1| とします。
EOSHIFT(ARRAY, SHIFT, BOUNDARY, DIM)
省略可能な引数
BOUNDARY、DIM
意味
次元数が 1 である配列式上でエンド・オフ・シフトを行うか、また
は次元数が 2 以上である配列式の指定された次元にある 1 次元の部
分配列のすべてにおいてエンド・オフ・シフトを行います。
部分配列の端から外にはみ出した要素は捨てられ、境界値のコピー
が反対側の端に取り込まれます。
それぞれの部分配列は、異なる境界値を持ってもよく、異なる方向
に異なる量だけシフトしてもかまいません ( 左側に移動する場合は
正の数で、右側に移動する場合は負の数になります )。
分類
変形関数
引数
1-192
ARRAY
どの型でもかまいません。スカラであってはなり
ません。
SHIFT
整数型でなければなりません。ARRAY が 1 次元配列
である場合、スカラでなければなりません。
ARRAY が 2 次元以上の配列である場合、スカラまた
は n-1 次元の配列で、その形状は (d1, d2,
..., dDIM-1, dDIM+1, ..., dn) でなければな
りません。ここで、(d1, d2, ..., dn) は
ARRAY の形状とします。
組み込み手続き
BOUNDARY(省略可能)
DIM(省略可能)
1
型および型パラメータは、ARRAY と
同じでなければなりません。ARRAY
の次元数が 1 である場合、スカラで
なければなりません。次元数が 2 以
上である場合、スカラまたは n-1 次
元の配列で、その形状は (d1, d2,
..., dDIM-1, dDIM+1, ..., dn) でな
ければなりません。BOUNDARY は、
各データ型の BOUNDARY のデフォル
ト値を示す次の表のデータ型に対し
て省略可能とします。
ARRAY のデータ型
BOUNDARY の値
整数型
0
実数型
0.0
複素数型
(0.0, 0.0)
論理型
.FALSE.
文字型 ( 長さ len)
len 個の空白
1 ≤ DIM ≤ n の範囲の値を持つ整数型
スカラでなければなりません。ここ
で、n は ARRAY の次元数とします。
DIM を省略したときは、1 が指定され
たものとみなします。
結果の型、型パラメータ、および形状
結果の型、型パラメータ、および形状は、ARRAY と同じとします。
結果の値
結果の要素 (s1, s1, ..., sn) の値は、ARRAY(s1, s2, ...,
sDIM-1, sDIM + sh, sDIM+1, ..., sn) とします。ここで、sh は、
不等式 LBOUND(ARRAY, DIM) ≤ sDIM + sh ≤ UBOUND(ARRAY, DIM)
を満たすとき SHIFT または SHIFT(s1, s2, ..., sDIM-1,
sDIM+1, ..., sn) とし、満たさないとき BOUNDARY または
BOUNDARY(s1, s2, ..., sDIM-1, sDIM+1, ..., sn) とします。
1-193
1
インテル ® Fortran ライブラリ・リファレンス
例
ケース 1
V が配列 [1, 2, 3, 4, 5, 6] であるとき、EOSHIFT(V,
SHIFT = 3) によって V の要素が左に 3 つシフトし
て、端から外にはみ出した要素が捨てられ、値が
[4, 5, 6, 0, 0, 0] になります。
EOSHIFT(V, SHIFT = -2, BOUNDARY = 99)
によって、要素が右に 2 つシフトし、端から外に
はみ出した要素が捨てられ、境界値 99 が取り込ま
れて、値が [99, 99, 1, 2, 3, 4] になります。
ケース 2
2 次元配列の行はすべて、同じ量または異なる量
だけシフトすることができ、それぞれが同じ境界
値または異なる境界値を持つことができます。M
が次の配列、
A B C
D E F
G H I
である場合、EOSHIFT(M, SHIFT = -1,
BOUNDARY = '*', DIM = 2) の値は、
*AB
*DE
*GH
であり、EOSHIFT(M, SHIFT = (/ -1, 1, 0
/),BOUNDARY = (/ '*', '/', '?' /), DIM
= 2) の値は、
* A B
E F /
G H I
です。
1-194
組み込み手続き
1
EPSILON(X)
意味
引数と同じ型および同じ種別型パラメータのモデルにおける、1 と
比較してほとんど無視できる正の数を返します。
分類
問い合わせ関数
引数
X は、実数型でなければなりません。値は、スカラまたは配列とし
ます。
結果の型、型パラメータ、および形状
X と同じ型および同じ種別型パラメータのスカラとします。
結果の値
結果の値は、b1-p とします。ここで、b と p は、X と同じ型および
同じ種別型パラメータのモデルにおける「実数モデル」の項で定義
した値とします。
例
「実数モデル」の項で説明したモデルの実数 X に対して、
EPSILON(X) の値は 2-23 になります。
Y の種別型パラメータが HIGH であるとき、EPSILON(Y) の値は、種
別が HIGH のモデルに対して p が 48 であれば、2-52 になります。
1-195
1
インテル ® Fortran ライブラリ・リファレンス
EXP(X)
意味
指数関数
分類
要素別処理関数
引数
X は、実数型または複素数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、ex の処理系依存の近似値とします。X が複素数型のと
き、虚部の値はラジアンの単位とします。
例
EXP(1.0) の値は 2.7182818 です。
EXP(2.0_HIGH/3.0) の値は 1.9477340410547 であり、種別は HIGH
です。
1-196
組み込み手続き
1
EXPONENT(X)
意味
引数の値がモデルの数として表現されているとき、指数部を返しま
す。
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型
基本整数型とします。
結果の値
X が 0.0 ではなく、指数部 e が基本整数型の範囲内にあるとき、
結果の
値は X の値をモデルの数で表現したときの指数部 e とします (「実
数モデル」の項を参照してください )。処理系が e を基本整数型で
表現できないときの結果は規定しません。X が 0.0 のとき、
EXPONENT(X) の値は 0 とします。
例
「実数モデル」の項で説明したモデルの実数に対して、
EXPONENT(1.0) の値は 1 になり、EXPONENT(4.1) の値は 3 になり
ます。
1-197
1
インテル ® Fortran ライブラリ・リファレンス
FLOOR(A)
意味
引数の値以下で最大の整数を返します。
分類
要素別処理関数
引数
A は、実数型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
結果の値は、A 以下で最大の整数とします。処理系がこの値を基本
整数型で表現できないときの結果は規定しません。
例
FLOOR(3.7) の値は 3 です。
FLOOR(-3.7) の値は –4 です。
FLOOR(10.0_HIGH/3) の値は 3 です。
1-198
組み込み手続き
1
FRACTION(X)
意味
引数の値をモデルの数として表現したときの小数部を返します。
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は X × b-e とします。ここで、b と e は「実数モデル」の
項で定義した値とします。X が 0.0 であるとき、結果の値は 0.0 と
します。
例
「実数モデル」の項で説明したモデルの実数に対して、
FRACTION(3.0) の値は 0.75 になります。
1-199
1
インテル ® Fortran ライブラリ・リファレンス
FREE(A)
意味
現在割り当てられているメモリブロックを解放します。
分類
非標準の要素別サブルーチン
引数
A は、IA-32 システムの場合は INTEGER(4) 型、Itanium ベースのシ
ステムの場合は INTEGER(8) 型でなければなりません。この値は、
メモリ解放の開始アドレスで、事前に MALLOC により割り当てら
れます。
解放アドレスが事前に MALLOC (I) により割り当てられていない場
合、またはアドレスが一回以上解放されている場合、結果は予測不
可能となります。
例
INTEGER(4) ADDR, SIZE.
SIZE = 1024
ADDR = MALLOC(SIZE)
! Allocate the memory
CALL FREE(ADDR)
! Free it
END
1-200
! Size in bytes
組み込み手続き
1
HFIX(A)
意味
INTEGER(2) 型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型、実数型、倍精度型、または複素数型でなければなり
ません。
結果
INTEGER(2) 型とします。
例
HFIX(9.897) は、INTEGER(2) 型の 9 です。
HFIX(9.125) は、INTEGER(2) 型の 9 です。
次のコードによって、b が 34 に設定されます。
INTEGER(2) b
COMPLEX p
p = (34.5, 1.0)
b = HFIX(p)
1-201
1
インテル ® Fortran ライブラリ・リファレンス
HUGE(X)
意味
引数と同じ型および同じ種別型パラメータのモデルにおける最大の
数値を返します。
分類
問い合わせ関数
引数
X は、整数型または実数型でなければなりません。値は、スカラま
たは配列とします。
結果の型、型パラメータ、および形状
X と同じ型および同じ種別型パラメータのスカラとします。
結果の値
X が整数型のとき、結果の値は rq - 1 とします。また、X が実数型のと
きは、
e
( 1 – b – p )b max
です。ここで、r、q、b、p、および emax は、「実数モデル」の項
で定義した値とします。
例
「実数モデル」の項で説明したモデルの実数 X に対して、HUGE(X)
の値は、(1 - 2-24) × 2127 になります。
1-202
組み込み手続き
1
IABS(A)
整数式の絶対値を返します。
意味
IABS は、INTEGER*2 式の絶対値を返します。
分類
要素別処理関数
引数
A は、INTEGER*2 型の値または式でなければなりません。
結果の値
A が正または 0 であるときは、A の値が返されます。A が負であるとき
は、A と同じ絶対値を持つ正の値が返されます。
出力
A の絶対値とします。
IACHAR(C)
意味
ASCII 大小順序における文字の位置を返します。
分類
要素別処理関数
1-203
1
インテル ® Fortran ライブラリ・リファレンス
引数
C は、長さ 1 の基本文字型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
ISO 646: 1983 (" Information technology -ISO 7-bit coded character set for
information interchange") が 規定する符号体系によって定義された大
小順序中に C がある場合、結果の値は、その大小順序中の文字 C の
位置とし、不等式 (0 ≤ IACHAR(C) ≤ 127) を満たします。
C が ASCII 大小順序中にない場合、処理系依存の値を返します。結果
の値を大小比較した式の値は、文字列大小比較関数 LGE、LGT、
LLE、および LLT の結果と一致します。例えば、LLE(C, D) が
.TRUE. であるとき、IACHAR(C) .LE. IACHAR(D) は .TRUE. と
します。ここで、C と D は処理系が表現可能な任意の文字です。
例
IACHAR('X') の値は 88 です。
IACHAR('*') の値は 42 です。
IADDR(X)
意味
X のアドレスを返します。
分類
非標準の問い合わせ関数
1-204
組み込み手続き
1
引数
X は、どの型でもかまいません。
結果の型
結果は、基本整数型とします。
例については、「BADDRESS(X)」の項を参照してください。
IAND(I, J)
意味
ビットごとの論理積
分類
要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
1-205
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J を組み合わせ
ることによって得られる値とします。
J
IAND(I, J)
1
I
1
1
1
0
0
0
1
0
0
0
0
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
IAND(1, 3) の値は 1 です。
IAND(2_SHORT, 10_SHORT) の値は 2 であり、種別は SHORT です。
IBCLR(I, POS)
意味
1 つのビットを 0 に設定します。
分類
要素別処理関数
引数
1-206
I
整数型でなければなりません。
POS
整数型でなければなりません。値は、0 以上
BIT_SIZE(I) 未満でなければなりません。
組み込み手続き
1
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、I の第 POS ビットを 0 にセットする場合以外は I の
ビット列とします。整数値をビット列として解釈するモデルについ
ては、「ビットモデル」の項を参照してください。
例
IBCLR(14, 1) の値は 12 です。
V の値が (1, 2, 3, 4) であるとき、IBCLR(POS = V, I = 31) の値は
[29, 27, 23, 15] になります。
IBCLR((/ 15_SHORT, 31_SHORT, 7_SHORT /), 3) の値は [7,
23, 7] であり、種別は SHORT です。
IBITS(I, POS, LEN)
意味
ビットの並びを取り出します。
分類
要素別処理関数
引数
I
整数型でなければなりません。
POS
整数型でなければならず、POS + LEN が
BIT_SIZE(I) 以下の負ではない。
LEN
整数型で、負ではない値。
1-207
1
インテル ® Fortran ライブラリ・リファレンス
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、I の第 POS ビットから始まる LEN 個のビットを右詰
めし、残りのビットを 0 にした値とします。整数値をビット列とし
て解釈するモデルについては、「ビットモデル」の項を参照してく
ださい。
例
IBITS(14, 1, 3) の値は 7 です。
IBITS((/ 15_SHORT, 31_SHORT, 7_SHORT /), 2_SHORT,
3_SHORT) の値は [3, 7, 1] であり、種別は SHORT です。
IBSET(I, POS)
意味
1 つのビットを 1 にセットします。
分類
要素別処理関数
引数
I
整数型でなければなりません。
POS
整数型で、値は、0 以上 BIT_SIZE(I) 未満でなけ
ればなりません。
結果の型および型パラメータ
I と同じとします。
1-208
組み込み手続き
1
結果の値
結果の値は、I の第 POS ビットを 1 にセットする場合以外は I の
ビット列とします。整数値をビット列として解釈するモデルについ
ては、「ビットモデル」の項を参照してください。
例
IBSET(12, 1) の値は 14 です。
V の値が [1, 2, 3, 4] であるとき、IBSET(POS = V, I = 0) の値は [2,
4, 8, 16] になります。
IBSET((/ 15_SHORT, 31_SHORT, 7_SHORT /), 3)の値は[15,
31, 15] であり、種別は SHORT です。
ICHAR(C)
意味
引数にした文字の種別型パラメータに対応する処理系大小順序にお
ける文字の位置を返します。
分類
要素別処理関数
引数
C は、長さ 1 の文字型で、値が処理系で表現可能な文字でなければな
りません。
結果の型および型パラメータ
基本整数型とします。
1-209
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
結果の値は、C の種別型パラメータに対応する処理系大小順序中の
C の位置とし、0 ≤ IACHAR(C) ≤ n-1 の範囲の値とします。ここで、
n はその処理系大小順序における文字の個数とします。
処理系で表現可能な任意の文字 C および D に対して、ICHAR(C)
.LE. ICHAR(D)が.TRUE. のとき、およびそのときに限り C. LE.
D が .TRUE. になり、ICHAR(C). EQ. ICHAR(D) が .TRUE. のと
き、およびそのときに限り C. EQ. D が .TRUE. になります。
例
ICHAR('X') の値は、基本文字型に対して ASCII 大小順序を使用す
る処理系では 88 になります。
ICHAR('*') の値は、同様の処理系で 42 になります。
IDIM(X, Y)
意味
整数型の正の差分
分類
非標準の関数
引数
X
整数型でなければなりません。
Y
X と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
X と同じ種別型パラメータの整数型とします。
1-210
組み込み手続き
1
結果の値
X>Y の場合、IDIM(X, Y) は X-Y とします。X≤Y の場合、IDIM(X,
Y) は 0 とします。
例
IDIM(89, 12) の値は 77 です。
IDIM(56, 59) の値は 0 です。
IEOR(I, J)
意味
ビットごとの排他的論理和
分類
要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
1-211
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J を組み合わせ
ることによって得られる値とします。
I
J
IEOR(I, J)
1
1
0
1
0
1
0
1
1
0
0
0
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
IEOR(1, 3) の値は 2 です。
IEOR( (/ 3_SHORT, 10_SHORT /), 2_SHORT)の値は[1, 8]であ
り、種別は SHORT です。
IJINT(A)
意味
INTEGER(2) 型に変換します。
分類
非標準の要素別処理関数
引数
A は、INTEGER(4) 型でなければなりません。
1-212
組み込み手続き
1
結果
INTEGER(2) 型とします。
例
IJINT(32) は、INTEGER(2) 型の 32 です。
IMAG(A)
意味
複素数の虚部
分類
非標準の要素別処理関数
引数
A は、複素数型または倍精度複素数型でなければなりません。
結果
A が複素数型の場合、実数型とします。A が倍精度複素数型の場合、
倍精度型とします。
例
次のコードによって、x が 2.0 に設定されます。
COMPLEX p
REAL x
p = (39.61, 2.0)
x = IMAG(p)
1-213
1
インテル ® Fortran ライブラリ・リファレンス
INDEX(STRING, SUBSTRING, BACK)
省略可能な引数
BACK
意味
文字列中の部分列の開始位置を返します。
分類
要素別処理関数
引数
STRING
文字型でなければなりません。
SUBSTRING
STRING と同じ種別型パラメータの文字型で
なければなりません。
BACK(省略可能)
論理型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
ケース 1
BACK に .FALSE. を指定するかまたは省略した場
合、結果の値は、STRING(I : I +
LEN(SUBSTRING) - 1) = SUBSTRING となる I
の正の最小値とし、この値がないときは 0 としま
す。
LEN(STRING) < LEN(SUBSTRING) であるとき
は 0 を返し、LEN(SUBSTRING)=0 であるときは
1 を返します。
1-214
組み込み手続き
ケース 2
1
BACK に .TRUE. を指定した場合、結果の値は、
STRING(I : I + LEN(SUBSTRING) -1) =
SUBSTRING となる I の最大値とし、この値がない
ときは 0 とします。結果の値は、LEN(STRING)
- LEN(SUBSTRING)+1 以下になります。
LEN(STRING) < LEN(SUBSTRING) であるとき
は 0 を返し、LEN(SUBSTRING)=0 であるときは
LEN(STRING)+1 を返します。
例
INDEX('FORTRAN', 'R') の値は 3 です。
INDEX('FORTRAN', 'R', BACK = .TRUE.) の値は 5 です。
INDEX("XXX", "") の値は 1 です。
INDEX("XXX", "", BACK=.TRUE.) の値は 4 です。
INT(A, KIND)
省略可能な引数
KIND
意味
整数型に変換します。
分類
要素別処理関数
引数
A
整数型、実数型、または複素数型でなければ
なりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
1-215
1
インテル ® Fortran ライブラリ・リファレンス
結果の型および型パラメータ
整数型とします。KIND を指定したとき、種別型パラメータは KIND
の指定に従います。KIND を省略したとき、種別型パラメータは基
本整数型のものとします。
結果の値
ケース 1
A が整数型の場合、INT(A) = A とします。
ケース 2
A が実数型の場合、|A| <1 であるとき、INT(A)
は 0 とします。|A|≥ 1 であるとき、INT(A) の値
は A の絶対値以下で最大の整数に A の符号を付け
たものとします。
ケース 3
A が複素数型の場合、INT(A) の値は A の実部に
ケース 2 の規則を適用して得られる値とします。
処理系が結果の値を指定された整数型で表現でき
ないときの結果は規定しません。
例
INT(-3.7) の値は –3 です。
INT(9.1_HIGH/4.0_HIGH, SHORT) の値は 2 であり、種別は
SHORT です。
INT1(A)
意味
INTEGER(1) 型に変換します。
分類
非標準の要素別処理関数
1-216
組み込み手続き
1
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果
INTEGER(1) 型とします。A が複素数型の場合、INT1(A) は A の切
り捨てられた実部とします。
例
INT1(6.23) の値は、INTEGER(1) 型の 6 です。
INT2(A)
意味
INTEGER(2) 型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果
INTEGER(2) 型とします。A が複素数型の場合、INT2(A) は A の切
り捨てられた実部とします。
例
INT2(212.4545) の値は、INTEGER(2) 型の 212 です。
1-217
1
インテル ® Fortran ライブラリ・リファレンス
INT4(A)
意味
INTEGER(4) 型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
結果
INTEGER(4) 型とします。A が複素数型の場合、INT4(A) は A の切
り捨てられた実部とします。
例
INT4(1988.74) の値は、INTEGER(4) 型の 1988 です。
INT8(A)
意味
INTEGER(8) 型に変換します。
分類
非標準の要素別処理関数
引数
A は、整数型、実数型、または複素数型でなければなりません。
1-218
組み込み手続き
1
結果
INTEGER(8) 型とします。A が複素数型の場合、INT8(A) は A の切
り捨てられた実部とします。
例
INT8(14.14) の値は、INTEGER(8) 型の 14 です。
INUM(I)
意味
文字型を INTEGER(2) 型に変換します。
分類
非標準の要素別処理関数
引数
I は、文字型でなければなりません。
結果
INTEGER(2) 型とします。
例
INUM("451.92") の値は、INTEGER(2) 型の 451 です。
1-219
1
インテル ® Fortran ライブラリ・リファレンス
IOR(I, J)
意味
ビットごとの論理和
分類
要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J を組み合わせ
ることによって得られる値とします。
I
J
IOR(I, J)
1
1
1
1
0
1
0
1
1
0
0
0
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
1-220
組み込み手続き
1
IQINT(A)
意味
整数型に変換します。
分類
非標準の要素別処理関数
引数
A は、REAL(16) 型でなければなりません。
結果
整数型とします。
例
IQINT(9416.39) の値は 9416 です。
ISHFT(I, SHIFT)
意味
論理シフトを行います。
分類
要素別処理関数
1-221
1
インテル ® Fortran ライブラリ・リファレンス
引数
I
整数型でなければなりません。
SHIFT
整数型で、絶対値が BIT_SIZE(I) 以下でなけれ
ばなりません。
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、I のビットを SHIFT 位置だけシフトして得られる値
とします。
SHIFT が正である場合、シフトは左方向に行います。SHIFT が負で
ある場合、シフトは右方向に行います。SHIFT が 0 である場合、シ
フトは行いません。左端または右端から外にはみ出したビットは捨
てられ、反対側の端に 0 が入ります。
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
ISHFT(3, 1) の値は 6 です。
ISHFT(3, -1) の値は 1 です。
ISHFTC(I, SHIFT, SIZE)
省略可能な引数
SIZE
意味
右端のビット並びの循環シフトを行います。
1-222
組み込み手続き
1
分類
要素別処理関数
引数
I
整数型でなければなりません。
SHIFT
整数型で、SHIFT の絶対値が SIZE 以下でな
ければなりません。
SIZE(省略可能)
整数型でなければなりません。SIZE の値は、
正でなければならず、BIT_SIZE(I) 以下で
なければなりません。SIZE を省略したと
き、BIT_SIZE(I) の値を指定したものとみ
なします。
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、I の右端の SIZE 個のビットを SHIFT 位置だけ循環シ
フトして得られる値とします。
SHIFT が正である場合、循環シフトは左方向に行います。SHIFT が
負である場合、循環シフトは右方向に行います。SHIFT が 0 である
場合、循環シフトは行いません。どのビットも捨てられることはあ
りません。循環シフトしないビットは変わりません。
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
ISHFTC(3, 2, 3) の値は 5 です。
1-223
1
インテル ® Fortran ライブラリ・リファレンス
ISIGN(A, B)
意味
A の絶対値と B の符号の積
分類
非標準の要素別処理関数
引数
A
整数型でなければなりません。
B
A と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
A と同じとします。
結果の値
結果の値は、B ≥ 0 であるとき |A| とし、B <0 であるとき -|A| と
します。
例
ISIGN(-3, 0) の値は 3 です。
ISIGN(12, -9) の値は –12 です。
1-224
組み込み手続き
1
ISNAN(X)
意味
値が NaN(数値ではありません)であるかを判定します。
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型
論理型とします。
例
ISNAN(45.4) は、.FALSE. です。
ISNAN(ACOSH(0.0)) は、.TRUE. です。
IXOR(I, J)
意味
排他的論理和
分類
非標準の要素別処理関数
1-225
1
インテル ® Fortran ライブラリ・リファレンス
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J の排他的論理
和をとることによって得られる値とします。
I
J
IXOR(I, J)
1
1
0
1
0
1
0
1
1
0
0
0
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
IXOR(12, 7)の値は11です(2進数1100と2進数0111との排他的論理
和は、2 進数 1011)。
1-226
組み込み手続き
1
JNUM(I)
意味
文字型を整数型に変換します。
分類
非標準の要素別処理関数
引数
I は、文字型でなければなりません。
結果
整数型とします。
例
JNUM("46616.725") の値は 46616 です。
KIND(X)
意味
X の種別型パラメータ値を返します。
分類
問い合わせ関数
1-227
1
インテル ® Fortran ライブラリ・リファレンス
引数
X は、どの組み込み型でもかまいません。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、X の種別型パラメータ値とします。
例
KIND(0.0) の値は、基本実数型の種別型パラメータ値になります。
KIND(1.0_HIGH) の値は、名前付き定数 HIGH の値になります。
LBOUND(ARRAY, DIM)
省略可能な引数
DIM
意味
配列のすべての次元の下限または指定した次元の下限を返します。
分類
問い合わせ関数
引数
ARRAY
1-228
どの型でもかまいません。スカラであってはなり
ません。空状態のポインタまたは割り付けられて
いない割り付け配列であってはなりません。
組み込み手続き
1
DIM(省略可能)整数型スカラで、1 ≤DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は ARRAY の次元数とし
ます。対応する実引数は、省略可能な仮引数で
あってはなりません。
結果の型、型パラメータ、および形状
結果は、基本整数型とします。結果は、DIM を指定したときはスカ
ラとし、省略したときは大きさ n の 1 次元配列とします。ここで、
n は ARRAY の次元数とします。
結果の値
ケース 1
LBOUND(ARRAY, DIM) の値は、ARRAY が部分配
列または配列式であって、全体配列および配列構
造体成分ではない場合、1 とします。全体配列ま
たは配列構造体成分である場合、
LBOUND(ARRAY, DIM) の値は次のようになるも
のとします。
• ARRAYのDIM番目の次元の大きさが0でないと
き、または ARRAY が DIM 次元の大きさ引き
継ぎ配列であるときは、ARRAY の添字 DIM の
下限値とします。
または、
•
ケース 2
DIM 番目の次元の大きさが 0 であるときは 1 と
します。
LBOUND(ARRAY) の i 番目 (i= 1, 2, ..., n) の要素の
値は、LBOUND(ARRAY, i) とします。ここで、n
は ARRAY の次元数とします。
例
次の文
REAL, TARGET :: A (2:3, 7:10)
REAL, POINTER, DIMENSION (:,:) :: B, C, D
B => A
C => A(:,:)
ALLOCATE ( D(-3:3,-7:7) )
1-229
1
インテル ® Fortran ライブラリ・リファレンス
を処理すると、LBOUND(A) は [2, 7]、LBOUND(A, DIM=2) は 7、
LBOUND(B) は [2, 7]、LBOUND(C) は [1, 1]、LBOUND(D) は [–3, –7] に
なります。
LEN(STRING)
意味
文字型要素の長さを返します。
分類
問い合わせ関数
引数
STRING は、文字型で、値はスカラまたは配列でなければなりませ
ん。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、STRING がスカラである場合、STRING 中の文字数と
し、STRING が配列である場合、STRING の要素中の文字数としま
す。
例
C および D が次の文
CHARACTER (11) C(100)
CHARACTER (LEN=31) D
によって宣言されると、LEN(C) の値は 11、LEN(D) の値は 31 に
なります。
1-230
組み込み手続き
1
LEN_TRIM(STRING)
意味
末尾の空白を除いた文字引数の長さを返します。
分類
要素別処理関数
引数
STRING は、文字型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
結果の値は、STRING の末尾の空白をすべて取り除いた後の、残っ
た文字の個数とします。引数が空白以外の文字を 1 つも持たないと
き、結果の値は 0 とします。
例
LEN_TRIM(’bAbBbb’) の値は 4 です。
LEN_TRIM(’bbb’) の値は 0 です。
1-231
1
インテル ® Fortran ライブラリ・リファレンス
LGE(STRING_A, STRING_B)
意味
ASCII 大小順序に基づいて文字列が辞書的にもう 1 つの文字列以上
であるかどうかを判定します。
分類
要素別処理関数
引数
STRING_A
基本文字型でなければなりません。
STRING_B
基本文字型でなければなりません。
結果の型および型パラメータ
基本論理型とします。
結果の値
文字列の長さが等しくない場合、短いほうの文字列の右側に、長い
方の文字列の長さまで空白があるものとみなして、比較を行いま
す。
どちらかの文字列に ASCII 文字集合に含まれない文字があったとき
の結果は、処理系依存とします。
結果の値は、文字列が等しいかまたは ASCII 大小順序に基づいて辞
書的に STRING_A が STRING_B の後になるとき .TRUE. とし、そ
れ以外のとき .FALSE. とします。STRING_A および STRING_B の
両方とも長さが 0 である場合、結果の値は .TRUE. とします。
例
LGE('apple', 'beans') の値は、.FALSE. です。
LGE('apple', 'applesauce') の値は、.FALSE. です。
LGE('Zebra', 'Yak') の値は、.TRUE. です。
1-232
組み込み手続き
1
LGT(STRING_A, STRING_B)
意味
ASCII 大小順序に基づいて文字列が辞書的にもう 1 つの文字列より
大きいかどうかを判定します。
分類
要素別処理関数
引数
STRING_A
基本文字型でなければなりません。
STRING_B
基本文字型でなければなりません。
結果の型および型パラメータ
基本論理型とします。
結果の値
文字列の長さが等しくない場合、短いほうの文字列の右側に、長い
方の文字列の長さまで空白があるものとみなして、比較を行いま
す。
どちらかの文字列に ASCII 文字集合に含まれない文字があったとき
の結果は、処理系依存とします。
結果の値は、ASCII 大小順序に基づいて辞書的に STRING_A が
STRING_B の後になるとき .TRUE. とし、それ以外のとき .FALSE.
とします。STRING_A および STRING_B の両方とも長さが 0 であ
る場合、結果の値は .TRUE. とします。
例
LGT('apple', 'beans') の値は、.FALSE. です。
LGT('apple', 'applesauce') の値は、.FALSE. です。
LGT('Zebra', 'Yak') の値は、.TRUE. です。
1-233
1
インテル ® Fortran ライブラリ・リファレンス
LLE(STRING_A, STRING_B)
意味
ASCII 大小順序に基づいて文字列が辞書的にもう 1 つの文字列以下
であるかどうかを判定します。
分類
要素別処理関数
引数
STRING_A
基本文字型でなければなりません。
STRING_B
基本文字型でなければなりません。
結果の型および型パラメータ
基本論理型とします。
結果の値
文字列の長さが等しくない場合、短いほうの文字列の右側に、長い
方の文字列の長さまで空白があるものとみなして、比較を行いま
す。
どちらかの文字列に ASCII 文字集合に含まれない文字があったとき
の結果は、処理系依存とします。
結果の値は、文字列が等しいかまたは ASCII 大小順序に基づいて辞
書的に STRING_A が STRING_B の前になるとき .TRUE. とし、そ
れ以外のとき .FALSE. とします。STRING_A および STRING_B の
両方とも長さが 0 である場合、結果の値は .TRUE. とします。
例
LLE('apple', 'beans') の値は、.TRUE. です。
LLE('apple', 'applesauce') の値は、.TRUE. です。
LLE('Zebra', 'Yak') の値は、.FALSE. です。
1-234
組み込み手続き
1
LLT(STRING_A, STRING_B)
意味
ASCII 大小順序に基づいて文字列が辞書的にもう 1 つの文字列より
小さいかどうかを判定します。
分類
要素別処理関数
引数
STRING_A
基本文字型でなければなりません。
STRING_B
基本文字型でなければなりません。
結果の型および型パラメータ
基本論理型とします。
結果の値
文字列の長さが等しくない場合、短いほうの文字列の右側に、長い
方の文字列の長さまで空白があるものとみなして、比較を行いま
す。
どちらかの文字列に ASCII 文字集合に含まれない文字があったとき
の結果は、処理系依存とします。
結果の値は、ASCII 大小順序に基づいて辞書的に STRING_A が
STRING_B の前になるとき .TRUE. とし、それ以外のとき .FALSE.
とします。STRING_A および STRING_B の両方とも長さが 0 であ
る場合、結果の値は .FALSE. とします。
例
LLT('apple', 'beans') の値は、.TRUE. です。
LLT('apple', 'applesauce') の値は、.TRUE. です。
LLT('Zebra', 'Yak') の値は、.FALSE. です。
1-235
1
インテル ® Fortran ライブラリ・リファレンス
LOC(X)
意味
引数のアドレスを返します。
分類
非標準の問い合わせ関数
詳細については、85 ページの「LOC」を参照してください。
LOG(X)
意味
自然対数
分類
要素別処理関数
引数
X は、実数型または複素数型でなければなりません。X が実数型のと
き、値は正でなければなりません。X が複素数型のとき、値は 0.0
であってはなりません。
結果の型および型パラメータ
X と同じとします。
1-236
組み込み手続き
1
結果の値
結果の値は、logex の処理系依存の近似値とします。複素数型の結
果の値は、-π<ω≤π の範囲にある虚部 ω を持つ主値とします。結果
の虚部は、引数の実部が負で虚部が 0.0 であるときに限り、π とし
ます。
例
LOG(10.0) の値は 2.3025851 です。
LOG((-0.5_HIGH,0)) の値は次のとおりです。
–0.69314718055994 + 3.1415926535898 i、種別は HIGH。
LOG10(X)
意味
常用対数
分類
要素別処理関数
引数
X は、実数型で、値が正でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、log10X の処理系依存の近似値とします。
例
LOG10(10.0) の値は 1.0 です。
1-237
1
インテル ® Fortran ライブラリ・リファレンス
LOG10(10.0E1000_HIGH) の値は 1001.0 であり、種別は HIGH です。
LOGICAL(L, KIND)
省略可能な引数
KIND
意味
論理型の種別型パラメータを変換します。
分類
要素別処理関数
引数
L
論理型でなければなりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
論理型とします。KIND を指定したとき、種別型パラメータは KIND
の指定に従います。KIND を省略したとき、種別型パラメータは基
本論理型のものとします。
結果の値
結果の値は、L のものとします。
例
LOGICAL(L .OR. .NOT. L) の値は .TRUE. であり、論理変数 L の
種別型パラメータに関係なく基本論理型です。
LOGICAL(L, BIT) の種別型パラメータは BIT であり、L と同じ値
です。
1-238
組み込み手続き
1
LSHFT(I, SHIFT)
意味
左方向にシフトします。
分類
非標準の要素別処理関数
詳細については、89 ページの「LSHFT」を参照してください。
LSHIFT(I, SHIFT)
意味
左方向にシフトします。
分類
非標準の要素別処理関数
詳細については、90 ページの「LSHIFT」を参照してください。
1-239
1
インテル ® Fortran ライブラリ・リファレンス
MALLOC (I)
意味
メモリブロックを割り当てます。この非標準の関数には関連付けら
れる汎用関数がありません。実引数として渡してはいけません。
分類
非標準の要素別処理関数
引数
整数型でなければなりません。この値は、割り当てられる
メモリのサイズ ( バイト単位 ) です。
結果の型
この結果の型は、IA-32 システムの場合は INTEGER(4)、Itanium
ベースのシステムの場合は INTEGER(8) です。この結果は、割り
当てられたメモリの開始アドレスです。割り当てられたメモリは、
「FREE(A)」組み込み関数を使用して解放できます。
例
INTEGER(4) ADDR, SIZE.
SIZE = 1024
! Size in bytes
ADDR = MALLOC(SIZE)
! Allocate the memory
CALL FREE(ADDR)
! Free it
END
1-240
組み込み手続き
1
MATMUL(MATRIX_A, MATRIX_B)
意味
数値型行列または論理型行列の乗算を実行します。
分類
変形関数
引数
MATRIX_A
数値型(整数型、実数型、または複素数型)また
は論理型でなければなりません。値は、1 次元配
列または 2 次元配列でなければなりません。
MATRIX_B
MATRIX_A が数値型のとき、MATRIX_B も数値型
でなければならず、MATRIX_A が論理型のとき、
MATRIX_B も論理型でなければなりません。値は、
1 次元配列または 2 次元配列でなければなりませ
ん。
MATRIX_A が 1 次元配列の場合、MATRIX_B は 2 次元配列でなければ
なりません。MATRIX_B が 1 次元配列の場合、MATRIX_A は 2 次元
配列でなければなりません。MATRIX_B の最初(またはただ 1 つ)
の次元の大きさは、MATRIX_A の最後(またはただ 1 つ)の次元の
大きさに等しくなければなりません。
結果の型、型パラメータ、および形状
引数が数値型のとき、結果の型および種別型パラメータは、
MATRIX_A および MATRIX_B の型によって決まります。
引数が論理型のとき、結果は引数の種別型パラメータを持つ論理型
とします。
結果の形状は、次のように引数の形状に依存します。
1-241
1
インテル ® Fortran ライブラリ・リファレンス
ケース 1
MATRIX_A の形状が [n, m] であり、MATRIX_B の
形状が [m, k] である場合、結果の形状は [n, k] と
します。
ケース 2
MATRIX_A の形状が [m] であり、MATRIX_B の形
状が [m, k] である場合、結果の形状は [k] としま
す。
ケース 3
MATRIX_A の形状が [n, m] であり、MATRIX_B の
形状が [m] である場合、結果の形状は [n] としま
す。
結果の値
1-242
ケース 1
引数が数値型のとき、結果の要素 (i, j) の値は
SUM(MATRIX_A(i,:) * MATRIX_B(:, j)) と
します。引数が論理型のとき、値は
ANY(MATRIX_A(i, :) .AND.
MATRIX_B(:,j)) とします。
ケース 2
引数が数値型のとき、結果の要素 (j) の値は
SUM(MATRIX_A(:) * MATRIX_B(:, j)) とし
ます。引数が論理型のとき、値は
ANY(MATRIX_A(:) .AND. MATRIX_B(:, j))
とします。
ケース 3
引数が数値型のとき、結果の要素 (i) の値は
SUM(MATRIX_A(i, :) * MATRIX_B(:)) とし
ます。引数が論理型のとき、値は
ANY(MATRIX_A(i, :) .AND. MATRIX_B(:))
とします。
組み込み手続き
1
例
A が配列
1 2 3
2 3 4
B が配列
12
23
34
であるとき、X はベクトル [1, 2]、Y はベクトル [1, 2, 3] になります。
ケース 1
MATMUL(A, B) の結果は、行列と行列を乗算した
AB であり、次の値を持ちます。
14 20
20 29
ケース 2
MATMUL(X, A) の結果は、ベクトルと行列を乗算
した XA であり、値は [5, 8, 11] になります。
ケース 3
MATMUL(A, Y) の結果は、行列とベクトルを乗算
した AY であり、値は [14, 20] になります。
MAX(A1, A2, A3, ...)
省略可能な引数
A3、...
意味
最大値を選択します。
1-243
1
インテル ® Fortran ライブラリ・リファレンス
分類
要素別処理関数
引数
引数は、すべて同じ整数型または実数型でなければならず、すべて
同じ種別型パラメータでなければなりません。
結果の型および型パラメータ
引数と同じとします。
結果の値
結果の値は、最大の引数の値とします。
例
MAX(-9.0, 7.0, 2.0) の値は 7.0 です。
MAX(-1.0_HIGH/3, -0.1_HIGH) は、-0.1_HIGH です。
MAXEXPONENT(X)
意味
引数と同じ型および同じ種別型パラメータのモデルで最大の指数を
返します。
分類
問い合わせ関数
引数
X は、実数型でなければなりません。値は、スカラまたは配列とし
ます。
1-244
組み込み手続き
1
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、「実数モデル」の項で定義した値 emax とします。
例
「実数モデル」の項で説明したモデルの実数 X に対して、
MAXEXPONENT(X) の値は 128 になります。
MAXLOC(ARRAY, MASK)
省略可能な引数
MASK
意味
MASK によって指定された ARRAY の要素のうち、最大の値を持つ最
初の要素の位置を返します。
分類
変形関数
引数
ARRAY
整数型または実数型でなければならず、スカ
ラであってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
1-245
1
インテル ® Fortran ライブラリ・リファレンス
結果の型、型パラメータ、および形状
結果は、基本整数型とし、ARRAY の次元数に等しい大きさの 1 次元
配列とします。
結果の値
ケース 1
MASK を省略した場合、結果は、ARRAY の全要素
の最大値に等しい要素の各次元の添字値を要素と
する 1 次元配列とします。
返された i 番目の添字は、1 から ei の範囲の値と
します。ここで、ei は ARRAY の i 番目の次元の寸
法とします。
2 個以上の要素が最大値になるとき、添字が返さ
れる要素は配列要素順序で最初の要素とします。
ARRAY の大きさが 0 であるとき、結果の値は処理系
依存とします。
ケース 2
MASK を指定した場合、結果は、MASK 中の
.TRUE. である要素に対応する ARRAY の全要素の
最大値に等しい要素の各次元の添字値を要素とす
る 1 次元配列とします。
返された i 番目の添字は、1 から ei の範囲の値と
します。ここで、ei は ARRAY の i 番目の次元の寸
法とします。
2 個以上の要素が最大値になるとき、添字が返さ
れる要素は配列要素順序で最初の要素とします。
要素がないとき(すなわち、ARRAY の大きさが 0
であるか、または MASK の全要素の値が .FALSE.
であるとき)、結果の値は処理系依存とします。
上記のいずれの場合でも、処理系が結果のある要素の値を基本整数
型で表現することができないとき、その要素は不定とします。
1-246
組み込み手続き
1
例
ケース 1
MAXLOC((/ 2, 6, 4, 6 /)) の値は [2] です。
配列 B が
INTEGER, DIMENSION(4:7) :: B = (/ 8, 6, 3, 1 /)
と宣言されると、MAXLOC(B) の値は [1] になりま
す。
ケース 2
A の値が
0 –5 8 –3
3 4 –1 2
1 5 6 –4
であるとき、MAXLOC(A, MASK =A .LT.6) の値
は [3, 2] になります。A の宣言された下限が 1 以外
のときでも、この値になることに注意してくださ
い。
MAXVAL(ARRAY, DIM, MASK)
省略可能な引数
DIM、MASK
意味
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応する
ARRAY の要素の最大値を調べます。
分類
変形関数
1-247
1
インテル ® Fortran ライブラリ・リファレンス
引数
ARRAY
整数型または実数型でなければならず、スカ
ラであってはなりません。
DIM(省略可能)
整数型スカラで、1 ≤ DIM ≤ n の範囲の値で
なければなりません。ここで、n は ARRAY
の次元数とします。対応する実引数は、省略
可能な仮引数であってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
結果の型、型パラメータ、および形状
結果は、ARRAY と同じ型および同じ種別型パラメータとします。
DIM が省略されているかまたは ARRAY が 1 次元配列であるときは、
ス
カラとします。それ以外のとき、結果は n-1 次元配列とし、形状は
(d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、
(d1, d2, ..., dn) は、ARRAY の形状とします。
結果の値
1-248
ケース 1
MAXVAL(ARRAY) の結果の値は、ARRAY の全要素
中の最大値とします。ただし、ARRAY の大きさが
0 であるときは、ARRAY の型および種別型パラ
メータのモデルに対して処理系が定義している絶
対値が最も大きい負の値とします。
ケース 2
MAXVAL(ARRAY, MASK = MASK) の結果の値は、
MASK 中の .TRUE. である要素と対応している
ARRAY の要素の最大値とします。ただし、
.TRUE. である要素がないときは、ARRAY の型お
よび種別型パラメータのモデルに対して処理系が
定義している絶対値が最も大きい負の値とします。
ケース 3
ARRAY が 1 次元配列のとき、MAXVAL(ARRAY,
DIM [, MASK])の値はMAXVAL(ARRAY [, MASK
= MASK]) の値と同じとします。ARRAY が 2 次元以
上のとき、MAXVAL(ARRAY, DIM [, MASK]) の
要素 (s1, s2, ..., sDIM-1, sDIM+1, ...,
sn) の値は次のとおりとします。
組み込み手続き
1
MAXVAL(ARRAY(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) [,
MASK = MASK(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) ] )
例
ケース 1
MAXVAL((/ 1, 2, 3 /)) の値は 3 です。
ケース 2
MAXVAL(C, MASK = C .LT. 0.0) は、C の負
の要素の最大値となります。
ケース 3
B が配列
1 3 5
2 4 6
であるとき、MAXVAL(B, DIM = 1) は [2, 4, 6]、
MAXVAL(B, DIM = 2) は [5, 6] になります。
MCLOCK()
意味
プログラムに時間アカウンティングを返します。
分類
非標準の問い合わせ関数
結果の型
整数型とします。
結果の値
マイクロセカンド単位で返された値は、現在のプロセスのユーザ時
間と、すべての子プロセスのユーザ時間およびシステム時間の合計
とします。
1-249
1
インテル ® Fortran ライブラリ・リファレンス
MERGE(TSOURCE, FSOURCE, MASK)
意味
MASK の値に従っていずれか一方の値を選択します。
分類
要素別処理関数
引数
TSOURCE
どの型でもかまいません。
FSOURCE
TSOURCE と同じ型および同じ種別型パラメータで
なければなりません。
MASK
論理型でなければなりません。
結果の型および型パラメータ
TSOURCE と同じとします。
結果の値
MASK が .TRUE. のとき、結果の値は TSOURCE とし、MASK が .FALSE.
のとき、結果の値は FSOURCE とします。
例
TSOURCE が配列 1 6 5 、
2 4 6
FSOURCE が配列 0 3 2 、
7 4 8
MASKが配列 T . T
. . T
の場合、
1-250
("T"は.TRUE.、"."は.FALSE.を表します)
組み込み手続き
1
MERGE(TSOURCE, FSOURCE, MASK) は次のようになります。
135
746
MERGE(1.0, 0.0, K > 0) の値は、K = 5 の場合は 1.0、K = –2 の場
合は 0.0 です。
MIN(A1, A2, A3, ...)
省略可能な引数
A3、...
意味
最小値を選択します。
分類
要素別処理関数
引数
引数は、すべて同じ整数型または実数型でなければならず、すべて
同じ種別型パラメータでなければなりません。
結果の型および型パラメータ
引数と同じとします。
結果の値
結果の値は、最小の引数の値とします。
1-251
1
インテル ® Fortran ライブラリ・リファレンス
例
MIN(-9.0, 7.0, 2.0) の値は –9.0 です。
MIN(-0.4_HIGH, -1.0_HIGH/3) は、-0.4_HIGH です。
MINEXPONENT(X)
意味
引数と同じ型および同じ種別型パラメータのモデルで最小の指数を
返します。
分類
問い合わせ関数
引数
X は、実数型でなければなりません。値は、スカラまたは配列とし
ます。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、「実数モデル」の項で定義した値 emin とします。
例
「実数モデル」の項で説明したモデルの実数 X に対して、
MINEXPONENT(X) の値は –125 になります。
1-252
組み込み手続き
1
MINLOC(ARRAY, MASK)
省略可能な引数
MASK
意味
MASK によって指定された ARRAY の要素のうち、最小の値を持つ最
初の要素の位置を返します。
分類
変形関数
引数
ARRAY
整数型または実数型でなければならず、スカ
ラであってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
結果の型、型パラメータ、および形状
結果は、基本整数型とし、ARRAY の次元数に等しい大きさの 1 次元
配列とします。
結果の値
ケース 1
MASK を省略した場合、結果は、ARRAY の全要素
の最小値に等しい要素の各次元の添字値を要素と
する 1 次元配列とします。
返された i 番目の添字は、1 から ei の範囲の値と
します。ここで、ei は ARRAY の i 番目の次元の寸
法とします。
1-253
1
インテル ® Fortran ライブラリ・リファレンス
2 個以上の要素が最小値になるとき、添字が返さ
れる要素は配列要素順序で最初の要素とします。
ARRAY の大きさが 0 であるとき、結果の値は処理系
依存とします。
ケース 2
MASK を指定した場合、結果は、MASK 中の
.TRUE. である要素に対応する ARRAY の全要素の
最小値に等しい要素の各次元の添字値を要素とす
る 1 次元配列とします。
返された i 番目の添字は、1 から ei の範囲の値と
します。ここで、ei は ARRAY の i 番目の次元の寸
法とします。2 個以上の要素が最小値になるとき、
添字が返される要素は配列要素順序で最初の要素
とします。
ARRAY の大きさが 0 であるか、または MASK の全
要素の値が .FALSE. であるとき、結果の値は処
理系依存とします。
上記のいずれの場合でも、処理系が結果のある要素の値を基本整数
型で表現することができないとき、その要素は不定とします。
例
ケース 1
MINLOC((/ 4, 3, 6, 3 /)) の値は [2] です。
配列 B が
INTEGER, DIMENSION(4:7) :: B = (/ 8, 6, 3, 1 /)
と宣言されると、MINLOC(B) の値は [4] になりま
す。
ケース 2
A の値が
0 –5 8 –3
3 4 –1 2
1 5 6 –4
であるとき、MINLOC(A, MASK =A .GT.-4) の
値は [1, 4] になります。A の宣言された下限が 1 以
外のときでも、この値になることに注意してくだ
さい。
1-254
組み込み手続き
1
MINVAL(ARRAY, DIM, MASK)
省略可能な引数
DIM、MASK
意味
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応する
ARRAY の要素の最小値を調べます。
分類
変形関数
引数
ARRAY
整数型または実数型でなければならず、スカ
ラであってはなりません。
DIM(省略可能)
整数型スカラで、1 ≤ DIM ≤ n の範囲の値で
なければなりません。ここで、n は ARRAY
の次元数とします。対応する実引数は、省略
可能な仮引数であってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
結果の型、型パラメータ、および形状
結果は、ARRAY と同じ型および同じ種別型パラメータとします。
DIM が省略されているかまたは ARRAY が 1 次元配列であるときは、
ス
カラとします。それ以外のとき、結果は n-1 次元配列とし、形状は
(d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、
(d1, d2, ..., dn) は、ARRAY の形状とします。
1-255
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
ケース 1
MINVAL(ARRAY) の結果の値は、ARRAY の全要素
中の最小値とします。ただし、ARRAY の大きさが
0 であるときは、ARRAY の型および種別型パラ
メータのモデルに対して処理系が定義している正
の最大値とします。
ケース 2
MINVAL(ARRAY, MASK = MASK) の結果の値は、
MASK 中の .TRUE. である要素と対応している
ARRAY の要素の最小値とします。ただし、
.TRUE. である要素がないときは、ARRAY の型お
よび種別型パラメータのモデルに対して処理系が
定義している正の最大値とします。
ケース 3
ARRAY が 1 次元配列のとき、MINVAL(ARRAY,
DIM [, MASK])の値はMINVAL(ARRAY [, MASK
= MASK]) の値と同じとします。ARRAY が 2 次元以
上のとき、MINVAL(ARRAY, DIM [, MASK]) の
要素 (s1, s2, ..., sDIM-1, sDIM+1, ...,
sn) の値は次のとおりとします。
MINVAL(ARRAY(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) [,
MASK= MASK(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) ] )
例
ケース 1
MINVAL((/ 1, 2, 3 /)) の値は 1 です。
ケース 2
MINVAL(C, MASK = C .GT. 0.0) は、C の正
の要素の最小値となります。
ケース 3
B が配列
1 3 5
2 4 6
であるとき、MINVAL(B, DIM = 1) は [1, 3, 5]、
MINVAL(B, DIM = 2) は [1, 2] になります。
1-256
組み込み手続き
1
MOD(A, P)
意味
余り関数
分類
要素別処理関数
引数
A
整数型または実数型でなければなりません。
P
A と同じ型および同じ種別型パラメータでなけれ
ばなりません。
結果の型および型パラメータ
A と同じとします。
結果の値
P≠0 のとき、結果の値は A - INT(A/ P) * P とします。P= 0 のと
き、結果は処理系依存とします。
例
MOD(3.0, 2.0) の値は 1.0 です。
MOD(8, 5) の値は 3 です。
MOD(-8, 5) の値は –3 です。
MOD(8, -5) の値は 3 です。
MOD(-8, -5) の値は –3 です。
MOD(2.0_HIGH, 3.0_HIGH) の値は、2.0_HIGH です。
1-257
1
インテル ® Fortran ライブラリ・リファレンス
MODULO(A, P)
意味
モジュロ関数
分類
要素別処理関数
引数
A
整数型または実数型でなければなりません。
P
A と同じ型および同じ種別型パラメータでなけれ
ばなりません。
結果の型および型パラメータ
A と同じとします。
結果の値
ケース 1
A が整数型であって P≠0 のとき、MODULO(A, P)
の結果の値は A=Q×P+R となる値 R とします。Q
は、P> 0 のとき、0 ≤ R< P を満たし、P< 0 のと
き、P< R ≤ 0 を満たす整数とします。P= 0 のと
き、結果は処理系依存とします。
ケース 2
A が実数型であって P≠0 のとき、結果の値は A
-FLOOR (A / P) * P とします。P≠ 0 のとき、結
果は処理系依存とします。
例
MODULO(8, 5) の値は 3 です。
MODULO(-8, 5) の値は 2 です。
MODULO(8, -5) の値は –2 です。
MODULO(-8, -5) の値は –3 です。
1-258
組み込み手続き
1
MODULO(3.0, 2.0) の値は 1.0 です。
MODULO(2.0_HIGH, 3.0_HIGH) の値は、2.0_HIGH です。
MVBITS(FROM, FROMPOS, LEN, TO, TOPOS)
意味
1 つのデータ・オブジェクトから他のデータ・オブジェクトにビッ
ト列をコピーします。
分類
要素別処理サブルーチン
引数
FROM
整数型でなければなりません。INTENT(IN) 引数
とします。
FROMPOS
整数型で、負ではない値。INTENT(IN) 引数とし
ます。FROMPOS + LEN は、BIT_SIZE(FROM)
以下でなければなりません。整数値をビット列と
して解釈するモデルについては、「ビットモデル」
の項を参照してください。
LEN
整数型で、負ではない値。INTENT(IN) 引数とし
ます。
TO
FROM と同じ変数か、または FROM と同じ種別型パ
ラメータ値を持つ整変数でなければなりません。
これは、INTENT(INOUT) 引数とします。
FROM の位置 FROMPOS から始まる長さ LEN の
ビット列を TO の位置 TOPOS にコピーします。TO
の他のどのビットも変更されません。戻るとき、
1-259
1
インテル ® Fortran ライブラリ・リファレンス
TOPOS から始まる TO の LEN ビットは、呼び出し時
に FROMPOS から始まる FROM の LEN ビットが
持っていた値に等しくなります。
整数値をビット列として解釈するモデルについて
は、「ビットモデル」の項を参照してください。
TOPOS
整数型で、負ではない値。INTENT(IN) 引数とし
ます。TOPOS + LEN は、BIT_SIZE(TO) 以下で
なければなりません。
例
TO の初期値が 6 のとき、文 CALL MVBITS(7, 2, 2, TO, 0) の後
の TO の値は 5 になります。
次の文
CALL MVBITS (PATTERN, 0_SHORT, 1_SHORT,
PATTERN, 7_SHORT)
を実行すると、種別 SHORT の整変数 PATTERN の先頭ビットが終端
ビットと同じになります。
NEAREST(X, S)
意味
指定された方向で処理系が表現可能な最も近い数を返します。
分類
要素別処理関数
引数
1-260
X
実数型でなければなりません。
S
実数型でなければならず、0.0 であってはなりませ
ん。
組み込み手続き
1
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X とは異なる、S と同符号の無限大の方向で最も X に
近い、処理系が表現可能な数とします。
例
NEAREST(3.0, 2.0) の値は、「実数モデル」の項で説明したモデ
ル表現を持つマシンにおいて、3+2-22 になります。
NINT(A, KIND)
省略可能な引数
KIND
意味
最も近い整数を返します。
分類
要素別処理関数
引数
A
実数型でなければなりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
整数型とします。KIND を指定したとき、種別型パラメータは KIND
の指定に従います。KIND を省略したとき、種別型パラメータは基
本整数型のものとします。
1-261
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
A> 0 のとき、NINT(A) の値は INT(A+ 0.5) とします。A ≤ 0 のと
き、NINT(A) の値は INT(A-0.5) とします。処理系が指定された
整数型の結果を表現することができないときの結果は規定しませ
ん。
例
NINT(2.783) の値は 3 です。
NINT(-1.99999999999_HIGH) の値は –2 です。
NOT(I)
意味
ビットごとの論理否定
分類
要素別処理関数
引数
I は、整数型でなければなりません。
結果の型および型パラメータ
I と同じとします。
1-262
組み込み手続き
1
結果の値
結果の値は、次の真偽表に従ってビットごとに I の論理否定をとる
ことによって得られる値とします。
I
NOT(I)
1
0
0
1
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
I が種別 SHORT の整数で、値が 01010101( 基数 2) に等しいとき、
NOT(I) は 10101010( 基数 2) に等しい値を持ちます。
OR(I, J)
意味
ビットごとの論理和
分類
非標準の要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
1-263
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
結果の値は、次の真偽表に従ってビットごとに I と J の論理和をと
ることによって得られる値とします。
I
J
OR(I, J)
1
1
1
1
0
1
0
1
1
0
0
0
整数値をビット列として解釈するモデルについては、「ビットモデ
ル」の項を参照してください。
例
OR(3, 5) は 7 です (2 進数 0011 と 2 進数 0101 の論理和は 0111)。
PACK(ARRAY, MASK, VECTOR)
省略可能な引数
VECTOR
意味
MASK に従って、配列を 1 次元配列にします。
分類
変形関数
1-264
組み込み手続き
1
引数
ARRAY
どの型でもかまいません。スカラであっては
なりません。
MASK
論理型でなければならず、ARRAY と形状適合
しなければなりません。
VECTOR(省略可能) ARRAYと同じ型および同じ種別型パラメータ
でなければならず、1 次元配列でなければな
りません。VECTOR は、少なくとも MASK 中
の .TRUE. である要素と同数の要素を持た
なければなりません。MASK がスカラで値が
.TRUE. のとき、VECTOR は、少なくとも
ARRAYと同数の要素を持たなければなりませ
ん。
結果の型、型パラメータ、および形状
結果は、ARRAY と同じ型および同じ種別型パラメータの 1 次元配列
とします。VECTOR を指定した場合、結果の大きさは VECTOR と同
じとします。VECTOR を省略した場合、結果の大きさは MASK 中の
.TRUE. である要素の個数 t とします。ただし、
MASK が .TRUE. の値
のスカラのとき、結果の大きさは ARRAY の大きさとします。
結果の値
配列要素順序に従って、結果の i 番目 (i= 1, 2, ..., t) の要素は、
MASK の i 番目の .TRUE. である要素に対応する ARRAY の要素としま
す。VECTOR を指定し、その大きさ n が n> t であるとき、i= t+
1, ..., n に対して、結果の i 番目の要素の値は、VECTOR(i) と
します。
例
関数 PACK によって、次の値
0 0 0
9 0 0
0 0 7
を持つ配列 M のゼロでない要素が「集約」されます。
PACK(M, MASK = M .NE. 0) の結果は [9, 7] です。
1-265
1
インテル ® Fortran ライブラリ・リファレンス
PACK(M, M .NE. 0, VECTOR = (/ 2, 4, 6, 8, 10, 12
/)) の結果は [9,7,6,8,10,12] です。
PRECISION(X)
意味
引数と同じ種別型パラメータを持つ実数モデルの 10 進精度を返し
ます。
分類
問い合わせ関数
引数
X は、実数型または複素数型でなければなりません。値は、スカラ
または配列とします。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、INT((p-1) * LOG10(b))+ k とします。ここで、b
と p は、X と同じ種別型パラメータ値を持つ実数モデルにおける
「実数モデル」の項で定義した値とします。k は、b が 10 の整数乗
のとき 1 とし、それ以外のとき 0 とします。
例
PRECISION(X) の値は、「実数モデル」の項で説明したモデルの実
数 X に対して、INT(23 * LOG10(2.)) = INT(6.92...) = 6
になります。
1-266
組み込み手続き
1
PRESENT(A)
意味
省略可能な引数が実在するかどうかを判定します。
分類
問い合わせ関数
引数
A は、その PRESENT 関数の引用を含む手続きの中で参照可能な、省
略可能な仮引数の名前でなければなりません。
結果の型および型パラメータ
基本論理型スカラとします。
結果の値
結果の値は、A が実在するとき .TRUE. とし、実在しないとき
.FALSE. とします。
例
SUBROUTINE SUB (A, B, EXTRA)
REAL A, B, C
REAL, OPTIONAL :: EXTRA
. . .
IF (PRESENT (EXTRA)) THEN
C = EXTRA
ELSE
C = (A+B)/2
END IF
. . .
END
1-267
1
インテル ® Fortran ライブラリ・リファレンス
次の文
CALL SUB (10.0, 20.0, 30.0)
によって SUB が呼び出されると、C は 30.0 に設定されます。次の
文
CALL SUB (10.0, 20.0)
によって SUB が呼び出されると、C は 15.0 に設定されます。
実在しない省略可能な引数を PRESENT 組み込み関数の引数を除く
省略不可能な実引数として、引用、定義、または提供してはなりま
せん。
PRODUCT(ARRAY, DIM, MASK)
省略可能な引数
DIM、MASK
意味
DIM 番目の次元について、MASK 中の .TRUE. である要素に対応する
ARRAY のすべての要素の積を計算します。
分類
変形関数
1-268
組み込み手続き
1
引数
ARRAY
整数型、実数型、または複素数型でなければ
なりません。スカラであってはなりません。
DIM(省略可能)
整数型スカラで、1 ≤ DIM ≤ n の範囲の値で
なければなりません。ここで、n は ARRAY
の次元数とします。対応する実引数は、省略
可能な仮引数であってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
結果の型、型パラメータ、および形状
結果は、ARRAY と同じ型および同じ種別型パラメータとします。
DIM が省略されているかまたは ARRAY が 1 次元配列であるときは、
ス
カラとします。それ以外のとき、結果は n-1 次元配列とし、形状は
(d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、
(d1, d2, ..., dn) は、ARRAY の形状とします。
結果の値
ケース 1
PRODUCT(ARRAY) の結果の値は、ARRAY の全要
素の積に対する処理系依存の近似値とします。た
だし、ARRAY の大きさが 0 のとき、結果の値は 1
とします。
ケース 2
PRODUCT(ARRAY, MASK = msk) の結果の値は、
msk中の.TRUE.である要素と対応するARRAYの要
素の積に対する処理系依存の近似値とします。た
だし、.TRUE. である要素がないとき、結果の値
は 1 とします。
ケース 3
ARRAY が 1 次元配列のとき、PRODUCT(ARRAY,
DIM [, msk])の値はPRODUCT(ARRAY [, MASK
= msk]) の値と同じとします。ARRAY が 2 次元以
上のとき、PRODUCT(ARRAY, DIM [, msk]) の
要素 (s1, s2, ..., sDIM-1, sDIM+1, ...,
sn) の値は次のとおりとします。
PRODUCT(ARRAY(s1, s2, ..., sDIM-1, :,
sDIM+1, ..., sn) [, MASK = msk(s1, s2, ...,
sDIM-1, :, sDIM+1, ..., sn) ] )
1-269
1
インテル ® Fortran ライブラリ・リファレンス
例
ケース 1
PRODUCT((/ 1, 2, 3 /))およびPRODUCT((/
1, 2, 3 /), DIM=1) の値は 6 です。
ケース 2
PRODUCT(C, MASK = C .GT. 0.0) は、C の正
の要素の積を形成します。
ケース 3
B が配列
135
246
であるとき、PRODUCT(B, DIM = 1) は [2, 12,
30]、PRODUCT(B, DIM = 2) は [15, 48] になりま
す。
RADIX(X)
意味
引数と同じ型および同じ種別型パラメータのモデルの基数を返しま
す。
分類
問い合わせ関数
引数
X は、整数型または実数型でなければなりません。値は、スカラま
たは配列とします。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
1-270
組み込み手続き
1
結果の値
結果の値は、X が整数型のとき r とし、X が実数型のとき b としま
す。ここで、r と b は、「実数モデル」の項で定義した値とします。
例
RADIX(X) の値は、
「実数モデル」の項で説明したモデルの実数 X に
対して 2 になります。
RANDOM_NUMBER(HARVEST)
意味
0 ≤ x <1 の範囲に一様分布する 1 つの擬似乱数か、または擬似乱数
の配列を返します。
分類
サブルーチン
引数
HARVEST は、実数型でなければなりません。これは、
INTENT(OUT) 引数とします。スカラ変数または配列変数とします。
0 ≤ x <1 の区間に一様分布する擬似乱数を含むように設定されます。
例
REAL X, Y (10, 10)
! Initialize X with a pseudorandom number
CALL RANDOM_NUMBER (HARVEST = X)
CALL RANDOM_NUMBER (Y)
! X & Y contain
! uniformly distributed random numbers
1-271
1
インテル ® Fortran ライブラリ・リファレンス
RANDOM_SEED(SIZE, PUT, GET)
省略可能な引数
SIZE、PUT、GET
意味
RANDOM_NUMBER で使用する擬似乱数生成器を再始動するか、また
は問い合わせます。
分類
サブルーチン
引数
引数は、1 個だけまたは 0 個でなければなりません。
1-272
SIZE(省略可能)
基本整数型スカラでなければなりません。
INTENT(OUT) 引数とします。処理系がシー
ドの値を保持するのに使用する整数の個数 N
が返されます。
PUT(省略可能)
1 次元で大きさが N 以上の基本整数型配列で
なければなりません。INTENT(IN) 引数と
します。シードの値を設定するために使用し
ます。
GET(省略可能)
1 次元で大きさが N 以上の基本整数型配列で
なければなりません。INTENT(OUT) 引数と
します。現在のシードの値が設定されます。
引数を省略すると、処理系はシードを処理系
依存の値に設定します。
組み込み手続き
1
例
CALL RANDOM_SEED
! Processor initialization
CALL RANDOM_SEED (SIZE = K)
! Sets K = N
CALL RANDOM_SEED (PUT = SEED (1 : K)) ! Set user seed
CALL RANDOM_SEED (GET = OLD (1 : K)) ! Read current
seed
RANGE(X)
意味
引数と同じ種別型パラメータとなる整数または実数モデルの 10 進
指数範囲を返します。
分類
問い合わせ関数
引数
X は、整数型、実数型、または複素数型でなければなりません。値
は、スカラまたは配列とします。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
1-273
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
ケース 1
整数型の引数の場合、結果の値は
INT(LOG10(huge)) とします。ここで、huge は
X と同じ種別型パラメータの整数モデルにおける
最大の正の整数とします (「整数モデル」の項を
参照してください )。
ケース 2
実数型または複素数型の引数の場合、結果の値は
INT(MIN(LOG10(huge), -LOG10(tiny))) と
します。ここで、huge と tiny は、X と同じ種別
型パラメータ値を持つ実数モデルにおける最大お
よび最小の正の数とします。詳細については、
「実
数モデル」の項を参照してください。
例
「実数モデル」の項で説明したモデルの実数 X に対して、
RANGE(X) の値は 38 になります。このとき、huge= (1 - 2-24) × 2127 お
よび tiny = 2-127 です。
REAL(A, KIND)
省略可能な引数
KIND
意味
実数型に変換します。
分類
要素別処理関数
1-274
組み込み手続き
1
引数
A
整数型、実数型、または複素数型でなければ
なりません。
KIND(省略可能)
スカラ整数初期値式でなければなりません。
結果の型および型パラメータ
実数型
ケース 1
A が整数型または実数型の場合、KIND を指定した
とき、種別型パラメータは KIND の指定に従いま
す。
A が整数型または実数型の場合、KIND を省略した
とき、種別型パラメータは基本実数型に対する処
理系依存の種別型パラメータとします。
ケース 2
A が複素数型の場合、KIND を指定したとき、種別
型パラメータは KIND の指定に従います。
A が複素数型の場合、KIND を省略したとき、種別
型パラメータは A の種別型パラメータとします。
結果の値
ケース 1
A が整数型または実数型の場合、結果の値は A に
対する処理系依存の近似値とします。
ケース 2
A が複素数型の場合、結果の値は A の実部に対す
る処理系依存の近似値とします。
例
REAL(-3) の値は –3.0 です。
REAL(Z) は、複素変数 Z の実部と同じ種別型パラメータおよび同じ
値を持ちます。
REAL(2.0_HIGH/3.0) は 0.66666666666666 であり、種別は HIGH で
す。
1-275
1
インテル ® Fortran ライブラリ・リファレンス
REPEAT(STRING, NCOPIES)
意味
文字列のコピーをいくつか連結します。
分類
変形関数
引数
STRING
スカラ文字型でなければなりません。
NCOPIES
スカラ整数型でなければならず、値は負であって
はなりません。
結果の型、型パラメータ、および形状
STRING と同じ種別型パラメータ値の文字型スカラとします。その
文字長は、STRING の文字長の NCOPIES 倍とします。
結果の値
結果は、STRING を NCOPIES 回だけコピーしたものを連結した値
とします。
例
REPEAT('H', 2) の値は HH です。
REPEAT('XYZ', 0) は、長さが 0 の文字列の値を持ちます。
1-276
組み込み手続き
1
RESHAPE(SOURCE, SHAPE, PAD, ORDER)
省略可能な引数
PAD、ORDER
意味
与えられた配列要素から、指定された形状の配列を構成します。
分類
変形関数
引数
SOURCE
どの型でもかまいません。値は、配列としま
す。PAD が省略されているかまたはその大
きさが 0 のとき、SOURCE の大きさは
PRODUCT(SHAPE) の値以上でなければなり
ません。結果の大きさは、SHAPE の要素の
値の積とします。
SHAPE
整数型の 1 次元配列で、大きさは定数でなけ
ればなりません。大きさは、1 〜 7 の正の数
でなければなりません。どの要素の値も負で
あってはなりません。
PAD(省略可能)
SOURCE と同じ型および同じ種別型パラメー
タでなければなりません。PAD の値は、配
列でなければなりません。
ORDER(省略可能)
整数型でなければならず、SHAPE と同じ形状
でなければなりません。その値は、[1, 2, ...,
n] を並べ替えたものでなければなりません。
ここで、n は SHAPE の大きさとします。
ORDER を省略したとき、値 [1, 2, ..., n] を指定
したかのようになります。
1-277
1
インテル ® Fortran ライブラリ・リファレンス
結果の型、型パラメータ、および形状
結果は、SOURCE と同じ型および同じ種別型パラメータで形状が
SHAPE である(すなわち、SHAPE(RESHAPE(SOURCE, SHAPE,
PAD, ORDER)) が SHAPE に等しい)配列とします。
結果の値
結果の要素を添字順序 ORDER(1), ..., ORDER(n) で並べ替えたもの
は、SOURCE の要素を通常の配列要素順序で並べ、足りなければ
PAD の要素を配列要素順序で続け、さらに足りなければ PAD の要素
を配列要素順序で必要な回数だけ繰り返したものと同じです。
例
RESHAPE((/ 1, 2, 3, 4, 5, 6 /), (/ 2, 3 /)) は次の値を
持ちます。
1 3 5
2 4 6
RESHAPE((/ 1, 2, 3, 4, 5, 6 /), (/ 2, 4, /), (/ 0,
0 /), (/ 2, 1 /)) は次の値を持ちます。
1 2 3 4
5 6 0 0
RNUM(I)
意味
文字を実数型に変換します。
1-278
組み込み手続き
1
分類
非標準の要素別処理関数
引数
I は、文字型でなければなりません。
結果
基本実数型とします。
例
RNUM("821.003") は、基本実数型の 821.003 です。
RRSPACING(X)
意味
X のモデルにおける引数値前後の相対的な間隔の逆数を返します。
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、|X × b-e| × bp とします。ここで、b、e、および p は、
「実数モデル」の項で定義した値とします。
1-279
1
インテル ® Fortran ライブラリ・リファレンス
例
RRSPACING(-3.0) の値は、「実数モデル」の項で説明したモデル
の実数に対して、0.75 × 224 になります。
RSHFT(I, SHIFT)
意味
ビットごとに右方向にシフトします。
分類
非標準の要素別処理関数
詳細については、120 ページの「RSHFT」を参照してください。
RSHIFT(I, SHIFT)
意味
ビットごとに右方向にシフトします。
分類
非標準の要素別処理関数
詳細については、121 ページの「RSHIFT」を参照してください。
1-280
組み込み手続き
1
SCALE(X, I)
意味
X × bI を返します。ここで、b は X のモデルの基数とします (「実数モ
デル」の項を参照してください )。
分類
要素別処理関数
引数
X
実数型でなければなりません。
I
整数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果が範囲の中にあるとき、結果の値は X × bI とします。ここで、
b は「実数モデル」の項で定義した値とします。範囲を超えたとき、
結果は処理系依存とします。
例
SCALE(3.0, 2) の値は、
「実数モデル」の項で説明したモデルの実
数に対して、12.0 になります。
1-281
1
インテル ® Fortran ライブラリ・リファレンス
SCAN(STRING, SET, BACK)
省略可能な引数
BACK
意味
文字列を走査して、文字集合中に指定した文字があるかどうかを判
定します。
分類
要素別処理関数
引数
STRING
文字型でなければなりません。
SET
STRING と同じ種別型パラメータの文字型で
なければなりません。
BACK(省略可能)
論理型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
結果の値
1-282
ケース 1
BACK に .FALSE. を指定するかまたは省略してあ
り、STRING が SET 中の文字を少なくとも 1 つ含
む場合、結果の値は SET 中の文字 STRING 中での
最も左の位置とします。
ケース 2
BACK に .TRUE. を指定してあり、STRING が
SET 中の文字を少なくとも 1 つ含む場合、結果の値
は SET 中の文字 STRING での最も右の位置としま
す。
組み込み手続き
ケース 3
1
STRING 中のどの文字も SET 中にないか、または
STRING もしくは SET の文字長が 0 の場合、
結果の
値は 0 とします。
例
ケース 1
SCAN('FORTRAN', 'TR') の値は 3 です。
ケース 2
SCAN('FORTRAN', 'TR', BACK = .TRUE.)
の値は 5 です。
ケース 3
SCAN('FORTRAN', 'BCD') の値は 0 です。
SELECTED_INT_KIND(R)
意味
-10R < n < 10R の範囲にあるすべての整数値 n を表現する整数型の種
別型パラメータ値を返します。
分類
変形関数
引数
R は、整数型のスカラでなければなりません。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、-10R < n < 10R の範囲にあるすべての整数値 n を表現す
る整数型の種別型パラメータ値とします。ただし、そのような種別
型パラメータがその処理系上で利用できない場合、結果の値は –1 と
します。
1-283
1
インテル ® Fortran ライブラリ・リファレンス
2 つ以上の種別型パラメータが条件を満たす場合、戻り値は、最も
小さい 10 進指数範囲を表現する種別型パラメータ値となります。
同じ 10 進指数範囲を表現するものが複数あるときは、最も小さい
種別型パラメータ値が返されます。
例
「整数モデル」の項で示した整数モデルで定義した r=2 および q=31
を基本整数型で表現するマシンでは、SELECTED_INT_KIND(6) の
値は KIND(0) になります。
SELECTED_REAL_KIND(P, R)
省略可能な引数
P、R
意味
10 進精度が P 桁以上で 10 進指数範囲が R 以上である実数型の種別
型パラメータ値を返します。
分類
変形関数
引数
少なくとも 1 つの引数は、指定しなければなりません。
P(省略可能)
整数型スカラでなければなりません。
R(省略可能)
整数型スカラでなければなりません。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
1-284
組み込み手続き
1
結果の値
結果の値は、関数 PRECISION によって返されるような P 桁以上の
10 進精度と、関数 RANGE によって返されるような R 以上の 10 進
指数範囲を持つ実数型の種別型パラメータ値とします。
ただし、そのような種別型パラメータが処理系上で利用できない場
合の結果の値は、10 進精度が利用不可能なとき –1 とし、10 進指数
範囲が利用不可能なとき –2 とし、どちらも利用不可能なとき –3 と
します。
2 つ以上の種別型パラメータが条件を満たす場合、戻り値は、最も
小さい 10 進精度を表現する種別型パラメータ値となります。同じ
10 進指数範囲を表現するものが複数あるときは、最も小さい種別型
パラメータ値が返されます。
例
「整数モデル」の項で示した実数モデルで定義した p=16、p= 6、
emin=–64、および emax=63 を基本実数型で表現するマシンでは、
SELECTED_REAL_KIND(6, 70) の値は KIND(0.0) になります。
SET_EXPONENT(X, I)
意味
指数部が I で、小数部が X のモデル表現の小数部である数表現の実
数を返します。
分類
要素別処理関数
1-285
1
インテル ® Fortran ライブラリ・リファレンス
引数
X
実数型でなければなりません。
I
整数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果が表現可能な範囲内にあるとき、結果の値は X × bI-e としま
す。ここで、b と e は、「実数モデル」の項で定義した値とします。
表現可能な範囲を超えているとき、結果は処理系依存とします。
X の値が 0.0 であるとき、結果の値は 0.0 とします。
例
「実数モデル」の項で説明したモデルの実数に対して、
SET_EXPONENT(3.0, 1) の値は 1.5 になります。
SHAPE(SOURCE)
意味
配列またはスカラの形状を返します。
分類
問い合わせ関数
引数
SOURCE は、どの型でもかまいません。値は、配列またはスカラと
します。空状態のポインタまたは割り付けられていない割り付け配
列であってはならず、大きさ引き継ぎ配列であってはなりません。
1-286
組み込み手続き
1
結果の型、型パラメータ、および形状
結果は、大きさが SOURCE の次元数に等しい基本整数型の 1 次元配
列とします。
結果の値
結果の値は、SOURCE の形状とします。
例
SHAPE(A(2:5, -1:1) ) の値は [4, 3] です。
SHAPE(3) の値は、大きさが 0 の 1 次元配列になります。
SIGN(A, B)
意味
A の絶対値と B の符号の積
分類
要素別処理関数
引数
A
整数型または実数型でなければなりません。
B
A と同じ型および同じ種別型パラメータでなけれ
ばなりません。
結果の型および型パラメータ
A と同じとします。
結果の値
結果の値は、B≥0 のとき |A| とし、B<0 のとき -|A| とします。
1-287
1
インテル ® Fortran ライブラリ・リファレンス
例
SIGN(-3.0, 2.0) の値は 3.0 です。
SIN(X)
意味
正弦関数(ラジアン単位)
分類
要素別処理関数
引数
X は、実数型または複素数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、sin(X) の処理系依存の近似値とします。
X が実数型であるとき、ラジアンでの値とみなされます。
X が複素数型であるとき、その実部がラジアンでの値とみなされま
す。
例
SIN(1.0) の値は 0.84147098 です。
SIN((0.5_HIGH, 0.5)) の値は 0.54061268571316
+0.45730415318425i であり、種別は HIGH です。
1-288
組み込み手続き
1
SIND(X)
意味
正弦関数(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、sin(X) の処理系依存の近似値とします。
例
SIND(0.0) の値は 0.0 です。
SIND(30.0) の値は 0.5 です。
1-289
1
インテル ® Fortran ライブラリ・リファレンス
SINH(X)
意味
双曲線正弦関数
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、sinh(X) の処理系依存の近似値とします。
例
SINH(1.0) の値は 1.1752012 です。
SINH(0.5_HIGH) の値は 0.52109530549375 であり、種別は HIGH で
す。
1-290
組み込み手続き
1
SIZE(ARRAY, DIM)
省略可能な引数
DIM
意味
配列要素の総数または指定した次元の寸法を返します。
分類
問い合わせ関数
引数
ARRAY
どの型でもかまいません。スカラであってはなり
ません。空状態のポインタまたは割り付けられて
いない割り付け配列であってはなりません。
ARRAY が大きさ引き継ぎ配列であるときは、DIM
は省略できず、ARRAY の次元数より小さい値を指
定しなければなりません。
DIM(省略可能)整数型スカラで、1 ≤DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は ARRAY の次元数とし
ます。
結果の型、型パラメータ、および形状
基本整数型スカラとします。
結果の値
結果の値は、ARRAY の DIM 番目の次元の寸法とし、DIM を省略し
たとき、ARRAY の要素の総数とします。
1-291
1
インテル ® Fortran ライブラリ・リファレンス
例
SIZE(A(2:5, -1:1), DIM=2) の値は 3 です。
SIZE(A(2:5, -1:1) ) の値は 12 です。
SPACING(X)
意味
X のモデルにおける引数値前後の間隔の絶対値を返します。
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果が範囲内にあって X の値が 0 ではないとき、結果の値は be-p と
します。ここで、b、e、および p は、「実数モデル」の項で定義し
た値とします。範囲を超えているとき、結果の値は TINY(X) と同
じとします。
例
SPACING(3.0) の値は、「実数モデル」の項で説明したモデルの実
数に対して、2-22 になります。
1-292
組み込み手続き
1
SPREAD(SOURCE, DIM, NCOPIES)
意味
配列を複製して次元を付け加えます。指定した次元について(あた
かも 1 枚の原紙のコピーをとじてメモ冊子を作るように)SOURCE
をいくつかコピーし、1 次元だけ大きい配列を形成します。
分類
変形関数
引数
SOURCE
どの型でもかまいません。値は、スカラまたは配
列とします。SOURCE の次元数は、7 未満でなけ
ればなりません。
DIM
整数型スカラで、1 ≤DIM ≤ n +1 の範囲の値でなけ
ればなりません。ここで、n は SOURCE の次元数
とします。
NCOPIES
整数型スカラでなければなりません。
結果の型、型パラメータ、および形状
結果は、SOURCE と同じ型および同じ種別型パラメータの n +1 次元
配列とします。ここで、n は SOURCE の次元数とします。
ケース 1
SOURCE がスカラである場合、結果の形状は
(MAX(NCOPIES, 0)) とします。
ケース 2
SOURCE の値が形状 (d1, d2, ..., dn) の配列で
ある場合、結果の形状は (d1, d2, ..., dDIM-1,
MAX(NCOPIES, 0), dDIM, ..., dn) とします。
1-293
1
インテル ® Fortran ライブラリ・リファレンス
結果の値
ケース 1
SOURCE がスカラである場合、結果の各要素は
SOURCE に等しい値とします。
ケース 2
SOURCE の値が配列である場合、添字が (r1, r2,
..., rn+1) である結果の要素は、SOURCE(r1, r2,
..., rDIM-1, rDIM+1, ..., rn+1) に等しい値とし
ます。
例
ケース 1
SPREAD("A", 1, 3) は、文字列 (/ "A","A",
"A" /) になります。
ケース 2
A が配列 [2, 3, 4] のとき、NC の値が 3 であれば
SPREAD(A, DIM=1,NCOPIES=NC) は配列
2 3 4
2 3 4
2 3 4
になり、NC の値が 0 であれば大きさが 0 の配列に
なります。
SQRT(X)
意味
平方根
分類
要素別処理関数
引数
X は、実数型または複素数型でなければなりません。X が実数型であ
るとき、値は 0.0 以上でなければなりません。
1-294
組み込み手続き
1
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、X の平方根の処理系依存の近似値とします。
複素数型の結果は、実部が 0.0 以上である主値とします。結果の実
部が 0.0 であるとき、虚部は 0.0 以上とします。
例
SQRT(4.0) の値は 2.0 です。
SQRT(5.0_HIGH) の値は 2.23606774998 であり、種別は HIGH です。
SUM(ARRAY, DIM, MASK)
省略可能な引数
DIM、MASK
意味
MASK 中の .TRUE. である要素に対応する ARRAY の要素を、
DIM 番目
の次元について合計しま
す。
分類
変形関数
1-295
1
インテル ® Fortran ライブラリ・リファレンス
引数
ARRAY
整数型、実数型、または複素数型でなければ
ならず、スカラであってはなりません。
DIM(省略可能)
整数型スカラで、1 ≤ DIM ≤ n の範囲の値で
なければなりません。ここで、n は ARRAY
の次元数とします。対応する実引数は、省略
可能な仮引数であってはなりません。
MASK(省略可能)
論理型でなければならず、ARRAY と形状適合
しなければなりません。
結果の型、型パラメータ、および形状
結果は、ARRAY と同じ型および同じ種別型パラメータとします。
DIM が省略されているかまたは ARRAY が 1 次元配列であるときは、
ス
カラとします。それ以外のとき、結果は n-1 次元配列とし、形状は
(d1, d2, ..., dDIM-1, dDIM+1, ..., dn) とします。ここで、
(d1, d2, ..., dn) は、ARRAY の形状とします。
結果の値
ケース 1
SUM(ARRAY) の結果の値は、ARRAY の全要素の合
計に対する処理系依存の近似値とします。ARRAY
の大きさが 0 であるとき、値は 0 とします。
ケース 2
SUM(ARRAY, MASK = msk) の結果の値は、msk
中の .TRUE. である要素に対応した ARRAY の要
素の合計に対する処理系依存の近似値とします。
ただし、msk 中に .TRUE. である要素がないと
き、値は 0 とします。
ケース 3
ARRAY が 1 次元配列のとき、SUM(ARRAY, DIM
[, msk])の値はSUM(ARRAY [, MASK = msk])
の値と同じとします。ARRAY が 2 次元以上のと
き、SUM(ARRAY, DIM [, msk]) の要素 (s1,
s2, ..., sDIM-1, sDIM+1, ..., sn) の値は次
のとおりとします。
SUM(ARRAY(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) [,
MASK=msk(s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn)])
1-296
組み込み手続き
1
例
ケース 1
SUM((/ 1, 2, 3 /)) および SUM((/ 1,2, 3
/), DIM=1) の値は 6 です。
ケース 2
SUM(C, MASK= C .GT. 0.0) は、C の正の要素
の算術和を形成します。
ケース 3
B が配列
1 3 5
2 4 6
であるとき、SUM(B, DIM = 1) は [3, 7, 11]、
SUM(B,DIM =2) は [9, 12] になります。
SYSTEM_CLOCK(COUNT, COUNT_RATE,
COUNT_MAX)
省略可能な引数
COUNT、COUNT_RATE、COUNT_MAX
意味
実時間時計から整数データを返します。
分類
サブルーチン
引数
COUNT(省略可能)
基本整数型スカラでなければなりま
せん。INTENT(OUT) 引数とします。
処理系の時計の現在値に基づく処理
系依存の値に設定されます。時計が
ないときは、-HUGE(0) に設定され
1-297
1
インテル ® Fortran ライブラリ・リファレンス
ます。処理系依存の値は、時計の刻
みごとに 1 ずつ増加し、値
COUNT_MAX に達すると、次の刻みで
0 にリセットされます。時計がある
ときは、0 以上 COUNT_MAX 以下の
値になります。
COUNT_RATE(省略可能)
基本整数型スカラでなければなりま
せん。INTENT(OUT) 引数とします。
処理系の時計が 1 秒間に刻む回数に
設定されます。ただし、時計がない
ときは、0 に設定されます。
COUNT_MAX(省略可能)
基本整数型スカラでなければなりま
せん。INTENT(OUT) 引数とします。
COUNT がとり得る最大値に設定され
ます。ただし、時計がないときは、0
に設定されます。
例
処理系の時計が 1 秒間隔で時を刻む 24 時間制で、午前 11:30 にこの
関数を引用する場合、
CALL SYSTEM_CLOCK (COUNT = C, COUNT_RATE = R,
COUNT_MAX =M)
によって、C = 11 * 3600 + 30 * 60 = 41400, R = 1、およ
び M = 24 * 3600 - 1 = 86399 と設定されます。
TAN(X)
意味
正接関数(ラジアン単位)
1-298
組み込み手続き
1
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、tan(X) の処理系依存の近似値とします。X は、ラジア
ンでの値とみなされます。
例
TAN(1.0) の値は 1.5574077 です。
TAN(2.0_HIGH) の値は –2.1850398632615 であり、種別は HIGH で
す。
TAND(X)
意味
正接関数(度単位)
分類
非標準の要素別処理関数
引数
X は、実数型でなければなりません。
1-299
1
インテル ® Fortran ライブラリ・リファレンス
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、tan(X) の処理系依存の近似値とします。
例
TAND(0.0) の値は 0.0 です。
TAND(45.0) の値は 1.0 です。
TAND(135.0) の値は –1.0 です。
TANH(X)
意味
双曲線正接関数
分類
要素別処理関数
引数
X は、実数型でなければなりません。
結果の型および型パラメータ
X と同じとします。
結果の値
結果の値は、tanh(X) の処理系依存の近似値とします。
例
TANH(1.0) の値は 0.76159416 です。
1-300
組み込み手続き
1
TANH(2.0_HIGH) の値は 0.96402758007582 であり、種別は HIGH で
す。
TINY(X)
意味
引数と同じ型および同じ種別型パラメータのモデルで最小の正の数
を返します。
分類
問い合わせ関数
引数
X は、実数型でなければなりません。値は、スカラまたは配列とし
ます。
結果の型、型パラメータ、および形状
X と同じ型および同じ種別型パラメータのスカラとします。
結果の値
結果の値は、bemin-1 とします。
ここで、b と emin は、「実数モデル」の項で定義した値とします。
例
TINY(X) の値は、
「実数モデル」の項で説明したモデルの実数 X に対
-127
して、2
になります。
1-301
1
インテル ® Fortran ライブラリ・リファレンス
TRANSFER(SOURCE, MOLD, SIZE)
省略可能な引数
SIZE
意味
物理表現は SOURCE と同じですが、型および種別型パラメータを
MOLD のものにした結果を返します。
分類
変形関数
引数
SOURCE
どの型でもかまいません。値は、スカラまた
は配列とします。
MOLD
どの型でもかまいません。値は、スカラまた
は配列とします。
SIZE(省略可能)
整数型スカラでなければなりません。対応す
る実引数は省略可能な実引数であってはなり
ません。
結果の型、型パラメータ、および形状
結果は、MOLD と同じ型および同じ種別型パラメータとします。
1-302
ケース 1
SIZE を省略し、MOLD がスカラである場合、結果
はスカラとします。
ケース 2
SIZE を省略し、MOLD が配列である場合、結果は
1 次元配列とします。その大きさは、物理表現が
SOURCE のものよりも短くならない範囲で可能な
限り小さくします。
ケース 3
SIZE を指定した場合、結果は、大きさが SIZE で
ある 1 次元配列とします。
組み込み手続き
1
結果の値
結果の物理表現の長さが SOURCE と同一のとき、結果の物理表現は
SOURCE のものとします。
結果の物理表現のほうが SOURCE よりも長いとき、物理表現の先頭
部分は SOURCE のものとし、残りの部分は不定とします。
結果の物理表現のほうが SOURCE よりも短いとき、結果の物理表現
は SOURCE の先頭部分とします。D および E がスカラ変数で、D の
物理表現の長さが E の物理表現の長さ以上であるとき、
TRANSFER(TRANSFER(E, D), E) の値は E の値でなければなりま
せん。
D が配列で E が 1 次元配列であるとき、TRANSFER(TRANSFER(E,
D), E, SIZE(E)) の値は E の値でなければなりません。
例
ケース 1
値 4.0 および 1082130432 を 2 進数字列 0100 0000
1000 0000 0000 0000 0000 0000 と表現する処理系で
は、TRANSFER(1082130432, 0.0) の値は 4.0
になります。
ケース 2
TRANSFER((/ 1.1, 2.2, 3.3 /), (/ (0.0,
0.0) /)) は、長さが 2 の 1 次元複素配列です。こ
の 1 次元配列の第 1 の要素は (1.1, 2.2) であり、第
2 の要素の実部の値は 3.3 となっています。第 2 の
要素の虚部は不定です。
ケース 3
TRANSFER((/ 1.1, 2.2, 3.3 /), (/ (0.0,
0.0) /), 1) の値は 1.1 + 2.2i であり、要素の 1 つ
が複素数である 1 次元配列です。
1-303
1
インテル ® Fortran ライブラリ・リファレンス
TRANSPOSE(MATRIX)
意味
2 次元配列を転置します。
分類
変形関数
引数
MATRIX は、どの型でもかまいませんが、2 次元配列でなければなり
ません。
結果の型、型パラメータ、および形状
結果は MATRIX と同じ型および同じ種別型パラメータの 2 次元配列
とし、MATRIX の形状が (m, n) であるとき、結果の形状は (n, m) と
します。
結果の値
結果の要素 (i, j) の値は MATRIX(j, i)、i= 1, 2, ..., n; j= 1, 2, ..., m と
します。
例
A が配列
1 2 3
4 5 6
7 8 9
であるとき、TRANSPOSE(A) は次のようになります。
147
258
369
1-304
組み込み手続き
1
TRIM(STRING)
意味
引数の後ろの空白を削除したものを返します。
分類
変形関数
引数
STRING は、文字型スカラでなければなりません。
結果の型および型パラメータ
STRING と同じ種別型パラメータ値の文字型とし、その文字長は、
STRINGの文字長からSTRINGの後ろにある空白の個数を引いた長さ
とします。
結果の値
結果の値は、後ろの空白がない点を除いて STRING と同じとしま
す。STRING が空白以外の文字を含まないとき、結果の文字長は 0
とします。
例
TRIM(’bAbBbb’) は ’bAbB’ になります。
1-305
1
インテル ® Fortran ライブラリ・リファレンス
UBOUND(ARRAY, DIM)
省略可能な引数
DIM
意味
配列のすべての次元の上限または指定した次元の上限を返します。
分類
問い合わせ関数
引数
ARRAY
どの型でもかまいません。スカラであってはなり
ません。空状態のポインタまたは割り付けられて
いない割り付け配列であってはなりません。
ARRAY が大きさ引き継ぎ配列のとき、DIM には、
ARRAY の次元数未満の値を指定しなければなりま
せん。
DIM(省略可能)整数型スカラで、1 ≤ DIM ≤ n の範囲の値でなけれ
ばなりません。ここで、n は ARRAY の次元数とし
ます。対応する実引数は、省略可能な仮引数で
あってはなりません。
結果の型、型パラメータ、および形状
結果は、基本整数型とします。結果は、DIM を指定したときはスカ
ラとし、省略したときは大きさ n の 1 次元配列とします。ここで、
n は ARRAY の次元数とします。
1-306
組み込み手続き
1
結果の値
ケース 1
UBOUND(ARRAY, DIM) の値は、ARRAY が部分配
列または配列式であって、全体配列および配列構
造体成分でない場合、指定した次元の要素の個数
とします。全体配列または配列構造体成分に対し
ては、ARRAY の DIM 番目の次元の大きさが 0 では
ないときの値は ARRAY の DIM 番目の次元におけ
る添字の上限とし、DIM 番目の次元の大きさが 0
であるときの値は 0 とします。
ケース 2
UBOUND(ARRAY) の i 番目 (i= 1, 2, ..., n) の要素の
値は、UBOUND(ARRAY, i) とします。ここで、n
は ARRAY の次元数とします。
例
次の文
REAL, TARGET :: A (2:3, 7:10)
REAL, POINTER, DIMENSION (:,:) :: B, C, D
B => A; C => A(:,:)
ALLOCATE (D(-3:3,-7:7))
を処理すると、次のようになります。
•
•
•
•
•
UBOUND(A) は [3, 10]
UBOUND(A, DIM = 2) は 10
UBOUND(B) は [3, 10]
UBOUND(C) は [2, 4]
UBOUND(D) は [3, 7]
1-307
1
インテル ® Fortran ライブラリ・リファレンス
UNPACK(VECTOR, MASK, FIELD)
意味
1 次元配列の要素を MASK に従って配列に配布します。
分類
変形関数
引数
VECTOR
どの型でもかまいません。1 次元配列でなければな
りません。大きさは、MASK の .TRUE. である要
素の個数 t 以上でなければなりません。
MASK
値は、論理型配列でなければなりません。
FIELD
VECTOR と同じ型および同じ種別型パラメータで
なければならず、MASK と形状適合しなければな
りません。
結果の型、型パラメータ、および形状
結果は、VECTOR と同じ型および同じ種別型パラメータで、MASK
と同じ形状の配列とします。
結果の値
配列要素順序に従って、MASK の .TRUE. である i 番目 (i= 1, 2, ...,
t) の要素に対応する結果の要素の値は VECTOR(i) とします。ここ
で、t は MASK 中の .TRUE. である要素の個数とします。他の要素
は、FIELD がスカラであるとき、それぞれ FIELD に等しい値とし、
FIELD が配列であるとき、FIELD の対応する要素と等しい値としま
す。
1-308
組み込み手続き
1
例
UNPACK を使用して、指定した値を指定した位置に「分散」させる
ことができます。M が配列
1 0 0
0 1 0
0 0 1
V が配列 [1, 2, 3]、Q が論理マスク
. T .
T . .
. . T
("T" は .TRUE. を表し、"." は .FALSE. を表します ) であれば、
UNPACK(V, MASK = Q, FIELD = M) の結果の値は、
120
110
003
になり、UNPACK(V, MASK = Q, FIELD = 0) の結果の値は、
020
100
003
になります。
1-309
1
インテル ® Fortran ライブラリ・リファレンス
VERIFY(STRING, SET, BACK)
省略可能な引数
BACK
意味
文字列中の文字が、指定した文字集合中に含まれているかどうかを
調べ、文字集合に含まれない文字列中の最初の文字の位置を返しま
す。
分類
要素別処理関数
引数
STRING
文字型でなければなりません。
SET
STRING と同じ種別型パラメータの文字型で
なければなりません。
BACK(省略可能)
論理型でなければなりません。
結果の型および型パラメータ
基本整数型とします。
1-310
組み込み手続き
1
結果の値
ケース 1
BACK に .FALSE. を指定するかまたは省略して
あって、STRING が SET 中にない文字を少なくと
も 1 つ含む場合、結果の値は SET 中にない文字の
STRING 中で最も左の文字位置とします。
ケース 2
BACK に .TRUE. を指定してあって、STRING が
SET 中にない文字を少なくとも 1 つ含む場合、結果
の値は SET 中にない文字の STRING 中での最も右
の文字位置とします。
ケース 3
STRING 中のすべての文字が SET 中にあるか、ま
たは STRING の文字長が 0 である場合、結果の値
は 0 とします。
例
ケース 1
VERIFY('ABBA', 'A') の値は 2 です。
ケース 2
VERIFY('ABBA', 'A', BACK = .TRUE.) の値
は 3 です。
ケース 3
VERIFY('ABBA', 'AB') の値は 0 です。
1-311
1
インテル ® Fortran ライブラリ・リファレンス
XOR(I, J)
意味
ビットごとの排他的論理和
分類
非標準の要素別処理関数
引数
I
整数型でなければなりません。
J
I と同じ種別型パラメータの整数型でなければな
りません。
結果の型および型パラメータ
I と同じとします。
注:結果の値と例については、「IXOR(I, J)」の項を参照してくだ
さい。
1-312
ポータビリティ関数
本章では、ポータビリティライブラリ(libPEPCF90.lib)を構
成する関数について(アルファベット順に)説明します。
/4Yportlib (Windows*) または -Vaxlib (Linux*) オプションを呼
び出すと、コンパイラはこれらの関数を使用できるようになりま
す。関数プロトタイプについては、指定した関数への呼び出しを実
行するために必要な情報を提供する引用仕様宣言を使用して説明し
ます。引用仕様宣言と /4Yportlib (Windows*) または -Vaxlib
(Linux*) オプションについては、『インテル ® Fortran コンパイラ・
ユーザーズ・ガイド』を参照してください。
これらの関数を使用するときには、次のことに注意してください。
•
•
•
これらの関数は Fortran 言語に組み込まれているものではありま
せん。プログラム内の FUNCTION、SUBROUTINE、または
COMMON ブロックの名前が、使用したい特定のポータビリティ
関数と重複する場合は、ポータビリティ関数を利用するため
に、プログラム内の大域要素の名前を変更しなければならない
こともあります。
これらの関数はユーザ名前空間にあります。これらの関数がリ
ンクされるのは、/4Yportlib (Windows*) または -Vaxlib
(Linux*) を使用したときに、プログラムに大域引用を満足する
大域定義が存在しない場合に限られます。
他のベンダのいくつかの製品と同様、これらの関数とのイン
ターフェイスのために USE 文を挿入する必要はありません。呼
び出しているポータビリティ・ライブラリのルーチンへのイン
ターフェイスを記述するには、プログラムの引用仕様宣言を使
用してください。引用仕様宣言がない場合は、暗黙の型宣言に
2-1
2
インテル ® Fortran ライブラリ・リファレンス
十分注意しない限り、不正な結果が得られることもあります。
プログラムにすべてのルーチンのインターフェイスを組み込み
たい場合は、次のようにしてください。
— 販売業者の INCLUDE ディレクトリからファイル
iflport.f90 を組み込みます。
— すべてのポータビリティ関数の INTERFACE にアクセスす
るために、USE IFLPORT 文を追加します。
ACCESS
ファイルアクセス値を決定します。
プロトタイプ
USE IFLPORT
または
INTEGER(4) FUNCTION ACCESS(NAME,MODE)
CHARACTER(LEN=*) NAME,MODE
END FUNCTION ACCESS
NAME
入力。CHARACTER(LEN=*)。参照許可を調べる
ファイルの名前。
MODE
入力。CHARACTER(LEN=*)。チェックする参照
許可モード。MODE は、文字 "r"、"w"、"x"、また
は ""( 空白 ) のみを含む、長さが 1 文字以上の文字
列です。これらの文字は,次のように解釈されま
す。
文字意味
MODE 内の文字は任意の順序で指定できます。
使用法
result = ACCESS (filename, mode)
2-2
移植性関数
2
結果
結果は INTEGER(4) であり、MODE のすべてのアクセス権が真であ
る場合はゼロとなります。関数に渡した入力値が無効である場合、
または指定したすべてのモードでファイルにアクセスできない場合
は、次のいずれかのエラーコードが返されます。
EACCES
アクセスが拒否されました。
EINVAL
モード引数が無効です。
ENOENT
ファイルが見つかりません。
これらのエラー値は、Microsoft* Visual C++* の ERRNO の可能な値
から得られます。
これらのエラーコードのシンボル値は iflport.f90 で定義されて
います。
filename 引数には、パス区切り子としてスラッシュまたは逆スラッ
シュを含むことができます。
Windows* オペレーティング・システムでは、すべてのファイルは
読み取り可能です。読み取りアクセス権のテストでは、常に 0 が返
されます。
例
OPEN(UNIT=1,FILE="IFLFILE.TXT",STATUS=’UNKNOWN’)
WRITE (1,10) "THIS IS A TEST"
CLOSE(UNIT=1)
! checks for read and write permission on the file
"IFLFILE.TXT"
J = ACCESS ("IFLFILE.TXT", "rw")
PRINT *, J
! checks whether "IFLFILE.TXT" is executable. It is
not, since
! it does not end in .COM, .EXE, .BAT, or .CMD
J = ACCESS ("IFLFILE.TXT","x")
PRINT *, J
10 FORMAT(A)
END
2-3
2
インテル ® Fortran ライブラリ・リファレンス
BEEPQQ
スピーカを鳴らします。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE BEEPQQ(FREQ,DUR)
INTEGER(4) FREQ, DUR
END SUBROUTINE
END INTERFACE
説明
指定した周波数で指定した時間(ミリ秒単位)だけスピーカを鳴ら
します。
使用法
CALL BEEPQQ (FREQ, DUR)
FREQ
INTEGER(4)。音の周波数。
DUR
音の長さ(ミリ秒単位)。
BEEPQQ
音が終了するまで復帰しません。
例
USE IFLPORT
INTEGER(4) FREQ, DUR
FREQ = 4000
DUR = 1000
CALL BEEPQQ(FREQ, DUR)
END
2-4
移植性関数
2
BESJ0、BESJ1、BESJN、BESY0、BESY1、
BESYN
ベッセル関数の単精度値を計算しま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
REAL(4) FUNCTION BESJ0(X)
REAL(4) X
END FUNCTION
REAL(4) FUNCTION BESJ1(X)
REAL(4) X
END FUNCTION
REAL(4) FUNCTION BESJN(N,X)
INTEGER(4) N
REAL(4) X
END FUNCTION
REAL(4) FUNCTION BESY0(X)
REAL(4) X
END FUNCTION
REAL(4) FUNCTION BESY1(X)
REAL(4) X
END FUNCTION
REAL(4) FUNCTION BESYN(N,X)
INTEGER(4) N
2-5
2
インテル ® Fortran ライブラリ・リファレンス
REAL(4) X
END FUNCTION
END INTERFACE
説明
第 1 種および第 2 種のベッセル関数の単精度値を計算します。
使用法
result
result
result
result
result
result
=
=
=
=
=
=
BESJ0
BESJ1
BESJN
BESY0
BESY1
BESYN
(REALPOSITIVE)
(REALPOSITIVE)
(n, REALPOSITIVE)
(REALPOSITIVE)
(REALPOSITIVE)
(n, REALPOSITIVE)
REALPOSITIVE REAL(4)。ベッセル関数の独立変数。ゼロ以上で
なければなりません。
N
ユーザが変更していない限り、INTEGER(4)。選
択したベッセル関数計算の次元を指定します。
結果
BESJ0、BESJ1、および BESJN は、独立変数 REALPOSITIVE によっ
て、それぞれ 0、1、および n 次の第 1 種のベッセル関数を返しま
す。
BESY0、BESY1、および BESYN は、独立変数 REALPOSITIVE によっ
て、それぞれ 0、1、および n 次の第 2 種のベッセル関数を返しま
す。
負の引数では、QNAN が返されます。
2-6
移植性関数
2
CDFLOAT
COMPLEX(4) を DOUBLE
PRECISION 型に変換します。
プロトタイプ
INTERFACE
DOUBLE PRECISION (REAL(8)) FUNCTION CDFLOAT (INPUT)
COMPLEX(4), INTENT(IN)::INPUT
END FUNCTION CDFLOAT
END INTERFACE
INPUT
COMPLEX(KIND=4) 値
説明
CDFLOAT は、COMPLEX(KIND=4) 型を DOUBLE
PRECISION(REAL(8)) に変換する要素別処理関数です。
出力
COMPLEX 値が DOUBLE PRECISION に変換されます。
CHANGEDIRQQ
指定したディレクトリを現在のディ
レクトリに設定します。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION CHANGEDIRQQ(DIR)
2-7
2
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(LEN=*) DIR
END FUNCTION
END INTERFACE
説明
指定したディレクトリを現在の基本ディレクトリに設定します。
使用法
result = CHANGEDIRQQ (DIR)
DIR
CHARACTER(LEN=*)。現在のディレクトリにす
るディレクトリ。
結果
LOGICAL(4)。成功した場合は .TRUE. で、失敗した場合は
.FALSE. になります。
DIR 文字列でドライブを指定しない場合は、現在のドライブ上にあ
る指定したディレクトリが現在のディレクトリになります。DIR 文
字列でドライブを指定した場合は、指定したドライブ上にある指定
したディレクトリが現在のディレクトリになります。
例
USE IFLPORT
LOGICAL(4) CHANGEDIT
CHANGEDIT = CHANGEDIRQQ('c:\users')
END
CHANGEDRIVEQQ
基本ドライブを設定します。
プロトタイプ
USE IFLPORT
または
2-8
移植性関数
2
INTERFACE
LOGICAL(4) FUNCTION CHANGEDRIVEQQ(DriveName)
CHARACTER (LEN=*) DriveName
END FUNCTION
END INTERFACE
説明
指定したドライブを現在の基本ドライブに設定します。
使用法
result = CHANGEDRIVEQQ (DriveName)
DriveName
CHARACTER(LEN=*)。ドライブ文字で始まる
CHARACTER 値。
結果
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. になります。
ドライブは、1 つの英文字によって識別されます。
CHANGEDRIVEQQ では、DriveName の最初の文字だけを検査しま
す。ドライブ文字としては、大文字または小文字を使用できます。
CHANGEDRIVEQQ では、現在のドライブだけを変更します。指定し
たドライブ上にある現在のディレクトリが、新しい現在のディレク
トリになります。そのドライブで現在のディレクトリが確定されて
いない場合は、指定したドライブのルート・ディレクトリが新しい
現在のディレクトリになります。
Linux プラットフォームの場合、このルーチンは常に .false. を返し
ます。
例
USE IFLPORT
LOGICAL(4) CHANGEDIT
CHANGEDIT = CHANGEDRIVEQQ('d')
IF (CHANGEDIT) THEN
PRINT *,”CHANGEDRIVEQQ SUCCESSFUL”
ELSE
PRINT *,”Drive could not be changed”
2-9
2
インテル ® Fortran ライブラリ・リファレンス
ENDIF
END
CHDIR
基本ディレクトリを変更します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION CHDIR(DIRECTORY_NAME)
CHARACTER(LEN=*) DIRECTORY_NAME
END FUNCTION CHDIR
END INTERFACE
使用法
result = CHDIR(NEW_DIRECTORY)
NEW_DIRECTORY
CHARACTER(LEN=*)。基本ディレクトリに
なるディレクトリの名前。
結果
結果の型は INTEGER(4) です。CHDIR では、ディレクトリが正し
く変更された場合はゼロを返し、そうでない場合はエラーコードを
返します。エラーコードは次のとおりです。
ENOENT
指定したディレクトリが存在しません。
ENOTDIR
NEW_DIRECTORY パラメータがディレクトリでは
ありません。
例
USE IFLPORT
CHARACTER(LEN=16) NEW_DIRECTORY
2-10
移植性関数
2
LOGICAL(4) CHANGEDIT
NEW_DIRECTORY=”c:\program files”
CHANGEDIT=CHDIR(NEW_DIRECTORY)
IF (CHANGEDIT) THEN
PRINT *, “CHDIR SUCCESSFUL”
ELSE
PRINT *,”Directory could not be changed”
ENDIF
END
CLEARSTATUSFPQQ
浮動小数点プロセッサの処理ワード
をクリアにします。
プロトタイプ
INTERFACE
SUBROUTINE CLEARSTATUSFPQQ()
END SUBROUTINE
END INTERFACE
説明
浮動小数点処理ワードをクリアにします。
CLOCK
現在の時刻を返します。
プロトタイプ
INTERFACE
CHARACTER(LEN=8) FUNCTION CLOCK()
2-11
2
インテル ® Fortran ライブラリ・リファレンス
END FUNCTION
END INTERFACE
TIMESTR
説明
24 時間制を使用して、HH:MM:SS の形式で表した現在の時刻を返し
ます。
出力
hh:mm:ss の形式で表した現在の時刻です。
CLOCKX
処理系時刻を返します。
プロトタイプ
INTERFACE
SUBROUTINE CLOCKX (CLOCK)
REAL(8) CLOCK
END SUBROUTINE CLOCKX
END INTERFACE
CLOCK
現在の時刻
説明
この関数は、最も近いマイクロ秒に合わせた処理系時刻を返しま
す。
出力
最も近いマイクロ秒に合わせた処理系時刻です。
2-12
移植性関数
2
COMMITQQ
保留中の書き込み操作の実行を強制
します。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION COMMITQQ(LUN)
INTEGER(4) LUN
END FUNCTION COMMITQQ
END INTERFACE
説明
指定した装置に関連するファイルに対する保留中の書き込み操作
を、ファイルの物理装置に対して実行するようにオペレーティン
グ・システムに要求します。FLUSH と同じ機能です。
使用法
result = COMMITQQ (LUN)
LUN
入力。INTEGER(4)。キャッシュ・メモリから物
理装置にフラッシュされるファイルに接続された
Fortran 論理装置 (LUN)。
結果
結果の型は LOGICAL(4) です。開かれた LUN 番号が指定された場
合は、.TRUE. が返され、書き込まれていない記録が(ある場合)
書き込まれます。開かれていない LUN 番号が指定された場合は
.FALSE. が返されます。
ファイルに書き込まれるデータは、通常はバッファに書き込まれ、
そのバッファが一杯になるまで保持されます。バッファが一杯に
なった場合にのみ、データが装置に書き込まれます。ファイルが閉
じられると、バッファ内のデータは自動的にディスクにフラッシュ
2-13
2
インテル ® Fortran ライブラリ・リファレンス
されます。ただし、データがバッファから転送される前にプログラ
ムやコンピュータがクラッシュした場合は、そのデータは失われる
ことがあります。
COMMITQQ を実行すれば、物理装置上のファイル用にキャッシュさ
れたデータは、その装置にただちに書き込まれます。これをファイ
ルのフラッシュと呼びます。
NOTE. 配布リストからファイルの iflport.f90 をローカ
ル・ディレクトリにコピーし、使用する前にコンパイル
します。
例
USE IFLPORT
INTEGER LUN / 10 /
INTEGER len
CHARACTER(80) stuff
OPEN(LUN, FILE='COMMITQQ.TST', ACCESS='Sequential')
DO WHILE (.TRUE.)
WRITE (*, '(A, \)') 'Enter some data (Hit RETURN to
exit): '
len = GETSTRQQ (stuff)
IF (len .EQ. 0) EXIT
WRITE (LUN, *) stuff
IF (.NOT. COMMITQQ(LUN)) WRITE (*,*) 'Failed'
END DO
CLOSE (LUN)
END
2-14
移植性関数
2
COMPL
入力値のビットごとの補数、すなわ
ち論理 .NOT. を返します。
プロトタイプ
INTERFACE COMPL
INTEGER(4) FUNCTION COMPLINT(INVAL)
INTEGER(4), INTENT(IN) :: INVAL
END FUNCTION
REAL(4) FUNCTION COMPLREAL(INVAL)
REAL(4), INTENT(IN) :: INVAL
END FUNCTION
LOGICAL(4) FUNCTION COMPLCOMPLLOG(INVAL)
LOGICAL(4), INTENT(IN) :: INVAL
END FUNCTION
END INTERFACE
INVAL
入力。上記の各関数に INTEGER(4)、REAL(4) ま
たは LOGICAL(4)。
説明
INTEGER または REAL 入力の BIT-WISE の補数、または論理入力の
.NOT.(IN) と等価な計算を行います。
出力
入力が論理値である場合は、結果も論理値です。そうでない場合
は、結果は Boolean(Cray ビットセット ) です。Boolean の結果では、
ビットごとの補数を使用します。論理 COMPL の場合は、1<-->0 を
トグル切り替えします。
2-15
2
インテル ® Fortran ライブラリ・リファレンス
CTIME
時間を 24 文字の ASCII 文字列に変
換します。
プロトタイプ
IA-32 システム
INTERFACE
CHARACTER(LEN=24) FUNCTION CTIME(TIME)
INTEGER(4) INTENT(IN) :: TIME
END FUNCTION CTIME
END INTERFACE
Itanium ベースのシステム
INTERFACE
CHARACTER(LEN=24) FUNCTION CTIME(TIME)
INTEGER(8) INTENT(IN) :: TIME
END FUNCTION CTIME
END INTERFACE
TIME
グリニッジ標準時の1970年1月1日00:00:00からの経
過時間(秒)。
説明
この関数は、入力として IA-32 の場合は INTEGER(4)、Itanium
ベースのシステムの場合は INTEGER(8) の変数または式を受け取り
ます。入力値は、グリニッジ標準時の 1970 年 1 月 1 日の真夜中か
らの経過秒数です。CTIME では、この整数入力値を ASCII 文字列
に変換します。
出力
Thu Jan 15 00:00:01 1970 という形式による、24 文字の ASCII 文字列
です。
2-16
移植性関数
2
DATE
現在の日付と時刻を ASCII 文字列と
して返します。
INTERFACE
SUBROUTINE DATE(DATESTR)
CHARACTER(LEN=9) DATESTR
END SUBROUTINE DATE
END INTERFACE
説明
この関数は、現在の日付と時刻を 9 文字の ASCII 文字列として返し
ます。
出力
dd-mmm-yy という形式による、9 文字の ASCII 文字列です。ここで、
dd
2 桁の日付です。
mmm
3 文字の月です。
yy
年の下 2 桁です。
警告:このルーチンでは 2000 年問題が発生する可能性がありま
す。代わりに、DATE_AND_TIME または DATE4 を使用してくだ
さい。
例
次のプログラムでは、現在のシステム日付を取得して印刷します。
その出力は、例えば "12-Jul-96"(引用符なし)となります。
PROGRAM datetest
CHARACTER(9) :: today
INTRINSIC DATE
2-17
2
インテル ® Fortran ライブラリ・リファレンス
CALL DATE(today)
PRINT *, today
END
DATE4
現在の日付と時刻を ASCII 文字列と
して返します。
プロトタイプ
INTERFACE
SUBROUTINE DATE4(DATESTR)
CHARACTER(LEN=11) DATESTR
END SUBROUTINE DATE4
END INTERFACE
説明
この関数は、現在の日付と時刻を 11 文字の ASCII 文字列として返
します。
出力
dd-mmm-yyyy という形式による、11 文字の ASCII 文字列です。
dd
2 桁の日付です。
mmm
3 文字の月です。
yyyy
4 文字の年です。
注:DATE_AND_TIME は Fortran 言語の標準であるため、
DATE_AND_TIME の使用をお勧めします。このルーチンは従来の
DATE ルーチンの機能を提供し、2000 年問題に対応しています。
2-18
移植性関数
2
DBESJ0、DBESJ1、DBESJN、DBESY0、
DBESY1、DBESYN
ベッセル関数の倍精度値を計算しま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
REAL(8) FUNCTION DBESJ0(X)
REAL(8) X
END FUNCTION
REAL(8) FUNCTION DBESJ1(X)
REAL(8) X
END FUNCTION
REAL(8) FUNCTION DBESJN(N,X)
INTEGER(4) N
REAL(8) X
END FUNCTION
REAL(8) FUNCTION DBESY0(X)
REAL(8) X
END FUNCTION
REAL(8) FUNCTION DBESY1(X)
REAL(8) X
END FUNCTION
REAL(8) FUNCTION DBESYN(N,X)
INTEGER(4) N
REAL(8) X
END FUNCTION
2-19
2
インテル ® Fortran ライブラリ・リファレンス
END INTERFACE
説明
第 1 種および第 2 種のベッセル関数の倍精度値を計算します。
使用法
result
result
result
result
result
result
=
=
=
=
=
=
DBESJ0
DBESJ1
DBESJN
DBESY0
DBESY1
DBESYN
(DOUBLEPOS)
(DOUBLEPOS)
(n, DOUBLEPOS)
(DOUBLEPOS)
(DOUBLEPOS)
(n, DOUBLEPOS)
DBELEPOS
REAL(8)。ベッセル関数の独立変数。ゼロ以上で
なければなりません。
N
整数。選択したベッセル関数計算の次元を指定し
ます。
結果
DBESJ0、DBESJ1、および DBESJN は、独立変数 DOUBLEPOSe に
よって、それぞれ 0、1、および n 次の第 1 種のベッセル関数を返し
ます。
DBESY0、DBESY1、および DBESYN は、独立変数 DOUBLEPOSe に
よって、それぞれ 0、1、および n 次の第 2 種のベッセル関数を返し
ます。
負の引数を指定すると、DBESY0、DBESY1、および DBESYN は非常
に大きな負の値を返します。
例
10
2-20
USE IFLPORT
REAL(8) BESNUM, BESOUT
READ *, BESNUM
BESOUT = DBESJ0(BESNUM)
PRINT *, 'Result is ',BESOUT
GOTO 10
END
移植性関数
2
DCLOCK
現在のプロセスが開始されてからの
経過時間(秒単位)を返します。
プロトタイプ
INTERFACE
REAL(8) FUNCTION DCLOCK()
END FUNCTION
END INTERFACE
説明
この関数は、プロセスが開始されてからの経過時間を DOUBLE
PRECISION の数値として返します。
注 : DCLOCK を最初に呼び出すとキャリブレーションが行われます。
分類
非標準の要素別処理関数
結果の型および型パラメータ
DOUBLE PRECISION
出力
プロセスの開始からの経過秒数です。このルーチンは、現在のプロ
セスが実行されている処理系の周波数を考慮に入れて、最も近いマ
イクロ秒に合わせた正しいタイミングを提供します。これと等しい
結果は、標準 Fortran の CPU_TIME 組み込み関数を使用しても得ら
れます。
例
DOUBLE PRECISION START_TIME, STOP_TIME, DCLOCK
EXTERNAL DCLOCK
START_CLOCK = DCLOCK()
CALL FOO()
2-21
2
インテル ® Fortran ライブラリ・リファレンス
STOP_CLOCK = DCLOCK()
PRINT *, "foo took:", STOP_CLOCK - START_CLOCK, "seconds."
DELDIRQQ
指定したディレクトリを削除しま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION DELDIRQQ(DirName)
CHARACTER(LEN=*) DirName
END FUNCTION
END INTERFACE
使用法
result = DELDIRQQ (DIRNAME)
DIRNAME
CHARACTER(LEN=*)。削除されるディレクトリ
の名前を含む CHARACTER 値。
結果
結果は LOGICAL(4) です。成功した場合は .TRUE. で、失敗した
場合は .FALSE. になります。
削除されるディレクトリは空でなければなりません。このディレク
トリには、現在のディレクトリ、ルート・ディレクトリ、および別
のプロセスによって現在使用されているディレクトリを指定するこ
とはできません。
2-22
移植性関数
2
DELFILESQQ
指定に一致するファイルを削除しま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION DELFILESQQ(FILESPEC)
CHARACTER(LEN=*) FILESPEC
END FUNCTION
END INTERFACE
説明
名前指定に一致するすべてのファイルを削除します。この名前指定
にはワイルドカード (* と ?) を含むことができます。
使用法
result = DELFILESQQ (FILESPEC)
FILESPEC
CHARACTER(LEN=*)。削除されるファイル。ワ
イルドカード (* と ?) を含むことができます。
結果
結果の型は INTEGER(2) です。戻り値は削除されたファイルの数
です。
ワイルドカードを使用すれば、同時に複数のファイルを削除できま
す。DELFILESQQ では、ディレクトリ、システムファイル、隠し
ファイル、および読み取り専用ファイルは削除されません。この関
数では一度に多数のファイルを削除できるため、使用に際しては注
意する必要があります。ファイルが他のプロセスで使用されている
(例えば、他のプロセスで開かれている)場合、そのファイルは削
除できません。
2-23
2
インテル ® Fortran ライブラリ・リファレンス
例
USE IFLPORT
INTEGER(4) len, count
CHARACTER(80) file
CHARACTER(1) ch
WRITE(*,*) "Enter names of files to delete: "
len = GETSTRQQ(file)
IF (file(1:len) .EQ. '*.*') THEN
WRITE(*,*) "Are you sure (Y/N)?"
ch = GETCHARQQ()
IF ((ch .NE. 'Y') .AND. (ch .NE. 'y')) THEN
STOP "No files deleted"
ELSE
PRINT *,"OK, deleting all files"
ENDIF
END IF
count = DELFILESQQ(file)
WRITE(*,*) "Deleted ", count, " files."
END
DFLOATI
INTEGER(2) を DOUBLE PRECISION
型に変換します。
プロトタイプ
INTERFACE
DOUBLE PRECISION (REAL(8)) FUNCTION DFLOATI (INPUT)
INTEGER(2), INTENT(IN)::INPUT
END FUNCTION DFLOATI
END INTERFACE
INPUT
2-24
スカラ INTEGER(KIND=2) 値
移植性関数
2
説明
DFLOATI は、スカラ整数 (KIND=2) 型を DOUBLE
PRECISION(REAL(8)) に変換する要素別処理関数です。
出力
DOUBLE PRECISION に変換された整数値です。
DFLOATJ
INTEGER(4) を DOUBLE PRECISION
型に変換します。
プロトタイプ
INTERFACE
DOUBLE PRECISION (REAL(8)) FUNCTION DFLOATJ (INPUT)
INTEGER(4), INTENT(IN)::INPUT
END FUNCTION DFLOATJ
END INTERFACE
INPUT
INTEGER(4) の値または式
説明
DFLOATJ は、INTEGER(4) 型を DOUBLE PRECISION(REAL(8)) 型
に変換する要素別処理関数です。
出力
DOUBLE PRECISION に変換された整数値です。
2-25
2
インテル ® Fortran ライブラリ・リファレンス
DFLOATK
INTEGER(8) 型を DOUBLE
PRECISION 型に変換します。
プロトタイプ
INTERFACE
REAL(8) FUNCTION DFLOATK (INPUT)
INTEGER(8), INTENT(IN)::INPUT
END FUNCTION DFLOATJ
END INTERFACE
INPUT
INTEGER(8) の値または式
説明
DFLOATK は、INTEGER(8) 型を DOUBLE PRECISION( または
REAL(8)) 型に変換する要素別処理関数です。
出力
DOUBLE PRECISION に変換された整数値です。
DRAND
0. 〜 1. の範囲で連続した擬似乱数
を生成します。
プロトタイプ
INTERFACE
REAL(8) FUNCTION DRAND()
END FUNCTION DRAND
END INTERFACE
2-26
移植性関数
2
説明
0.0 〜 1.0 の範囲で一様に分布する、連続した擬似乱数を生成しま
す。
分類
非標準の要素別処理関数
結果の型および型パラメータ
REAL(8) 型
例
REAL(8) rv
rv = RAND()
注:IRAND と RAND で使用される擬似乱数生成器の再起動の詳細
については、「SRAND」の項を参照してください。
DRANSET
RANGET のシードを設定します。
プロトタイプ
INTERFACE
SUBROUTINE DRANSET (ISEED)
REAL(8) ISEED
END SUBROUTINE DRANSET
END INTERFACE
説明
RANGET のシードが設定でき、擬似乱数列を変更できます。
2-27
2
インテル ® Fortran ライブラリ・リファレンス
出力
RANGET 用の乱数生成器のシードの内部値を変更します。
DSHIFTL
左方向にダブルシフトします。
プロトタイプ
INTERFACE
INTEGER(8) FUNCTION DSHIFTL (LEFT, RIGHT, SHIFT)
INTEGER(8) LEFT, RIGHT, SHIFT
END FUNCTION DSHIFTL
END INTERFACE
LEFT
64 ビットの整数式
RIGHT
64 ビットの整数式
SHIFT
シフトカウント
説明
この関数は、2 つの 64 ビット値と 1 つのシフトカウントを受け取
り、左側の 64-SHIFT から始まり右側まで続く 64 のビットで構成
される 64 ビット値を返します。
例
INTERFACE
INTEGER(8) FUNCTION DSHIFTL(LEFT,RIGHT,SHIFT)
INTEGER(8) LEFT,RIGHT,SHIFT
END FUNCTION DSHIFTL
END INTERFACE
INTEGER(8) LEFT/Z'111122221111222'/
INTEGER(8) RIGHT/Z'FFFFFFFFFFFFF'/
PRINT *, DSHIFTL(LEFT, RIGHT,16_8)
END
2-28
移植性関数
2
この例の正しい出力は、1306643199093243919 です。
出力
CRAY Fortran コードとの互換性のため、この関数は左方向へのシフ
トと抽出を行います。
DSHIFTR
右方向にダブルシフトします。
プロトタイプ
INTERFACE
INTEGER(8) FUNCTION DSHIFTR(LEFT,RIGHT,SHIFT)
INTEGER(8) LEFT,RIGHT,SHIFT
END FUNCTION DSHIFTR
END INTERFACE
ILEFT
64 ビットの整数値
IRIGHT
64 ビットの整数値
ISHIFT
整数シフトカウント
説明
ILEFT と IRIGHT を、128 ビット整数のそれぞれ上部および下部と解
釈します。結果は、128 ビット整数のビット ISHIFT で始まる 64
ビット文字列です。関数結果が ILEFT または IRIGHT と同じ記憶
場所に割り当てられる場合を除いて、引数 ILEFT と IRIGHT は変
更されません。ISHIFT は、0 〜 64 の範囲内に収めるものとしま
す。
例
INTERFACE
INTEGER(8) FUNCTION
DSHIFTR(LEFT,RIGHT,SHIFT)
INTEGER(8) LEFT,RIGHT,SHIFT
2-29
2
インテル ® Fortran ライブラリ・リファレンス
END FUNCTION DSHIFTR
END INTERFACE
INTEGER(8) LEFT/Z'111122221111222'/
INTEGER(8) RIGHT/Z'FFFFFFFFFFFFF'/
PRINT *, DSHIFTR(LEFT, RIGHT,16_8)
END
この例の正しい出力は、1306606910610341887 です。
出力
1 つの INTEGER(8) 値です。
DTIME
DTIME の実行開始から、または
DTIME を最後に呼び出してからの
経過 CPU 時間を返します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION DTIME (TARRAY)
REAL(4) TARRAY(2)
END FUNCTIOMN DTIME
END INTERFACE
説明
プログラム実行時の最初の呼び出しでは、DTIME は、プログラムの
実行が開始されてからの時間を TARRAY の要素で返します。
TARRAY(1) にはユーザ時刻が含まれており、TARRAY(2) にはシス
テム時刻が含まれています。ライブラリ・ルーチンでは、
GetProcessTimes システム・ライブラリ・コールを使用します。
DTIME に対するそれ以降の呼び出しでは、DTIME を前回呼び出して
から経過したユーザ時間とシステム時間が TARRAY に返されます。
2-30
移植性関数
2
出力
エラーの場合、関数は –1 を返します。上述のように、時間は
TARRAY の要素として返されます。時間の単位は秒です。プロセス
の最も正確なタイミングをとるには、Fortran 95 の標準組み込みサ
ブルーチンである CPU_TIME を使用してください。
ETIME
実行が開始されてからの経過時間を
秒数で返します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION ETIME(TARRAY)
REAL(4) TARRAY(2)
END FUNCTION
END INTERFACE
説明
この関数は、現在のプロセスが開始されてからの経過時間を秒数で
返します。ETIME の精度は、GetProcessTimes システムコールの精
度、すなわち約 1/100 秒に制限されています。ルーチンの最も正確
なタイミングをとるには、Fortran 95 の標準組み込みサブルーチン
である CPU_TIME を使用してください。
出力
エラーの場合、この関数は –1 を返します。TARRAY(1) には、プロ
セスが開始されてからのユーザ時間が秒数で含まれています。プロ
セスが開始されてからのシステム時間(秒数)は TARRAY(2) に返
されます。
2-31
2
インテル ® Fortran ライブラリ・リファレンス
EXIT
すべてのファイルを閉じて、プログ
ラムを終了します。
プロトタイプ
INTERFACE
SUBROUTINE EXIT (STATUS)
INTEGER(4), OPTIONAL, INTENT(IN)::STATUS
INTEGER ISEED
END SUBROUTINE
END INTERFACE
省略可能な引数
STATUS
説明
すべてのファイルを閉じて、プログラムを終了します。
分類
非標準のサブルーチン
引数
STATUS が指定された場合は、呼び出し側のプログラムは、
STATUS という戻りコード・ステータスで終了します。そうでない
場合は、戻りコード・ステータスは不定です。
csh では、最後に実行されたコマンドの戻りコードが $status 環境
変数に保持されます。ksh では、戻りコードが $? 環境変数に保持
されます。
例
次のプログラムは、2 番目の PRINT 文の前に終了します。
PROGRAM testexit
2-32
移植性関数
2
INTEGER stat
PRINT *, "Program prints this line."
stat = 3
CALL EXIT(stat)
END
このプログラムでは、次の出力が得られます。
Program prints this line.
戻りコードは、$status または $? の環境変数に保存され、印刷は
されません。
FDATE
現在の日付と時刻を返します。
プロトタイプ
INTERFACE
SUBROUTINE FDATE(STRING)
CHARACTER(LEN=24) STRING
END SUBROUTINE FDATE
END INTERFACE
STRING
24 バイトの文字変数または配列要素。FDATE の結
果が格納されます。
説明
このルーチンは、現在の日付と時刻を STRING に返します。呼び出
し前の STRING の値は破壊されます。
出力
24 文字の文字列で、Thu Jan 15 00:00:01 1970 の形式です。
2-33
2
インテル ® Fortran ライブラリ・リファレンス
FGETC
ファイルから 1 バイトを読み取りま
す。
プロトタイプ
INTERFACE
INTEGER FUNCTION FGETC(LUNIT,NCHAR)
INTEGER LUNIT
CHARACTER(LEN=1) NCHAR
END FUNCTION FGETC
END INTERFACE
LUNIT
論理装置番号
NCHAR
文字変数
説明
このルーチンは、現在の位置でファイルから 1 バイトを読み取りま
す。読み取り中にエラーが発生した場合は、入出力エラー番号が返
されます。そうでない場合は、読み取りに成功したものとして、
FGETC はゼロを返します。書式化されていないファイルの場合、各
記録には記録長インジケータなどの特殊なバイトが存在し、この関
数を使用するときに特殊な扱いが必要になることもあるので注意し
てください。一般に、書式化されていないファイルの記録長インジ
ケータは、各記録の先頭の 4 バイトです。論理装置番号は 0 〜 100
の範囲でなければならず、FGETC の呼び出し時には、ファイルに接
続されていなければなりません。
このルーチンはスレッドセーフであり、入出力が行われる前に、関
連するストリームを閉鎖します。
出力
成功した場合はゼロが返され、失敗した場合はゼロ以外が返されま
す。NCHAR には、LUNIT に接続されたファイルから読み取られる
次のバイトが割り当てられます。
2-34
移植性関数
2
FINDFILEQQ
指定したファイルを検索します。
プロトタイプ
USE IFLPORT
または
INTERFACE
IINTEGER(4) FUNCTION FINDFILEQQ(FILE, ENV, BUF)
CHARACTER(LEN=*) FILE, ENV, BUF
END FUNCTION
END INTERFACE
説明
環境変数に含まれるパスに記載されたディレクトリから指定された
ファイルを検索します。
使用法
result = FINDFILEQQ (file, env, buf)
FILE
CHARACTER(LEN=*)。検索されるファイルの名
前。
ENV
CHARACTER(LEN=*)。検索されるパスを含む環
境変数の名前。
BUF
CHARACTER(LEN=*)。検索されたファイルのフ
ルパスを受け取るバッファ。
結果
結果の型は INTEGER(4) です。結果は、BUF に返された検出ファ
イルのフルパスを含む文字の長さです。ファイルが見つからなかっ
た場合、結果は 0 です。
例
USE IFLPORT
2-35
2
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(256) BUF
CHARACTER(20) FILE,ENV
INTEGER(4) result
FILE = "libc.lib"
ENV = "LIB"
result = FINDFILEQQ(FILE,ENV, buf)
WRITE (*,*) BUF
END
FLUSH
ファイルバッファの内容を外部ファ
イルにフラッシュします。
プロトタイプ
INTERFACE
SUBROUTINE FLUSH(LUNIT)
INTEGER LUNIT
END SUBROUTINE FLUSH
END INTERFACE
LUNIT
論理装置番号
説明
このルーチンは、ファイルバッファの内容を外部ファイルにフラッ
シュして、即時書き込みを行います。このルーチンは、端末に接続
されているファイルに最も役立ちます。論理装置番号は 0 〜 100 の
範囲でなければならず、FLUSH の呼び出し時にはファイルに接続さ
れていなければなりません。このルーチンはスレッドセーフであ
り、入出力が行われる前に、関連するストリームを閉鎖します。
出力
失敗した場合は ERRNO が設定されます。
2-36
移植性関数
2
FOR_CHECK_FLAWED_PENTIUM
プロセッサをチェックします。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE FOR_CHECK_FLAWED_PENTIUM
END SUBROUTINE
END INTERFACE
説明
プロセッサをチェックして、Pentium® の浮動小数点除算の欠陥特性
を示すかどうか判定します。
これは、/Qfdiv コンパイラ・スイッチを付けてコンパイルした場合
の Fortran プログラムに対して呼び出されます。
使用法
result = FOR_CHECK_FLAWED_PENTIUM ( )
結果
浮動小数点除算の欠陥が見つかった場合は、エラー・メッセージが
表示され、呼び出し側のプログラムが終了します。
この動作を行わないようにするには、環境変数
FOR_RUN_FLAWED_PENTIUM に .TRUE. の値を設定します。
例
USE IFLPORT
REAL*8 X, Y, Z
X = 5244795.0
Y = 3932159.0
Z = X - (X/Y) * Y
2-37
2
インテル ® Fortran ライブラリ・リファレンス
IF (Z .NE. 0) THEN
! If flawed, Z will be 256
PRINT *, " FDIV flaw detected on Pentium"
ENDIF
END
FOR_GET_FPE
浮動小数点例外フラグの現在の設定
を返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION FOR_GET_FPE()
END FUNCTION
END INTERFACE
説明
浮動小数点例外フラグの現在の設定を返します。このルーチンは、
C や Fortran のプログラムから呼び出すことができます。
使用法
result = FOR_GET_FPE ( )
結果
結果の型は INTEGER(4) です。戻り値は、現在のプロセッサの浮
動小数点例外フラグの設定を表します。ビットの意味は、IFLPORT
モジュール・ファイルで定義されます。
例
USE IFLPORT
INTEGER(4) FPE_FLAGS
2-38
移植性関数
2
FPE_FLAGS = FOR_GET_FPE ( )
END
FPUTC
ファイルに 1 文字を書き込みます。
プロトタイプ
INTERFACE
INTEGER FUNCTION FPUTC(LUNIT, CH)
INTEGER LUNIT
CHARACTER(LEN=1) CH
END FUNCTION FPUTC
END INTERFACE
LUNIT
ファイルの装置番号
CH
文字変数
説明
Fortran 外部装置で指定されたファイルに 1 文字を書き込みます。
出力
成功した場合は、ゼロを返します。失敗した場合は、エラーコード
を返します。
2-39
2
インテル ® Fortran ライブラリ・リファレンス
FSEEK
指定したシークポイントを基準にし
てファイル位置を変更します。
プロトタイプ
INTERFACE
SUBROUTINE FSEEK(LUNIT,OFFSET,FROM)
INTEGER(4) LUNIT,OFFSET,FROM
END SUBROUTINE FSEEK
END INTERFACE
LUNIT
論理装置番号
OFFSET
整数式。その値でシークポイント FROM からのオフ
セットをバイト単位で示します。
FROM
整数式。その値は 0、1、または 2 でなければなりま
せん。
0
シークポイントはファイルの先頭
にあります。
1
シークポイントは現在のファイル
位置にあります。
2
シークポイントはファイルの最後
にあります。
説明
このルーチンは、FROM パラメータによって指定されたシークポイ
ントから OFFSET バイトの場所にファイル位置を変更します。書式
化されていないファイルの場合、各記録には記録長インジケータな
どの特殊なバイトが存在し、この関数を使用するときに特殊な扱い
が必要になることもあるので注意してください。一般に、書式化さ
れていないファイルの記録長インジケータは、各記録の先頭の 4 バ
イトです。論理装置番号は 0 〜 100 の範囲でなければならず、
FSEEK の呼び出し時には、ファイルに接続されていなければなりま
せん。
2-40
移植性関数
2
このルーチンはスレッドセーフであり、入出力が行われる前に、関
連するストリームを閉鎖します。
出力
成功した場合はゼロが返され、失敗した場合はゼロ以外が返されま
す。
FOR_SET_FPE
浮動小数点例外フラグを設定しま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION FOR_SET_FPE(EnableMask)
INTEGER(4) EnableMask
END FUNCTION
END INTERFACE
使用法
result = FOR_SET_FPE(EnableMask)
EnableMask
INTEGER(4) 型でなければなりません。これには、
浮動小数点例外を制御するビットフラグが含まれ
ています。
結果
結果の型は INTEGER(4) です。戻り値は、浮動小数点例外フラグ
の以前の設定を表します。ビットの意味は、IFLPORT.f90 モジュー
ル・ファイルで定義されます。
2-41
2
インテル ® Fortran ライブラリ・リファレンス
例
USE IFLPORT
INTEGER(4) OLD_FLAGS, NEW_FLAGS
OLD_FLAGS = FOR_SET_FPE (NEW_FLAGS)
END
FOR_SET_REENTRANCY
ランタイム・ライブラリの再入ロッ
クの型を制御します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION FORr_SET_REENTRANCY(NEW_MODE)
INTEGER(4) NEW_MODE
END FUNCTION
END INTERFACE
使用法
result = FOR_SET_REENTRANCY ( NEW_MODE )
NEW_MODE
INTEGER(4)。次のいずれかのオプションを含ん
でいます。
FOR_K_REENTRANCY_NONE
RTL コードの重要なセクションの周囲で簡単な
ロッキングを行うように、ランタイム・ライブラ
リに指示します。このような保護は、非同期シス
テム・トラップ (AST) やアプリケーション内のス
レッドによって、Fortran ライブラリに再入できな
い場合に使用してください。
2-42
移植性関数
2
FOR_K_REENTRANCY_ASYNCH
ライブラリ・コードの重要なセクションの周囲で
簡単なロッキングを行い、AST を無効にするよう
に、ランタイム・ライブラリに指示します。この
ような保護は、Fortran のランタイム・システムを
呼び出す AST ハンドラがアプリケーションに含ま
れている場合に使用してください。
FOR_K_REENTRANCY_THREADED
スレッド・ロッキングを行うように、ランタイ
ム・ライブラリに指示します。このような保護は、
マルチスレッド化されたアプリケーションで使用
してください。
FOR_K_REENTRANCY_INFO
FORTRAN のランタイム・システムに、再入保護
の現在のレベルを問い合わせ、その結果を
NEW_MODE に返します。
結果
FOR_SET_REENTRANCY は INTEGER(4) を返します。戻り値では、
再入 NEW_MODE の以前の設定がわかります。ただし、引数が
FOR_K_REENTRANCY_INFO である場合は、戻り値は現在の設定を
表します。
希望する再入のレベルをサポートする、一連のランタイム・ライブ
ラリにリンクする必要があります。例えば、プログラムを /MT でコ
ンパイルしていない場合は、FOR_SET_REENTRANCY はスレッド保
護 (FOR_K_REENTRANCY_THREADED) の要求を無視します。
例
PROGRAM SETREENT
USE IFLPORT
INTEGER(4) MODE
CHARACTER*10 REENT_TXT(3) /'NONE ', 'ASYNCH
'THREADED'/
INTEGER(4) P1, P2
P1 = FOR_K_REENTRANCY_NONE
P2 = FOR_K_REENTRANCY_INFO
',
2-43
2
インテル ® Fortran ライブラリ・リファレンス
PRINT*,'Setting Reentrancy mode to '
,REENT_TXT(MODE+1)’
MODE = FOR_SET_REENTRANCY(P1)
PRINT*,'Previous Reentrancy mode was
,REENT_TXT(MODE+1)
MODE = FOR_SET_REENTRANCY(P2)
PRINT*,'Current Reentrancy mode is '
,REENT_TXT(MODE+1)
END
'
FTELL
ファイルのファイル位置を返しま
す。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION FTELL(LUNIT)
END FUNCTION FTELL
END INTERFACE
LUNIT
論理装置番号
説明
このルーチンは、入力論理装置に接続されたファイルのファイル位
置を返します。ファイル位置とは、ファイルの先頭からのバイト数
のことです。
書式化されていないファイルの場合、各記録には記録長インジケー
タなどの特殊なバイトが存在し、この関数を使用するときにカウン
トされることに注意してください。一般に、書式化されていない
ファイルの記録長インジケータは、各記録の先頭の 4 バイトです。
論理装置番号は 0 〜 100 の範囲でなければならず、FTELL の呼び出
し時には、ファイルに接続されていなければなりません。
2-44
移植性関数
2
このルーチンはスレッドセーフであり、入出力が行われる前に、関
連するストリームを閉鎖します。
出力
失敗した場合は ERRNO が設定されます。
FULLPATHQQ
指定したファイルやディレクトリの
フルパスを返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION FULLPATHQQ(NAME, FULLPATH)
CHARACTER(LEN=*) NAME, FULLPATH
END FUNCTION
END INTERFACE
使用法
result = FULLPATHQQ ( name, fullpath )
NAME
CHARACTER(LEN=*)。フルパスを希望するファ
イル名。ファイルとしては、現在のディレクトリ
内のファイル名、または相対ディレクトリ名や相
対ファイル名を指定できます。
FULLPATH
CHARACTER(LEN=*)。NAME で指定した項目のフ
ルパスを受け取る CHARACTER 値。
結果
結果は、CHARACTER 内のフルパス名の長さです。ただし、関数が
失敗した場合、結果は 0 になります。指定した名前が既存のファイ
ルでない場合、関数は失敗することがあります。FULLPATH の長さ
2-45
2
インテル ® Fortran ライブラリ・リファレンス
は、使用しているドライブでのディレクトリの入れ子の深さによっ
て異なります。フルパスの長さが、返却用に用意された文字バッ
ファ (FULLPATH) の長さを超えた場合は、FULLPATHQQ では、バッ
ファ内に収まったパス部分だけが返されます。
FULLPATH で返された値を使用する前に、パスの長さを確認してく
ださい。予想される最長のフルパスが、使用しているバッファに収
まらない場合は、もっと大きな文字バッファを割り付けます。でき
るだけ大きなパスバッファを割り付けるには、次の文を使用しま
す。
USE IFLPORT
CHARACTER(MAXPATH) FULLPATH
MAXPATH は、モジュールIFLPORT.F90 で 260 と定義されているシン
ボル定数です。
例
USE IFLPORT
CHARACTER(MAXPATH) BUF
CHARACTER(3)
DRIVE
CHARACTER(256)
DIR
CHARACTER(256)
NAME
CHARACTER(256)
EXT
CHARACTER(256)
FILE
INTEGER(4)
LEN
DO WHILE (.TRUE.)
WRITE (*,*)
WRITE (*,'(A)') ' Enter filename (Hit RETURN to
exit): '
LEN = GETSTRQQ(FILE)
IF (LEN .EQ. 0) EXIT
LEN = FULLPATHQQ(FILE, BUF)
IF (LEN .GT. 0) THEN
WRITE (*,*) buf(:len)
ELSE
WRITE (*,*) 'Can''t get full path'
EXIT
2-46
移植性関数
2
END IF
!
900
!Split path
WRITE (*,*)
LEN = SPLITPATHQQ(BUF, DRIVE, DIR, NAME, EXT)
IF (LEN .NE. 0) THEN
WRITE (*, 900) ' Drive: ', DRIVE
WRITE (*, 900) ' Directory: ', DIR(1:LEN)
WRITE (*, 900) ' Name: ', NAME
WRITE (*, 900) ' Extension: ', EXT
ELSE
WRITE (*, *) 'Can''t split path'
END IF
END DO
FORMAT (A, A)
END
GERROR
最後のエラーのメッセージを返しま
す。
プロトタイプ
INTERFACE
SUBROUTINE GERROR(ERRORMSG)
CHARACTER(LEN=*) ERRORMSG
END SUBROUTINE
END INTERFACE
STRING
検出された最後のエラーのメッセージ。
説明
このルーチンは、検出された最後のエラーのメッセージを返しま
す。
2-47
2
インテル ® Fortran ライブラリ・リファレンス
出力
検出された最後のエラーが STRING に返されます。
GETARG
指定したコマンド行引数を取得しま
す。
プロトタイプ
INTERFACE GETARG
SUBROUTINE GETARG_DVF(N, BUFFER, STATUS)
INTEGER(2), INTENT(IN) :: N
CHARACTER(LEN=*), INTENT(OUT) :: BUFFER
INTEGER(2), OPTIONAL :: STATUS
END SUBROUTINE
SUBROUTINE GETARG(ARGINDEX, ARGUMENT)
INTEGER(4), INTENT(IN) :: ARGINDEX
CHARACTER(LEN=*), INTENT(OUT) :: ARGUMENT
END SUBROUTINE
END INTERFACE
N
( 入力 ) INTEGER(2)。取得のためのコマンドライン引
数の位置。コマンド自体の引数は 0 です。
BUFFER
( 出力 ) 引数が返される領域。結果を保持するための十
分なサイズが必要です。サイズが不足すると切り捨
てが行われます。
STATUS
2-48
( オプション ; 出力 ) INTEGER(2)。STATUS は、コマ
ンドライン引数での元の文字数です。指定された場
合、完了した状態 ( 切り捨てまたは空白の挿入前に
取得されたコマンドライン引数にある文字数 ) を返
します。エラーの場合、-1 の値を返します。エラー
は 0 より少ない引数または NARGS により返される
値よりも大きい引数位置を指定した場合も含みます。
移植性関数
2
説明
GETARG は、N 番目のコマンドライン引数を返します。N が 0 の場
合、GETARG は実行プログラム・ファイル名を返します。
GETARG は、2 つまたは 3 つの引数と共に使用できます。
DFLIB.F90 モジュールを使用する場合、GETARG への呼び出しを 2
つまたは 3 つの引数を混合して呼び出せます。以下の例を参照して
ください。DFLIB.F90 を使用しない場合は、GETARG への呼び出し
には 2 つか 3 つの引数を使用できますが、サブプログラム内では 1
つの型のみです。
2 つの引数と使用する場合、最初の型は INTEGER(KIND=4) です。
このバージョンは、単純に文字型変数として N 番目の引数を返しま
す。ARGINDEX ( または N) は、0 または正の整数でなければいけま
せん。引数の取得中にエラーが発生した場合、ARGUMENT ( また
は BUFFER) は、空白で埋められます。ARGUMENT が短すぎて入
力引数を保持できない場合、入力引数は ARGUMENT に対応する長
さに切り捨てられます。ARGUMENT が入力引数よりも長い場合
は、ARGUMENT では、右端に空白が挿入されます。
2 番目の GETARG 形式では、空白が挿入されたり切り捨てられる前
に、返される入力引数長のオプション パレメータを許可します。ま
た、INTEGER(KIND=2) 引数インデックスも使用します。
出力
A は、入力時の実行プログラムへの N 番目のコマンドライン引数を
表します。大文字と小文字の変換はありません。
例:
次のコードは、GETARG への混合呼び出しの例です。
USE DFLIB
INTEGER(2) result
result = RUNQQ('prog', '-c -r')
END
! PROG.F90
USE DFLIB
INTEGER(2) n1, n2, status
CHARACTER(80) buf
n1 = 1
n2 = 2
2-49
2
インテル ® Fortran ライブラリ・リファレンス
CALL GETARG(n1, buf, status)
WRITE(*,*) buf
CALL GETARG(n2, buf )
WRITE (*,*) buf
END
GETCHARQQ
次のキー入力を取得します。
プロトタイプ
USE IFLPORT
または
! Get character from console
CHARACTER(LEN=1) FUNCTION GETCHARQQ()
END FUNCTION GETCHARQQ
使用法
result = GETCHARQQ ( )
結果
結果の型は CHARACTER(1) であり、押されたキーの値が入ってい
ます。値は、任意の ASCII 文字になります。押されたキーが 1 つの
ASCII 文字によって表される場合は、GETCHARQQ はその文字を返
します。押されたキーがファンクション・キーや方向キーである場
合は、16 進の #00 または #E0 が返されます。押されたファンク
ション・キーや方向キーを知る必要がある場合は、もう一度
GETCHARQQ を呼び出してキーの拡張コードを取得します。
キーボード・バッファに待機中のキー入力がない場合、
GETCHARQQ は、キー入力があるまで待機してから、そのキー入力
を返します。キーボード・バッファに文字があるかどうか前もって
判断するには、PEEKCHARQQ を使用します。PEEKCHARQQ は、
キーボード・バッファに待機中の文字がある場合は .TRUE. を返
2-50
移植性関数
2
し、そうでない場合は .FALSE. を返します。これによって、
GETCHARQQ が存在しないキー入力を待機する間、プログラムがハ
ングアップすることを防止できます。
例
! Program to demonstrate GETCHARQQ
USE IFLPORT
CHARACTER(1) key / 'A' /
PARAMETER (ESC = 27)
PARAMETER (NOREP = 0)
WRITE (*,*) ' Type a key: (or q to quit)'
! Read keys until ESC or q is pressed
DO WHILE (ICHAR (key) .NE. ESC)
key = GETCHARQQ()
! Some extended keys have no ASCII representation
IF(ICHAR(key) .EQ. NOREP) THEN
key = GETCHARQQ()
WRITE (*, 900) 'Not ASCII. Char = NA'
WRITE (*,*)
! Otherwise, there is only one key
ELSE
WRITE (*,900) 'ASCII. Char = '
WRITE (*,901) key
END IF
IF (key .EQ. 'q' ) THEN
EXIT
END IF
END DO
900
FORMAT (1X, A)
901
FORMAT (A)
END
2-51
2
インテル ® Fortran ライブラリ・リファレンス
GETCONTROLFPQQ
浮動小数点プロセッサの制御ワード
を返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE GETCONTROLFPQQ(CONTROL)
INTEGER(2) CONTROL
END SUBROUTINE
END INTERFACE
使用法
CALL GETCONTROLFPQQ (CONTROL)
CONTROL
INTEGER(2)。浮動小数点プロセッサの制御ワー
ド。
浮動小数点制御ワードは、浮動小数点演算コプロセッサのさまざま
なモードを決定する一連のフラグです。IFLPORT.F90 モジュー
ル・ファイルには、次のように、制御ワードに定義された定数が含
まれています。
2-52
パラメータ名
16 進値
説明
FPCW$MCW_IC
Z’1000’
無限大の制御マスク
FPCW$AFFINE
Z’1000‘
アフィン無限大
FPCW$PROJECTIVE
Z’0000’
射影無限大
FPCW$MCW_PC
Z’0300’
精度の制御マスク
FPCW$64
Z’0300’
64 ビット精度
FPCW$53
Z’0200’
53 ビット精度
FPCW$24
Z’0000’
24 ビット精度
FPCW$MCW_RC
Z’0C00’
丸めの制御マスク
移植性関数
パラメータ名
16 進値
説明
FPCW$CHOP
Z’0C00’
切り捨て
FPCW$UP
Z’0800’
大きい方へ丸める
FPCW$DOWN
Z’0400’
小さい方へ丸める
FPCW$NEAR
Z’0000’
最近値に丸める
FPCW$MSW_EM
Z’003F’
例外マスク
FPCW$INVALID
Z’0001’
無効な数値を許容する
FPCW$DENORMAL
Z’0002’
デノーマル(非常に小さい数値)を
許容する
FPCW$ZERODIVIDE
Z’0004’
ゼロによる除算を許容する
FPCW$OVERFLOW
Z’0008’
オーバーフローを許容する
FPCW$UNDERFLOW
Z’0010’
アンダーフローを許容する
FPCW$INEXACT
Z’0020’
不正確な精度を許容する
2
デフォルトでは、浮動小数点制御ワードの設定は、53 ビット精度で
あり、最近値に丸められ、デノーマル、アンダーフロー、および不
正確な精度の例外が無効にされています。例外は、そのフラグが 1
にセットされている場合は無効にされ、そのフラグが 0 にクリアさ
れている場合は有効にされます。例外を無効にするには、
SETCONTROLFPQQ によってフラグに 1 をセットします。
例外が無効にされた場合は、例外が発生しても割り込みは生じませ
ん。その代わりに、適切な特殊値 (NaN または符号付き無限大 ) が
生成され、プログラムは続行されます。このような値を出力すると
き、ランタイム・ライブラリでは、NaN を ????? として、正の無限
大を +++++++ として、負の無限大を ---------- として、それぞれ表し
ます。
どの例外が発生したかを調べるには、GETSTATUSFPQQ を呼び出し
ます。浮動小数点例外でのエラーを有効にした場合は、
SETCONTROLFPQQ によってフラグを 0 にクリアすると、例外の発生
時に割り込みが生成されます。通常、これらの割り込みによってエ
ラーが生じますが、SIGNALQQ によって割り込みを取り込んで、独
自のエラー処理ルーチンに分岐することができます。
GETCONTROLFPQQ を使用して現在の制御ワードを取り出し、
SETCONTROLFPQQ を使用して制御ワードを変更することができま
す。多くの場合、デフォルト設定を変更する必要はありません。
2-53
2
インテル ® Fortran ライブラリ・リファレンス
例
USE IFLPORT
INTEGER(2) CONTROL
CALL GETCONTROLFPQQ (CONTROL)
PRINT 10,CONTROL
10 FORMAT('Initial control settings ',Z)
!if not rounding down
IF (IAND(CONTROL, FPCW$DOWN) .NE. FPCW$DOWN) THEN
CONTROL = IAND(CONTROL, NOT(FPCW$MCW_RC))
!clear all rounding
CONTROL = IOR(control, FPCW$DOWN)
!set to round down
CALL SETCONTROLFPQQ(CONTROL)
CALL GETCONTROLFPQQ(CONTROL)
PRINT 20,control
20 FORMAT('Final control settings ',Z)
END IF
END
GETCWD
現在の作業ディレクトリのパスを取
り出します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION GETCWD(DIRECTORY)
CHARACTER(LEN=*) DIRECTORY
END FUNCTION GETCWD
END INTERFACE
2-54
移植性関数
2
使用法
result = GETCWD (directory)
DIRECTORY
CHARACTER(LEN=*)。ドライブ文字を含む、現
在の作業ディレクトリ・パスを受け取る文字値。
結果
GETCWD は、成功した場合はゼロを返し、失敗した場合はエラー
コードを返します。
例
USE IFLPORT
CHARACTER(LEN=30) DIRECTORY
! variable DIRECTORY must be long enough to hold
! entire string
INTEGER(4) ISTAT
ISTAT = GETCWD (DIRECTORY)
IF (ISTAT == 0) PRINT *, 'Current directory is ',
DIRECTORY
END
GETDAT
現在の日付を整数形式で返します。
プロトタイプ
INTERFACE GETDAT
SUBROUTINE GETDAT(IYEAR,IMONTH,IDAY)
INTEGER(4), INTENT(OUT) :: IYEAR,IMONTH,IDAY
END SUBROUTINE GETDAT
SUBROUTINE GETDAT_DVF(IYEAR,IMONTH,IDAY)
INTEGER(2), INTENT(OUT) :: IYEAR,IMONTH,IDAY
END SUBROUTINE
END INTERFACE
2-55
2
インテル ® Fortran ライブラリ・リファレンス
IYEAR
整数値
IMONTH
整数値
IDAY
整数値
説明
このルーチンは、現在の日付を整数形式で返します。Windows NT*
システムでは、この関数はスレッドセーフです。
出力
現在の日付が返されます。IYEAR には、ユリウス暦によって計算さ
れた現在の年が含まれています。IMONTH には月の値が含まれてい
ます。1 は 1 月に対応し、12 は 12 月に対応します。IDAY は日付を
返します。
GETDRIVEDIRQQ
指定したディスクドライブ上にある
現在の作業ディレクトリの完全なパ
スを取得します。
プロトタイプ
USE IFLPORT
または
INTERFACE
! Get the current directory for a given drive
INTEGER(4) FUNCTION GETDRIVEDIRQQ(DRIVEDIR)
CHARACTER(LEN=*) DRIVEDIR
END FUNCTION
END INTERFACE
使用法
result = GETDRIVEDIRQQ (DRIVEDIR)
2-56
移植性関数
DRIVEDIR
2
CHARACTER(LEN=*)。入力の場合、DRIVEDIR に
は、現在の作業ディレクトリ・パスが返されるド
ライブが含まれています。出力の場合、
DRIVEDIR には、そのドライブ上の現在のディレ
クトリが d:\dir の形式で含まれています。
結果
結果は INTEGER(4) です。結果は、指定したドライブ上のフルパ
スの長さ ( バイト単位 ) です。フルパスが DRIVEDIR のサイズより
長い場合は、ゼロが返されます。
現在のドライブについての情報を取得するには、DRIVEDIR に
(IFLPORT.F90 で定義した ) シンボル定数 FILE$CURDRIVE を挿
入します。
ディスクドライブは 1 つの英文字によって識別されるため、
GETDRIVEDIRQQ では、DRIVEDIR の最初の文字だけを検査します。
例えば、DRIVEDIR がパス c:\program files を含んでいる場合
は、GETDRIVEDIRQQ(DRIVEDIR) は、ドライブ C 上の現在の作業
ディレクトリを返し、残りのパスを無視します。入力では大文字 /
小文字が区別されません。返されるパスの長さは、DRIVEDIR で指
定したドライブでのディレクトリの入れ子の深さによって異なりま
す。フルパスが DRIVEDIR の長さより長い場合、GETDRIVEDIRQQ
は、DRIVEDIR に収まるパス部分だけを返します。長いパスが予想
される場合は、サイズ MAXPATH のバッファを割り付けます(ここ
で、MAXPATH は IFLPORT.F90 で定義されている PARAMETER 定
数であり、MAXPATH=260 です)
。
Linux プラットフォーム上では、引数のドライブ・ディレクトリに
シンボリック定数の FILE$CURDRIVE (IFLPORT.F90 で定義され
ます ) が適用されたときのみ、関数はパスを取得します。
例
! Program to demonstrate GETDRIVEDIRQQ
USE IFLPORT
CHARACTER(MAXPATH) dir
INTEGER(4) length
! Get current directory
dir = FILE$CURDRIVE
2-57
2
インテル ® Fortran ライブラリ・リファレンス
length = GETDRIVEDIRQQ(dir)
IF (length .GT. 0) THEN
WRITE (*,*) 'Current directory is: '
WRITE (*,*) dir
ELSE
WRITE (*,*) 'Failed to get current directory'
END IF
END
GETDRIVESIZEQQ
指定したドライブの合計サイズを取
得します。
プロトタイプ
USE IFLPORT
または
INTERFACE GETDRIVESIZEQQ
LOGICAL(4) FUNCTION GETDRIVESIZEQQI4 (DriveNm,
TotalNum, AvailableNum)
CHARACTER(LEN=*) DriveNm
INTEGER(4) TotalNum
INTEGER(4) AvailableNum
END FUNCTION
LOGICAL(4) FUNCTION GETDRIVESIZEI8 (DriveNm,
TotalNum, AvailableNum)
CHARACTER(LEN=*) DriveNm
INTEGER(8) TotalNum
INTEGER(8) AvailableNum
END FUNCTION
END INTERFACE
2-58
移植性関数
2
説明
指定したドライブとそこで使用可能な領域の合計サイズを取得しま
す。
使用法
result = GETDRIVESIZEQQ (DRIVENm, TOTALNUM,
AVAILIABLENUM)
DriveNm
CHARACTER(LEN=*)。情報を取得するディスク
ドライブの文字を含む文字列。
TotalNum
INTEGER(4) または INTEGER(8)。ディスクドラ
イブの総バイト数。
AvailableNum INTEGER(4) または INTEGER(8)。ディスクドラ
イブ上の使用可能な領域のバイト数。
結果
この関数は LOGICAL(4) を返します。結果は、成功した場合は
.TRUE. で、失敗した場合は .FALSE. です。
TotalNum と AvailableNum の引数に指定するデータ型は同じでな
ければなりません。
ディスクドライブによっては、バイト数が 32 ビット整数に収まら
ないこともあります。このようなドライブに対して INTEGER(4)
変数を使用すると、負のサイズが返されます。このように大きなド
ライブの実際のサイズを取得するには、TotalNum と
AvailableNum は INTEGER(8) 変数でなければなりません。
ディスクドライブは 1 つの英文字によって識別されるため、
GETDRIVESIZEQQ では DriveNm の最初の文字だけを検査します。
ドライブ文字には大文字や小文字を指定できます。現在のドライブ
のサイズを取得するには、定数 FILE$CURDRIVE(IFLPORT.F90 で
定義 ) を使用します。
GETDRIVESIZEQQ が失敗した場合は、GETLASTERRORQQ を使用し
て理由を調べます。
Linux プラットフォームでは、このルーチンは常に .false. を返
します。
2-59
2
インテル ® Fortran ライブラリ・リファレンス
例
! Program to demonstrate GETDRIVESQQ and
GETDRIVESIZEQQ
USE IFLPORT
CHARACTER(26) drives
CHARACTER(1) adrive
LOGICAL(4) status
INTEGER(4) total, avail
INTEGER(2) i
! Get the list of drives
drives = GETDRIVESQQ()
WRITE (*,'(A, A)') ' Drives available: ', drives
!
!Cycle through them for free space and write to
console
DO i = 1, 26
adrive = drives(i:i)
status = .FALSE.
WRITE (*,'(A, A, A,)') ' Drive ', CHAR(i + 64), ':'
IF (adrive .NE. ' ') THEN
status = GETDRIVESIZEQQ(adrive, total, avail)
END IF
IF (status) THEN
WRITE (*,*) avail, ' of ', total, ' bytes free.'
ELSE
WRITE (*,*) 'Not available'
END IF
END DO
END
2-60
移植性関数
2
GETDRIVESQQ
システムで使用できるドライブを報
告します。
プロトタイプ
USE IFLPORT
または
INTERFACE
CHARACTER(26) FUNCTION GETDRIVESQQ()
END FUNCTION
END INTERFACE
使用法
result = GETDRIVESQQ ( )
結果
結果は CHARACTER(LEN=26) です。返される文字列には、使用で
きるドライブの文字が含まれています。ただし、使用できないドラ
イブは空白となります。例えば、A、C、および D のドライブを備
えたシステムでは、文字列「A CD」が返されます。
Linux プラットフォームでは、この関数は、空白が挿入された文字
列を返します。
GETENV
システム環境変数の値を返します。
プロトタイプ
INTERFACE
SUBROUTINE GETENV (VAR, VALUE)
2-61
2
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(LEN=*) VAR, VALUE
END SUBROUTINE
END INTERFACE
VAR
CHARACTER 型でなければなりません。環境変数名
を指定します。
VALUE
CHARACTER 型でなければなりません。VALUE には
環境変数の値が割り当てられます。VALUE は、値
を保持できるサイズで宣言する必要があります。
環境変数が定義されていない場合、VALUE はすべ
て空白に設定されます。
説明
システム環境変数の値を返します。
分類
非標準のサブルーチン
例
次のコードでは、VAL に TERM 環境変数の値を割り当てます。
CHARACTER(10) VAL
CALL GETENV("TERM", VAL)
GETENVQQ
指定した環境変数の値を取得しま
す。
プロトタイプ
USE IFLPORT
または
! ALTERNATIVE WAY OF GETTING ENVIRONMENT VARIABLE
VALUE
2-62
移植性関数
2
INTERFACE
INTEGER(4) FUNCTION GETENVQQ(VARNAME,VALUE)
CHARACTER(LEN=*) VARNAME,VALUE
END FUNCTION GETENVQQ
END INTERFACE
説明
現在の環境から、指定した環境変数の値を取得します。
使用法
result = GETENVQQ (VARNAME, VALUE)
VARNAME
CHARACTER(LEN=*)。値を検索したい環境変数
の名前。
VALUE
CHARACTER(LEN=*)。指定した環境変数の値 ( 大
文字 )。
結果
結果の型は INTEGER(4) です。結果は、VALUE に返される文字数
です。指定した変数が定義されていない場合は、ゼロが返されま
す。
GETENVQQ は、環境変数のリストから VARNAME に対応するエントリ
を検索します。環境変数では、プロセスが実行される環境を定義し
ます。例えば、LIB 環境変数では、プログラムにリンクされるライ
ブラリのデフォルトの検索パスを定義します。いくつかの環境変数
は、プロセス単位でのみ存在でき、コマンド行レベルでは存在しな
いことがあるので注意してください。
例
! Program to demonstrate GETENVQQ and SETENVQQ
USE IFLPORT
INTEGER(4) lenv, lval
CHARACTER(80) env, val, enval
WRITE (*,900) ' Enter environment variable name to
create, modify, or delete: '
lenv = GETSTRQQ(env)
IF (lenv .EQ. 0) STOP
2-63
2
インテル ® Fortran ライブラリ・リファレンス
WRITE (*,900) 'Value of variable (ENTER to delete): '
lval = GETSTRQQ(val)
IF (lval .EQ. 0) val = ' '
enval = env(1:lenv) // '=' // val(1:lval)
IF (SETENVQQ(enval)) THEN
lval = GETENVQQ(env(1:lenv), val)
IF (lval .EQ. 0) THEN
WRITE (*,*) 'Can''t get environment variable'
ELSE IF (lval .GT. LEN(val)) THEN
WRITE (*,*) 'Buffer too small'
ELSE
WRITE (*,*) env(:lenv), ': ', val(:lval)
WRITE (*,*) 'Length: ', lval
END IF
ELSE
WRITE (*,*) 'Can''t set environment variable'
END IF
FORMAT (A)
END
GETFILEINFOQQ
指定したファイルの情報を返しま
す。
プロトタイプ
IA-32 システム
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION GETFILEINFOQQ(FILES, BUFFER,
DWHANDLE)
2-64
移植性関数
2
CHARACTER(LEN=*) FILES
TYPE FILE$INFO
SEQUENCE
INTEGER(4) CREATION
! CREATION TIME (-1 ON FAT)
INTEGER(4) LASTWRITE ! LAST WRITE TO FILE
INTEGER(4) LASTACCESS ! LAST ACCESS (-1 ON FAT)
INTEGER(4) LENGTH
! LENGTH OF FILE
INTEGER(2) PERMIT
! FILE ACCESS MODE
CHARACTER(LEN=255) NAME ! FILE NAME
END TYPE
TYPE(FILE$INFO) :: BUFFER
INTEGER(4) DWHANDLE
END FUNCTION GETFILEINFOQQ
END INTERFACE
Itanium ベースのシステム
INTERFACE
INTEGER(8) FUNCTION GETFILEINFOQQ(FILES,BUFFER,
DWHANDLE)
CHARACTER(LEN=*) FILES
TYPE FILE$INFO
SEQUENCE
INTEGER(8) CREATION
! Creation time (-1 ON FAT)
INTEGER(8) LASTWRITE ! LAST WRITE TO FILE
INTEGER(8) LASTACCESS ! LAST ACCESS (-1 ON FAT)
INTEGER(4) LENGTH
! LENGTH OF FILE
INTEGER(2) PERMIT
! FILE ACCESS MODE
CHARACTER(LEN=255) NAME ! FILE NAME
END TYPE
TYPE(FILE$INFO) :: BUFFER
INTEGER(8) DWHANDLE
END FUNCTION GETFILEINFOQQ
END INTERFACE
2-65
2
インテル ® Fortran ライブラリ・リファレンス
説明
指定したファイルの情報を返します。ファイル名にはワイルドカー
ド (* と ?) を含むことができます。
使用法
result = GETFILEINFOQQ (FILES,BUFFER, HANDLE)
FILES
CHARACTER(LEN=*)。情報を探しているファイ
ルの名前またはパターン。これには、フルパスと
ワイルドカード (* と ?) を含むことができます。
BUFFER
構造型 FILE$INFO。この変数には、検索基準に一
致するファイルの情報が返されます。
HANDLE
INTEGER(4)。制御メカニズム。IFLPORT.F90
で定義されている、次のいずれかの定数です。
FILE$FIRST: 見つかった最初の一致するファイ
ル。
FILE$LAST: 前のファイルが最後の有効なファイ
ルでした。
FILE$ERROR: 一致するファイルが見つかりません
でした。
結果
結果は INTEGER(4) であり、一致するファイルが見つかった場合
は、ファイル名の空白でない長さを示します。一致するファイルが
見つからない場合、結果は 0 です。
1 つ以上のファイルの情報を取得するには、HANDLE に
FILE$FIRST を設定して GETFILEINFOQQ を呼び出します。これに
よって、名前に一致する最初のファイルの情報が返され、HANDLE
が返されます。プログラムがさらにファイルを必要とする場合は、
HANDLE を指定して GETFILEINFOQQ を呼び出してください。
GETFILEINFOQQ が HANDLE に FILE$LAST を設定するかシステムリ
ソースが失われるまで、HANDLE を指定して GETFILEINFOQQ を呼
び出す必要があります。
構造型要素変数である FILE$INFO%CREATION、
FILE$INFO%LASTWRITE、および FILE$INFO%LASTACCESS には、
それぞれ、ファイルの作成、最後の書き込み、および最後のアクセ
2-66
移植性関数
2
スに関する日付と時刻の情報がパックされています。時刻と日付を
成分パーツに分解するには、UNPACKTIMEQQ を呼び出します。
FILE$INFO%LENGTH には、ファイルの長さがバイト単位で含まれ
ています。FILE$INFO%PERMIT には、次に示すように、ファイル
のアクセス情報を説明する一連のビットフラグが含まれています。
ビットフラグ
対応するファイル
FILE$ARCHIVE
ファイルがバックアップ装置にコピーされている
ことを示します。
FILE$DIR
現在のディレクトリのサブディレクトリ。
MS-DOS の各ディレクトリには、「.」と「..」とい
う 2 つの特殊ファイルが含まれています。これら
は、相対ディレクトリ表記で使用するために
MS-DOS で作成されたディレクトリ別名です。前
者は現在のディレクトリを表し、後者は現在の
ディレクトリの親ディレクトリを表します。
FILE$HIDDEN
隠しファイル。このファイルは、コマンド行、
Microsoft Visual 開発環境ブラウザ、およびファイ
ル・マネージャから要求するディレクトリ・リス
トには表示されません。
FILE$READONLY
書き込み保護されたファイル。ファイルを読み取
ることはできますが、変更することはできません。
FILE$SYSTEM
オペレーティング・システムによって使用されま
す。
FILE$VOLUME
物理ディスクドライブ上の論理ボリュームまたは
パーティション。この種のファイルは、物理装置
のルート・ディレクトリにのみ現われます。
定数 FILE$NORMAL を使用すれば、すべてのビットフラグが 0 に設
定されていることをチェックできます。構造型要素変数
FILE$INFO%PERMIT が FILE$NORMAL と等しい場合は、そのファイ
ルに特殊属性はありません。変数 FILE$INFO%NAME には、ファイ
ルのフルパスではなく、ファイルの短い名前が含まれています。
エラーが発生した場合は、GETLASTERRORQQ を呼び出して、次の
ようなエラー・メッセージを取り出します。
ERR$NOENT
指定したファイルまたはパスが見つかりませんで
した。
2-67
2
インテル ® Fortran ライブラリ・リファレンス
ERR$NOMEM
コマンドの実行に必要なメモリが不足しています。
または、メモリが破壊されました。または、呼び
出し側プロセスが正しく割り付けられなかったこ
とを示す不正なブロックが存在します。
例
USE IFLPORT
CALL SHOWPERMISSION( )
END
SUBROUTINE SHOWPERMISSION()
! SUBROUTINE to demonstrate GETFILEINFOQQ
!
USE IFLPORT
!
CHARACTER(80) files
INTEGER(4) handle, length
CHARACTER(5) permit
TYPE (FILE$INFO) info
!
WRITE (*, 900) ' Enter wildcard of files to view: '
900
FORMAT (A)
length = GETSTRQQ(files)
handle = FILE$FIRST
DO WHILE (.TRUE.)
length = GETFILEINFOQQ(files, info, handle)
IF ((handle .EQ. FILE$LAST) .OR. &
(handle .EQ. FILE$ERROR)) THEN
SELECT CASE (GETLASTERRORQQ())
CASE (ERR$NOMEM)
WRITE (*,*) 'Out of memory'
CASE (ERR$NOENT)
EXIT
CASE DEFAULT
WRITE (*,*) 'Invalid file or path name'
END SELECT
END IF
2-68
移植性関数
2
permit = ' '
IF ((info%permit .AND. FILE$HIDDEN) .NE. 0) &
permit(1:1) = 'H'
IF ((info%permit .AND. FILE$SYSTEM) .NE. 0) &
permit(2:2) = 'S'
IF ((info%permit .AND. FILE$READONLY) .NE. 0) &
permit(3:3) = 'R'
IF ((info%permit .AND. FILE$ARCHIVE) .NE. 0) &
permit(4:4) = 'A'
IF ((info%permit .AND. FILE$DIR) .NE. 0) &
permit(5:5) = 'D'
WRITE (*, 9000) info%name, info%length, permit
9000 FORMAT (1X, A20, I9, ' ',A6)
END DO
END SUBROUTINE
GETGID
グループ ID を取得します。
プロトタイプ
INTERFACE
INTEGER FUNCTION GETGID ()
END FUNCTION GETGID
END INTERFACE
説明
この関数は、このプログラムを実行しているユーザの一次グループ
に対応する整数を返します。
2-69
2
インテル ® Fortran ライブラリ・リファレンス
Win32* システムでは、この関数は、このプロセスの
TokenPrimaryGroup に対するセキュリティ識別子の最後の副機関
を返します。これは、ローカルマシン上で一意であり、ドメイン・
アカウントのドメイン内で一意です。
注:WIN32 システムでは、ドメイン・アカウントとローカル・ア
カウントは重なることがあるので注意してください。
Linux プラットフォームでは、この関数は現在の処理のグループ
ID を返します。
出力
現在ログインしているユーザが属するグループを表す整数です。
GETLASTERROR
最後のエラーセットを取得します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION GETLASTERROR ()
END FUNCTION GETLAST
END INTERFACE
説明
この関数は、設定された最後のランタイム・エラー値に対応する整
数を返します。
例えば、入出力文で ERR= specifier を使用した場合、プログラ
ムはエラーが発生しても異常終了しません。GETLASTERROR を使
用すれば、errno だけを検査する場合に比べてかなり正確にエラー
条件を判定できます。したがって、アプリケーション・コードは、
エラー番号に基づいて適切に処置することができます。
2-70
移植性関数
2
出力
最後のエラー番号を整数で出力します。
GETLASTERRORQQ
ランタイム手続きによって設定され
た最後のエラーを返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
NTEGER(4) FUNCTION GETLASTERRORQQ()
END FUNCTION
END INTERFACE
使用法
result = GETLASTERRORQQ ( )
結果
結果は INTEGER(4) であり、ランタイム手続きによって生成され
た最新のエラーコードを示します。
論理値や整数値を返す機能によっても、エラーの原因を特定するエ
ラーコードを入手できることがあります。GETLASTERRORQQ では、
通常は errno に関連付けられている最新のエラー番号が取り出さ
れます。エラー定数は IFLPORT.F90 に含まれています。次の表
に、ポータビリティライブラリ・ルーチンの一部と各ルーチンが生
成するエラーを示します。
ランタイム・ルーチン
ランタイム・ルーチンのエラー
RUNQQ
ERR$NOMEM, ERR$2BIG, ERR$INVAL,
ERR$NOENT, ERR$NOEXEC
2-71
2
インテル ® Fortran ライブラリ・リファレンス
2-72
ランタイム・ルーチン
ランタイム・ルーチンのエラー
SYSTEMQQ
ERR$NOMEM, ERR$2BIG, ERR$NOENT,
ERR$NOEXEC
GETDRIVESIZEQQ
ERR$INVAL, ERR$NOENT
GETDRIVESQQ
エラーなし
GETDRIVEDIRQQ
ERR$NOMEM, ERR$RANGE
CHANGEDRIVEQQ
ERR$INVAL, ERR$NOENT
CHANGEDIRQQ
ERR$NOMEM, ERR$NOENT
MAKEDIRQQ
ERR$NOMEM, ERR$ACCES, ERR$EXIST,
ERR$NOENT
DELDIRQQ
ERR$NOMEM, ERR$ACCES, ERR$NOENT
FULLPATHQQ
ERR$NOMEM, ERR$INVAL
SPLITPATHQQ
ERR$NOMEM, ERR$INVAL
GETFILEINFOQQ
ERR$NOMEM, ERR$NOENT, ERR$INVAL
SETFILETIMEQQ
ERR$NOMEM, ERR$ACCES, ERR$INVAL,
ERR$MFILE, ERR$NOENT
SETFILEACCESSQQ
ERR$NOMEM, ERR$INVAL, ERR$ACCES
DELFILESQQ
ERR$NOMEM, ERR$ACCES, ERR$NOENT,
ERR$INVAL
RENAMEFILEQQ
ERR$NOMEM, ERR$ACCES, ERR$NOENT,
ERR$XDEV
FINDFILEQQ
ERR$NOMEM, ERR$NOENT
PACKTIMEQQ
エラーなし
UNPACKTIMEQQ
エラーなし
COMMITQQ
ERR$BADF
GETCHARQQ
エラーなし
PEEKCHARQQ
エラーなし
GETSTRQQ
エラーなし
GETLASTERRORQQ
エラーなし
SETERRORMODEQQ
エラーなし
GETENVQQ
ERR$NOMEM, ERR$NOENT
SETENVQQ
ERR$NOMEM, ERR$INVAL
移植性関数
ランタイム・ルーチン
ランタイム・ルーチンのエラー
SLEEPQQ
エラーなし
BEEPQQ
エラーなし
SORTQQ
ERR$INVAL
BSEARCHQQ
ERR$INVAL
2
GETLOG
ユーザのログイン名を返します。
プロトタイプ
INTERFACE
SUBROUTINE GETLOG (NAME)
CHARACTER(LEN=*) NAME
END SUBROUTINE GETLOG
END INTERFACE
NAME
ログイン名
説明
この関数を使用すれば、アプリケーションは、アプリケーションを
実行しているユーザのログイン名を調べることができます。ログイ
ン名は 64 文字より短くなければなりません。ログイン名が 64 文字
より長い場合は、切り捨てられます。プロトタイプの仮引数 NAME
に対応する実引数は、ログイン名を保持するのに十分な長さにして
ください。指定された実引数が短すぎてログイン名を保持できない
場合、ログイン名は切り捨てられます。
出力
アプリケーションを実行しているユーザのログイン名に対応する文
字列が NAME に返されます。NAME に対応する実引数よりログイン
名が短い場合は、実引数の長さと同じになるまで、ログイン名の後
に空白が埋められます。
2-73
2
インテル ® Fortran ライブラリ・リファレンス
GETPID
プロセス ID を取得します。
プロトタイプ
INTERFACE
INTEGER FUNCTION GETPID ()
END FUNCTION GETPID
END INTERFACE
説明
この関数は、現在のプロセスのプロセス ID を返します。
出力
現在のプロセスのシステムプロセス識別子に対応する一意の整数で
す。
GETPOS
現在のファイル位置をファイルの先
頭からのバイト数で返します。
プロトタイプ
INTERFACE
INTEGER FUNCTION GETPOS (LUNIT)
INTEGER(4) LUNIT
END FUNCTION GETPOS
END INTERFACE
LUNIT
2-74
整数。ファイルに対する Fortran の論理装置番号。
この値は 0 〜 100 の範囲でなければならず、接続
されたファイルに対応していなければなりません。
移植性関数
2
説明
現在のファイル位置を確認できます。
出力
ファイルの先頭からのバイト数を表す整数値です。FTELL と等価で
す。エラーの場合は、errno に EINVAL が返され、結果は –1 とな
ります。
GETSTATUSFPQQ
浮動小数点プロセッサのステータ
ス・ワードを返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE GETSTATUSFPQQ(STATUS)
INTEGER(2)
STATUS
END SUBROUTINE
END INTERFACE
使用法
CALL GETSTATUSFPQQ (STATUS)
STATUS
INTEGER(2)。浮動小数点コプロセッサのステー
タス・ワード。
浮動小数点ステータス・ワード (FPSW) は、さまざまな浮動小数点
例外条件が発生したかどうかを示します。例外が発生した後で、ラ
ンタイム・システムは、追加の浮動小数点演算を行う前にフラグを
2-75
2
インテル ® Fortran ライブラリ・リファレンス
リセットすることはありません。したがって、値が 1 のステータ
ス・フラグは、対応する例外が少なくとも 1 回は発生したことを示
します。次の表に、ステータス・フラグとその値を示します。
パラメータ名
16 進値
説明
FPSW$MSW_EM
Z’003F’
ステータス・マスク(すべてのフラ
グを 1 にセット)
FPSW$INVALID
Z’0001’
無効な結果が発生
FPSW$DENORMAL
Z’0002’
デノーマル(非常に小さい数値)が
発生
FPSW$ZERODIVIDE
Z’0004’
ゼロによる除算が発生
FPSW$OVERFLOW
Z’0008’
オーバーフローが発生
FPSW$UNDERFLOW
Z’0010’
アンダーフローが発生
FPSW$INEXACT
Z’0020’
不正確な精度が発生
GETSTATUSFPQQ によって返されたステータス・ワードでビットご
との AND をとれば、どの浮動小数点例外が発生したかを確認でき
ます。
例外を無効にするには、そのフラグに 1 をセットします。例外を有
効にするには、そのフラグを 0 にクリアします。デフォルトでは、
デノーマル、アンダーフロー、および不正確な精度の例外は無効に
されており、無効な結果、オーバーフロー、およびゼロによる除算
の例外は有効にされています。例外を有効または無効にするには、
SETCONTROLFPQQ によってフラグをクリアまたはセットします。
GETCONTROLFPQQ を使用すれば、現在有効にされている例外と無
効にされている例外を確認できます。
例外が無効にされた場合は、例外が発生しても割り込みは生じませ
ん。その代わりに、適切な特殊値 (NaN または符号付き無限大 ) が
生成され、プログラムは続行されます。このような値を出力すると
き、ランタイム・システムでは、NaN を ????? として、正の無限大
を +++++++ として、負の無限大を ---------- として、それぞれ表しま
す。発生した例外を調べるには、GETSTATUSFPQQ を呼び出しま
す。
2-76
移植性関数
2
SETCONTROLFPQQ でフラグを 0 にクリアして浮動小数点例外でのエ
ラーが有効にされた場合は、例外が発生すると割り込みが生成され
ます。デフォルトでは、このような割り込みによってランタイム・
エラーが生じますが、SIGNALQQ によって割り込みを取り込んで、
独自のエラー処理ルーチンに分岐することができます。
例
!
Program to demonstrate GETSTATUSFPQQ
USE IFLPORT
INTEGER(2) status
CALL GETSTATUSFPQQ(status)
! check for divide by zero
IF (IAND(status, FPSW$ZERODIVIDE) .NE. 0) THEN
WRITE (*,*) ‘Divide by zero occurred.’, &
‘Look for NaN or signed infinity in
resultant data.’
ELSE
PRINT *,"Divide by zero flag was not set"
END IF
END
GETSTRQQ
バッファ付き入力を使用して、キー
ボードから文字列を読み取ります。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION GETSTRQQ(BUFFER)
CHARACTER(LEN=*) BUFFER
END FUNCTION
2-77
2
インテル ® Fortran ライブラリ・リファレンス
END INTERFACE
使用法
result = GETSTRQQ (BUFFER)
BUFFER
CHARACTER(LEN=*)。キーボードから返された
文字値であり、右側は空白で埋められています。
結果
結果は BUFFER に格納された文字数です。この関数は、ユーザが
Return キーまたは Enter キーを押すまで続行されます。
例
!
Program to demonstrate GETSTRQQ
USE IFLPORT
INTEGER(4) length, result
CHARACTER(80) prog, args
WRITE (*, '(A,)') ' Enter program to run: '
length = GETSTRQQ (prog)
WRITE (*, '(A,)') ' Enter arguments: '
length = GETSTRQQ (args)
result = RUNQQ (prog, args)
IF (result .EQ. -1) THEN
WRITE (*,*) 'Couldn''t run program'
ELSE
WRITE (*, '(A, Z4, A)') 'Return code : ', result,
'h'
END IF
END
2-78
移植性関数
2
GETTIM
時刻を返します。
プロトタイプ
INTERFACE
SUBROUTINE GETTIM(HOUR,MIN,SEC,HDTS)
INTEGER(4), INTENT(OUT) :: HOUR,MIN,SEC,HDTS
END SUBROUTINE
SUBROUTINE GETTIM_DVF(HOUR,MIN,SEC,HDTS)
INTEGER(2), INTENT(OUT) :: HOUR,MIN,SEC,HDTS
END SUBROUTINE
END INTERFACE
HOUR
現在のシステムの時
MINUTE
現在のシステムの分
SECOND
現在のシステムの秒
HUNDREDTH
現在のシステムの 1/100 秒
説明
この関数は、現在のシステム時刻を時、分、秒、および 1/100 秒で
取得します。時間単位は、個別の整数として呼び出し側ルーチンに
返されます。
出力
時間単位は、個別の整数として呼び出し側ルーチンに返されます。
2-79
2
インテル ® Fortran ライブラリ・リファレンス
GETUID
呼び出し側プロセスのユーザ ID を
取得します。
プロトタイプ
INTERFACE
INTEGER FUNCTION GETUID()
END FUNCTION GETUID
END INTERFACE
説明
この関数は、このプログラムが実行されているユーザ ID に対応す
る整数を返します。この関数は、このプロセスに対するセキュリ
ティ識別子の最新の副権限を返します。これは、ローカルマシン上
で一意であり、ドメイン・アカウントのドメイン内で一意です。
注:Win32 システムでは、ドメイン・アカウントとローカル・ア
カウントは重なることがあるので注意してください。
Linux プラットフォーム上では、この関数は現在の処理のユーザ ID
を返します。
出力
呼び出し側プロセスのユーザ ID です。
2-80
移植性関数
2
GMTIME
与えられた経過時間を現在のシステ
ム時刻に変換します。
プロトタイプ
IA-32 システム
SUBROUTINE GMTIME(STIME,DATEARRAY)
INTEGER(4) STIME
INTEGER(4) DATEARRAY(9)
END SUBROUTINE
Itanium ベースのシステム
SUBROUTINE GMTIME(STIME,DATEARRAY)
INTEGER(8) STIME
INTEGER(4) DATEARRAY(9)
END SUBROUTINE
STIME
グリニッジ標準時(GMT)の1970年1月1日の真夜中
からの経過秒数を表します。GETTIMEOFDAY の結
果をローカル時間帯に合わせて調整した場合、こ
の値は GETTIMEOFDAY から取得できます。
DATEARRAY(1:9) には、GMT による現在の日付とシステム時刻が
含まれています。
DATEARRAY(1) 秒 (0 〜 59)
DATEARRAY(2) 分 (0 〜 59)
DATEARRAY(3) 時 (0 〜 23)
DATEARRAY(4) 日 (1 〜 31)
DATEARRAY(5) 月 (0 〜 11)
DATEARRAY(6) 西暦年の下 2 桁 (0 〜 99)
DATEARRAY(7) 曜日 (0 〜 6、0 は日曜日 )
DATEARRAY(8) 年間通算日 (0 〜 365)
DATEARRAY(9) 夏時間 ( 有効な場合は 1、そうでな
い場合は 0)
2-81
2
インテル ® Fortran ライブラリ・リファレンス
説明
この関数は、与えられた経過秒数を GMT による現在のシステム日
付に変換します。
注:この関数では 2000 年問題が発生する可能性があります。代
わりに、DATE_AND_TIME を使用してください。
出力
グリニッジ標準時による現在の日付とシステム時刻を DATEARRAY
に出力します。
HOSTNAM
現在のホスト・コンピュータ名を取
り出します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION HOSTNM(NAME)
CHARACTER(LEN=*),INTENT(OUT) :: NAME
END FUNCTION
END INTERFACE
説明
現在のホスト・コンピュータ名を取り出します。この関数は
HOSTNM とまったく同じです。
使用法
result = HOSTNAM (NAME)
2-82
移植性関数
NAME
2
CHARACTER(LEN=*)。現在のコンピュータ・ホ
スト名が NAME に返されます。バッファの長さは、
少なくとも IFLPORT モジュールで定義される
MAX_COMPUTERNAME_LENGTH と同じでなければ
なりません。
結果
成功した場合、結果はゼロです。NAME が短くてホスト名を全部格
納できない場合、関数はホスト名を切り捨てて、–1 を返します。
例
USE IFLPORT
CHARACTER(LEN=15) HOSTNAME
INTEGER(4) ISTATUS
ISTAT = HOSTNAM (HOSTNAME)
PRINT *, HOSTNAME, ' ISTATUS = ', ISTATUS
END
HOSTNM
現在のホスト名を取得します。
プロトタイプ
INTERFACE
SUBROUTINE HOSTNM( NAME)
CHARACTER(LEM=*) NAME
END SUBROUTINE HOSTNM
END INTERFACE
NAME
現在のホスト・コンピュータ名を保持するのに十
分な大きさを持つ、CHARACTER 変数または配列
要素。Win32 システムでは、ホスト名の最大長は
15 です。
2-83
2
インテル ® Fortran ライブラリ・リファレンス
説明
この関数では、現在のホスト・コンピュータ名を取り出します。
出力
アプリケーションが実行されているホスト・コンピュータの名前を
示す ASCII 文字列です。
IARGC
コマンド行の引数の数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION IARGC ()
END FUNCTION IARC
END INTERFACE
説明
この関数は、コマンド行の引数の数を返します。ただし、コマンド
自身は含まれません。
出力
引数の数が整数で出力されます。プログラムに引数が渡されていな
い場合、IARGC はゼロを返します。プログラムに引数が渡されてい
る場合、IARGC は、コマンド行のプログラム名に続く引数の数を返
します。
例
PRINT *,IARGC() という文では、プログラムに渡された引数の数
が印刷されます。
2-84
移植性関数
2
IDATE
現在のシステム日付を返します。
プロトタイプ
INTERFACE
SUBROUTINE IDATE(MONTH,DAY,YEAR)
INTEGER(4) INTENT(OUT):: MONTH,DAY,YEAR
END SUBROUTINE IDATE
INTEGER MON, DAY, YEAR
SUBROUTINE F_IDATE(SDATE)
INTEGER(4) INTENT(OUT):: SDATE(3)
END SUBROUTINE F_IDATE
END INTERFACE
MONTH 出力。現在のシステムの月
DAY
出力。現在のシステムの日
YEAR
出力。 現在のシステムの年が1900年からのオフセットとして
返されます。
SDATE 出力。 日を要素 1、月を要素 2、年を要素 3 とする 3 つの要
素配列。月は、1 から 12 の間の数、年は 1969 以上。
MON
整数値
DAY
整数値
YEAR
整数値
説明
このルーチンは、現在のシステム月、日、および年を返します。
2-85
2
インテル ® Fortran ライブラリ・リファレンス
例
CALL IDATE (MONTH,DAY,YR) という文では、MON に月を設定し、
DAY に日を設定し、
YR に西暦年の下 2 桁 ( 例えば、1969 年の場合は 69)
を設定します。
注:このサブルーチンは 2000 年問題に対応していません。代わ
りに、DATE_AND_TIME または IDATE4 を使用してください。
IDATE4
現在のシステム日付を返します。
プロトタイプ
INTERFACE
SUBROUTINE IDATE4(MONTH,DAY,YEAR)
INTEGER(4), INTENT(OUT) :: MONTH, DAY, YEAR
END SUBROUTINE
SUBROUTINE F_IDATE4(SDATE)
INTEGER(4), INTENT(OUT) :: SDATE(3)
END SUBROUTINE
END INTERFACE
DATEARRAY
整数配列
説明
このルーチンは、現在のシステム月、日、および年を返します。
この関数は 2000 年問題に対応しています。
出力
DATEARRAY(1) 現在のシステム日が返されます。
DATEARRAY(2) 現在のシステム月が返されます。
2-86
移植性関数
2
DATEARRAY(3) 現在のシステム年が返されます。ただし、年が
2000 より小さい場合は 1900 からのオフセットと
して返され、年が 2000 以上である場合は、2003
などの単なる整数年が返されます。
IEEE_FLAGS
IEEE フラグを設定します。
プロトタイプ
INTERFACE
INTEGER FUNCTION IEEE_FLAGS (ACTION, MODE, IN, OUT)
CHARACTER(LEN=*) ACTION, MODE, IN, OUT
END FUNCTION IEEE_FLAGS
END INTERFACE
ACTION
'GET'、'SET'、'CLEAR' のいずれか。
MODE
'direction'、'precision'、'exception'
のいずれか。
IN
'inexact'、'division'、'underflow'、
'overflow'、'invalid'、'all'、
'common'、'nearest-to-zero'、
'negative'、'positive'、'extended'、
'double'、'single' のいずれか。
OUT
MODE が 'direction' である場合は、
'nearest-to-zero'、'negative'、
'positive' のいずれか。
MODE が 'precision' である場合は、
'extended'、'double'、'single' のいずれ
か。
MODE が 'exception' である場合は、
'inexact'、'division'、'underflow'、
'overflow'、'invalid' のいずれか。
2-87
2
インテル ® Fortran ライブラリ・リファレンス
説明
IEEE_FLAGS は、GET、SET、および CLEAR の各手続き用の IEEE フ
ラグを設定する要素別処理関数です。
出力
正しく実行された場合は 0 を返し、正しく実行されなかった場合は
1 を返します。
IEEE_HANDLER
IEEE 例外のハンドラを設定します。
プロトタイプ
IA-32 システム
INTERFACE
INTEGER(4) FUNCTION IEEE_HANDLER (ARG_ACTION,&
ARG_EXCEPTION,HANDLER)
CHARACTER(LEN=*) ARG_ACTION, ARG_EXCEPTION
INTERFACE
SUBROUTINE HANDLER (SIGNO,SIGINFO)
INTEGER(4), INTENT(IN)::SIGNO, SIGINFO
END SUBROUTINE
END INTERFACE
END FUNCTION IEEE_HANDLER
END INTERFACE
Itanium ベースのシステム
INTERFACE
INTEGER(8) FUNCTION IEEE_HANDLER (ARG_ACTION,&
ARG_EXCEP,HANDLER)
CHARACTER(LEN=*) ARG_ACTION, ARG_EXCEPT
INTERFACE
SUBROUTINE HANDLER (SIGNO,SIGINFO)
INTEGER(4), INTENT(IN)::SIGNO, SIGINFO
2-88
移植性関数
2
END SUBROUTINE
END INTERFACE
END FUNCTION IEEE_HANDLER
END INTERFACE
説明
IEEE_HANDLER は、HANDLER サブルーチンを呼び出して、IEEE 例
外用のハンドラを設定します。
出力
正しく実行された場合は 0 を返し、正しく実行されなかった場合は
1 を返します。
IERRNO
生成された最後のエラーコードを返
します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION IERRNO()
END FUNCTION IERRNO
END INTERFACE
説明
この関数は、エラーコードを返す任意のモジュールからの、最後に
検出されたエラーの番号を返します。
出力
生成された最後のエラーコードです。
2-89
2
インテル ® Fortran ライブラリ・リファレンス
IFL_RUNTIME_INIT
Fortran ランタイム・システムを初
期化し、コマンドライン引数で完了
します。
プロトタイプ
INTERFACE
SUBROUTINE IFL_RUNTIME_INIT ( NCMDARGS, ARGS )
INTEGER(4) NCMDARGS
INTEGER(1), POINTER :: ARGS
END INTERFACE
NCMDARGS
アプリケーションのコマンドライン上の引数の数。
ARGS
文字列配列へのポインタで、各文字列はコマンド
ライン引数を作ります。
説明
このルーチンは、Fortran ランタイム・システムを初期化します ( コ
マンドライン引数の提供も含みます )。通常、これは必須ではあり
ません。ただし、メインのプログラムが C で作成されている場合、
またはメインのプログラムが Windows* 用 C または C++ の
WINMAIN である場合、プログラムの Fortran の部分用にコマンドラ
イン引数を設定して別の初期化実行することができます。IA-32 の
Windows アプリケーションでは、このルーチンを C から呼び出しま
す。
extern void IFL_RUNTIME_INIT ( int *argc, char
*argv[]);
int main(int *argc, char *argv[] )
{
IFL_RUNTIME_INIT( argc, argv);
}
2-90
移植性関数
2
IFLOAT
入力値を実数値に変換します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION IFLOAT (IN)
INTEGER(2) IN
END FUNCTION IFLOAT
END INTERFACE
IN
INTEGER(2) 式
説明
入力値を REAL(4) に変換します。
出力
REAL(4) 値と等価です。
IFLOATI
INTEGER(2) を REAL 型に変換しま
す。
プロトタイプ
INTERFACE
REAL(4) FUNCTION IFLOATI (INPUT)
INTEGER(2), INTENT(IN)::INPUT
END FUNCTION IFLOATI
END INTERFACE
2-91
2
インテル ® Fortran ライブラリ・リファレンス
スカラ INTEGER (KIND=2) 値
INPUT
説明
IFLOATI は、スカラ整数型 (KIND=2) を REAL(4) に変換する要素
別処理関数です。
出力
REAL に変換された整数値です。
IFLOATJ
整数を実数値に変換します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION IFLOATJ (IN)
INTEGER(4) IN
END FUNCTION IFLOATJ
END INTERFACE
IN
INTEGER(4) 式
説明
入力値を REAL(4) に変換します。
出力
REAL(4) 値と等価です。
2-92
移植性関数
2
INMAX
最大の正の整数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION INMAX (I)
INTEGER(4), INTENT(IN)::INPUT
END FUNCTION INMAX
END INTERFACE
INPUT
INTEGER(4) 値
説明
この関数は、INTEGER(4) に対する最大の正の値を返します。
出力
最大の符号付き 4 バイト整数です。
INTC
INTEGER(4) を INTEGER(2) に変換
します。
プロトタイプ
INTERFACE
INTEGER(2) FUNCTION INTC (IN)
INTEGER IN
END FUNCTION INTC
END INTERFACE
IN
任意の INTEGER(4) の値または式
2-93
2
インテル ® Fortran ライブラリ・リファレンス
説明
INTEGER(4) の値または式を、INTEGER(2) の値に変換します。
出力
IN の値が INTEGER(2) 型に変換されます。オーバーフローは無視さ
れます。
IRAND
擬似乱数を生成します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION IRAND()
INTEGER(4) ISEED
END FUNCTION IRAND
END INTERFACE
説明
擬似乱数を生成します。
分類
非標準の要素別処理関数
結果の型および型パラメータ
INTEGER(4) 型
結果の値
IRAND では、0 〜 231 の範囲で数値を生成します。
例
INTEGER(4) rn
2-94
移植性関数
2
rn = IRAND()
注:IRAND と RAND で使用される擬似乱数生成器の再起動の詳細
については、「SRAND」の項を参照してください。
IRANDM
IRAND の同義語です。
説明
この関数は IRAND の同義語です。したがって、IRAND と同じパラ
メータを受け取って、同じ結果を生成します。
IRANGET
乱数を取得します。
プロトタイプ
INTERFACE
SUBROUTINE IRANGET (S)
INTEGER(4) S
END SUBROUTINE IRANGET
END INTERFACE
S
整数式
説明
一連の擬似乱数に含まれる次の値を返します。
2-95
2
インテル ® Fortran ライブラリ・リファレンス
出力
整数の擬似乱数です。
IRANSET
擬似乱数列のシードを設定します。
プロトタイプ
INTERFACE
SUBROUTINE IRANSET (ISEED)
INTEGER(4) ISEED
END INTERFACE
ISEED
擬似乱数列用の新しいシード。
説明
乱数列のシードを設定します。
出力
内部のシードを変更します。スレッドセーフではありません。
ISATTY
指定した装置番号が端末である場合
は、真を返します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION ISATTY (LUNIT)
INTEGER(40, INTENT(IN):: LUNIT
END FUNCTION ISATTY
2-96
移植性関数
2
END INTERFACE
LUNIT
0 〜 100 の範囲で Fortran の論理装置番号に対応する
整数式。
説明
指定した装置番号が端末である場合、この関数は真を返します。装
置は接続されていなければなりません。
LUN は整数式でなければなりません。LUN が範囲外である場合は、
ゼロが返されます。LUN は、呼び出しの時点で、接続された Fortran
論理装置にマップする必要があります。LUN が未接続の装置に対応
する場合は、ゼロが返されます。
出力
端末装置に接続された論理装置の場合は .TRUE. で、そうでない場
合は .FALSE. です。
ITIME
時刻を返します。
プロトタイプ
INTERFACE
SUBROUTINE ITIME(TIME_ARRAY)
INTEGER(4) TIME_ARRAY(3)
END FUNCTION ITIME
END INTERFACE
TIME_ARRAY
整数配列
説明
この関数は、数値形式の時刻を 3 要素配列で返します。
出力
TIME_ARRAY[1]
時を含んでいます。
2-97
2
インテル ® Fortran ライブラリ・リファレンス
TIME_ARRAY[2]
分を含んでいます。
TIME_ARRAY[3]
秒を含んでいます。
JABS
絶対値を返します。
プロトタイプ
INTERFACE
INTEGER FUNCTION JABS (I)
INTEGER(4), INTENT(IN):: I
END FUNCTION JABS
END INTERFACE
JDATE
日付を ASCII で返します。
プロトタイプ
INTERFACE
FUNCTION JDATE()
CHARACTER(LEN=8):: JDATE
END FUNCTION JDATE
END INTERFACE
説明
この関数は、ユリウス日(年間通算日)によって 8 文字の ASCII 文
字列を返します。
2-98
移植性関数
2
出力
ユリウス日による 8 文字の ASCII 文字列を yyddd 形式で返します。
注:この関数では 2000 年問題が発生する可能性があります。代
わりに、標準関数である DATEANDTIME を使用してください。
JDATE4
日付を ASCII で返します。
プロトタイプ
INTERFACE
SUBROUTINE JDATE4(CURRENTDATE)
CHARACTER(LEN=10) CURRENTDATE
END SUBROUTINE JDATE4
END INTERFACE
説明
この関数は、ユリウス日(年間通算日)によって 10 文字の ASCII
文字列を返します。
出力
ユリウス日による 10 文字の ASCII 文字列を yyyyddd 形式で返し
ます。
2-99
2
インテル ® Fortran ライブラリ・リファレンス
KILL
ID により与えられる処理に信号を
送ります。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION KILL (PID, SIGNUM)
INTEGER(4) PID, SIGNUM
END FUNCTION
END INTERFACE
PID
信号を送るプロセスの ID
SIGNUM
信号値
説明
この関数は、指定した PID に関連付けられているプロセスをキルし
ます。この関数を実行するプログラムは、キルされるプロセスへの
TERMINATE_PROCESS アクセス権を持っている必要があります。
出力
成功した場合はゼロです。
LCWRQQ
浮動小数点プロセッサの制御ワード
の値を設定します。
プロトタイプ
USE IFLPORT
2-100
移植性関数
2
または
INTERFACE
SUBROUTINE LCWRQQ(CONTROL)
INTEGER(2) CONTROL
END SUBROUTINE
END INTERFACE
使用法
CALL LCWRQQ (CONTROL)
CONTROL
INTEGER(2)。浮動小数点プロセッサの制御ワー
ド。
LCWRQQ は、SETCONTROLFPQQ と同じ機能を実行します。この
LCWRQQ は、互換性のために用意されています。
例
USE IFLPORT
INTEGER(2) control
CALL SCWRQQ(control) ! get control word
! Set control word to make processor round up
control = control .AND. (.NOT. FPCW$MCW_RC) ! Clear
! control
word with inverse
! of
rounding control mask
control = control .OR. FPCW$UP ! Set control word
! to round up
CALL LCWRQQ(control)
WRITE (*, 9000) 'Control word: ', control
9000 FORMAT (1X, A, Z4)
END
2-101
2
インテル ® Fortran ライブラリ・リファレンス
LTIME
ローカル・タイムゾーンの時間の構
成要素を返します。
プロトタイプ
IA-32 システム
INTERFACE
SUBROUTINE LTIME(TIME,ARRAY)
INTEGER(4) TIME,ARRAY(9)
END SUBROUTINE
END INTERFACE
Itanium ベースのシステム
INTERFACE
SUBROUTINE LTIME(TIME,ARRAY)
INTEGER(8) TIME
INTEGER(40 ARRAY(9)
END SUBROUTINE
END INTERFACE
INTEGER(4) TIME
グリニッジ標準時の 1970 年 1 月 1 日
00:00:00 からの経過秒数。
説明
ローカル・タイムゾーンの時間の構成要素を 9 要素配列で返しま
す。
2-102
ARRAY
INTEGER(4)。次のように TIME で返された
値から派生するローカルの時刻と日付を含
む 9 要素の 1 方向配列。
ARRAY(1)
秒 (0 〜 59)
ARRAY(2)
分 (0 〜 59)
移植性関数
ARRAY(3)
時 (0 〜 23)
ARRAY(4)
日 (1 〜 31)
ARRAY(5)
月 (0 〜 11)
ARRAY(6)
西暦年の下 2 桁 (0 〜 99)
ARRAY(7)
曜日 (0 〜 6、0 は日曜日 )
ARRAY(8)
年間通算日 (1 〜 365)
ARRAY(9)
夏時間が有効である場合は 1 そうでない 場
合は 0
2
注:この関数は 2000 年問題に対応していません。代わりに
DATE_AND_TIME を使用してください。
MAKEDIRQQ
指定した名前で新しいディレクトリ
を作成します。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION MAKEDIRQQ(DIRNAME)
CHARACTER(*)
DIRNAME
END FUNCTION
END INTERFACE
使用法
result = MAKEDIRQQ (DIRNAME)
DIRNAME
CHARACTER(LEN=*)。作成したいディレクトリ
の名前とパス。
2-103
2
インテル ® Fortran ライブラリ・リファレンス
結果
MAKEDIRQQ は、成功した場合には .TRUE. を返し、失敗した場合に
は .FALSE. を返します。
MAKEDIRQQ では、一度に 1 つのディレクトリだけを作成できます。
1 つのコマンドでは、新しいディレクトリを作成してその下にサブ
ディレクトリを作成することはできません。MAKEDIRQQ ではパス
区切り記号を変換しません。有効な区切り記号としては、スラッ
シュ (/) またはバックスラッシュ(\)を使用できます。
エラーが発生した場合は、GETLASTERRORQQ を呼び出して問題を
確認してください。考えられるエラーを次に示します。
ERR$ACCES
権限が拒否されました。ファイル(またはディレ
クトリ)の権限設定によって、指定されたアクセ
スは許可されません。
ERR$EXIST
ディレクトリがすでに存在しています。
ERR$NOENT
指定されたファイルまたはパスが見つかりません
でした。
例
USE IFLPORT
LOGICAL(4) result
result = MAKEDIRQQ('mynewdir')
IF (result) THEN
WRITE (*,*) 'New subdirectory successfully
created'
ELSE
WRITE (*,*) 'Failed to create subdirectory'
END IF
END
2-104
移植性関数
2
MATHERRQQ
実行時の算術エラーを処理します。
プロトタイプ
INTERFACE
SUBROUTINE MATHERRQQ( NAME,NLEN,INFO,RETCODE)
CHARACTER(LEN=*) NAME
INTEGER(2) :: NLEN, RETCODE
STRUCTURE /MTH$E_INFO/
INTEGER*4 ERRCODE
! INPUT : One of the MTH$
! values above
INTEGER*4 FTYPE
! INPUT : One of the TY$
! values above
UNION
MAP
REAL*4 R4ARG1
! INPUT : FIrst argument
CHARACTER*12 R4FILL1
REAL*4 R4ARG2
! INPUT : Second argument
!(if any)
CHARACTER*12 R4FILL2
REAL*4 R4RES
! OUTPUT : Desired result
CHARACTER*12 R4FILL3
END MAP
MAP
REAL*8 R8ARG1
! INPUT : FIrst argument
CHARACTER*8 R8FILL1
REAL*8 R8ARG2
! INPUT : Second argument
!(if any)
CHARACTER*8 R8FILL2
REAL*8 R8RES
! OUTPUT : Desired result
CHARACTER*8 R8FILL3
END MAP
MAP
2-105
2
インテル ® Fortran ライブラリ・リファレンス
COMPLEX*8 C8ARG1
CHARACTER*8 C8FILL1
COMPLEX*8 C8ARG2
! INPUT : FIrst argument
! INPUT : Second argument
! (if any)
CHARACTER*8 C8FILL2
COMPLEX*8 C8RES
! OUTPUT : Desired result
CHARACTER*8 C8FILL3
END MAP
MAP
COMPLEX*16 C16ARG1
! INPUT : FIrst argument
COMPLEX*16 C16ARG2
! INPUT : Second argument
! (if any)
COMPLEX*16 C16RES
! OUTPUT : Desired result
END MAP
END UNION
END STRUCTURE
RECORD /MTH$E_INFO/ info
END SUBROUTINE
END INTERFACE
注:インテル Fortran での Fortran 95 MODULE では、古い VAX ス
タイルの構造体を使用できないため、IFLPORT.F90 にはこの関
数用のインターフェイスがありません。
使用法
CALL MATHERRQQ (NAME,NLEN,INFO,RETCODE)
NAME
2-106
CHARACTER(LEN=*)。復帰時に、この変数には
エラーを発生した関数の名前が含まれています。
パラメータ NAME は、呼び出された関数の型なし
バージョンです。例えば、SIN 関数でエラーが発
生した場合は、たとえ実際には関数が DSIN や
CDSIN などの別名で呼び出されたり、SIN 引数と
移植性関数
2
複素数引数で呼び出されていても、名前は、実数
引数では SIN として返され、複素数引数では
CSIN として返されます。
NLEN
INTEGER(2)。NAME に返される文字数。
INFO
エラーについてのデータを含む共用体。
MTH$E_INFO 共用体は上で定義されます。
RETCODE
INTEGER(2)。ランタイム・ライブラリに戻され
る戻りコード。エラーが解決されたかどうかを示
すため、RETCODE の値はユーザの MATHERRQQ
ルーチンで設定してください。エラーは解決され
ておらず、プログラムはランタイム・エラーで停
止することを示すには、この値に 0 を設定します。
エラーは解決され、プログラムを続行することを
示すには、この値にゼロ以外の値を設定します。
MTH$E_INFO 構造体の ERRCODE 要素は、発生した算術エラーの種類
を示し、次のいずれかの値を持つことができます。
2-107
2
インテル ® Fortran ライブラリ・リファレンス
値
意味
MTH$E_DOMAIN
引数ドメインエラー
MTH$E_OVERFLOW
オーバーフロー範囲エラー
MTH$E_PLOSS
有効桁の一部損失
MTH$E_SINGULARITY
引数の特異性
MTH$E_TLOSS
有効桁の全部損失
MTH$E_UNDERFLOW
アンダーフロー範囲エラー
INFO 構造体の FTYPE 要素では、数学関数のデータ型を TY$REAL4、
TY$REAL8、TY$CMPLX4、または TY$CMPLX8 として識別します。
内部的には、REAL(4) と COMPLEX(4) の引数は、REAL(8) と
COMPLEX(8) に変換されます。一般に、MATHERRQQ 関数では、
FTYPE 値を検査し、適切なマッピング値を使用して TY$REAL8 や
TY$CMPLX8 に対して個別の動作を行うべきです。エラーを解決し
たい場合は、R8RES 欄または C8RES 欄に 0.0 などの適切な値を設
定します。適切な ARG1 欄と ARG2 欄を使用して MATHERRQQ 関数
で計算を行うことはできますが、エラーを起こして別の
MATHERRQQ を呼び出すような計算は避けてください。
注:DLL や、DLL とリンクするプログラムでは、MATHERRQQ
を使用できません。
NARGS
コマンド行の引数の数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NARGS ()
END FUNCTION NARGS
2-108
移植性関数
2
END INTERFACE
説明
この関数は、コマンド行の引数の数を返します。ただし、呼び出し
ているコマンド自身は数に含みません。
出力
ゼロまたは正の整数値であり、プログラムを呼び出しているコマン
ド行の引数の数を示します。
NUMARG
コマンド行の引数の数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NUMARG ()
END FUNCTION NUMARG
END INTERFACE
説明
この関数は、コマンド行の引数の数を返します。ただし、呼び出し
ているコマンド自身は数に含みません。
出力
ゼロまたは正の整数値であり、プログラムを呼び出しているコマン
ド行の引数の数を示します。
2-109
2
インテル ® Fortran ライブラリ・リファレンス
PACKTIMEQQ
時刻と日付の値をパックします。
プロトタイプ
USE IFLPORT
または
IA-32 システム
INTERFACE
SUBROUTINE
PACKTIMEQQ(TIMEDATE,IYR,IMON,IDAY,IHR,IMIN,ISEC)
INTEGER(4) TIMEDATE
INTEGER(2) IYR, IMON, IDAY, IHR, IMIN, ISEC
END SUBROUTINE
END INTERFACE
Itanium ベースのシステム
INTERFACE
SUBROUTINE
PACKTIMEQQ(TIMEDATE,IYR,IMON,IDAY,IHR,IMIN,ISEC)
INTEGER(8) TIMEDATE
INTEGER(2) IYR, IMON, IDAY, IHR, IMIN, ISEC
END SUBROUTINE
END INTERFACE
使用法
CALL PACKTIMEQQ
(TIMEDATE,IYR,IMON,IDAY,IHR,IMIN,ISEC)
2-110
TIMEDATE
INTEGER(4)。パックされた時刻と日付の情報。
IYR
INTEGER(2)。年 (xxxx)。
IMON
INTEGER(2)。月 (1 〜 12)。
IDAY
INTEGER(2)。日 (1 〜 31)。
IHR
INTEGER(2)。時 (0 〜 23)。
移植性関数
IMIN
INTEGER(2)。分 (0 〜 59)。
ISEC
INTEGER(2)。秒 (0 〜 59)。
2
パックされる時刻は、グリニッジ標準時の 1970 年 1 月 1 日 00:00:00
からの秒数です。パックされた時刻項目は数値的に比較できます。
PACKTIMEQQ を使用すれば、日付と時刻の相対値を操作できます。
パックされた時刻情報を元に戻すには、UNPACKTIMEQQ を使用し
ます。SETFILETIMEQQ では、パックされた時刻を使用します。
例
USE IFLPORT
INTEGER(2) year, month,day,hour,minute,second,hund
INTEGER(4) timedate
INTEGER(4) y4,m4,d4,h4,s4,hu4
CALL GETDAT (y4, m4, d4)
year = y4
month = m4
day = d4
CALL GETTIM (h4, m4, s4, hu4)
hour = h4
minute = m4
second = s4
hund = hu4
CALL PACKTIMEQQ (timedate, year, month, day, hour,
& minute, second)
END
2-111
2
インテル ® Fortran ライブラリ・リファレンス
PEEKCHARQQ
キー入力バッファに新しいコンソー
ル・キー入力がないかチェックしま
す。
プロトタイプ
USE IFLPORT
または
INTERFACE
! TEST FOR CONSOLE INPUT
LOGICAL(4) FUNCTION PEEKCHARQQ()
END FUNCTION PEEKCHARQQ
END INTERFACE
説明
キー入力バッファに新しいコンソール・キー入力がないかチェック
し、バッファに文字がある場合は .TRUE. を返し、文字がない場合
は .FALSE. を返します。
使用法
result = PEEKCHARQQ ( )
結果
結果の型は LOGICAL(4) です。結果は、キーボード・バッファに
待機中の文字がある場合は .TRUE. であり、文字がない場合は
.FALSE. です。
バッファ内のキーの値を調べるには、GETHARQQ を呼び出します。
GETCHARQQ を呼び出したときにバッファ内に待機中の文字がない
場合は、GETCHARQQ はバッファに文字が入ってくるまで待機しま
す。最初に PEEKCHARQQ を呼び出せば、GETCHARQQ のキー入力待
ちによるプロセスの停止を防止できます。キー入力がある場合は、
GETCHARQQ はそれを返し、PEEKCHARQQ を .FALSE. にリセットし
ます。
2-112
移植性関数
2
例
USE IFLPORT
LOGICAL(4) pressed / .FALSE. /
DO WHILE (.NOT. pressed)
WRITE(*,*) ' Press any key'
pressed = PEEKCHARQQ ( )
END DO
END
PERROR
標準エラーにメッセージを送信しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PERROR (STRING)
CHARACTER(LEN=*) STRING
END SUBROUTINE PERROR
END INTERFACE
STRING
標準のエラー・メッセージに先行するメッセージ。
説明
指定された STRING に続くメッセージを、標準エラー・ストリーム
に送信します。
2-113
2
インテル ® Fortran ライブラリ・リファレンス
POPCNT
与えられた値に含まれる 1 のビット
の数を数えます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION POPCNT (VALUE)
INTEGER(4), INTENT(IN) :: VALUE
END FUNCTION POPCNT
END INTERFACE
VALUE
正の整数値
説明
この関数は、与えられた値に含まれる 1 のビットの数を数えます。
出力
1 のビットの数です。
POPPAR
母集団パリティ
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION POPPAR (P)
TYPE P
END FUNCTION POPPAR
END INTERFACE
2-114
移植性関数
TYPE
指定できる型は次のとおりです。BYTE、
INTEGER、INTEGER(2)、INTEGER(4)、
LOGICAL(1)、LOGICAL(2)、LOGICAL(4)、
REAL(4)、POINTER。
P
最大 32 ビットまでの長さの任意のスカラ値。
2
説明
この関数は、引数に含まれるビット数が偶数である場合は 0 を返
し、奇数である場合は 1 を返します。
PUTC
標準出力に 1 文字を書き込みます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION PUTC(CH)
CHARACTER(LEN=1) CH
END FUNCTION PUTC
END INTERFACE
CH
文字変数
説明
標準出力装置に 1 文字を書き込みます。インテル Fortran では、外
部装置 6 は、出力の送信先である標準出力装置 (stdout) に接続さ
れていると想定しています。一般に、stdout は端末画面です。装
置 6 が何か他の装置に接続されている場合でも、このルーチンは標
準出力装置に出力を送信します。
出力
成功した場合はゼロを返し、失敗した場合はエラーコードを返しま
す。
2-115
2
インテル ® Fortran ライブラリ・リファレンス
QSORT
配列をソートします。
プロトタイプ
INTERFACE
SUBROUTINE QSORT(ARRAY, LEN, ISIZE, COMP)
TYPE ARRAY(LEN)
INTEGER LEN,ISIZE
INTERFACE
INTEGER(2) FUNCTION COMP(P1, P2)
TYPE P1, P2
END FUNCTION COMP
END INTERFACE
END SUBROUTINE QSORT
END INTERFACE
ARRAY
任意の 1 次元配列
TYPE
任意の組み込み型または構造型
LEN
配列内の要素の数
ISIZE
配列の 1 つの要素のバイトサイズ
COMP
指定する必要がある比較関数であり、次の値を返
します。
<0、P1 .LT. P2 の場合
=0、P1 = P2 の場合
>0、P1 .GT. P2 の場合
2-116
移植性関数
2
説明
指定された比較関数を使用して、指定された配列をソートします。
注:多次元配列に QSORT を使用すると、実行結果は予測できな
いものになります。QSORT では、C 言語の要素順序と 1 次元配
列を想定しています。
出力
昇順にソートされた配列が返されます。
RAISEQQ
実行中のプログラムに信号を送信し
ます。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION RAISEQQ(SIGNUMBER)
INTEGER(4)
SIGNUMBER
END FUNCTION
END INTERFACE
使用法
result = RAISEQQ (SIGNUMBER)
SIGNUMBER
送信する信号の番号。次のいずれかの定数
(IFLPORT.F90 で定義 ) です。
SIG$ABORT
異常終了
SIG$FPE
浮動小数点エラー
2-117
2
インテル ® Fortran ライブラリ・リファレンス
SIG$ILL
不当命令
SIG$INT
CTRL+C 信号
SIG$SEGV
不当な記憶域アクセス
SIG$TERM
終結要求
SIGNALQQ などで信号ハンドラをインストールしていない場合は、
信号が発生すると、デフォルトではプログラムは終了します。
結果
結果は、成功した場合はゼロで、失敗した場合はゼロ以外です。
事前に SIGNALQQ を呼び出して SIGNUMBER 用の信号処理ルーチン
がインストールされている場合は、RAISEQQ によってそのルーチ
ンが実行されます。処理ルーチンがインストールされていない場合
は、プログラムは終了します(デフォルト動作)。
RAN
0 と 1 の間の乱数を生成します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION RAN(ISEED)
END FUNCTION RAN
END INTERFACE
ISEED
2-118
INTEGER(4) の変数または配列要素でなければな
りません。RAN を実行すると、次に RAN を呼び出
したときに使用される数値が ISEED に格納されま
す。ISEED の初期値としては、できるだけ大きな
奇数を設定してください。例を参照してください。
移植性関数
2
説明
整数型のシード ISEED から、0 と 1 の間の乱数を生成します。
RAN では、内部シードという新しい値で ISEED を更新します。最
初の呼び出しでは、ISEED に大きな奇数値を初期設定することをお
勧めします。
分類
非標準の要素別処理関数
例
INTEGER(4) iseed
REAL(4) rnd
iseed = 425001
rnd = RAN(iseed)
注:プログラムを実行するたびに異なる乱数を生成するには、プ
ログラムを実行するたびに ISEED に異なる値を設定してくださ
い。そのための 1 つの方法としては、プログラムの開始時点で、
ユーザにシードを入力させるという方法があります。もう 1 つの
方法としては、現在の年、日、および月 (IDATE から返されます )
と真夜中からの秒数によって値を計算するという方法もありま
す。
RAND
0.0 〜 1.0 の範囲で乱数を生成しま
す。
プロトタイプ
INTERFACE
REAL(4) FUNCTION RAND(ISEED)
INTEGER(4), INTENT(IN):: ISEED
!New SEED
2-119
2
インテル ® Fortran ライブラリ・リファレンス
END FUNCTION RAND
REAL(4) FUNCTION RAND2()
END FUNCTION RAND2()
END INTERFACE
説明
0.0 〜 1.0 の範囲で一様に分布する乱数を生成します。最初の呼び出
しでは、ISEED に大きな奇数の値を設定して、内部シードを初期化
することをお勧めします。ISEED は更新されません。それ以降の呼
び出しでは、数列の次の乱数を取得できるように、ISEED にはゼロ
を設定してください。ISEED に 1 を設定した場合は、次のようにし
て内部シードを設定できます。
CALL SEED(ISEED).
引数なしで RAND が呼び出されると ISEED は、0 と想定されます。
分類
非標準の要素別処理関数
結果の型および型パラメータ
REAL(4) 型
出力
出力は、次のようにパラメータ値によって異なります。
•
•
•
入力パラメータがゼロの場合、RAND は擬似乱数列の次の数値を
返します。
入力パラメータが 1 の場合、RAND は、擬似乱数列を再起動して、
数列の最初の数値を返します。
入力パラメータが 1 より大きい場合は、その値が新しい擬似乱
数列のシードとして使用され、RAND はその数列の最初の数値
を返します。
例
INTERFACE
REAL(4) FUNCTION RAND(ISEED)
INTEGER(4) ISEED
END INTERFACE
2-120
移植性関数
2
INTEGER(4) ISEED
REAL(4) rv
rv = RAND(ISEED)
END
注:IRAND と RAND で使用する擬似乱数生成器の再起動の詳細に
ついては、「SRAND」の項を参照してください。
RANDOM
乱数発生器
プロトタイプ
INTERFACE
SUBROUTINE RANDOM (R)
REAL (4) R
END SUBROUTINE RANDOM
END INTERFACE
R
REAL(4) の変数または配列要素であり、復帰時に
乱数を格納しています。
説明
RANDOM は、RANSET 関数によって設定されたシードの値に基づい
て、擬似乱数を生成します。RANDOM、RAND、および DRAND の各
ポータビリティ関数では、すべて同じ結果を生成します。特定の
シードが与えられると、常に同じ数列の擬似乱数が生成されます。
RANDOM のアルゴリズムについては、『Random Number Generators:
Good ones are hard to find』(Park, S.K.、Miller, K.W. 共著、Comm
ACM、1988 年 10 月、1192-1201) を参照してください。また、
『Numerical Recipes』の第 7 章にも説明されています。このルーチン
2-121
2
インテル ® Fortran ライブラリ・リファレンス
は、従来の FORTRAN プログラムとの互換性のために用意されてい
ます。可能な場合、標準 Fortran の組み込み関数である
RANDOM_NUMBER と RANDOM_SEED を使用してください。
出力
実数型の乱数です。
RANDU
0.0 〜 1.0 の範囲で擬似乱数を生成
します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION RANDU (IL, I2, X)
END FUNCTION RANDU
END INTERFACE
IL、I2
乱数を計算するための SEED を含む、INTEGER(2)
の変数または配列要素でなければなりません。こ
れらの値は、更新されたシードを含むように、計
算中に更新されます。
X
計算された乱数が返される REAL(4) の変数または
配列要素。
結果
結果は X に返されます。X は REAL(4) 型でなければなりません。
結果の値は、0.0 〜 1.0 の範囲の擬似乱数です。
乱数値を計算するためのアルゴリズムは、IL と I2 の値に基づいて
います。
IL=0 および I2=0 である場合は、生成器の基数は次のように設定さ
れます。
X(N + 1 = 216 + 3)
2-122
移植性関数
2
そうでない場合は、次のように設定されます。
X(N + 1 = (216 + 3) * X(N) mod 232)
生成器の基数 X(N + 1) は IL、I2 に格納されます。
結果は、0.0 <= Y(N + 1) < 1 に対する実数値 Y(N + 1) に合わせ
て調整した X(N + 1) となります。
例
REAL X
INTEGER(2) I, J
...
CALL RANDU (I, J, X)
I と J の値がそれぞれ 4 と 6 である場合は、X には値 5.4932479E-04
が格納されます。
RANF
0. 〜 RAND_MAX の間の乱数を生成
します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION RANF ()
END FUNCTION RANF
END INTERFACE
説明
RANFは、
0.0とCライブラリで定義されるRAND_MAX (通常は0x7FFF
215-1) との間の単精度擬似乱数を返します。最初のシードは、CALL
SRAND(ISEED) によって設定されます。
出力
REAL(4) 型の乱数です。ISEED は INTEGER(4) です。
2-123
2
インテル ® Fortran ライブラリ・リファレンス
RANGET
現在のシードを返します。
プロトタイプ
INTERFACE
INTEGER(4) S
END SUBROUTINE RANGET
END INTERFACE
説明
RANGET は、擬似乱数列に使用される現在のシードを返します。
出力
内部シードです。このルーチンはスレッドセーフではありません。
RANSET
乱数生成器のシードを設定します。
プロトタイプ
INTERFACE
SUBROUTINE RANSET (ISEED)
REAL(4) ISEED
END SUBROUTINE RANSET
END INTERFACE
説明
擬似乱数列のシードを設定します。
2-124
移植性関数
2
出力
変更されたシードです。
RENAME
ファイル名を変更します。
プロトタイプ
INTERFACE
FUNCTION RENAME(FROM,TO)
CHARACTER(LEN=*) FROM,TO
END FUNCTION RENAME
END INTERFACE
FROM
元のファイルの文字パス名。
TO
FROM ファイルを格納する場所と名前を指定する文
字パス名。
説明
このルーチンはファイル名を変更します。FROM または TO には、
完全修飾されたパス名や相対パス名を指定できます。RENAME は、
ディレクトリ区切り子としてスラッシュまたはバックスラッシュを
受け付け、それらをホスト・オペレーティング・システムに適した
形式に変換します。NT では、パスにもドライブ文字を含めること
ができます。UNIX システムでは、ドライブ文字は受け付けられま
せん。
RENAME を呼び出したときに FROM ファイルは存在しなければなりま
せんが、論理装置に接続しておく必要はありません。
注:ファイルの FROM パスと TO パスは、同じ物理装置上になけ
ればなりません。このルーチンを使用して、ファイルを別の装置
に移動することはできません。
2-125
2
インテル ® Fortran ライブラリ・リファレンス
このルーチンはスレッドセーフであり、入出力が行われる前に、関
連するストリームを閉鎖します。
出力
成功した場合はゼロが返され、失敗した場合はゼロ以外が返されま
す。
RENAMEFILEQQ
ファイル名を変更します。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION RENAMEFILEQQ(OLDNAME,NEWNAME)
CHARACTER(LEN=*) OLDNAME,NEWNAME
END FUNCTION RENAMEFILEQQ
END INTERFACE
使用法
result = RENAMEFILEQQ (OLDNAME,NEWNAME)
OLDNAME
CHARACTER(LEN=*)。名前変更されるファイル。
NEWNAME
CHARACTER(LEN=*)。名前変更されるファイル
の新しい名前。
結果
結果は、成功した場合は .TRUE. で、失敗した場合は .FALSE. で
す。
RENAMEFILEQQ を使用してファイルを同じドライブ上の別のディレ
クトリに移動するには、NEWNAME パラメータに異なるパスを指定
します。
2-126
移植性関数
2
関数が失敗した場合は、GETLASTERRORQQ を呼び出して理由を調
べてください。次のいずれかのエラーが返されます。
ERR$ACCES
権限が拒否されました。ファイルの権限設定に
よって、指定されたアクセスは許可されません。
ERR$EXIST
ファイルがすでに存在しています。
ERR$NOENT
OLDNAME によって指定されたファイルまたはパス
が見つかりませんでした。
ERR$XDEV
ファイルを別の装置に移動しようとしました。
例
USE iflport
INTEGER(4) len
CHARACTER(80) oldname, newname
LOGICAL(4) result
WRITE(*,'(A)') ' Enter old name: '
len = GETSTRQQ(oldname)
WRITE(*,'(A)') ' Enter new name: '
len = GETSTRQQ(newname)
result = RENAMEFILEQQ(oldname, newname)
END
RINDEX
文字列内で最後に出現した部分列の
インデックスを検索します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION RINDEX (S1, S2)
CHARACTER(LEN=*) S1, S2
END FUNCTION RINDEX
END INTERFACE
2-127
2
インテル ® Fortran ライブラリ・リファレンス
S1
検索する元の文字列
S2
検索対象となる文字列
説明
この関数は、文字列内で最後に出現した部分列のインデックスを検
索します。
出力
S1 内に最後に出現した S2 の開始位置です。
RUNQQ
別のプログラムを実行して、その完
了を待機します。
プロトタイプ
USE IFLPORT
または
INTEGER(2) FUNCTION RUNQQ(PROGNAME,COMMANDLINE)
CHARACTER(LEN=*) PROGNAME, COMMANDLINE
END FUNCTION
使用法
result = RUNQQ (FILENAME, COMMANDLINE)
2-128
FILENAME
入力。CHARACTER(LEN=*)。実行されるプ
ログラムのファイル名。
COMMANDLINE
入力。CHARACTER(LEN=*)。実行されるプ
ログラムに渡すコマンド行引数。
移植性関数
2
結果
結果の型は INTEGER(2) です。RUNQQ で実行されたプログラムが
正常に終了した場合は、そのプログラムの終了コードが起動したプ
ログラムに返されます。プログラムが失敗した場合は、-1 が返され
ます。
RUNQQ 関数では、それを起動したプロセスと同じパス、環境、およ
びリソースを使用して、オペレーティング・システムの新しいプロ
セスを実行します。起動側のプロセスは、起動されたプロセスの実
行が完了するまで中断されます。
例
USE IFLPORT
INTEGER(2) result
result = RUNQQ('dir', '/Os')
END
SCWRQQ
浮動小数点プロセッサの制御ワード
を返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE SCWRQQ(CONTROL)
INTEGER(2)
CONTROL
END SUBROUTINE
END INTERFACE
使用法
CALL SCWRQQ (CONTROL)
2-129
2
インテル ® Fortran ライブラリ・リファレンス
CONTROL
出力。INTEGER(2)。浮動小数点プロセッサの制
御ワード。
SCRWQQ は、GETCONTROLFPQQ と同じ機能を実行します。この
SCRWQQ は、互換性のために用意されています。
SCANENV
環境から環境変数を検索します。
プロトタイプ
INTERFACE
SUBROUTINE SCANENV (ENVNAME, ENVTEXT, ENVVALUE)
CHARACTER(LEN=*) INTENT(IN)::ENVNAME
CHARACTER(LEN=*) INTENT(OUT)::ENVTEXT, ENVVALUE
END SUBROUTINE SCANENV
END INTERFACE
ENVNAME
値を検索する必要のある環境変数の名前を含む
CHARACTER 変数。
ENVTEXT
見つかった環境変数のフルテキストが設定されま
す。何も見つからなかった場合は、"" が設定され
ます。
ENVVALUE
見つかった環境に関連付けられた値が設定されま
す。何も見つからなかった場合は、"" が設定され
ます。
説明
環境から ENVNAME に一致する環境変数を検索して、設定された値
や文字列を返します。
出力
環境変数のテキスト文字列または値です。
2-130
移植性関数
2
SEED
乱数生成器の出発値を設定します。
プロトタイプ
INTERFACE
SUBROUTINE SEED (ISEED)
INTEGER(4) ISEED
END SUBROUTINE SEED
END INTERFACE
説明
擬似乱数列の内部シードを設定します。
出力
変更されたシードです。このルーチンはスレッドセーフではありま
せん。
SECNDS
最後の呼び出しからの秒数を返しま
す。
プロトタイプ
INTERFACE
REAL(4) FUNCTION SECNDS(TIME)
REAL(4) TIME
END FUNCTION SECNDS
END INTERFACE
TIME
時計を開始するには 0.0、または SECNDS から返さ
れた最後の値。
2-131
2
インテル ® Fortran ライブラリ・リファレンス
説明
この関数は、SECNDS を最後に呼び出してからの経過秒数を返しま
す。ただし、パラメータが 0.0 である場合は、真夜中からの秒数を
返します。
使用例
10
PROGRAM TIMEIT
REAL STARTTIME,STOPTIME
STARTTIME= SECNDS(0.0)
DO 10 I = 1,100000
I = I +1
CONTINUE
STOPTIME= SECNDS(STARTTIME)
PRINT *, 'Elapsed time was: ',STOPTIME
END
このルーチンは、他の FORTRAN コンパイラとの互換性のために用
意されています。コード実行の一部の時間を測定したり、プログラ
ム全体の時間を測定したりできます。また、プログラムの一部の時
間を測定したり、時間を合算したりできます。このルーチンは、主
にベンチマーキングに便利ですが、アプリケーションがその実行時
間の大部分を費やす個所を大まかに分析する場合にも役立ちます。
タイミング・クロックを開始するには、0.0 で SECNDS を呼び出し、
結果を局所変数に保存します。SECNDS を最後に呼び出してからの
経過時間を取得するには、次の呼び出しで SECNDS に局所変数を渡
します。
このルーチンはスレッドセーフです。
出力
真夜中からの経過秒数、または真夜中からの経過秒数から浮動小数
点引数で指定した値を差し引いた秒数です。より正確なタイミング
が必要な場合は、サブルーチン DCLOCK を参照してください。
2-132
移植性関数
2
SETCONTROLFPQQ
浮動小数点プロセッサの制御ワード
の値を設定します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE SETCONTROLFPQQ(CONTROL)
INTEGER(2) CONTROL
END SUBROUTINE
END INTERFACE
使用法
CALL SETCONTROLFPQQ (CONTROLWORD)
CONTROLWORD
INTEGER(2)。浮動小数点プロセッサの制御ワー
ド。
浮動小数点制御ワードを使用すれば、浮動小数点算術演算コプロ
セッサによるさまざまな例外条件の処理方法を指定できます。ま
た、浮動小数点精度を設定し、使用する浮動小数点丸めメカニズム
を指定することもできます。
IFLPORT.F90 モジュール・ファイルには、次のような制御ワード
用に定義された定数が含まれています。」
パラメータ名
16 進値
説明
FPCW$MCW_IC
Z’1000’
無限大の制御マスク
FPCW$AFFINE
Z’1000’
アフィン無限大
FPCW$PROJECTIVE
Z’0000’
射影無限大
FPCW$MCW_PC
Z’0300’
精度の制御マスク
FPCW$64
Z’0300’
64 ビット精度
FPCW$53
Z’0200’
53 ビット精度
2-133
2
インテル ® Fortran ライブラリ・リファレンス
パラメータ名
16 進値
説明
FPCW$24
Z’0000’
24 ビット精度
FPCW$MCW_RC
Z’0C00’
丸めの制御マスク
FPCW$CHOP
Z’0C00’
切り捨て
FPCW$UP
Z’0800’
大きい方へ丸める
FPCW$DOWN
Z’0400’
小さい方へ丸める
FPCW$NEAR
Z’0000’
最近値に丸める
FPCW$MCW_EM
Z’003F’
例外マスク
FPCW$INVALID
Z’0001’
無効な数値を許容する
FPCW$DENORMAL
Z’0002’
デノーマル(非常に小さい数値)を
許容する
FPCW$ZERODIVIDE
Z’0004’
ゼロによる除算を許容する
FPCW$OVERFLOW
Z’0008’
オーバーフローを許容する
FPCW$UNDERFLOW
Z’0010’
アンダーフローを許容する
FPCW$INEXACT
Z’0020’
不正確な精度を許容する
デフォルトでは、浮動小数点制御ワードの設定は、53 ビット精度で
あり、最近値に丸められ、デノーマル、アンダーフロー、および不
正確な精度の例外が無効にされています。例外は、そのフラグが 1
にセットされている場合は無効にされ、そのフラグが 0 にクリアさ
れている場合は有効にされます。
使用する浮動小数点精度の規格に敏感な古いコードを再利用してい
て、古いマシンの場合と同じ結果を得たい場合は、浮動小数点精度
と丸めメカニズムを設定すると便利なことがあります。
GETCONTROLFPQQ を使用して現在の制御ワードを取り出すことが
でき、SETCONTROLFPQQ を使用して制御ワードを変更することが
できます。制御ワードを変更する必要がある場合は、必ず
SETCONTROLFPQQ を使用して、浮動小数点スタック例外と異常伝
搬を処理する特殊ルーチンが正しく機能することを確認してくださ
い。
例
USE IFLPORT
2-134
移植性関数
2
INTEGER(2) status, control, controlo
CALL GETCONTROLFPQQ(control)
WRITE (*, 9000) 'Control word: ', control
!
Save old control word controlo = control
!
Clear all flags control = control .AND. Z’0000’
!
Set new control to round up
control = control .OR. FPCW$UP
CALL SETCONTROLFPQQ(control)
CALL GETCONTROLFPQQ(control)
WRITE (*, 9000) 'Control word: ', control
9000 FORMAT (1X, A, Z4)
END
SETDAT
現在のシステム日付を年、月、およ
び日で設定します。
プロトタイプ
INTERFACE SETDAT
LOGICAL(4) FUNCTION SETDAT(YEAR,MONTH,DAY)
INTEGER(4) :: YEAR,MONTH,DAY! YEAR IS 4 DIGITS
END FUNCTION
LOGICAL(4) FUNCTION SETDAT_DVF(YEAR,MONTH,DAY)
INTEGER(2) :: YEAR,MONTH,DAY !YEAR is 4
digitsEND FUNCTION
END INTERFACE
YEAR
4 桁の整数
MONTH
1 〜 12
DAY
1 〜 31
2-135
2
インテル ® Fortran ライブラリ・リファレンス
説明
このサブルーチンは、現在のシステム日付を年、月、および日で設
定します。値が有効ではない場合、日付は設定されません。
出力
プログラムを実行しているシステムで日付が変更されます。
SETENVQQ
既存の環境変数の値を設定します。
プロトタイプ
USE IFLPORT
または
LOGICAL(4) FUNCTION SETENVQQ(INPUT_STRING)
CHARACTER(LEN=*) INPUT_STRING
END FUNCTION SETENVQQ
説明
既存の環境変数の値を設定するか、新しい環境変数を追加して設定
します。
使用法
result = SETENVQQ (INPUT_STRING)
INPUT_STRING CHARACTER(LEN=*)。追加または変更される変
数の名前と値を含む文字列。VARNAME = VALUE
の形式でなければなりません。ここで、VARNAME
は環境変数の名前であり、value はそれに割り当
てられる値です。
結果
結果は、成功した場合は .TRUE. で、失敗した場合は .FALSE. で
す。
2-136
移植性関数
2
環境変数では、プログラムが実行される環境の特性を定義します。
例えば、LIB 環境変数では、プログラムとリンクされるライブラリ
の基本検索パスを定義します。
SETENVQQ では、INPUT_STRING 内のすべての終端空白を削除しま
す。等号 (=) は環境値の中では不正な文字ですが、等号を使用して
VALUE を終了させれば、後続の空白を保持することができます。例
えば、文字列 PATH= = では value に " を設定します。
SETENVQQ を使用して、変数名に続けて値なしの等号を指定すれば、
既存の変数を削除できます。例えば、LIB= では、環境変数のリス
トから変数 LIB が削除されます。すでに存在する変数に値を指定し
た場合は、その値が変更されます。変数が存在しない場合は、変数
が作成されます。
SETENVQQ は、現在のプロセスに対して局所的である環境にのみ影
響を与えます。これを使用してコマンドレベルの環境を変更するこ
とはできません。現在のプロセスが終了すると、環境は親プロセス
のレベルに戻ります。通常、これはオペレーティング・システムの
レベルです。しかし、SETENVQQ によって変更された環境を、
RUNQQ、PXFFORK、またはその他の子プロセス作成手段によって作
成した子プロセスに渡すことができます。これらの子プロセスは、
SETENVQQ によって追加された新しい変数や値を取得します。
例
USE IFLPORT
! Note, compile this example with /nbs
LOGICAL(4) success
success = SETENVQQ("PATH=c:\users\mjsmith\bin")
success = &
SETENVQQ("LIB=c:\program
files\intel\compiler4.5\lib")
PRINT *, SUCCESS
END
2-137
2
インテル ® Fortran ライブラリ・リファレンス
SETERRORMODEQQ
重大なエラーに対するプロンプト・
モードを設定します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE SETERRORMODEQQ(PROMPT)
LOGICAL(4) PROMPT
END SUBROUTINE
END INTERFACE
説明
重大なエラーに対して、デフォルトでシステム・プロンプトを生成
するプロンプト・モードを設定します。
使用法
CALL SETERRORMODEQQ (PROMPT)
PROMPT
LOGICAL(4)。PROMPT では、重大なエラーが発
生したときにプロンプトが表示されるかどうかを
決定します。
特定の入出力エラーが発生すると、システムはエラー・プロンプト
を表示します。例えば、ドライブのドアが開いているディスクドラ
イブに書き込みを試みると、"Abort, Retry, Ignore" メッセージが生成
されます。プログラムが実行を開始すると、デフォルトでは、シス
テムのエラー・プロンプトが有効になります。システムのエラー・
プロンプトを有効にするには、PROMPT に(IFLPORT.F90 で定義
された)ERR$HARDPROMPT を設定して SETERRORMODEQQ を呼び
出します。
プロンプトを無効にした場合は、通常はプロンプト表示につながる
重大な入出力エラーが発生しても、何も表示されません。
2-138
移植性関数
2
OPEN、READ、WRITE などの入出力文でエラーが発生すると、プロ
ンプトによる中断ではなく、ただちに停止が行われます。これに
よって、エラーが発生した場合の処置をより直接的に制御できま
す。多くの入出力文の ERR= 機能を使用して、エラー処理のために
分岐する先の文番号を指定できます。
プロンプト・モードをオフにするには、PROMPT に .FALSE. また
は(IFLPORT.F90 で定義された)定数 ERR$HARDFAIL を設定し
ます。SETERRORMODEQQ は、システム・プロンプトを生成するエ
ラーにのみ影響を与えます。他の入出力エラー(存在しないファイ
ルへの書き込みや、STATUS='OLD' によって存在しないファイル
を開くことなど)には影響を与えません。
例1
!PROGRAM 1
! DRIVE B door open
! Note: you should compile these examples with /nbs
OPEN (10, FILE = 'B:\NOFILE.DAT', ERR = 100)
! Generates a system prompt error here and waits for
! the user to respond to the prompt before continuing
100
WRITE(*,*) ' Continuing'
END
例2
! PROGRAM 2
! DRIVE B door open
! Note: you should compile these examples with /nbs
USE IFLPORT
CALL SETERRORMODEQQ(.FALSE.)
OPEN (10, FILE = 'B:\NOFILE.DAT', ERR = 100)
! Causes the statement at label 100 to execute
! without system prompt
100 WRITE(*,*) ' Drive B: not available, opening
& &alternative drive.'
OPEN (10, FILE = 'C:\NOFILE.DAT')
END
2-139
2
インテル ® Fortran ライブラリ・リファレンス
SETFILETIMEQQ
指定したファイルに変更時刻を設定
します。
プロトタイプ
USE IFLPORT
または
IA-32 のシステム :
INTERFACE
LOGICAL(4) FUNCTION SETFILETIMEQQ(NAME, TIMEDATE)
CHARACTER(LEN=*) NAME
INTEGER(4) TIMEDATE
END FUNCTION
END INTERFACE
Itanium ベースのシステム :
INTERFACE
LOGICAL(4) FUNCTION SETFILETIMEQQ(NAME, TIMEDATE)
CHARACTER(LEN=*) NAME
INTEGER(8) TIMEDATE
END FUNCTION
END INTERFACE
使用法
result = SETFILETIMEQQ (NAME, TIMEDATE)
NAME
CHARACTER(LEN=*)。ファイル名。
TIMEDATE
INTEGER(4)。PACKTIMEQQ によってパックされ
た時刻と日付の情報。
結果
結果は、成功した場合は .TRUE. で、失敗した場合は .FALSE. で
す。
2-140
移植性関数
2
変更時刻とは、ファイルが最後に変更された時刻のことです。
SETFILETIMEQQ を呼び出すプロセスには、ファイルへの書き込み
アクセス権が必要です。アクセス権を持っていない場合は、時刻を
変更できません。TIMEDATE に(IFLPORT.F90 で定義された)
FILE$CURTIME を設定した場合、SETFILETIMEQQ は変更時刻に現
在のシステム時刻を設定します。
関数が失敗した場合は、GETLASTERRORQQ を呼び出して理由を調
べてください。次のいずれかのエラーが返されます。
エラー
意味
ERR$ACCES
権限が拒否されました。ファイル ( またはディレ
クトリ ) の権限設定によって、指定されたアクセ
スは許可されません。
ERR$INVAL
引数が無効です。TIMEDATE 引数が無効です。
ERR$MFILE
開かれたファイルが多すぎます ( ファイルは、その
変更時刻を変更するために開く必要があります )。
ERR$NOENT
ファイルまたはパスが見つかりませんでした。
ERR$NOMEM
コマンドの実行に必要なメモリが不足しています。
または、メモリが破壊されました。または、呼び
出し側プロセスが正しく割り付けられなかったこ
とを示す不正なブロックが存在します。
例
USE IFLPORT
INTEGER(2) day, month, year
INTEGER(2) hour, minute, second, hund
INTEGER(4) timedate
INTEGER(4) hr1, mn1,se1,hu1,ye1,mo1,da1
LOGICAL(4) result
CALL GETDAT(ye1, mo1, da1)
year = ye1
month = mo1
day = da1
CALL GETTIM(hr1, mn1, se1, hu1)
hour = hr1
minute = mn1
second = se1
2-141
2
インテル ® Fortran ライブラリ・リファレンス
hund = hu1
CALL PACKTIMEQQ (timedate, year, month, day,
hour, minute, second)
result = SETFILETIMEQQ('myfile.dat', timedate)
PRINT *, RESULT
END
&
SETTIM
現在のシステム日付を年、月、日で
設定します。
プロトタイプ
INTERFACE SETTIM
LOGICAL(4) FUNCTION SETTIM (HOUR,MINUTE, &
SECOND,HUNDRETH)
INTEGER(4), INTENT(IN) :: HOUR,MINUTE, &
SECOND,HUNDRETH
END FUNCTION
LOGICAL(4) FUNCTION SETTIM_DVF (HOUR,MINUTE, &
SECOND,HUNDRETH)
INTEGER(2), INTENT(IN) :: HOUR,MINUTE, &
SECOND,HUNDRETH
END FUNCTION
END INTERFACE
2-142
HOUR
0 〜 23
MINUTE
0 〜 59
SECOND
0 〜 59
HUNDREDTH
0 〜 99
移植性関数
2
説明
このサブルーチンは、現在のシステム時刻を時、分、秒、および
1/100 秒で設定します。値が有効でない場合、時刻は設定されませ
ん。
出力
プログラムを実行しているシステム上で現在の時刻が変更されま
す。
SHIFTL
指定したビット位置数だけ値を左方
向にシフトします。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SHIFTL(IVALUE,ISHIFTCOUNT)
INTEGER(4) IVALUE,ISHIFTCOUNT
END INTEGER FUNCTION SHIFTL
END INTERFACE
IVALUE
整数値
ISHIFTCOUNT
シフトするビット位置の数。正の INTEGER(4) 式
でなければなりません。
説明
これは算術シフトです。入力値のビットサイズを超えるシフト数を
指定すると、結果はゼロが返されます。
このルーチンはスレッドセーフです。
出力
入力値は、ISHIFTCOUNT ビット位置だけ左方向にシフトされま
す。
2-143
2
インテル ® Fortran ライブラリ・リファレンス
SHIFTR
指定したビット位置数だけ値を右方
向にシフトします。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SHIFTR(IVALUE,ISHIFTCOUNT)
INTEGER(4) IVALUE,ISHIFTCOUNT
END INTEGER FUNCTION SHIFTR
END INTERFACE
IVALUE
整数値
ISHIFTCOUNT
シフトするビット位置の数。正の INTEGER(4) 式
でなければなりません。
説明
これは算術シフトです。入力値のビットサイズを超えるシフト数を
指定すると、結果はゼロが返されます。
このルーチンはスレッドセーフです。
出力
入力値は、ISHIFTCOUNT ビット位置だけ右方向にシフトされま
す。
2-144
移植性関数
2
SIGNALQQ
割り込み信号が発生した場合に呼び
出す関数を登録します。
プロトタイプ
USE IFLPORT
または
IA-32 システム
INTERFACE
INTEGER(4) FUNCTION SIGNALQQ(SIGNAL, HANDLER)
INTEGER(4) SIGNAL
INTEGER(4) HANDLER
EXTERNAL HANDLER
END FUNCTION
END INTERFACE
Itanium ベースのシステム
INTERFACE
INTEGER(8) FUNCTION SIGNALQQ(SIGNAL, HANDLER)
INTEGER(4) SIGNAL
INTEGER(8) HANDLER
EXTERNAL HANDLER
END FUNCTION
END INTERFACE
使用法
result = SIGNALQQ (SIGNAL,HANDLER)
SIGNAL
INTEGER(4)。割り込みの種類。IFLPORT.F90
で定義されている、次のいずれかの定数を指定し
てください。
SIG$ABORT
異常終了
SIG$FPE
浮動小数点エラー
2-145
2
インテル ® Fortran ライブラリ・リファレンス
SIG$ILL
不当命令
SIG$INT
CTRL+C 信号
SIG$SEGV
不当な記憶アクセス
SIG$TERM
終結要求
HANDLER
CHARACTER(LEN=*)。割り込み時に実行される
関数名を指定してください。関数は存在しなけれ
ばなりません。
結果
結果は、成功した場合は正の整数であり、失敗した場合は
-1(SIG$ERR) です。
SIGNALQQ は、SIGNAL によって指定された型の信号に対するハン
ドラとして、関数 HANDLER を設定します。ハンドラを設定しない
場合は、割り込み信号が発生するとプログラムは終了します。
引数 HANDLER は、関数の名前であり、EXTERNAL 文または
IMPLICIT 文で宣言するか、明示的引用仕様を持つ必要があります。
デフォルトでは、引用仕様宣言で記述される関数は EXTERNAL であ
り、EXTERNAL と宣言する必要はありません。
SIG$FPE 割り込み以外の割り込みが発生すると、SIGNAL の引数
SIG$INT が HANDLER に渡されてから、HANDLER が実行されます。
SIG$FPE が発生すると、関数 HANDLER には次の 2 つの引数が渡され
ます。1 つは SIG$FPE であり、もう 1 つは発生した浮動小数点例
外の種類を識別する浮動小数点エラーコード(例えば、
FPE$ZERODIVIDE や FPE$OVERFLOW)す。浮動小数点エラーコー
ドは、接頭辞 FPE$ で始まり、IFLPORT.F90 で定義されています。
HANDLER が復帰した場合は、呼び出し側プロセスは、割り込み信号
を受け取ったポイントの直後から実行を再開します。これは、信号
や動作モードの種類とは関係なく当てはまることです。
割り込みが発生すると、通常、信号ハンドラルーチンは非同期的に
呼び出されるため、実行時動作が不完全で未知の状態にある場合
は、信号ハンドラ関数が制御を取得する可能性があります。した
がって、信号ハンドラルーチンでは、ヒープ・ルーチンや、ヒー
プ・ルーチンを使用するルーチン(例えば、入出力ルーチン、
ALLOCATE、および DEALLOCATE)を呼び出さないでください。
2-146
移植性関数
2
信号ハンドラルーチンを検査するため、RAISEQQ を呼び出して割
り込み信号を生成できます。これによって、プログラムは、
SIGNALQQ で設定された信号ハンドラに分岐するか、SIGNALQQ が
信号ハンドラを設定していない場合は、システムのデフォルト動作
を実行します。
次に、SIG$ABORT の信号ハンドラの例を示します。
例
! This program shows a signal handler for
! SIG$ABORT
USE IFLPORT
INTERFACE
FUNCTION h_abort (signum)
INTEGER(4) h_abort
INTEGER(2) signum
END FUNCTION
END INTERFACE
INTEGER(2) i2ret
INTEGER(4) i4ret
i4ret = SIGNALQQ(SIG$ABORT, h_abort)
WRITE(*,*) 'Set signal handler. Return = ', i4ret
i2ret = RAISEQQ(SIG$ABORT)
WRITE(*,*) 'Raised signal. Return = ', i2ret
END
!
Signal handler routine
INTEGER(4) FUNCTION h_abort (signum)
INTEGER(2) signum
WRITE(*,*) 'In signal handler for SIG$ABORT'
WRITE(*,*) 'signum = ', signum
h_abort = 1
END
2-147
2
インテル ® Fortran ライブラリ・リファレンス
SLEEP
指定した時間だけプロセスの実行を
中断します。
プロトタイプ
INTERFACE
SUBROUTINE SLEEP (TIME)
INTEGER(4) TIME
END SUBROUTINE SLEEP
END INTERFACE
TIME
呼び出し側プロセスを中断する時間(秒単位)。
説明
この関数は、指定した時間だけプロセスの実行を中断します。
出力
なし。
SLEEPQQ
指定した時間だけプログラムの実行
を遅らせます。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE SLEEPQQ( DURATION)
INTEGER(4) DURATION
2-148
移植性関数
2
END SUBROUTINE
END INTERFACE
使用法
CALL SLEEPQQ (DURATION)
DURATION
INTEGER(4)。プログラムが休止する(プログラ
ムの実行を遅らせる)ミリ秒数。
例
USE IFLPORT
INTEGER(4) delay, freq, duration
delay
= 2000
freq
= 4000
duration = 1000
CALL SLEEPQQ(delay)
CALL BEEPQQ(freq, duration)
END
SPLITPATHQQ
ファイルパスまたはディレクトリ・
パスをその成分に分解します。
プロトタイプ
USE IFLPORT
または
INTERFACE
INTEGER(4) FUNCTION SPLITPATHQQ(PATH, DRIVE, DIR,
NAME, EXT)
CHARACTER(LEN=*) NAME, EXT, PATH, DRIVE, DIR
END FUNCTION
END INTERFACE
2-149
2
インテル ® Fortran ライブラリ・リファレンス
使用法
result = SPLITPATHQQ (PATH,DRIVE,DIR,NAME,EXT)
PATH
CHARACTER(LEN=*)。成分に分解するパス。
PATH の中には、スラッシュ (/) やバックスラッ
シュ (\) を指定できます。
DRIVE
CHARACTER(LEN=*)。ドライブ文字の指定であ
り、コロンが続きます。
DIR
CHARACTER(LEN=*)。ディレクトリのパスであ
り、後続のスラッシュを含みます。
NAME
CHARACTER(LEN=*)。ファイル名。ただし、
PATH にファイルが指定されていない場合は、最下
位ディレクトリの名前です。ファイル名の場合、
拡張子は含まれません。
EXT
CHARACTER(LEN=*)。先頭のピリオド (.) を含む
ファイル名拡張子(ある場合)。
結果
結果は DIR の長さです。
PATH には、完全なファイル仕様や部分的なファイル仕様を指定で
きます。
MAXPATH は、モジュールIFLPORT.F90 で 260 と定義されているシン
ボル定数です。
例
USE IFLPORT
CHARACTER(MAXPATH) buf
CHARACTER(3)
drive
CHARACTER(256)
dir
CHARACTER(256)
name
CHARACTER(256)
ext
CHARACTER(256)
file
INTEGER(4)
length
! Note, this example should be compiled with /nbs
buf = 'b:\fortran\test\runtime\tsplit.for'
2-150
移植性関数
2
length = SPLITPATHQQ(buf, drive, dir, name, ext)
WRITE(*,*) drive, dir, name, ext
file = 'partial.f90'
length = SPLITPATHQQ(file, drive, dir, name, ext)
WRITE(*,*) drive, dir, name, ext
END
SRAND
IRAND と RAND で使用される擬似
乱数生成器を再起動します。
プロトタイプ
INTERFACE
SUBROUTINE SRAND (NEW_ISEED)
INTEGER(4), INTENT(IN) :: NEW_SEED
END SUBROUTINE SRAND
END INTERFACE
NEW_SEED
INTEGER(4) 型でなければなりません。ISEED に
同じ値を指定すれば、同じ乱数列が生成されます。
数列を変更するには、プログラムが実行されるた
びに異なる ISEED 値で SRAND を呼び出します。
ISEED のデフォルトは 1 です。
説明
IRAND と RAND で使用される擬似乱数生成器を再起動します。
分類
非標準の個別サブルーチン
例
CALL SRAND(5041)
2-151
2
インテル ® Fortran ライブラリ・リファレンス
SSWRQQ
浮動小数点プロセッサのステータ
ス・ワードを返します。
プロトタイプ
USE IFLPORT
または
INTERFACE
SUBROUTINE SSWRQQ(STATUS)
INTEGER(2) STATUS
END SUBROUTINE
END INTERFACE
使用法
CALL SSWRQQ (STATUS)
STATUS
INTEGER(2)。浮動小数点コプロセッサのステー
タス・ワード。
SSWRQQ は、GETSTATUSFPQQ と同じ機能を実行します。この
SSWRQQ は、互換性のために用意されています。
例
USE IFLPORT
INTEGER(2) status
CALL SSWRQQ (status)
PRINT 10,STATUS
10 FORMAT(“FP Status word was “,Z)
END
2-152
移植性関数
2
STAT
所与のファイルのシステム情報を取
得します。
プロトタイプ
IA-32 システム
INTERFACE
INTEGER(4) FUNCTION STAT(NAME, STARRAY)
CHARACTER(LEN=*) :: NAME
INTEGER(4), DIMENSION(12) :: STARRAY
END FUNCTION
INTEGER(4) FUNCTION STATI8(NAME, STARRAY)
CHARACTER(LEN=*) :: NAME
INTEGER(8), DIMENSION(12) :: STARRAY
END FUNCTION
END INTERFACE
Itanium ベースのシステム
INTERFACE STAT
INTEGER(4) FUNCTION STATI8(NAME, STARRAY)
CHARACTER(LEN=*) :: NAME
INTEGER(8), DIMENSION(12) :: STARRAY
END FUNCTION
END INTERFACE
NAME
チェックするファイルのパス名を指定する
CHARACTER 変数。
STATARRAY
ファイルのシステム情報を格納できる整数配列。
説明
ファイル名は、現在論理装置に接続されていなければならず、
stat の呼び出し時にはすでに存在していなければなりません。
2-153
2
インテル ® Fortran ライブラリ・リファレンス
このルーチンはスレッドセーフであり、情報が収集される前に、関
連するストリームを閉鎖します。
注:NT では、stat と lstat は等価です。UNIX では、NAME に
よって示されるファイルが link である場合は、lstat はリンク
の情報を提供し、stat はリンク先のファイルの情報を提供しま
す。
出力
失敗した場合は errno が設定され、成功した場合は STATARRAY
にファイルの情報が設定されます。復帰時の STATARRAY の内容
は、システムに依存します。
2-154
stat(1)
i ノードやハンドルを指定する
装置
(NT では常に 0)
stat(2)
i ノードやハンドルの番号
(NT では常に 0)
stat(3)
保護レベル
stat(4)
ファイルへのハードリンクの
数
(NT では常に 1)
stat(5)
所有者のユーザ ID
(NT では常に 1)
stat(6)
所有者のグループ ID
(NT では常に 1)
stat(7)
この i ノードが装置である場
合は装置の種類
(NT では常に 0)
stat(8)
ファイルの合計サイズ
stat(9)
ファイルの最後のアクセス時
刻
stat(10)
ファイルの最後の変更時刻
stat(11)
ファイルの最後のステータス
変更時刻
(NT では、stat(10) と
同じ )
stat(12)
ファイルシステム入出力操作
用の最適なブロックサイズ
(NT では常に 1)
stat(13)
割り付けられた実際のブロッ
ク数
(UNIX のみ。NT には
存在しない )
(NT では、ファイルシ
ステムが FAT 以外の場
合だけ )
移植性関数
2
SYSTEM
実行のためにコマンドをシェルに送
信します。
プロトタイプ
INTERFACE
INTEGER FUNCTION SYSTEM (COMMANDA)
CHARACTER(LEN=*) COMMANDA
END FUNCTION SYSTEM
END INTERFACE
COMMANDA
実行するコマンド
説明
この関数は、コマンドがコマンド行で入力されたかのように、コマ
ンドを実行のためにシェルに送信します。
出力
シェルコマンドの終了ステータスです。
SYSTEMQQ
システムコマンドを実行します。
プロトタイプ
USE IFLPORT
または
INTERFACE
LOGICAL(4) FUNCTION SYSTEMQQ(COMMANDA)
CHARACTER(LEN=*) COMMANDA
2-155
2
インテル ® Fortran ライブラリ・リファレンス
END FUNCTION SYSTEMQQ
END INTERFACE
説明
コマンド文字列をオペレーティング・システムのコマンド・インタ
プリタに渡すことによって、システムコマンドを実行します。
使用法
result = SYSTEMQQ (COMMANDA)
COMMANDA
CHARACTER(LEN=*)。オペレーティング・シス
テムに渡されるコマンド行のテキスト。
結果
結果は、成功した場合は .TRUE. で、失敗した場合は .FALSE. で
す。
SYSTEMQQ 関数では、プログラムに加えて、コマンドシェルのコマ
ンドを渡すことができます。SYSTEMQQ は、コマンド・インタプリ
タ・ファイル(通常は COMMAND.COM という名前)を検索する
COMSPEC および PATH 環境変数を参照します。
Windows NT システムでは、呼び出し側プロセスは、コマンドが終
了するまで待機します。Windows 95 と Windows 98 のシステムでは、
呼び出し側プロセスは、現在のところ例外なく待機しません。しか
し、これは将来の処理系では変更される可能性もあります。互換性
と一貫した動作を保証するため、Fortran コードで WIN32 API の
CreateProcess() を使用して、イメージを直接に呼び出すことが
できます。
関数が失敗した場合は、GETLASTERRORQQ を呼び出して理由を調
べることができます。次のいずれかのエラーが返されます。
2-156
ERR$2BIG
引数リストが 128 バイトを超えているか、環境形成
に必要な領域が 32K を超えています。
ERR$NOINT
コマンド・インタプリタが見つかりませんでした。
ERR$NOEXEC
コマンド・インタプリタ・ファイルの形式が無効
であり、実行できませんでした。
移植性関数
ERR$NOMEM
2
コマンドの実行に必要なメモリが不足しています。
または、メモリが破壊されました。または、呼び
出し側プロセスが正しく割り付けられなかったこ
とを示す不正なブロックが存在します。
SYSTEMQQ 関数に対するコマンド行文字の制約は、コマンドシェル
が受け付ける制約と同じです。
例
USE IFLPORT
! Note : compile this example with /nbs
LOGICAL(4) RESULT
RESULT = SYSTEMQQ('dir "c:\program files"')
PRINT *,'******'
PRINT *, 'Result returned from SYSTEMQQ was ',RESULT
END
TIME
現在の時刻を返します。
プロトタイプ
INTERFACE
SUBROUTINE TIME(STRING)
CHARACTER(LEN=8) STRING
END SUBROUTINE TIME
END INTERFACE
STRING
文字型でなければなりません。hh:mm:ss の形式
で現在の時刻を格納するために、8 バイト以上の
記憶領域がなければなりません。ここで、hh は現
在の時、mm は現在の分、ss は秒を表します。
2-157
2
インテル ® Fortran ライブラリ・リファレンス
説明
このルーチンでは、GMT の 1970 年 1 月 1 日 00:00:00 からのシステ
ム時間を秒単位で返します。STRING パラメータには現在の時刻が
格納されます。
分類
非標準のサブルーチン
出力
グリニッジ標準時の 1970 年 1 月 1 日 00:00:00 からの経過秒数です。
例
次のコードでは、文字変数 tstr に現在のシステム時刻 ( 例えば、
16:20:07) を設定します。
CHARACTER(8) tstr
CALL TIME(tstr)
TIMEF
最後の呼び出しからの経過時間を返
します。
プロトタイプ
INTERFACE
REAL(4) FUNCTION TIMEF()
END FUNCTION TIMEF
END INTERFACE
TIME
経過秒数
説明
この関数は、TIMEF が最初に呼び出されてから経過した秒数を返し
ます。初めて呼び出された場合は、ゼロを返します。
2-158
移植性関数
2
出力
TIMEF が最初に呼び出されてから経過した秒数です。ただし、初め
て呼び出された場合はゼロです。
TOPEN
テープを開きます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION TOPEN(LUNIT, DEVNAME, &
LABELLED)
INTEGER(4), INTENT(OUT)
:: LUNIT
CHARACTER(LEN=*), INTENT(IN) ::DEVNAME
LOGICAL(4), INTENT(IN)
:: LABELLED
END FUNCTION TOPEN
END INTERFACE
TLU
0 〜 99 の範囲の Fortran 論理装置番号。
DEVNAME
磁気テープ装置の装置名。
LABELLED
開かれるテープがラベル付きテープであるかどう
かを示します。ラベル付きテープの場合は 1 で、
ラベルなしテープの場合はゼロです。
説明
TOPEN は、TREAD と TWRITE で使用するテープ装置上の Fortran 論理
装置を開きます。
注:この関数は、Win32 システム専用です。
2-159
2
インテル ® Fortran ライブラリ・リファレンス
出力
正しく開かれた場合は 0 で、エラーの場合は errno の最後の値で
す。
TCLOSE
テープファイルを閉じます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION TCLOSE( TLU)
INTEGER(4), INTENT(IN):: TLU
END FUNCTION TCLOSE
END INTERFACE
TLU
Win32 のファイルハンドル記述子
説明
TOPEN に対する前回の呼び出しで取得したファイルハンドルを使用
して、TCLOSE は、ローカルシステムのテープドライブ上のテープ
ファイルを閉じます。
注:この関数は、Win32 システム専用です。
出力
TCLOSE は、閉じる動作が成功した場合はゼロを返し、閉じる動作
が失敗した場合は errno を返します。
2-160
移植性関数
2
TREAD
テープファイルから読み取ります。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION TREAD(TLU, BUFFER)
INTEGER(4), INTENT(IN) :: TLU
CHARACTER(LEN=*), INTENT(OUT) ::BUFFER
END FUNCTION TREAD
END INTERFACE
TLU
ファイルハンドル記述子
BUFFER
テープ上の次の記録を保持するために十分な大き
さを持つ文字変数、配列、または部分配列。
説明
TREAD は、すでに開かれたテープファイルから次の論理記録を読み
取ります。あらかじめ、TOPEN ルーチンを使用してファイルを開
き、Win32 システムの有効なファイルハンドルを取得しておく必要
があります。
注:この関数は、Win32 システム専用です。
出力
TREAD は、テープファイルの次の論理記録を入力変数バッファに格
納します。読み取り動作が成功した場合、TREAD はその結果として
ゼロを返します。読み取り動作が失敗した場合、TREAD はその結果
として errno を返します。
2-161
2
インテル ® Fortran ライブラリ・リファレンス
TTYNAM
装置が端末であるかどうかチェック
します。
プロトタイプ
INTERFACE
CHARACTER(LEN=*) FUNCTION TTYNAM(LUN)
INTEGER(4) INTENT(IN)::LUN
END FUNCTION TTYNAM
END INTERFACE
LUN
Fortran の論理装置番号
説明
この関数は、特定の論理装置が端末 (TTY) 表示装置に接続されてい
るかどうか判断します。
出力
端末装置の CHARACTER 装置名を示す文字列です。ただし、端末で
ない場合やエラーの場合は、すべて空白を返します。
TWRITE
テープファイルに書き込みます。
プロトタイプ
INTERFACE
INTEGER FUNCTION TWRITE(TLU, BUFFER)
INTEGER, INTENT(IN) :: TLU
CHARACTER(LEN=*), INTENT(OUT) ::BUFFER
END FUNCTION TREAD
2-162
移植性関数
2
END INTERFACE
TLU
ファイルハンドル記述子
BUFFER
ローカルシステムのテープファイルに書き込まれ
るデータを値として持つ CHARACTER 式。
説明
TWRITE は、入力式 BUFFER で渡されたデータを受け取り、それを
ローカルシステムのテープ装置に論理記録として書き込みます。あ
らかじめ、TOPEN を呼び出してテープ装置を開き、Win32 システム
の有効なファイルハンドルを取得しておく必要があります。
出力
TWRITE は、書き込み動作が成功した場合はゼロを返し、失敗した
場合は errno からシステム・エラーコードを返します。
UNLINK
指定したファイルを削除します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION UNLINK (NAME)
CHARACTER(LEN=*), INTENT(IN)::NAME
END FUNCTION UNLINK
END INTERFACE
NAME
削除するファイルの名前。
説明
UNLINK は、NAME で指定された名前を持つファイルを削除します。
ファイルを削除するには、適切なアクセス権を持っていなければな
りません。名前としては、有効なファイル名となる任意の文字式を
指定できます。名前には、ドライブ文字を含めて、フルパス名を組
み込むことができます。
2-163
2
インテル ® Fortran ライブラリ・リファレンス
出力
UNLINK から返されるステータス・コードは、ファイル削除が成功
した場合はゼロであり、ファイル削除が失敗した場合は errno の
値です。
UNPACKTIMEQQ
パックされた時刻と日付の値を元に
戻します。
プロトタイプ
USE IFLPORT
または
IA-32 システム
INTERFACE
SUBROUTINE UNPACKTIMEQQ(TIMEDATE,IYR, IMON,IDAY, &
IHR,IMIN,ISEC)
INTEGER(4) TIMEDATE
INTEGER(2) IYR, IMON, IDAY, IHR, IMIN, ISEC
END SUBROUTINE
END INTERFACE
Itanium ベースのシステム
INTERFACE
SUBROUTINE UNPACKTIMEQQ(TIMEDATE,IYR, IMON,IDAY,
IHR,IMIN,ISEC)
INTEGER(8) TIMEDATE
INTEGER(2) IYR, IMON, IDAY, IHR, IMIN, ISEC
END SUBROUTINE
END INTERFACE
説明
パックされた時刻と日付の値をその成分パーツに戻します。
PACKTIMEQQ を参照してください。
2-164
移植性関数
2
使用法
CALL UNPACKTIMEQQ(TIMEDATE,IYR,IMON,IDAY,
IHR,IMIN,ISEC)
TIMEDATE
INTEGER(4)。パックされた時刻と日付の情報。
IYR
INTEGER(2)。年 (xxxx)。
IMON
INTEGER(2)。月 (1 〜 12)。
IDAY
INTEGER(2)。日 (1 〜 31)。
IHR
INTEGER(2)。時 (0 〜 23)。
IMIN
INTEGER(2)。分 (0 〜 59)。
ISEC
INTEGER(2)。秒 (0 〜 59)。
GETFILEINFOQQ は、時刻と日付をパックされた形式で返します。
UNPACKTIMEQQ を使用すれば、これらの値を元に戻すことができま
す。SETFILETIMEQQ に渡すために時刻をパックし直すには、
PACKTIMEQQ を使用します。パックされた時刻は、関係演算子を使
用して比較できます。
例
! Note, compile this example with /nbs.
USE IFLPORT
CHARACTER(80)
file
TYPE (FILE$INFO) info
INTEGER(4) handle, result
INTEGER(2) iyr, imon, iday, ihr, imin, isec
file = 'd:\f90ps\bin\t???.*'
handle = FILE$FIRST
result = GETFILEINFOQQ(file, info, handle)
CALL UNPACKTIMEQQ(info%lastwrite, iyr, imon,&
iday, ihr, imin, isec)
WRITE(*,*) iyr, imon, iday
WRITE(*,*) ihr, imin, isec
END
2-165
2
インテル ® Fortran ライブラリ・リファレンス
National Language Support ルーチン
National Language Support(NLS) 手続きによって、言語のローカラ
イゼーションと一部のマルチバイト文字セット (MBCS)NLS 関数が
提供され、異なる種類の言語でアプリケーションを作成できるよう
になります。NLS ルーチンを使用するには、手続きが含まれている
プログラム単位に次の文を追加します。
USE IFLPORT
または
INCLUDE
“<installation directory>\perform\include\iflport.f90
表 2-1 では、NLS 手続きについてまとめています。ニーモニックを
理解しやすくするために、大文字と小文字を混在させて名前を記載
しています。アプリケーションを作成する際は、大文字と小文字を
使用できます。
表 2-1
マルチバイト・ルーチンおよび関数の一覧
名前 / 構文
サブルーチン
/ 関数
説明
地域の設定および問い合わせ
NLSEnumCodepages
ptr => NLSEnumCodepages ( )
関数
システムがサポートするすべ
てのコードページを返します。
NLSEnumLocales
ptr => NLSEnumLocales ( )
関数
システムがサポートする言語
と国のすべての組み合わせを
返します。
NLSGetEnvironmentCodepage
result =
NLSGetEnvironmentCodepage
( flags )
関数
システム (Windows) コード
ページまたはコンソール・
コードページのコードページ
番号を返します。
NLSGetLocale
CALL NLSGetLocale (
[language] [, country]
[, codepage ] )
サブルーチン
現在の言語、国、およびコー
ドページを返します。
次ページにつづく
2-166
移植性関数
表 2-1
2
マルチバイト・ルーチンおよび関数の一覧 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
NLSGetLocaleInfo
result = NLSGetLocaleInfo
( type, outstr )
関数
現在のローカル・コードセッ
トに関する情報を返します。
NLSSetEnvironmentCodepage
result =
NLSSetEnvironmentCodepage
( codepage, flags )
関数
現在のコンソールのコード
ページを変更します。
NLSSetLocale
関数
言語、国、およびコードペー
ジを設定します。
NLSFormatCurrency
result = NLSFormatCurrency
( outstr, instr [, flags ]
)
関数
数値列を書式化し、現在のロ
ケールの正しい通貨文字列を
返します。
NLSFormatDate
result = NLSFormatDate
( outstr [, intime ] [,
flags ] )
関数
現在のロケールの日付を含む、
正しく書式化された文字列を
返します。
NLSFormatNumber
result = NLSFormatNumber
( outstr, instr [, flags ]
)
関数
数値列を書式化し、現在のロ
ケールの正しい数値列を返し
ます。
NLSFormatTime
result = NLSFormatTime
( outstr [, intime ]
[, flags ] )
関数
現在のロケールの時刻を含む、
正しく書式化された文字列を
返します。
関数
マルチバイト文字列の第 1 文
字の長さ(バイト)を返しま
す。
result = NLSSetLocale
( language [, country]
[, codepage ] )
地域の書式指定
MBCS 問い合わせ
MBCharLen
result = MBCharLen (string)
次ページにつづく
2-167
2
インテル ® Fortran ライブラリ・リファレンス
表 2-1
マルチバイト・ルーチンおよび関数の一覧 (続き)
名前 / 構文
2-168
サブルーチン
/ 関数
説明
MBCurMax
result = MBCurMax ( )
関数
現在のコードページで可能な
マルチバイト文字の最大長
(バイト)を返します。
MBLead
result = MBLead ( char )
関数
与えられた文字がマルチバイ
ト文字列の先行(第 1)バイト
かどうかを判定します。
MBLen
result = MBLen ( string )
関数
最後の空白を含むマルチバイ
ト文字列の文字数を返します。
移植性関数
表 2-1
2
マルチバイト・ルーチンおよび関数の一覧 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
MBLen_Trim
result = MBLen_Trim
(string)
関数
最後の空白を含まないマルチ
バイト文字列の文字数を返し
ます。
MBNext
result = MBNext ( string,
position )
関数
マルチバイト文字列内の与え
られた位置の直後の第 1 先行
バイトまたは 1 バイト文字の
位置を返します。
MBPrev
result = MBPrev ( string,
position )
関数
マルチバイト文字列内の与え
られた位置の直前の第 1 先行
バイトまたは 1 バイト文字の
位置を返します。
MBStrLead
result = MBStrLead (string,
position)
関数
文字列内の与えられた文字バ
イトがマルチバイト文字の先
行バイトであるかどうかを判
定するために、文脈依存検証
を実行します。
MBConvertMBToUnicode
result =
MBConvertMBToUnicode
(mbstr, unicodestr [, flags
] )
関数
マルチバイト・コードページ
の文字列を Unicode 文字列に
変換します。
MBConvertUnicodeToMB
result =
MBConvertUnicodeToMB
(unicodestr, mbstr
[,flags])
関数
Unicode 文字列を現在のコー
ドページのマルチバイト文字
列に変換します。
次ページにつづく
2-169
2
インテル ® Fortran ライブラリ・リファレンス
表 2-1
マルチバイト・ルーチンおよび関数の一覧 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
MBCS Fortran 等価手続き
MBINCHARQQ
result = MBINCHARQQ
(string)
関数
一度に 1 つのマルチバイト文
字を読み取ることができるこ
とを除いて、INCHARQQ と同
じ機能を持ち、読み取ったバ
イト数を返します。
MBINDEX
result = MBINDEX ( string,
substring [, back ] )
関数
自身の引数にマルチバイト文
字を含めることができること
を除いて、INDEX と同じ機能
を持ちます。
MBLGE, MBLGT, MBLLE, MBLLT,
MBLEQ, MBLNE
関数
自身の引数にマルチバイト文
字を含めることができること
を除いて、LGE、LGT、LLE、
LLT、および論理演算子 .EQ.
および .NE. と同じ機能を持ち
ます。これらのルーチンはす
べて、MBLGE の説明に示す引
数と同じ引数を持ちます。
MBSCAN
result = MBSCAN ( string,
set [, back ] )
関数
自身の引数にマルチバイト文
字を含めることができること
を除いて、SCAN と同じ機能
を持ちます。
MBVERIFY
result = MBVERIFY ( string,
set [, back ] )
関数
自身の引数にマルチバイト文
字を含めることができること
を除いて、VERIFY と同じ機能
を持ちます。
MBJISTToJMS
関数
日本工業規格 (JIS) 文字を
Microsoft Kanji(シフト JIS ま
たは JMS)文字に変換します。
MBJMSTToJIS
関数
Microsoft Kanji(シフト JIS ま
たは JMS)文字を日本工業規
格 (JIS) 文字に変換します。
result = MBLGE ( string_a,
string_b, [ flags ] )
2-170
移植性関数
2
地域の設定および問い合わせ手続き
NLSEnumCodepages
システムがサポートするすべての
コードページを返します。
プロトタイプ
INTERFACE
FUNCTION NLSenumCodepages()
INTEGER(4), POINTER :: NLSEnumCodepages (:)
END FUNCTION
END INTERFACE
説明
システムがサポートするコードページを含む配列を返します。各配
列要素が 1 つの有効なコードページを表しています。
注:使用後に、ELSEnumCodepages によって返されたポインタ
は、DEALLOCATE 文で解放しなければなりません。
出力
結果はコードページの配列へのポインタであり、各配列要素がサ
ポートされる 1 つのコードページを表しています。
2-171
2
インテル ® Fortran ライブラリ・リファレンス
NLSEnumLocales
システムがサポートする言語と国の
すべての組み合わせを返します。
プロトタイプ
INTERFACE
FUNCTION NLSEnumLocales()
INTEGER(4), PARAMETER :: NLS$MaxLanguageLen = 64
INTEGER(4), PARAMETER :: NLS$MaxCountryLen = 64
TYPE NLS$EnumLocale
SEQUENCE
CHARACTER(LEN= NLS$MaxLanguageLen) Language
CHARACTER(LEN= NLS$MaxCountryLen) Country
INTEGER(4) DefaultWindowsCodepage
INTEGER(4) DefaultConsoleCodepage
END TYPE
TYPE(NLS$EnumLocale), POINTER::NLSEnumLocales (:)
END FUNCTION
END INTERFACE
説明
システムがサポートする言語と国の組み合わせを含む配列を返しま
す。各配列要素が 1 つの有効な組み合わせを表しています。
注:使用後に、NLSEnumLocales によって返されたポインタは、
DEALLOCATE 文で解放しなければなりません。
2-172
移植性関数
2
出力
結果は、各配列要素がサポートされる言語と国の 1 つの組み合わせ
を表す、ロケールの配列へのポインタです。
アプリケーションが Windows または QuickWin アプリケーション
の場合、NLS$DefaultWindowsCodepage が、与えられた言語と
国の組み合わせに対してデフォルトで使用されるコードページにな
ります。アプリケーションが Console アプリケーションの場合、
NLS$DefaultConsoleCodepage が、与えられた言語と国の組み
合わせに対してデフォルトで使用されるコードページになります。
NLSGetEnvironmentCodepage
システムまたはコンソール・コード
ページのコードページ番号を返しま
す。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION
NLSGetEnvironmentCodepage(FLAGS)
INTEGER(4), INTENT(IN) :: FLAGS
END FUNCTION
END INTERFACE
FLAGS
どのコードページ番号を返すか関数に指示します。
次の値を利用することができます。
NLS$ConsoleEnvironmentCodepage - コン
ソールのコードページを取得します。
NLS$WindowsEnvironmentCodepage - 現在の
Windows のコードページを取得します。
2-173
2
インテル ® Fortran ライブラリ・リファレンス
説明
システム (Windows) コードページまたはコンソール・コードページ
のコードページ番号を返します。
出力
成功した場合はゼロを返し、失敗した場合は次のエラーコードの 1
つを返します。
NLS$ErrorInvalidFlags
FLAGS の値が無効であることを示しています。
NLS$ErrorNoConsole
与えられたアプリケーションに関連するコンソー
ルがないため、コンソール・コードページを使用
した操作はできません。
NLSGetLocale
現在の言語、国、および(または)
コードページを返します。
プロトタイプ
INTERFACE
SUBROUTINE NLSGetLocale (LANGUAGE, COUNTRY, &
CODEPAGE)
CHARACTER(LEN=*), INTENT(OUT), OPTIONAL::LANGUAGE
CHARACTER(LEN=*), INTENT(OUT), OPTIONAL::COUNTRY
INTEGER(4), INTENT(OUT), OPTIONAL::CODEPAGE
END SUBROUTINE
END INTERFACE
2-174
LANGUAGE
省略可能。出力。CHARACTER(LEN=*)。現在の
言語。
COUNTRY
省略可能。出力。CHARACTER(LEN=*)。現在の
国。
移植性関数
CODEPAGE
2
省略可能。出力。CHARACTER(LEN=*)。現在の
コードページ。
説明
現在の言語、国、および(または)コードページを取り出します。
注:NLSGetLocale は codepage に有効なコードページを返しま
す。NLSSetLocale で使用することができる NLS$... シンボル定
数値は返しません。
出力
現在の言語、国、およびコードページに関する情報を返します。
NLSGetLocaleInfo
現在のローカル・コードセットに関
する情報を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSGetLocaleInfo(INFOTYPE, &
OUTSTR)
INTEGER(4), INTENT(IN)::INFOTYPE
CHARACTER(LEN=*), INTENT(OUT)::OUTSTR
END FUNCTION
END INTERFACE
INFOTYPE
入力。要求される NLS パラメータ。パラメータ名
の一覧は、「注」の NLS$LI パラメータの表にあり
ます。
2-175
2
インテル ® Fortran ライブラリ・リファレンス
OUTSTR
出力。CHARACTER(LEN=*)。現在のロケールに
設定するパラメータ。OUTSTR に置かれるパラ
メータ設定は、数値であっても、すべて文字列で
す。パラメータ設定が数値のとき、数値の ASCII
表現が使用されます。要求するパラメータが日付
または時刻の文字列の場合、OUTSTR の書式を解
釈する方法を「NLS 日付および時間形式」の項で
説明しています。
説明
現在のローカル・コードセットに関する情報を返します。
注:NLS$LI パラメータを引数 INFOTYPE に使用して、
NLSGetLocaleInfo が OUTSTR に返すロケール情報を選択しま
す。NLS$NoUserOverride と任意の NLS$LI パラメータの包和
的論理和を実行することができます。これによって、
NLSGetLocaleInfo が他のユーザ上書きをバイパスし、常にシ
ステム基本値を返すようになります。
表 2-2 では、すべての NLS$LI パラメータを一覧にし、説明してい
ます。
表 2-2
NLS$LI パラメータ
名前
説明
NLS$LI_ILANGUAGE
言語を示す ID。
NLS$LI_SLANGUAGE
言語の完全なローカライズされた名前。
NLS$LI_SENGLANGUAGE
SO 標準 639 からの言語の完全な英語名。これは
ASCII 127 文字サブセットにマップされる文字に
制限されます。
NLS$LI_SABBREVLANGNAME
ISO 標準 639 で定義されている 2 文字言語短縮形
に副言語を示す適切な第 3 文字を追加した言語の
短縮形。
NLS$LI_SNATIVELANGNAME
言語の母国語名。
次ページにつづく
2-176
移植性関数
表 2-2
2
NLS$LI パラメータ (続き)
名前
説明
NLS$LI_ICOUNTRY
IBM 国コードとしても参照される国際電話コード
に基づく国コード。
NLS$LI_SCOUNTRY
国の完全なローカライズ名。
NLS$LI_SENGCOUNTRY
国の完全な英語名。これは常に ASCII 127 文字サ
ブセットにマップされる文字に制限されます。
NLS$LI_SABBREVCTRYNAME
ISO 標準 3166 準拠の国の短縮名。
NLS$LI_SNATIVECTRYNAME
国の母国語名。
NLS$LI_IDEFAULTLANGUAGE
このロケールで話されている第 1 言語の言語 ID。
これが提供されているため、部分的に指定された
ロケールをデフォルト値で完全にすることができ
ます。
NLS$LI_IDEFAULTCOUNTRY
このロケールの第 1 国の国コード。これが提供さ
れているため、部分的に指定されたロケールをデ
フォルト値で完全にすることができます。
NLS$LI_IDEFAULTANSICODEPAGE
このロケールに関連する ANSI コードページ。
NLS$LI_IDEFAULTOEMCODEPAGE
このロケールに関連する OEM コードページ。
NLS$LI_SLIST
リスト項目の区切りに使用する文字。例えば、多
くのロケールではコンマです。
NLS$LI_IMEASURE
この値は、計測システム (S.I.) を使用する場合は 0
で、計測の U.S. システムの場合は 1 です。
NLS$LI_SDECIMAL
小数点区切りとして使用する文字。これを 0 〜 9
の数字に設定することはできません。
NLS$LI_STHOUSAND
小数点の左側の桁のグループ間の区切りに使用す
る文字。これを 0 〜 9 の数字に設定することはで
きません。
NLS$LI_SGROUPING
小数点の左側の桁の各グループの大きさ。各グ
ループに対して明示的な大きさが必要です。大き
さはセミコロンで区切ります。最後の値が 0 であ
れば、その前の値が繰り返されます。1000 をグ
ループにするには、"3;0" を指定します。
NLS$LI_IDIGITS
小数点の桁数。
次ページにつづく
2-177
2
インテル ® Fortran ライブラリ・リファレンス
表 2-2
NLS$LI パラメータ (続き)
名前
説明
NLS$LI_IDIGITSNLS$LI_ILZERO
小数点欄に先行ゼロを使用するかどうかを決定し
ます。
0 - 先行ゼロを使用しない
1 - 先行ゼロを使用する
NLS$LI_INEGNUMBER
.
負の数字をどのように表すかを決定します。
0 - 負の数値を括弧内に置く:(1.1)
1 - 負符号を前に置く:-1.1
2 - 負符号と空白を前に置く:- 1.1
3 - 負符号を後ろに置く:1.14 - 空白と負符号を後ろに置く:1.1 -
NLS$LI_SNATIVEDIGITS
ASCII の 0 〜 9 に母国語の等価な 10 個の文字。
NLS$LI_SCURRENCY
ローカル通貨記号として使用する文字列。数字 0
〜 9 は使用できません。
NLS$LI_SINTLSYMBOL
ISO 4217 "Codes for the Representation of
Currencies and Funds" で指定されている国際通貨
記号の 3 文字。この後ろにこの文字列を金額と区
切るための文字が続きます。
NLS$LI_SMONDECIMALSEP
通貨小数点区切りとして使用する文字。これを 0
〜 9 の数字に設定することはできません。
NLS$LI_SMONTHOUSANDSEP
小数点の左側の桁のグループ間の通貨区切りとし
て使用する文字。これを 0 〜 9 の数字に設定する
ことはできません。
NLS$LI_SMONGROUPING
小数点の左側の通貨桁の各グループの大きさ。最
後の値が 0 であれば、その前の値が繰り返されま
す。1000 をグループにするには、"3;0" を指定し
ます。
NLS$LI_ICURRDIGITS
ローカル通貨書式の小数点桁数。
NLS$LI_IINTLCURRDIGITS
国際通貨書式の小数点桁数。
次ページにつづく
2-178
移植性関数
表 2-2
2
NLS$LI パラメータ (続き)
名前
説明
NLS$LI_ICURRENCY
正の通貨をどのように表すかを決定します。
0 - 区切りなしで通貨記号を前に置く:$1.1
1 - 区切りなしで通貨記号を後ろに置く:1.1$
2 - 通貨記号と空白を前に置く:$ 1.1
3 - 空白と通貨記号を後ろに置く:1.1 $
NLS$LI_INEGCURR
負の通貨をどのように表すかを決定します。
0: ($1.1)
1: -$1.1
2: $-1.1
3: $1.14: (1.1$)
5: -1.1$
6: 1.1-$
7: 1.1$8: -1.1 $ ($ の前に空白 )
9: -$ 1.1 ($ の後ろに空白 )
10: 1.1 $-($ の前に空白 )
11: $ 1.1-($ の後ろに空白 )
12: $ -1.1 ($ の後ろに空白 )
13: 1.1- $($ の前に空白 )
14: ($ 1.1)($ の後ろに空白 )
15: (1.1 $)($ の前に空白 )
NLS$LI_SPOSITIVESIGN
正符号の文字。これを数字 0 〜 9 に設定すること
はできません。
NLS$LI_SNEGATIVESIGN
負符号の文字。これを数字 0 〜 9 に設定すること
はできません。
次ページにつづく
2-179
2
インテル ® Fortran ライブラリ・リファレンス
表 2-2
NLS$LI パラメータ (続き)
名前
NLS$LI_IPOSSIGNPOSN
説明
正の値の書式化指標を決定します。
0 - 金額と通貨記号を括弧で囲む
1 - 金額と通貨記号の前に符号文字を置く
2 - 金額と通貨記号の後ろに符号文字を置く
3 - 通貨記号の直前に符号文字を置く
4 - 通貨記号の直後に符号文字を置く
NLS$LI_INEGSIGNPOSN
負の値の書式化指標を決定します。
NLS$LI_IPOSSIGNPOSN と同じ値です。
NLS$LI_IPOSSYMPRECEDES
通貨記号が前に置かれる場合は 1、正の金額の後
ろに置かれる場合は 0 です。
NLS$LI_IPOSSEPBYSPACE
通貨記号が正の金額から空白で区切られる場合は
1、その逆の場合は 0 です。
NLS$LI_INEGSYMPRECEDES
通貨記号が前に置かれる場合は 1、負の金額の後
ろに置かれる場合は 0 です。
NLS$LI_INEGSEPBYSPACE
通貨記号が負の金額から空白で区切られる場合は
1、その逆の場合は 0 です。
NLS$LI_STIMEFORMAT
時刻書式文字列。有効な文字列については、「NLS
日付および時間形式」の項を参照してください。
NLS$LI_STIME
時刻区切りの文字。これを数字 0 〜 9 に設定する
ことはできません。
NLS$LI_ITIME
時刻書式。
0 - 12 時間制を使用する。
1 - 24 時間制を使用する。
NLS$LI_ITLZERO
時刻欄に先行ゼロを使用するかどうかを決定しま
す。
0 - 先行ゼロを使用しない。
1 - 時間に先行ゼロを使用する。
NLS$LI_S1159
AM を示す文字列。
NLS$LI_S2359
PM を示す文字列。
次ページにつづく
2-180
移植性関数
表 2-2
2
NLS$LI パラメータ (続き)
名前
説明
NLS$LI_SSHORTDATE
このロケールの短い日付書式文字列。d、M、およ
び y は、それぞれ日、月、および年に置き換えら
れます。有効な文字列については、「NLS 日付お
よび時間形式」の項を参照してください。
NLS$LI_SDATE
日付区切りの文字。これを数字 0 〜 9 に設定する
ことはできません。
NLS$LI_IDATE
短い日付書式の順番。
0-月-日-年
1-日-月-年
2-年-月-日
NLS$LI_ICENTURY
短い日付の場合のみ、完全な 4 桁西暦を使用する
かどうかを指定します。
0 - 2 桁の年
1 - 4 桁西暦
NLS$LI_IDAYLZERO
短い日付の場合のみ、日欄に先行ゼロを使用する
かどうかを指定します。
0 - 先行ゼロを使用しない。
1 - 先行ゼロを使用する。
NLS$LI_IMONLZERO
短い日付の場合のみ、月欄に先行ゼロを使用する
かどうかを指定します。
0 - 先行ゼロを使用しない。
1 - 先行ゼロを使用する。
NLS$LI_SLONGDATE
このロケールの長い日付書式文字列。返される文
字列は、引用符 (' ') で囲まれた文字列です。引用
符内の文字がすべてそのまま残されています。d、
M、および y は、それぞれ日、月、および年に置
き換えられます。
NLS$LI_ILDATE
長い日付書式の順番。
0-月-日-年
1-日-月-年
2-年-月-日
次ページにつづく
2-181
2
インテル ® Fortran ライブラリ・リファレンス
表 2-2
NLS$LI パラメータ (続き)
名前
NLS$LI_ICALENDARTYPE
説明
現在使用されている暦の形式を指定します。
1 - グレゴリオ暦 ( 米国式 )
2 - グレゴリオ暦 ( 常に英語文字列 )
3 - 日本の年
4 - 中華民国の年
5 - 韓国の年
NLS$LI_IOPTIONALCALENDAR
このロケールにおいて有効で利用可能な別の暦形
式を指定します。これは、すべての有効な別の暦
がヌルで区切られたリストになります。
0 - 有効な別形式がない。
1 - グレゴリオ暦 ( ローカライズされたもの )
2 - グレゴリオ暦 ( 常に英語文字列 )
3 - 日本の年
4 - 中華民国の年
5 - 韓国の年
NLS$LI_IFIRSTDAYOFWEEK
週の第 1 日目を指定します。
0 - SDAYNAME1
1 - SDAYNAME2
2 - SDAYNAME3
3 - SDAYNAME4
4 - SDAYNAME5
5 - SDAYNAME6
6 - SDAYNAME7
NLS$LI_IFIRSTWEEKOFYEAR
年の第 1 週目を指定します。
0 - 1/1 を含む週
1 - 1/1 の後の最初の完全な週
2 - 少なくとも 4 日間を含む最初の週
2-182
NLS$LI_SDAYNAME1
月曜日を示す長い名前。
NLS$LI_SDAYNAME2
火曜日を示す長い名前。
NLS$LI_SDAYNAME3
水曜日を示す長い名前。
NLS$LI_SDAYNAME4
木曜日を示す長い名前。
NLS$LI_SDAYNAME5
金曜日を示す長い名前。
移植性関数
表 2-2
2
NLS$LI パラメータ (続き)
名前
説明
次ページにつづく
NLS$LI_SDAYNAME6
土曜日を示す長い名前。
NLS$LI_SDAYNAME7
日曜日を示す長い名前。
NLS$LI_SABBREVDAYNAME1
月曜日を示す短縮名。
NLS$LI_SABBREVDAYNAME2
火曜日を示す短縮名。
NLS$LI_SABBREVDAYNAME3
水曜日を示す短縮名
NLS$LI_SABBREVDAYNAME4
木曜日を示す短縮名。
NLS$LI_SABBREVDAYNAME5
金曜日を示す短縮名。
NLS$LI_SABBREVDAYNAME6
土曜日を示す短縮名。
NLS$LI_SABBREVDAYNAME7
日曜日を示す短縮名。
NLS$LI_SMONTHNAME1
1 月を示す長い名前。
NLS$LI_SMONTHNAME2
2 月を示す長い名前。
NLS$LI_SMONTHNAME3
3 月を示す長い名前。
NLS$LI_SMONTHNAME4
4 月を示す長い名前。
NLS$LI_SMONTHNAME5
5 月を示す長い名前。
NLS$LI_SMONTHNAME6
6 月を示す長い名前。
NLS$LI_SMONTHNAME7
7 月を示す長い名前。
NLS$LI_SMONTHNAME8
8 月を示す長い名前。
NLS$LI_SMONTHNAME9
9 月を示す長い名前。
NLS$LI_SMONTHNAME10
10 月を示す長い名前。
NLS$LI_SMONTHNAME11
11 月を示す長い名前。
NLS$LI_SMONTHNAME12
12 月を示す長い名前。
NLS$LI_SMONTHNAME13
13 番目の月 ( 存在する場合 ) を示す長い名前。
NLS$LI_SABBREVMONTHNAME1
1 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME2
2 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME3
3 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME4
4 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME5
5 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME6
6 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME7
7 月を示す短縮名。
2-183
2
インテル ® Fortran ライブラリ・リファレンス
表 2-2
NLS$LI パラメータ (続き)
名前
説明
NLS$LI_SABBREVMONTHNAME8
8 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME9
9 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME10
10 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME11
11 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME12
12 月を示す短縮名。
NLS$LI_SABBREVMONTHNAME13
13 番目の月 ( 存在する場合 ) を示す短縮名。
次ページにつづく
出力
成功した場合は、OUTSTR に書き込まれた文字数が返されます。
OUTSTR の長さがゼロであれば、要求した情報を保持するために必
要な文字数が返されます。失敗した場合は、次のエラーコードの 1
つが返されます。
NLS$ErrorInvalidLIType
与えられた INFOTYPE が無効です。
NLS$ErrorInsufficientBuffer
OUTSTR バッファが小さすぎますが、ゼロではあ
りません(したがって、必要なサイズが返されま
す)。
NLSSetEnvironmentCodepage
現在のコンソールのコードページを
変更します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION
NLSSetEnvironmentCodepage(CODEPAGE, FLAGS)
INTEGER(4), INTENT(IN) :: CODEPAGE
INTEGER(4), INTENT(IN) :: FLAGS
2-184
移植性関数
2
END FUNCTION
END INTERFACE
説明
現在のコンソールのコードページを設定します。指定したコード
ページは、現在のコンソール・プログラム、および同じコンソール
から起動された他のプログラムに影響します。別に開かれたコン
ソールや後で開かれたコンソールには影響しません。
注:FLAGS 引数は NLS$ConsoleEnvironmentCodepage でな
ければならず、NLS$WindowsEnvironmentCodepage にする
ことはできません。NLSSetEnvironmentCodepage は、
Windows コードページに影響しません。
出力
成功した場合は、ゼロを返します。失敗した場合は、次のエラー
コードの 1 つを返します。
NLS$ErrorInvalidCodepage
CODEPAGE が無効であるかまたはシステムにイン
ストールされていません。
NLS$ErrorInvalidFlags
FLAGS が無効です。
NLS$ErrorNoConsole
与えられたアプリケーションに関連するコンソー
ルがないため、コンソール・コードページを使用
した操作はできません。
2-185
2
インテル ® Fortran ライブラリ・リファレンス
NLSSetLocale
言語、国、およびコードページを設
定します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSSetLocale(LANGUAGE,COUNTRY,&
CODEPAGE)
CHARACTER(LEN=*), INTENT(IN) :: LANGUAGE
CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: COUNTRY
INTEGER(4), INTENT(IN), OPTIONAL :: CODEPAGE
END FUNCTION
END INTERFACE
2-186
LANGUAGE
入力。CHARACTER(LEN=*)。Win32* NLS API が
サポートする言語の 1 つ。
COUNTRY
省略可能。入力。CHARACTER(LEN=*)。指定さ
れている場合は、言語機能が設定されます。省略
すると、言語の基本国が設定されます。
CODEPAGE
省略可能。入力。INTEGER(4)。指定されている
場合は、文字を基本とした NLS 関数すべてにその
コードページが使用されます。サポートされる任
意の有効なコードページまたは次の規定値の 1 つ
にすることができます。
NLS$CurrentCodepage
コードページは変更されません。言語と国の
設定のみが関数で変更されます。
NLS$ConsoleEnvironmentCodepage
コードページは、コンソール・プログラムに
現在影響する基本環境コードページに変更さ
れます。
移植性関数
2
NLS$ConsoleLanguageCodepage
コードページは、指定された言語と国の組み
合わせに対する基本コンソール・コードペー
ジに変更されます。
NLS$WindowsEnvironmentCodepage
コードページは、Windows プログラムに現
在影響する基本環境コードページに変更され
ます。
NLS$WindowsLanguageCodepage
コードページは、指定された言語と国の組み
合わせに対する基本 Windows コードページ
に変更されます。
CODEPAGE を省略すると、デフォルトで
NLS$WindowsLanguageCodepage が使用されます。プログラムの
起動時に、NLS$WindowsEnvironmentCodepage を使用して、
コードページを設定します。
説明
現在の言語、国、および(または)コードページを設定します。
注:NLSSetLocale は、インストールされているロケールに対
してのみ動作します。Windows NT および Windows 95 は多くのロ
ケールをサポートしていますが、これらは「コントロール・パネ
ル / 地域のオプション」でインストールしなければなりません。
この注に加えて、次のことも考慮しなければなりません。
•
Fortrarn と C の言語が混在したプログラミングを行う時、基本環
境 Windows コードページではないコードページで
NLSSetLocale を呼び出すと、新しいコードページを持つ C 言
語の setmbcp() ルーチンを呼び出すことによって、C ランタ
イム・ライブラリのコードページが変わることに注意してくだ
さい。逆に、C ランタイム・ライブラリのコードページを変更
しても、Fortran NLS ライブラリのコードページは変更されませ
ん。
2-187
2
インテル ® Fortran ライブラリ・リファレンス
•
•
NLSSetLocale を呼び出しても、C プログラムが使用するロ
ケールには影響しません。C 言語の setlocale() ルーチンで
設定されるロケールは、NLSSetLocale とは無関係です。
基本環境コンソール・コードページ
(NLS$ConsoleEnvironmentCodepage) で NLSSetLocale
を呼び出すと、Win32 API SetFileApisToOEM() の明示的な
呼び出しが生じます。その他のコードページで NLSSetLocale
を呼び出すと、SetFileApisToANSI() の呼び出しが生じま
す。
出力
成功した場合は、ゼロが返されます。失敗した場合は、次のエラー
コードの 1 つが返されます。
NLS$ErrorInvalidLanguage
LANGUAGE が無効であるかまたはサポートされて
いません。
NLS$ErrorInvalidCountry
COUNTRY が無効であるかまたは指定した言語に対
して無効です。
NLS$ErrorInvalidCodepage
CODEPAGE が無効であるかまたはシステムにイン
ストールされていません。
地域書式設定手続き
NLSFormatCurrency
現在のロケールの正しく書式化され
た通貨文字列を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSFormatCurrency(OUTSTR, &
INSTR, FLAGS)
2-188
移植性関数
2
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS
CHARACTER(LEN=*), INTENT(IN) :: INSTR
CHARACTER(LEN=*), INTENT(OUT) :: OUTSTR
END FUNCTION
END INTERFACE
OUTSTR
出力。CHARACTER(LEN=*)。現在のロケールの
正しく書式化された通貨を含む文字列。OUTSTR
が書式化された通貨よりも長い場合は、空白が充
填されます。
INSTR
入力。CHARACTER(LEN=*)。書式化する数値列。
文字 '0' 〜 '9'、浮動小数点値の場合は 1 つの小数点
(ピリオド)、および負の値の場合は第 1 位置の負
符号のみを含むことができます。他の文字はすべ
て無効で、関数はエラーを返します。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、通貨変換を修正します。FLAGS を省略す
ると、フラグ NLS$Normal が使用されます。利用
可能な値は次のとおりです。
NLS$Normal
特別な書式化なし。
NLS$NoUserOverride
ユーザ上書きを使用しません。
説明
数値列を書式化し、現在のロケールの正しい通貨文字列を返しま
す。
出力
OUTSTR に書き込まれた文字列の文字数(マルチバイト文字数では
なくバイト数がカウントされます)、あるいはエラーが発生した場
合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
OUTSTR バッファが小さすぎます。
2-189
2
インテル ® Fortran ライブラリ・リファレンス
NLS$ErrorInvalidFlags
FLAGS の値が無効です。
NLS$ErrorInvalidInput
INSTR の値が無効です。
NLSFormatDate
現在のロケールの日付を含む、正し
く書式化された文字列を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSFormatDate(OUTSTR, INTIME, &
FLAGS)
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS, INTIME
CHARACTER(LEN=*), INTENT(OUT) :: OUTSTR
END FUNCTION
END INTERFACE
2-190
OUTSTR
出力。CHARACTER(LEN=*)。現在のロケールの
正しく書式化された日付を含む文字列。OUTSTR
が書式化された日付よりも長ければ、空白が充填
されます。
INTIME
省略可能。入力。INTEGER(4)。指定されている
場合は、現在のロケールで日付が書式化されます。
PACKTIMEQQ で作成されるパックされた時刻のよ
うな整数日付でなければなりません。INTIME を
省略すると、現在のシステム日付が書式化されて、
OUTSTR に戻されます。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、日付変換を修正します。FLAGS を省略す
ると、フラグ NLS$Normal が使用されます。利用
可能な値は次のとおりです。
移植性関数
2
NLS$Normal
特別な書式化なし。
NLS$NoUserOverride
ユーザ上書きを使用しません。
NLS$UseAltCalendar
ロケールの別の暦を使用します。
NLS$LongDate
ロケールの長い日付書式を使用します。
NLS$ShortDate
ロケールの短い日付書式を使用します。
説明
現在のロケールの日付を含む、正しく書式化された文字列を返しま
す。
出力
OUTSTR に書き込まれた文字列の文字数(マルチバイト文字数では
なくバイト数がカウントされます)、あるいはエラーが発生した場
合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
OUTSTR バッファが小さすぎます。
NLS$ErrorInvalidInput
INTIME の値が無効です。
NLS$ErrorInvalidFlags
FLAGS の値が無効です。
2-191
2
インテル ® Fortran ライブラリ・リファレンス
NLSFormatNumber
現在のロケールの正しく書式化され
た数値列を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSFormatNumber(OUTSTR, INSTR,&
FLAGS)
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS
CHARACTER(LEN=*), INTENT(IN) :: INSTR
CHARACTER(LEN=*), INTENT(OUT) :: OUTSTR
END FUNCTION
END INTERFACE
2-192
OUTSTR
出力。CHARACTER(LEN=*)。現在のロケールに
対して正しく書式化された数値を含む文字列。
OUTSTR が書式化された数値よりも長ければ、空
白が充填されます。
INTSTR
入力。CHARACTER(LEN=*)。書式化する数値列。
文字 '0' 〜 '9'、浮動小数点値の場合は 1 つの小数
点)(ピリオド)、および負の値の場合は第 1 位置
の負符号のみを含むことができます。他の文字は
すべて無効で、関数はエラーを返します。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、数値変換を修正します。FLAGS を省略す
ると、フラグ NLS$Normal が使用されます。利用
可能な値は次のとおりです。
NLS$Normal
特別な書式化なし。
NLS$NoUserOverride
ユーザ上書きを使用しません。
移植性関数
2
説明
数値列を書式化し、現在のロケールの正しい数値列を返します。
出力
OUTSTR に書き込まれた文字列の文字数(マルチバイト文字数では
なくバイト数がカウントされます)、あるいはエラーが発生した場
合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
OUTSTR バッファが小さすぎます。
NLS$ErrorInvalidInput
INSTR の値が無効です。
NLS$ErrorInvalidFlags
FLAGS の値が無効です。
NLSFormatTime
現在のロケールの時刻を含む、正し
く書式化された文字列を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION NLSFormatTime(OUTSTR, INTIME, &
FLAGS)
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS, INTIME
CHARACTER(LEN=*), INTENT(OUT) :: OUTSTR
END FUNCTION
END INTERFACE
OUTSTR
出力。CHARACTER(LEN=*)。現在のロケールの
正しく書式化された時刻を含む文字列。OUTSTR
が書式化された時刻より長ければ、空白が充填さ
れます。
2-193
2
インテル ® Fortran ライブラリ・リファレンス
INTIME
省略可能。入力。INTEGER(4)。指定されている
場合は、現在のロケールで時刻を書式化します。
PACKTIMEQQ で作成されるパックされた時刻のよ
うな整数時刻でなければなりません。INTIME を
省略すると、現在のシステム時刻が書式化されて、
OUTSTR に戻されます。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、時刻変換を修正します。FLAGS を省略す
ると、フラグ NLS$Normal が使用されます。利用
可能な値は次のとおりです。
NLS$Normal
特別な書式化なし。
NLS$NoUserOverride
ユーザ上書きを使用しません。
NLS$NoMinutesOrSeconds
分または秒を返しません。
NLS$NoSeconds
秒を返しません。
NLS$NoTimeMarker
時刻記号文字列を追加しません。
NLS$Force24HourFormat
24 時間制で文字列を返します。
説明
現在のロケールの時刻を含む、正しく書式化された文字列を返しま
す。
出力
OUTSTR に書き込まれた文字列の文字数(マルチバイト文字数では
なくバイト数がカウントされます)
、あるいはエラーが発生した場
合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
OUTSTR バッファが小さすぎます。
NLS$ErrorInvalidInput
INTIME の値が無効です。
2-194
移植性関数
2
NLS$ErrorInvalidFlags
FLAGS の値が無効です。
MBCS 問い合わせ手続き
MBCharLen
マルチバイト文字列の第 1 文字の長
さ(バイト)を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBCharLen(STRING)
CHARACTER(LEN=*), INTENT(IN) :: STRING
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。長さを求める文字
を含む文字列。マルチバイト文字を含むことがで
きます。
説明
マルチバイト文字列の第 1 文字の長さ(バイト)を返します。
注:MBCharLen は、マルチバイト文字の正当性は検証しません。
出力
STRING に含まれる第 1 文字のバイト数です。STRING が文字を含ま
ない場合(長さがゼロ)は、0 が返されます。
2-195
2
インテル ® Fortran ライブラリ・リファレンス
MBCurMax
現在のコードページで可能なマルチ
バイト文字の最大長(バイト)を返
します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBCurMax()
END FUNCTION
END INTERFACE
説明
現在のコードページで可能なマルチバイト文字の最大長(バイト)
を返します。
注:MBLenMax パラメータは、モジュール IFLPORT.F90 で定義
されていて、システムにインストールされているすべてのコード
ページにあるすべての文字の最大長(バイト)です。
出力
現在のコードページで可能なマルチバイト文字の最大長(バイト)
です。
2-196
移植性関数
2
MBLen
最後の空白を含むマルチバイト文字
列の文字数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBLen(STRING)
CHARACTER(LEN=*), INTENT(IN) :: STRING
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。文字数をカウント
する文字列。マルチバイト文字を含むことができ
ます。
説明
最後の空白を含むマルチバイト文字列の文字数を返します。
注:MBLen は、現在使用されているマルチバイト・コードペー
ジに従ってマルチバイト文字列を認識します。マルチバイト文字
の正当性は検証しません。
出力
STRING の文字数です。
2-197
2
インテル ® Fortran ライブラリ・リファレンス
MBLen_Trim
最後の空白を含まないマルチバイト
文字列の文字数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBLen_Trim(STRING)
CHARACTER(LEN=*), INTENT(IN) :: STRING
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。文字数をカウント
する文字列。マルチバイト文字を含むことができ
ます。
説明
最後の空白を含まないマルチバイト文字列の文字数を返します。
注:MBLen_Trim は、現在使用されているマルチバイト・コー
ドページに従ってマルチバイト文字列を認識します。マルチバイ
ト文字の正当性は検証しません。
出力
STRING の文字数から最後の空白(空白は ASCII 大小順序での文字
32(16 進の 20) を含むバイト)を引いたものです。
2-198
移植性関数
2
MBNext
マルチバイト文字列内の与えられた
位置の直後の第 1 先行バイトまたは
1 バイト文字の位置を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBNext(STRING, POSITION)
CHARACTER(LEN=*), INTENT(IN) :: STRING
INTEGER(4), INTENT(IN) :: POSITION
END FUNCTION
END INTERFACE
STRING
POSITION
入力。CHARACTER(LEN=*)。現在の位置の後の
第 1 先行バイトまたは 1 バイト文字を検索する文
字列。マルチバイト文字を含むことができます。
入力。INTEGER(4)。検索を開始する STRING 内
の位置。先行バイトまたは 1 バイト文字の位置で
なければなりません。マルチバイト文字の後続
(第 2)バイトの位置であってはなりません。
説明
マルチバイト文字列内の与えられた位置の直後の第 1 先行バイトま
たは 1 バイト文字の位置を返します。
出力
POSITIONで与えられた位置の直後のSTRING内の第1先行バイトま
たは 1 バイト文字の位置です。STRING に第 1 バイトがない場合は
0 です。
2-199
2
インテル ® Fortran ライブラリ・リファレンス
MBPrev
マルチバイト文字列内の与えられた
位置の直前の第 1 先行バイトまたは
1 バイト文字の位置を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBPrev(STRING, POSITION)
CHARACTER(LEN=*), INTENT(IN) :: STRING
INTEGER(4), INTENT(IN) :: POSITION
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER*(*)。現在の位置の前の第 1 先
行バイトまたは 1 バイト文字を検索する文字列。
マルチバイト文字を含むことができます。
POSITION
入力。INTEGER(4)。検索を開始する STRING の
位置。先行バイトまたは 1 バイト文字の位置でな
ければなりません。マルチバイト文字の後続(第
2)バイトの位置であってはなりません。
説明
マルチバイト文字列内の与えられた位置の直前の第 1 先行バイトま
たは 1 バイト文字の位置を返します。
出力
POSITIONで与えられた位置の直前のSTRING内の第1先行バイトま
たは 1 バイト文字の位置です。STRING に第 1 バイトがない場合は
0 です。
2-200
移植性関数
2
MBStrLead
文字列内の与えられた文字バイトが
マルチバイト文字の先行バイトであ
るかどうかを判定するために、文脈
依存検証を実行します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION MBStrLead(STRING, POSITION)
CHARACTER(LEN=*), INTENT(IN) :: STRING
INTEGER(4), INTENT(IN) :: POSITION
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。先行ステータスを
検証する文字バイトを含む文字列。
POSITION
入力。INTEGER(4)。検証する文字列内の文字バ
イトの STRING の位置。
説明
文字列内の与えられた文字バイトがマルチバイト文字の先行バイト
であるかどうかを判定するために、文脈依存検証を実行します。
注:MBStrLead には文字列全体が渡され、先行バイトまたは後続
バイトとして文字列内のどのバイトも認識することができます。
これは、文脈依存検証を実行し、文脈を確立するのに必要であれ
ば、文字列の最初に戻って全体を走査するためです。MBLead に
は一度に 1 文字のみが渡され、先行バイトから開始し、文字を構
成する文字単位でステップして文字の文脈を確立しなければなり
ません。したがって、MBStrLead は MBLead よりかなり遅くなり
ます (n を文字列長とすると、最大 n 倍遅くなります )。
2-201
2
インテル ® Fortran ライブラリ・リファレンス
出力
STRING の POSITION にある文字バイトが先行バイトであれば、
.TRUE. が返されます。そうでなければ、.FALSE. が返されます。
MBCS 変換手続き
MBConvertMBToUnicode
マルチバイト・コードページの文字
列を Unicode 文字列に変換します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBConvertMBToUnicode(MBSTR,&
UNICODESTR, FLAGS)
CHARACTER(LEN=*), INTENT(IN) :: MBSTR
INTEGER(2), DIMENSION(:), INTENT(OUT) :: UNICODESTR
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS
END FUNCTION
END INTERFACE
2-202
MBSTR
入力。CHARACTER(LEN=*)。変換するマルチバ
イト・コードページ文字列。
UNICODESTR
出力。INTEGER(2)。入力文字列を Unicode に変換
した整数配列。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、文字列変換を修正します。FLAGS を省略
すると、値 NLS$Precomposed が使用されます。
利用可能な値は次のとおりです。
NLS$Precomposed
常に事前構成された文字を使用します(デ
フォルト)。
移植性関数
2
NLS$Composite
常に混成ワイド文字を使用します。
NLS$UseGlyphChars
制御文字の代わりにグリフ文字を使用しま
す。
NLS$ErrorOnInvalidChars
無効な文字が入力されると、–1 を返します。
フラグ NLS$Precomposed および NLS$Composite は相互に排他
的です。包和的論理和(IOR または OR) を使用して、
NLS$Precomposed または NLS$Composite のいずれかと
NLS$UseGlyphChars を結合することができます。
説明
マルチバイト文字列を現在のコードページから Unicode 文字列に変
換します。
注:関数 MBConvertMBToUnicode は、デフォルトで、または
FLAGS が NLS$Precomposed に設定されている場合、
マルチバイ
ト・コードページ文字列を事前構成 Unicode 文字列に変換しよう
とします。事前構成形式が存在しない場合は、コードページ文字
列を合成形式に変換しようとします。
出力
エラーがなければ UNICODESTR に書き込まれたバイト数(文字数
ではなくバイト数がカウントされます)が返され、UNICODESTR の
大きさがゼロであれば出力文字列を保持するために必要となるバイ
ト数が返されます。UNICODESTR 配列が変換を保持するために必要
な大きさよりも大きい場合、余分な要素は 0 に設定されます。
UNICODESTR の大きさがゼロの場合は、変換を保持するために必要
なバイト数が返され、UNICODESTR には何も書き込まれません。
エラーが発生した場合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
UNICODESTR 引数が小さすぎますが、大きさがゼ
ロではないため、必要なバイト数が返されます。
2-203
2
インテル ® Fortran ライブラリ・リファレンス
NLS$ErrorInvalidFlags
FLAGS 引数の値が無効です。
NLS$ErrorInvalidCharacter
Unicode に変換されない文字が MBSTR で見つかり
ました。このエラーは、
NLS$InvalidCharsError フラグが FLAGS に使
用された場合にのみ発生します。
MBConvertUnicodeToMB
Unicode 文字列を現在のコードペー
ジのマルチバイト文字列に変換しま
す。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION
MBConvertUnicodeToMB(UNICODESTR, MBSTR, FLAGS)
INTEGER(2), DIMENSION(:), INTENT(IN)::UNICODESTR
CHARACTER(LEN=*), INTENT(OUT)::MBSTR
INTEGER(4), OPTIONAL, INTENT(IN)::FLAGS
END FUNCTION
END INTERFACE
2-204
UNICODESTR
入力。INTEGER(2)。変換する Unicode 文字列を
保持する整数配列。
MBSTR
出力。CHARACTER(LEN=*)。Unicode 文字列を現
在のコードページのマルチバイト文字列に変換し
ます。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、文字列変換を修正します。FLAGS を省略
すると、変換の検証が追加されません。利用可能
な値は次のとおりです。
移植性関数
2
NLS$CompositeCheck
合成文字を事前構成に変換します。
NLS$SepChars
分離文字を生成します。
NLS$DiscardDns
非空白文字を削除します。
NLS$DefaultChars
例外を基本文字で置き換えます。
最後の 3 つのフラグ(NLS$SepChars、NLS$DiscardDns、およ
び NLS$DefaultChars)は、相互に排他的であり、
NLS$CompositeCheck が設定されたときにのみ使用できます。こ
の場合、これらの 1 つが(そして 1 つだけが)、包和的論理和(IOR
または OR)によって NLS$CompositeCheck と結合されます。こ
れらのフラグは、Unicode ワイド文字列の基本文字 / 非空白文字の
組み合わせに対する事前構成マッピングがない場合に、どのような
変換を行うのかを決定します。デフォルトでは
(IOR(NLS$CompositeCheck,NLS$SepChars))、分離文字を生
成します。
出力
エラーがなければ MBSTR に書き込まれたバイト数(文字数ではな
くバイト数がカウントされます)が返され、MBSTR の長さがゼロで
あれば出力文字列を保持するために必要となるバイト数が返されま
す。MBSTR が変換より長い場合は、空白文字が充填されます。
MBSTR の長さがゼロの場合の場合は、変換を保持するために必要な
バイト数が返され、MBSTR には何も書き込まれません。
エラーが発生した場合は、次の負の値の 1 つが返されます。
NLS$ErrorInsufficentBuffer
MBSTR 引数が小さすぎますが、長さがゼロではな
いため、必要なバイト数が返されます。
NLS$ErrorInvalidFlags
FLAGS 引数の値が無効です。
2-205
2
インテル ® Fortran ライブラリ・リファレンス
MBCS Fortran 等価手続き
MBINCHARQQ
一度に 1 つのマルチバイト文字を読
み取ることができることを除いて、
INCHARQQ と同じ機能を持ち、読
み取ったバイト数を返します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBInCharQQ(STRING)
CHARACTER(LEN=2), INTENT(OUT)::STRING
! LEN=MBLENMAX
END FUNCTION
END INTERFACE
STRING
出力。CHARACTER(MBLenMax)。読み取った文字
を含み、長さ MBLenMax になるまで空白が充填さ
れた文字列。MBLenMax パラメータは、モジュー
ル iflport.F90 で定義されていて、システムに
インストールされているすべてのコードページに
あるすべての文字の最大長(バイト)です。
説明
一度に 1 つのマルチバイト文字を読み取ることができることを除い
て INCHARQQ と同じ機能を実行し、文字および読み取ったバイト数
を返します。
出力
読み取った文字数です。
2-206
移植性関数
2
MBINDEX
自身の引数にマルチバイト文字を含
めることができることを除いて、
INDEX と同じ機能を持ちます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBIndex(STRING, SUBSTRING, &
BACK)
CHARACTER(LEN=*), INTENT(IN) :: STRING, SUBSTRING
LOGICAL(4), INTENT(IN), OPTIONAL :: BACK
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。SUBSTRING の存在
を検索する文字列。マルチバイト文字を含むこと
ができます。
SUBSTRING
入力。CHARACTER(LEN=*)。STRING 内の位置を
決定する部分列。マルチバイト文字を含むことが
できます。
BACK
省略可能。入力。LOGICAL(4)。指定されている
場合は、検索方向を決定します。BACK が
.FALSE. または省略されている場合は、STRING
の始めから終わりに向かって検索が行われます。
BACK が .TRUE. である場合は、STRING の終わり
から始めに向かって検索が行われます。
説明
操作する文字列にマルチバイト文字を含めることができることを除
いて、INDEX と同じ機能を実行します。
2-207
2
インテル ® Fortran ライブラリ・リファレンス
出力
BACK が省略されるか .FALSE. の場合は、SUBSTRING の開始文字を
含め、STRING 内の一番左の文字の位置が返されます。BACK が
.TRUE. の場合は、SUBSTRING の開始文字を含め、STRING の一番
右の文字の位置が返されます。STRING が SUBSTRING を含まない
場合は、0 が返されます。SUBSTRING が 2 度以上現れた場合は、
最初に現れたとき(「最初」は、BACK の存在と値によって決まりま
す)の開始位置が返されます。
MBLGE、MBLGT、MBLLE、MBLLT、MBLEQ、
MBLNE
LGE、LGT、LLE、LLT、および論理
演算子 .EQ. および .NE. と同じ機能
を持ちます。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION MBLGE(STRA, STRB, FLAGS)
CHARACTER(LEN=*), INTENT(IN) :: STRA, STRB
INTEGER(4), INTENT(IN), OPTIONAL :: FLAGS
END FUNCTION
END INTERFACE
2-208
STRA, STRB
入力。CHARACTER(LEN=*)。比較する文字列。
マルチバイト文字を含むことができます。
FLAGS
省略可能。入力。INTEGER(4)。指定されている
場合は、文字列を比較する際にどの文字特性を使
用するか、または無視するかを決定します。包和
的論理和(IOR または OR) を使用してさまざまな
フラグを結合することができます。フラグの不正
な組み合わせはありません。関数はフラグなしで
移植性関数
2
も使用でき、この場合はすべてのフラグ・オプ
ションがオフになります。利用可能な値は次のと
おりです。
NLS$MB_IgnoreCase
大文字小文字を無視します。
NLS$MB_IgnoreNonspace
非空白文字を無視します(このフラグは、日
本語アクセント文字があれば、それらを削除
します)。
NLS$MB_IgnoreSymbols
記号を無視します。
NLS$MB_IgnoreKanaType
日本語のひらがな文字とカタカナ文字を区別
しません(対応するひらがな文字とカタカナ
文字を等価として比較します)。
NLS$MB_IgnoreWidth
1 バイト文字と、これと同じ 2 バイト文字を
区別しません。
NLS$MB_StringSort
アポストロフィとハイフンを含むすべての記
号を開始時にソートします(次の注を参照し
てください)。
2-209
2
インテル ® Fortran ライブラリ・リファレンス
説明
比較する文字列にマルチバイト文字を含めることができ、省略可能
なフラグが比較を編集することができることを除いて、LGE、LGT、
LLE、LLT、および論理演算子 .EQ. および .NE. と同じ機能を実行
します。これらのルーチンはすべて、MBLGE の説明に示す引数と同
じ引数を持ちます。
注:指定された文字列にアラビア語の Kashidas が含まれる場合、
比較している間は Kashidas が無視されます。このため、2 つの文
字列が文字列内の Kashidas を除いて同じであれば、照合すると
それらが「等しい」ことを示す値が返されますが、必ずしも同一
であるとは限りません。
注:NLS$MB_StringSort フラグを使用しない場合、ハイフン
とアポストロフィは特別な記号であり、他とは異なった取り扱い
を受けます。これは、coop および co-op のような単語が同じリス
ト内に存在するようにするためです。ハイフンとアポストロフィ
を除くすべての記号は、他のアルファベット文字よりも前にソー
トされます。NLS$MB_StringSort フラグを指定した場合は、
ハイフンとアポストロフィもまた最初にソートされます。
出力
比較は、現在のコードページではなく、現在のロケールを使用して
行われます。使用するコードページは、現在のロケールの言語と国
の組み合わせに対する基本設定です。
これらの関数は次の結果を返します。
•
•
2-210
文字列が等しいか、または STRA が大小順序の最後に来た場合、
MBLGE は .TRUE. を返します。そうでない場合は、.FALSE. を
返します。
STRA が大小順序の最後に来た場合、MBLGT は .TRUE. を返しま
す。そうでない場合は、.FALSE. を返します。
移植性関数
•
2
文字列が等しいか、または STRA が大小順序の最初に来た場合、
MBLLE は .TRUE. を返します。そうでない場合は、.FALSE. を
返します。
STRA が大小順序の最初に来た場合、MBLLT は .TRUE. を返しま
す。そうでない場合は、.FALSE. を返します。
文字列が大小順序で等しい場合、MBLEQ は .TRUE. を返します。
そうでない場合は、.FALSE. を返します。
文字列が大小順序で等しくない場合、MBLNE は .TRUE. を返し
ます。そうでない場合は、.FALSE. を返します。
2 つの文字列の長さが異なる場合、それらは長さが短い方の文
字列の最後までが比較されます。その時点で等しければ、長い
方の文字列が大きいことを示す値が返されます。
FLAGS が無効である場合、これらの関数は .FALSE. を返しま
す。
•
•
•
•
•
MBSCAN
自身の引数にマルチバイト文字を含
めることができることを除いて、
SCAN と同じ機能を持ちます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBScan(STRING, SET, BACK)
CHARACTER(LEN=*), INTENT(IN)::STRING, SET
LOGICAL(4), INTENT(IN), OPTIONAL::BACK
END FUNCTION
END INTERFACE
STRING
入力。CHARACTER(LEN=*)。SET 内の文字の存在
を検索する文字列。
SET
入力。CHARACTER(LEN=*)。検索する文字。
2-211
2
インテル ® Fortran ライブラリ・リファレンス
BACK
省略可能。入力。LOGICAL(4)。指定されている
場合は、検索方向を決定します。BACK が
.FALSE. かまたは省略されている場合は、
STRING の始めから終わりに向かって検索が行わ
れます。BACK が .TRUE. である場合は、STRING
の終わりから始めに向かって検索が行われます。
説明
操作する文字列にマルチバイト文字を含めることができることを除
いて、SCAN と同じ機能を実行します。
出力
BACK が .FALSE. かまたは省略されている場合は、SET に含まれて
いる STRING 中の一番左の文字の位置が返されます。BACK が
.TRUE. である場合は、SET に含まれている STRING 中の一番右の文
字の位置が返されます。STRING が SET に含まれている文字を 1 つ
も含まない場合は、0 が返されます。
MBVERIFY
自身の引数にマルチバイト文字を含
めることができることを除いて、
VERIFY と同じ機能を持ちます。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION MBVerify(STRING, SET, BACK)
CHARACTER(LEN=*), INTENT(IN)::STRING, SET
LOGICAL(4), INTENT(IN), OPTIONAL::BACK
END FUNCTION
END INTERFACE
STRING
2-212
入力。CHARACTER(LEN=*)。SET にない文字の存
在を検索する文字列。
移植性関数
SET
入力。CHARACTER(LEN=*)。STRING に文字がす
べて含まれていることを確かめる文字の集合。
BACK
省略可能。入力。LOGICAL(4)。指定されている
場合は、検索方向を決定します。BACK が
.FALSE. かまたは省略されている場合は、
STRING の始めから終わりに向かって検索が行わ
れます。BACK が .TRUE. である場合は、STRING
の終わりから始めに向かって検索が行われます。
2
説明
操作する文字列にマルチバイト文字を含めることができることを除
いて、VERIFY と同じ機能を実行します。
出力
BACK が .FALSE. かまたは省略されている場合は、SET に含まれて
いない STRING 中の一番左の文字の位置が返されます。BACK が
.TRUE. である場合は、SET に含まれていない STRING 中の一番右の
文字の位置が返されます。STRING のすべての文字が SET に含まれ
ている場合は、0 が返されます。
MBJISTToJMS
日本工業規格(JIS)文字を
Microsoft Kanji(シフト JIS または
JMS)文字に変換します。
プロトタイプ
INTERFACE
CHARACTER(LEN=2) FUNCTION MBJISToJMS(CHAR)
CHARACTER(LEN=2), INTENT(IN) :: CHAR
END FUNCTION
END INTERFACE
CHAR
入力。CHARACTER(LEN=2)。変換される JIS 文字。
2-213
2
インテル ® Fortran ライブラリ・リファレンス
説明
日本工業規格(JIS)文字を Microsoft Kanji(シフト JIS または JMS)
文字に変換します。
JIS 文字が変換されるのは、先頭バイトと後続バイトが 16 進で 21
〜 7E の範囲にある場合に限ります。
注:MBJISToJMS 変換関数を使用できるのは、使用可能な言語
の 1 つとして「Japanese」がインストールされているコンピュー
タに限ります。
出力
MBJISToJMS は、Microsoft Kanji(シフト JIS または JMS)文字を返
します。
MBJMSTToJIS
Microsoft Kanji(シフト JIS または
JMS)文字を日本工業規格(JIS)文
字に変換します。
プロトタイプ
INTERFACE
CHARACTER(LEN=2) FUNCTION MBJMSToJIS( CHAR)
CHARACTER(LEN=2), INTENT(IN) :: CHAR
END FUNCTION
END INTERFACE
CHAR
2-214
入力。CHARACTER(LEN=2)。変換される JMS 文
字。
移植性関数
2
説明
Microsoft Kanji(シフト JIS または JMS)文字を日本工業規格(JIS)
文字に変換します。
JMS 文字が変換されるのは、先頭バイトが 16 進で 81 〜 9F または
E0 〜 FC の範囲にあり、後続バイトが 16 進で 40 〜 7E または 80 〜
FC の範囲にある場合に限ります。
注:MBJMSToJIS 変換関数を使用できるのは、使用可能な言語
の 1 つとして「Japanese」がインストールされているコンピュー
タに限ります。
出力
MBJMSToJIS は、日本工業規格(JIS)文字を返します。
2-215
2
インテル ® Fortran ライブラリ・リファレンス
2-216
POSIX 関数
本章では、POSIX ライブラリ(libPOSF90.lib)を構成する関数
について説明します。これらの関数は、Win32* システムの場合は
/4Yposixlib オプション、Linux システムの場合は -posixlib オプショ
ンを起動した際に、コンパイラで利用できるようになります。
これらの関数では、IEEE 規格 1003.9-1992 で指定された IEEE
POSIX FORTRAN-77 言語バインディングを実装します。POSIX 規
格は ISO/IEC 9945-1:1990 です。規格のコピーは IEEE から入手でき
ます。
プロトタイプについては、指定した関数への呼び出しを実行するた
めに必要な情報を提供する INTERFACE 呼び出しを使用して説明し
ます。Win32 システムの INTERFACE ブロックおよび /4Yposixlib オ
プション、Linux システムの -posixlib オプションについての詳細は、
『インテル ® Fortran コンパイラ・ユーザーズ・ガイド』を参照して
ください。
POSIX ライブラリのインターフェイス
POSIX ライブラリに接続するには、プログラムを自由形式とするか
固定形式とするかによって、次の方法を使用できます。
•
自由形式のプログラムで、libPOSF90.lib(POSIX ライブラ
リ)に接続するには、コードに
INCLUDE ‘iflposix.f90’
文を記述してください。ここで、iflposix.f90 はインター
フェイス・ファイルです。
3-1
3
インテル ® Fortran ライブラリ・リファレンス
•
固定形式ソースの iflposix.f90 ファイルは、Win32 システム
の場合は /4L132 オプション、Linux システムの場合は -132 で
編集しコンパイルしなくてはなりません。または、次のようなモ
ジュールを作成できます。
MODULE iflposix
INCLUDE ‘iflposix.f90’
END MODULE
さらに、固定形式のプログラムに USE iflposix 文を組み込ん
でください。
PXFACCESS
ファイルの参照許可を判断します。
プロトタイプ
INTERFACE
SUBROUTINE PXFACCESS (PATH, ILEN, IAMODE,
IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IAMODE, IERROR
END SUBROUTINE PXFACCESS
END INTERFACE
PATH
ファイルの名前
ILEN
PATH 文字列の長さ
IAMODE
次のいずれか、または複数です。
Win32 システムの場合 :
3-2
0
-- ファイルの存在をチェック
2
-- 書き込みアクセスをチェック
4
-- 読み取りアクセスをチェック
6
-- 読み取り / 書き込みアクセスをチェック
Linux システムの場合 :
POSIX 関数
3
0-- ファイルの存在をチェック
1-- 書き込みアクセス実行許可をチェック
2-- 書き込みアクセスをチェック
4-- 読み取りアクセスをチェック
IERROR
戻り値
説明
ファイルやディレクトリの参照許可をチェックします。Win32 シス
テムでは、指定された名前がディレクトリ名である場合、関数は存
在をチェックするだけです。すべてのディレクトリには、Win32 シ
ステムでの読み書きアクセス権があります。
出力
成功した場合、IERROR にはゼロ が設定されます。ファイルが存在
しない場合や適切なアクセス権がない場合には、IERROR は -1 に設
定されます。
ファイルが存在しない場合、または適切なアクセス権が得られない
場合は、エラーコードが IERROR に返されます。エラーコードを次
に示します。
-1
不正なパラメータが渡されました。
EACCES
要求したアクセスが拒否されました。
ENOENT
ファイルが存在しませんでした。
EACCES と ENOENT の値については、
Microsoft Visual C++ システムの
include ディレクトリにある errno.h を参照してください。
3-3
3
インテル ® Fortran ライブラリ・リファレンス
PXFAINTGET
構造体の整数配列成分を取得しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFAINTGET (JHANDLE, COMPNAME, VALUE,
IALEN, IERROR)
INTEGER(4) JHANDLE, IALEN, IERROR
CHARACTER(LEN=*) COMPNAME
INTEGER(4) VALUE(IALEN)
END SUBROUTINE PXFAINTGET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
VALUE
(出力)ここに成分の値を格納します。
IALEN
VALUE 配列の長さ
IERROR
戻り値
説明
このサブルーチンは、構造体の整数配列成分を取得します。
出力
成功した場合は、IERROR にはゼロが設定されます。構造体にその
ような成分名が存在しなかった場合は、ENONAME が設定されます。
EARRAYLEN には、IALEN を超える配列要素の数が含まれていま
す。
3-4
POSIX 関数
3
PXFAINTSET
構造体の整数配列成分を取得しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFAINSET(JHANDLE, COMPNAME, VALUE,
IALEN, IERROR)
INTEGER(4) JHANDLE, IALEN, IERROR
CHARACTER(LEN=*) COMPNAME
INTEGER(4) VALUE(IALEN)
END SUBROUTINE PXFAINTSET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
VALUE
設定する値
IALEN
VALUE 配列の長さ
IERROR
戻り値
説明
このサブルーチンは、構造体の整数配列成分を設定します。
出力
成功した場合は、IERROR にはゼロが設定されます。構造体にその
ような成分名が見つからなかった場合は、ENONAME が設定されま
す。EARRAYLEN には、IALEN を超える配列要素の数が設定されま
す。
3-5
3
インテル ® Fortran ライブラリ・リファレンス
PXFCALLSUBHANDLE
関連するサブルーチンを呼び出しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFCALLSUBHANDLE(JHANDLE2, IVAL,
IERROR)
INTEGER(4) JHANDLE2, IVAL, IERROR
END SUBROUTINE PXFCALLSUBHANDLE
END INTERFACE
JHANDLE2
サブルーチンへのハンドル
IVAL
サブルーチンへの引数
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定されたサブルーチン・ハンドルによっ
て、関連するサブルーチンを呼び出します。
注:このサブルーチンは、関数、組み込み、および入口点とはせ
ずに、ただ 1 つの整数引数で定義してください。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-6
POSIX 関数
3
PXFCHDIR
現在の作業ディレクトリを変更しま
す。
プロトタイプ
INTERFACE
SUBROUTINE CHDIR(PATH, ILEN, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IERROR
END SUBROUTINE CHDIR
END INTERFACE
PATH
変更されるディレクトリ
ILEN
PATH 文字列の長さ
IERROR
戻り値
説明
このサブルーチンは、現在の作業ディレクトリを変更します。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFCHMOD
ファイルの所有権モードを変更しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFCHMOD (PATH, ILEN, IMODE, IERROR)
3-7
3
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IMODE, IERROR
END SUBROUTINE PXFCHMOD
END INTERFACE
PATH
ファイルの名前
ILEN
IMODE
PATH 文字列の長さ
モード ; Win32 システムの場合は、sys\stat.h
下の \include ディレクトリにある Microsoft
Visual C++ インストレーションで IMODE の値を参
照してください。
IERROR
戻り値
説明
このサブルーチンは、ファイルの所有権モードを変更します。
注:Linux システムでは、ファイルの所有者であるか、ファイル
の読み書きアクセス権を持つなど、十分な所有権限を持っていな
ければなりません。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFCHOWN
ファイルの所有者とグループを変更
します。
プロトタイプ
INTERFACE
SUBROUTINE PXFCHOWN(PATH, ILEN, IOWNER, IGROUP,
IERROR)
3-8
POSIX 関数
3
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IOWNER, IGROUP, IERROR
END SUBROUTINE PXFCHOWN
END INTERFACE
PATH
ファイル名またはディレクトリ名
ILEN
PATH 文字列の長さ
IOWNER
所有者 uid
IGROUP
グループ gid
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、ファイルの所有者とグループを変更します。
出力
成功した場合、Linux システムでは IERROR にはゼロ が設定され、
Win32 には 0 以外の値が返されます。
PXFCLOSE
記述子に関連付けられたファイルを
閉じます。
プロトタイプ
INTERFACE
SUBROUTINE PXFCLOSE (FD, IERROR)
INTEGER(4) FD, IERROR
END SUBROUTINE PXFCLOSE
END INTERFACE
FD
IERROR
削除されるファイル記述子
(出力)返されるエラーコード
3-9
3
インテル ® Fortran ライブラリ・リファレンス
説明
このサブルーチンは、記述子に関連付けられたファイルを閉じま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFCLOSEDIR
ディレクトリ・ストリームを閉じま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFCLOSEDIR (IDIRID, IERROR)
INTEGER(4) IDIRID, IERROR
END SUBROUTINE PXFCLOSEDIR
END INTERFACE
IDIRID
IERROR
DIR 構造体へのポインタ
(出力)エラー・ステータス
説明
このサブルーチンは、ディレクトリ・ストリームを閉じて、DIR 構
造体を解放します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-10
POSIX 関数
3
PXFCONST
定数に結合された値を取り出しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFCONST (CONSTNAME, IVAL, IERROR)
CHARACTER(LEN=*) CONSTNAME
INTEGER(4) IVAL, IERROR
END SUBROUTINE PXFCONST
END INTERFACE
CONSTNAME
定数の名前
IVAL
(出力)定数の値
IERROR
(出力)戻り値
説明
このサブルーチンは、定数名に結合された値を取り出します。次の
シンボル定数の値を問い合わせできます。
STDIN_UNIT
STDOUT_UNIT
STDERR_UNIT
EINVAL
ENONAME
ENOHANDLE
EARRAYLEN
E で始まる定数は、システム変数 errno のさまざまなエラー値を示
します。Win32 システムの詳細については、MSVC++ のマニュアル
を参照してください。Linux では、/usr/include/errno.h ファ
イルを参照してください。
3-11
3
インテル ® Fortran ライブラリ・リファレンス
出力
成功した場合は IERROR にはゼロが設定され、失敗した場合は -1
が設定されます。
PXFCREAT
新しいファイルを作成するか、既存
のファイルに上書きします。
プロトタイプ
INTERFACE
SUBROUTINE PXFCREAT (PATH, ILEN, IMODE, IFILDES,
IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IMODE, IFILDES, IERROR
END SUBROUTINE PFXCREAT
END INTERFACE
PATH
ファイルのパス名
ILEN
IMODE
PATH 文字列の長さ
新規に作成されたファイルのモード。Win32 シス
テムの場合は、sys\stat.h 下の \include ディ
レクトリにある Microsoft Visual C++ インストレー
ションで IMODE の値を参照してください。Linux
システムの場合は、オクタル file-access コードを
使用してください。
IFILDES
IERROR
(出力)ファイル記述子
戻り値
説明
このサブルーチンは、新しいファイルを作成するか、既存のファイ
ルに上書きします。
3-12
POSIX 関数
3
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFDUP
既存のファイル記述子を複製しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFDUP (IFILDES, IFID, IERROR)
INTEGER(4) IFILDES, IFID, IERROR
END SUBROUTINE PXFDUP
END INTERFACE
IFILDES
複製される記述子
IFID
(出力)複製される記述子のハンドル
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、既存のファイル記述子を複製します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-13
3
インテル ® Fortran ライブラリ・リファレンス
PXFDUP2
既存のファイル記述子を複製しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFDUP2 (IFILDES, IFILDES2, IERROR)
INTEGER(4) IFILDES, IFILDES2, IERROR
END SUBROUTINE PXFDUP2
END INTERFACE
IFILDES
複製される記述子
IFILDES2
複製される記述子の望ましいハンドル
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、既存のファイル記述子を複製します。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFEINTGET
構造体の整数配列成分から 1 つの要
素を取得します。
プロトタイプ
INTERFACE
3-14
POSIX 関数
3
SUBROUTINE PXFEINTGET (JHANDLE, COMPNAME, INDEX,
VALUE, IERROR)
CHARACTER(LEN=*) COMPNAME
INTEGER(4) JHANDLE, INDEX, VALUE, IERROR
END SUBROUTINE PXFEINTGET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
INDEX
要素のインデックス
VALUE
IERROR
(出力)成分の値が格納される場所
戻り値
説明
このサブルーチンは、構造体の整数配列成分から 1 つの要素を取得
します。
出力
成功した場合は、IERROR にはゼロが設定されます。そうでない場
合は、構造体にそのような成分名が存在しなければ ENONAME が設
定されます。無効なインデックスが指定された場合は、EINVAL が
設定されます。
PXFEINTSET
構造体の整数配列成分から 1 つの要
素を設定します。
プロトタイプ
INTERFACE
SUBROUTINE PXFEINTSET (JHANDLE, COMPNAME,
IVALUE, INDEX, IERROR)
CHARACTER(LEN=*) COMPNAME
3-15
3
インテル ® Fortran ライブラリ・リファレンス
INTEGER(4) JHANDLE, IVALUE, INDEX, IERROR
END SUBROUTINE PXFEINTSET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
IVALUE
要素のインデックス
INDEX
設定する値
IERROR
戻り値
説明
このサブルーチンは、構造体の整数配列成分から 1 つの要素を設定
します。
出力
成功した場合は、IERROR にはゼロが設定されます。そうでない場
合は、構造体にそのような成分名が存在しなければ ENONAME が設
定されます。無効なインデックスが指定された場合は、EINVAL が
設定されます。
PXFESTRGET
構造体の文字列配列成分から 1 つの
要素を取得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFESTRGET (JHANDLE, COMPNAME, INDEX,
VALUE, ILEN, IERROR)
INTEGER(4) JHANDLE, INDEX, ILEN, IERROR
CHARACTER(LEN=*) COMPNAME, VALUE
END SUBROUTINE PXFESTRGET
END INTERFACE
3-16
POSIX 関数
JHANDLE
構造体へのハンドル
COMPNAME
成分名
INDEX
要素のインデックス
VALUE
(出力)文字列が格納される場所
ILEN
(出力)文字列長
IERROR
3
戻り値
説明
このサブルーチンは、構造体の文字列配列成分から 1 つの要素を取
得します。
出力
成功した場合は、IERROR にはゼロが設定されます。そうでない場
合は、構造体にそのような成分名が存在しなければ ENONAME が設
定されます。無効なインデックスが指定された場合は、EINVAL が
設定されます。
PXFEXECV
実行可能ファイルを実行します。
プロトタイプ
INTERFACE
SUBROUTINE PXFEXECV (PATH, LENPATH, ARGV,
LENARGV, IARGC, IERROR)
INTEGER(4) LENPATH, LENGARV(0:IARGC-1), IARGC,
IERROR
CHARACTER(LEN=*) PATH, ARGV(0:IARGC-1)
END SUBROUTINE PXFEXECV
END INTERFACE
PATH
(入力)新しい実行可能パス
LENPATH
(入力)PATH 文字列の長さ
3-17
3
インテル ® Fortran ライブラリ・リファレンス
ARGV
(入力)コマンド行引数
LENARGV
(入力)各引数文字列の長さ
IARGC
(入力)引数カウント
IERROR
(出力)エラー値
説明
このサブルーチンは、実行可能ファイルを実行します。成功した場
合、これらの関数は、呼び出しプロセスには戻りません。
出力
成功した場合はゼロが返されます。失敗した場合は、エラーコード
として ierrno の値が返されます。
PXFEXECVE
環境設定付きの実行可能ファイルを
実行します。
プロトタイプ
INTERFACE
SUBROUTINE PXFEXECVE (PATH, LENPATH, ARGV,
LENARGV, IARGC, ENV, LENENV, IENVC, IERROR)
INTEGER(4) LENPATH, LENARGV(0:IARGC-1), IARGC,
LENENV(IENVC), IENVC, IERROR
CHARACTER(LEN=*) PATH, ARGV(0:IARGC-1), ENV(IENVC)
END SUBROUTINE PXFEXECVE
END INTERFACE
3-18
PATH
(入力)新しい実行可能パス
LENPATH
(入力)PATH 文字列の長さ
ARGV
(入力)コマンド行引数
LENARGV
(入力)各引数文字列の長さ
POSIX 関数
IARGC
(入力)引数カウント
ENV
(入力)環境設定
LENENV
(入力)ENV での要素の長さ
IENVC
(入力)ENV での要素の番号
IERROR
3
戻り値
説明
このサブルーチンは、環境設定付きの実行可能ファイルを実行しま
す。
出力
なし。
PXFEXECVP
ファイルを実行します。
プロトタイプ
INTERFACE
SUBROUTINE PXFEXECVP (FILE, LENFILE, ARGV,
LENARGV, IARGC, IERROR)
INTEGER(4) LENFILE, LENARGV(0:IARGC-1), IARGC,
IERROR
CHARACTER(LEN=*) FILE, ARGV(0:IARGC-1)
END SUBROUTINE PXFEXECVP
END INTERFACE
FILE
(入力)実行されるファイル
LENFILE
(入力)FILE の長さ
ARGV
(入力)コマンド行引数
LENARGV
(入力)各引数文字列の長さ
IARGC
(入力)引数カウント
3-19
3
インテル ® Fortran ライブラリ・リファレンス
IERROR
(出力)エラー値
説明
ファイルを実行します。
出力
なし。
PXFEXIT
プロセスを終了します。
プロトタイプ
INTERFACE
SUBROUTINE PXFEXIT (ISTATUS)
INTEGER(4) ISTATUS
END SUBROUTINE PXFEXIT
END INTERFACE
ISTATUS
(入力)終了値
説明
このサブルーチンは、プロセスを終了します。
出力
なし。
3-20
POSIX 関数
3
PXFFASTEXIT
プロセスを終了します。
プロトタイプ
INTERFACE
SUBROUTINE PXFFASTEXIT (ISTATUS)
INTEGER(4) ISTATUS
END SUBROUTINE PXFFASTEXIT
END INTERFACE
ISTATUS
(入力)終了値
説明
このサブルーチンは、プロセスを終了します。このサブルーチンか
らの復帰はありません。
出力
なし。
PXFFLUSH
出力ストリームの未書き込みデータ
を書き込みます。
プロトタイプ
INTERFACE
SUBROUTINE PXFFLUSH (LUNIT, IERROR)
INTEGER(4) IUNIT, IERROR
END SUBROUTINE PXFFLUSH
END INTERFACE
3-21
3
インテル ® Fortran ライブラリ・リファレンス
LUNIT
入力 : FORTRAN 論理装置。これは 0 〜 100 の範囲の
値を持つ INTEGER*4 式でなければなりません。
IERROR
出力 : 戻り値
説明
このサブルーチンは、出力ストリームの未書き込みのデータを書き
込みます。
出力
成功した場合は、IERROR にはゼロが設定されます。Linux の場合、
IERROR は、このサブルーチンが未使用であるとして互換性のみに
-1 を常に設定します。
PXFFGETC
指定したストリーム(論理装置)か
ら文字を読み取ります。
プロトタイプ
INTERFACE
SUBROUTINE PXFFGETC (LUNIT, CHAR, IERROR)
CHARACTER(LEN=1) CHAR
INTEGER(4) IERROR
END SUBROUTINE PXFFGETC
END INTERFACE
3-22
LUNIT
FORTRAN 論理装置。これは 0 〜 100 の範囲の値を
持つ INTEGER*4 式でなければなりません。
CHAR
読み取られる文字
IERROR
戻り値
POSIX 関数
3
説明
このサブルーチンは、指定したストリーム(論理装置)から文字を
読み取ります。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFFILENO
ストリームに結合されたファイル記
述子を返します。
プロトタイプ
INTERFACE
SUBROUTINE PXFFILENO (LUNIT, FD, IERROR)
INTEGER(4) LUNIT, FD, IERROR
END SUBROUTINE PXFFILENO
END INTERFACE
LUNIT
FORTRAN 論理装置。これは 0 〜 100 の範囲の値を
持つ INTEGER*4 式でなければなりません。
FD
(出力)ファイル記述子
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、ストリームに結合されたファイル記述子を返
します。
出力
成功した場合は、IERROR にはゼロが設定されます。そうでない場
合は、LUNIT が開いた装置でなければ EINVAL が設定されます。
LUNIT がファイル記述子に接続されていない場合は、EBADF が設
定されます。
3-23
3
インテル ® Fortran ライブラリ・リファレンス
PXFFORK
子プロセスをフォークします。
Win32 のプロトタイプ
INTERFACE
SUBROUTINE PXFFORK (IPID, IERROR)
INTEGER(4) IPID, IERROR
END SUBROUTINE PXFFORK
END INTERFACE
Linux のプロトタイプ
INTERFACE PXFFORK
SUBROUTINE LINUX_PXFFORK (IPID, IERROR)
INTEGER(4) IPID, IERROR
END SUBROUTINE LINUX_PXFFORK
SUBROUTINE PXFFORK(IPID, PATHNAME, ARGS, IERROR)
INTEGER(KIND=4), INTENT(OUT):: IPID
CHARACTER(LEN=*), INTENT(IN) :: PATHNAME
CHARACTER(LEN=*) ARGS(:)
INTEGER(KIND=4),INTENT(OUT):: IERROR
END SUBROUTINE
END INTERFACE
IPID
PATHNAME
ARGS
IERROR
3-24
(出力)プロセス ID
( 入力 ) 実行ファイルへのパス。変数は、Win32
システムにのみ使用されます。
( 入力 ) 実行ファイルの引数。変数は、Win32 シ
ステムにのみ使用されます。
(出力)プロセスが正しく起動された場合はゼロで
す。そうでない場合は、IERRNO の適切なエラー
値が含まれています。
POSIX 関数
3
説明
このサブルーチンは、非同期子プロセスを生成します。引数の
PATHNAME および ARGS を含むインターフェイスは、Win32 シス
テムのみに使用されます。
出力
プロセスが正しくフォークされた場合は、変数 IPID にプロセスハ
ンドルまたはプロセス ID が返されます。プロセスが正しくフォー
クされなかった場合は、IPID に -1 が返されます。
PXFFPUTC
指定したストリーム(論理装置)に
文字を出力します。
プロトタイプ
INTERFACE
SUBROUTINE PXFFPUTC (LUNIT, CHAR, IERROR)
CHARACTER(LEN=1) CHAR
INTEGER(4) LUNIT, IERROR
END SUBROUTINE PXFFPUTC
END INTERFACE
LUNIT
FORTRAN 論理装置。これは 0 〜 100 の範囲の値を
持つ INTEGER*4 式でなければなりません。
CHAR
書き込まれる文字
IERROR
戻り値
説明
このサブルーチンは、指定したストリームに文字を出力します。
3-25
3
インテル ® Fortran ライブラリ・リファレンス
出力
成功した場合は、IERROR にはゼロが設定されます。ファイルの終
わりに到達した場合は、EEND が設定されます。
PXFFSEEK
ストリーム上の次の入出力の位置を
設定します。
プロトタイプ
INTERFACE
SUBROUTINE PXFFSEEK (LUNIT, IOFFSET, IWHENCE,
IERROR)
INTEGER(4) LUNIT, IOFFSET, IWHENCE, IERROR
END SUBROUTINE PXFFSEEK
END INTERFACE
LUNIT
Fortran 論理装置。これは 0 〜 100 の範囲の値を持つ
INTEGER*4 式でなければなりません。
IOFFSET
ポインタを置くオフセット位置(バイト数)
IWHENCE
ストリーム内での位置
IERROR
ストリーム内での位置を次の定数の 1 つとして特
定します。定数は、Win32 システムまたは Linux
システムの場合、STDIO.H で定義されます。
SEEK_SET =0 ファイルのはじめからのオフセット
SEEK_CUR =1 ファイルポインタの現在の位置か
らのオフセット
SEEK_END =2 ファイルの終わりからのオフセッ
ト
説明
このサブルーチンは、ストリーム上の次の入出力の位置を設定しま
す。
3-26
POSIX 関数
3
出力
成功した場合は、IERROR には 0 が設定されます。LUNIT に接続さ
れたファイルがない場合、IWHENCE が適切な値ではない場合、お
よび結果として得られるオフセットが無効になる場合は、EINVAL
が設定されます。LUNIT がパイプまたは FIFO である場合は、
ESPIPE が設定されます。ファイルの終わりに到達した場合は、
EEND が設定されます。
PXFFSTAT
ファイル・ステータスを取得しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFFSTAT (IFILDES, JSTAT, IERROR)
INTEGER(4) IFILDES, JSTAT, IERROR
END SUBROUTINE PXFFSTAT
END INTERFACE
IFILDES
ファイルハンドル
JSTAT
PXFFSTAT 構造体へのポインタ
IERROR
戻り値
説明
このサブルーチンは、ファイルのステータスを取得します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-27
3
インテル ® Fortran ライブラリ・リファレンス
PXFFTELL
ファイルの先頭からの相対位置をバ
イトで返します。
プロトタイプ
INTERFACE
SUBROUTINE PXFFTELL (LUNIT, IOFFSET, IERROR)
INTEGER(4) LUNIT, IOFFSET, IERROR
END SUBROUTINE PXFFTELL
END INTERFACE
LUNIT
IOFFSET
IERROR
Fortran 論理装置。これは 0 〜 100 の範囲の値を持つ
INTEGER*4 式でなければなりません。
(出力)ファイルの先頭からの相対位置(バイト単
位)
戻り値
説明
このサブルーチンは、ファイルの先頭からの相対位置をバイト単位
で返します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-28
POSIX 関数
3
PXFGETARG
指定されたコマンドライン引数を取
得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETARG (ARGNUM, STR, ISTR, IERROR,&
LEN)
CHARACTER(LEN=*) STR
INTEGER(4) ARGNUM, ISTR, IERROR, LEN
END SUBROUTINE PXFGETARG
END INTERFACE
ARGNUM
( 入力 ) コマンドライン引数の数
STR
( 入力 / 出力 ) 必須引数の位置
ISTR
( 入力 ) 必須引数の位置の幅
IERROR
( 出力 ) エラー値
LEN
( 出力 ) 引数文字列の長さ
説明
このサブルーチンは、コマンドライン引数を返します。
出力
成功した場合は、IERROR にはゼロが設定され、STR はコマンドラ
イン引数に設定されます。LEN は、返されたコマンドライン引数の
長さに設定されます。
3-29
3
インテル ® Fortran ライブラリ・リファレンス
PXFGETC
標準入力である装置 5 から 1 文字を
読み取ります。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETC (NEXTCHAR, IERROR)
CHARACTER(LEN=1) NEXTCHAR
INTEGER(4) IERROR
END SUBROUTINE PXFGETC
END INTERFACE
NEXTCHAR
読み取られる文字
IERROR
戻り値
説明
このサブルーチンは、標準入力である装置 5 から 1 文字を読み取り
ます。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-30
POSIX 関数
3
PXFGETCWD
現在の作業ディレクトリのパスを取
り出します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETCWD (BUF, ILEN, IERROR)
CHARACTER(LEN=*) BUF
INTEGER(4) ILEN, IERROR
END SUBROUTINE PXFGETCWD
END INTERFACE
BUF
(出力)取り出されたパス名の格納領域
ILEN
(出力)取り出されたパス名の長さ
IERROR
戻り値
説明
このサブルーチンは、現在の作業ディレクトリのパスを取り出しま
す。
出力
成功した場合、IERROR はゼロが設定されます。BUF のサイズが不
十分な場合は EINVAL が設定されます。
3-31
3
インテル ® Fortran ライブラリ・リファレンス
PXFGETGRGID
指定した GID を持つエントリを取
得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETGRGID (JGID, JGROUP, IERROR)
INTEGER(4) IGID, JGROUP, IERROR
END SUBROUTINE PXFGETGRGID
END INTERFACE
JGID
グループ ID
JGROUP
(出力)構造体 PXFGROUP へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定したグループ ID を持つエントリを取得
します。
出力
成功した場合は、IERROR はゼロが設定されます。
PXFGETGRNAM
指定したグループ名を持つエントリ
を取得します。
プロトタイプ
INTERFACE
3-32
POSIX 関数
3
SUBROUTINE PXFGETGRNAM (NAME, ILEN, JGROUP,
IERROR)
CHARACTER(LEN=*) NAME
INTEGER(4) ILEN, JGROUP, IERROR
END SUBROUTINE PXFGETGRNAM
END INTERFACE
NAME
グループ名
ILEN
NAME 文字列の長さ
JGROUP
(出力)構造体 PXFGROUP へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定したグループ名を持つエントリを取得し
ます。
出力
成功した場合、IERROR は変更されません。
PXFGETPWNAM
指定したユーザ名を持つエントリを
取得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETPWNAM (NAME, ILEN, JPASSWD,
IERROR)
CHARACTER(LEN=*) NAME
INTEGER(4) JPASSWD, ILEN, IERROR
END SUBROUTINE
END INTERFACE
NAME
ユーザのログイン名
3-33
3
インテル ® Fortran ライブラリ・リファレンス
ILEN
NAME 文字列の長さ
JPASSWD
(出力)構造体 PXFPASSWD へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定したユーザ名を持つエントリを取得しま
す。例えば、実際の名前は "John Smith" であっても、ログイン名は
"jsmith" と指定できます。
出力
成功した場合、IERROR は変更されません。
PXFGETPWUID
指定した UID を持つエントリを取
得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETPWUID (IUID, JPASSWD, IERROR)
INTEGER(4) IUID, JPASSWD, IERROR
END SUBROUTINE PXFGETPWUID
END INTERFACE
IUID
ユーザ ID
JPASSWD
(出力)構造体 PXFPASSWD へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定したユーザ ID を持つエントリを取得し
ます。
3-34
POSIX 関数
3
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFGETSUBHANDLE
指定したサブルーチンのサブルーチ
ン・ハンドルを返します。
プロトタイプ
INTERFACE
SUBROUTINE PXFGETSUBHANDLE (SUB, JAHNDLE1,
IERROR)
INTEGER(4) JHANDLE1, IERROR
EXTERNAL SUB
END SUBROUTINE PXFGETSUBHANDLE
END INTERFACE
SUB
サブルーチンへのポインタ
JAHNDLE1
(出力)サブルーチンへのハンドル
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、指定したサブルーチンのサブルーチン・ハン
ドルを返します。
注:引数 SUB は、関数、組み込み、およびエントリー・ポイン
トとはせずに、ただ 1 つの整数引数で定義してください。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-35
3
インテル ® Fortran ライブラリ・リファレンス
PXFINTGET
構造体の整数成分を設定します。
プロトタイプ
INTERFACE
SUBROUTINE PXFINTGET (JHANDLE, COMPNAME,
VALUE, IERROR)
INTEGER(4) JHANDLE, VALUE, IERROR
CHARACTER(LEN=*) COMPNAME
END SUBROUTINE PXFINTGET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
VALUE
IERROR
(出力)成分の値が格納される場所
戻り値
説明
このサブルーチンは、構造体の整数成分を設定します。
出力
成功した場合は、IERROR にはゼロが設定されます。構造体にその
ような成分名がない場合は、ENONAME が設定されます。
3-36
POSIX 関数
3
PXFINTSET
構造体の整数成分を設定します。
プロトタイプ
INTERFACE
SUBROUTINE PXFINTSET (JHANDLE, COMPNAME,
VALUE, IERROR)
INTEGER(4) JHANDLE, IERROR, VALUE
CHARACTER(LEN=*) COMPNAME
END SUBROUTINE
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
VALUE
設定する値
IERROR
戻り値
説明
このサブルーチンは、構造体の整数成分を設定します。
出力
成功した場合は、IERROR にはゼロが設定されます。構造体にその
ような成分名がない場合は、ENONAME が設定されます。
3-37
3
インテル ® Fortran ライブラリ・リファレンス
PXFISBLK
ブロック型特殊ファイルを検査しま
す。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISBLK (M)
INTEGER(4) M
END FUNCTION PXFISBLK
END INTERFACE
M
構造体 PXFSTAT(stat) 内の ST_MODE 成分の値
説明
この関数は、ブロック型特殊ファイルを検査します。
出力
指定したファイルハンドルがブロック型装置に対応するかどうかを
示す論理値が返されます。ファイルがブロック・モード・ファイル
である場合は .TRUE. で、そうでない場合は .FALSE. です。
注意 : Win32 システムでは、この関数は常に -1 を返します ( 関数は
使用されません )。
3-38
POSIX 関数
3
PXFISCHR
キャラクタ・ファイルであるかどう
かチェックします。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISCHR (M)
INTEGER(4) m
END FUNCTION PXFISCHR
END INTERFACE
M
構造体PXFSTAT(stat)に含まれるST_MODE成分の値
説明
この関数は、ファイルがキャラクタ・ファイルであるかどうか
チェックします。
出力
指定したファイルハンドルが文字モード装置に対応するかどうかを
示す論理値が返されます。論理装置 M が文字モード装置に接続さ
れている場合は .TRUE. で、そうでない場合は .FALSE. です。
3-39
3
インテル ® Fortran ライブラリ・リファレンス
PXFISCONST
定数名に関連付けられた値を取り出
します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISCONST (M)
CHARACTER(LEN=*) M
END FUNCTION PXFISCONST
END INTERFACE
M
( 入力 ) 定数名
説明
このサブルーチンは、定数名に結合された値を取り出します。次の
シンボル定数の値を問い合わせできます。
STDIN_UNIT
STDOUT_UNIT
STDERR_UNIT
EINVAL
ENONAME
ENOHANDLE
EARRAYLEN
ETRUNC
出力
論理値が返されます。M が定数の 1 つである場合は .TRUE. を、そ
うでない場合は、.FALSE. を返します。
3-40
POSIX 関数
3
PXFISDIR
ディレクトリであるかどうかチェッ
クします。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISDIR (M)
INTEGER(4) M
END FUNCTION PXFISDIR
END INTERFACE
M
構造体PXFSTAT(stat)に含まれるST_MODE成分の値
説明
このサブルーチンは、成分がディレクトリであるかどうかチェック
します。
出力
Mがディレクトリを表すファイルハンドルである場合は.TRUE.を返
します。そうでない場合は .FALSE. を返します。
PXFISFIFO
ファイルが特殊 FIFO ファイルであ
るかどうかチェックします。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISFIFO (M)
INTEGER(4) M
END FUNCTION PXFISFIFO
3-41
3
インテル ® Fortran ライブラリ・リファレンス
END INTERFACE
M
構造体PXFSTAT(stat)に含まれるST_MODE成分の値
説明
この関数は、ファイルが PXFMKFIFO によって作成された特殊
FIFO ファイルであるかどうかチェックします。
注:Win32 システムでは、この関数は常に –1 のエラーコードを
返します。Win32 では、シンボリック・ファイル・リンクをサ
ポートしていません。
出力
ファイルが特殊 FIFO ファイルであるかどうかを示す .TRUE./
.FALSE. 論理値。
PXFISREG
ファイルが特殊 FIFO ファイルであ
るかどうかチェックします。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFISREG (M)
INTEGER(4) M
END FUNCTION PXFISREG
END INTERFACE
M
3-42
構造体PXFSTAT(stat)に含まれるST_MODE成分の値
POSIX 関数
3
説明
この関数は、LOGICAL(4) の値の .TRUE. / .FALSE. をチェッ
クして、問い合わせを受けたファイルが特殊 FIFO ファイルである
かどうか判断します。PXFISREG が真を返した場合、ファイルは通
常のファイルです。
出力
論理的な .TRUE. / .FALSE. の値です。
PXFKILL
指定したプロセスをキルします。
プロトタイプ
INTERFACE
SUBROUTINE PXFKILL (IPID, ISIG, IERROR)
INTEGER(4) IPID, ISIG, IERROR
END SUBROUTINE PXFKILL
END INTERFACE
IPID
キルするプロセスを値によって指定します。
>0
特定のプロセスがキルされます。
<0
グループ内のすべてのプロセスが
キルされます。
==0
グループ内の特殊プロセスを除く
すべてのプロセスがキルされま
す。
==pid_t-1
すべてのプロセスがキルされま
す。
ISIG
希望する信号の値
IERROR
戻り値
3-43
3
インテル ® Fortran ライブラリ・リファレンス
説明
このサブルーチンは、指定したプロセスをキルします。
出力
IERROR は、子プロセスが通常どおり終了した場合はゼロ以外を含
みます。Linux システムでは、成功した場合は IERROR にはゼロが
返され、失敗した場合は、IERROR = -1 になります。
PXFLINK
ファイル / ディレクトリにリンクし
ます。
プロトタイプ
INTERFACE
SUBROUTINE PXFLINK (EXISTING, LENEXIST, NEW,
LENNEW, IERROR)
CHARACTER(LEN=*) EXISTING, NEW
INTEGER(4) LENEXIST, LENNEW, IERROR
END SUBROUTINE PXFLINK
END INTERFACE
EXISTING
既存のファイル / ディレクトリ名
LENEXIST
EXISTING 文字列の長さ
NEW
新しいファイル / ディレクトリ名
LENNEW
NEW 文字列の長さ
IERROR
エラー・ステータス
説明
このサブルーチンは、ファイル / ディレクトリにリンクします。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-44
POSIX 関数
3
PXFLOCALTIME
与えられた経過秒数を現在のシステ
ム日付に変換します。
プロトタイプ
INTERFACE
SUBROUTINE PXFLOCALTIME (STIME, DATEARRAY,
IERROR)
INTEGER(4) ISECNDS, DATEARRAY(9), IERROR
END SUBROUTINE PXFLOCALTIME
END INTERFACE
STIME
グリニッジ標準時の1970年1月1日00:00:00からの経
過秒数
DATEARRAY
現在の日付とシステム時刻を含みます。
(1) 秒
(0 〜 59)
(2) 分
(0 〜 59)
(3) 時
(0 〜 23)
(4) 日
(1 〜 31)
(5) 月
(1 〜 12)
(6) 年
(グレゴリオ暦)(例 : 1990)
(7) 曜日
(0 〜 6、0 は日曜日)
(8) 年間通算日 (1 〜 366)
(9) 夏時間
(有効な場合は 1、そうでない場合
は 0)
IERROR
戻り値
説明
与えられた経過秒数を現在のシステム日付に変換します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-45
3
インテル ® Fortran ライブラリ・リファレンス
PXFLSEEK
ファイルを指定したバイト距離に置
きます。
プロトタイプ
INTERFACE
SUBROUTINE PXFLSEEK (IFILDES, OFFSET, WHENCE,
POSITION, IERROR)
INTEGER(4) IFILDES, OFFSET, WHENCE, POSITION,
IERROR
END SUBROUTINE PXFLSEEK
END INTERFACE
IFILDES
ファイル記述子
OFFSET
移動するバイト数
WHENCE
開始位置
POSITION
IERROR
(出力)終了位置
返されるエラーコード
説明
このサブルーチンは、WHENCE の入力値に基づいて、ファイルを指
定したバイト距離(オフセット)に置きます。ここで、WHENCE は
次のいずれかです。
SEEK_SET 0
SEEK_CUR 1
SEEK_END 2
WHENCE が SEEK_SET である場合、ファイルは、ファイルの先頭か
ら OFFSET バイトに置かれます。WHENCE が SEEK_CUR である場
合、ファイルは、ファイルの現在の位置から OFFSET バイトに置か
れます。WHENCE が SEEK_END である場合、ファイルは、行の末尾
を越えて OFFSET バイトに置かれます。
3-46
POSIX 関数
3
出力
成功した場合は、IERROR にはゼロが設定されます。
PKFMKDIR
ディレクトリを作成します。
プロトタイプ
INTERFACE
SUBROUTINE PXFMKDIR (PATH, ILEN, IMODE, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IMODE, IERROR
END SUBROUTINE PXFMKDIR
END INTERFACE
PATH
変更先のディレクトリ
ILEN
PATH 文字列の長さ
IMODE
モードマスク
IERROR
戻り値
説明
このサブルーチンは、ディレクトリを作成します。IMODE 値は
Linux システムのみでプロセスされ、ファイルアクセスの オクタル
のコードが設定されます。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-47
3
インテル ® Fortran ライブラリ・リファレンス
PXFMKFIFO
新しい FIFO を作成します。
プロトタイプ
INTERFACE
SUBROUTINE PXFMKFIFO (PATH, ILEN, IMODE,
IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IMODE, IERROR
END SUBROUTINE
END INTERFACE
PATH
作成する FIFO ファイルの名前
ILEN
PATH 文字列の長さ
IMODE
ファイルのアクセス許可(ビット)
IERROR
エラー・ステータス
説明
このサブルーチンは、新しい FIFO を作成します。
出力
Linux では、成功した場合は IERROR にゼロが設定されます。Win32
システムでは、成功した場合は IERROR は変更されません。
3-48
POSIX 関数
3
PXFOPEN
ファイルを作成したり、読み取り /
書き込み用に開きます。
プロトタイプ
INTERFACE
SUBROUTINE PXFOPEN (PATH, ILEN, IOPENFLAG,&
IMODE, IFILDES, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, OPENFLAG, IMODE, IFILDES, IERROR
END SUBROUTINE
END INTERFACE
PATH
ファイルのパス名
ILEN
PATH 文字列の長さ
IOPENFLAG
ファイルの開き方を指定します(読み取り / 書き込
み)。
IMODE
IOPENFLAG = O_CREAT である場合は、新しく作
成したファイルのモード
IFILDES
IERROR
(出力)ファイル記述子
戻り値
説明
このサブルーチンは、ファイルを作成したり、既存のファイルを読
み取り / 書き込み用に開きます。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-49
3
インテル ® Fortran ライブラリ・リファレンス
PXFOPENDIR
ディレクトリを開き、そのディレク
トリにストリームを結合します。
プロトタイプ
INTERFACE
SUBROUTINE PXFOPENDIR (DIRNAME, LENDIRNAME,
OPENDIRID, IERROR)
CHARACTER(LEN=*) DIRNAME
INTEGER(4) LENDIRNAME, IOPENDIRID, IERROR
END SUBROUTINE PXFOPENDIR
END INTERFACE
DIRNAME
ディレクトリ名
LENDIRNAME
DIRNAME 文字列の長さ
OPENDIRID
(出力)DIR 構造体へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、ディレクトリを開き、そのディレクトリにス
トリームを結合します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-50
POSIX 関数
3
PXFPIPE
2 つのプロセス間に通信パイプを作
成します。
プロトタイプ
INTERFACE
SUBROUTINE PXFPIPE (IREADFD, IWRITEFD, IERROR)
INTEGER(4) IREADFD, IWRITEFD, IERROR
END SUBROUTINE PXFPIPE
END INTERFACE
IREADFD
(出力)読み取り側のファイル記述子
IWRITEFD
(出力)書き込み側のファイル記述子
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、2 つのプロセス間に通信パイプを作成します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-51
3
インテル ® Fortran ライブラリ・リファレンス
PXFPUTC
論理装置 6(stdout) に 1 文字を出力し
ます。
プロトタイプ
INTERFACE
SUBROUTINE PXFPUTC (CH, IERROR)
CHARACTER(LEN=1) CH
INTEGER(4) IERROR
END SUBROUTINE PXFPUTC
END INTERFACE
CH
書き込まれる文字
IERROR
返されるエラーコード
説明
このサブルーチンは、論理装置 6(stdout) に 1 文字を出力します。
出力
成功した場合は、IERROR にはゼロが設定されます。ファイルの終
わりが検出された場合は、EEND が設定されます。
3-52
POSIX 関数
3
PXFREAD
ファイルから読み取ります。
プロトタイプ
INTERFACE
SUBROUTINE PXFREAD (IFILDES, CHAR, NBYTE, NREAD,
IERROR)
INTEGER(4) IFILDES
CHARACTER(LEN=*) BUF
INTEGER(4) NBYTE, NREAD, IERROR
END SUBROUTINE
END INTERFACE
IFILDES
読み取られるファイルの記述子
CHAR
書き込まれるバッファ
NBYTE
読み取るバイト数
NREAD
(出力)読み取られたバイト数
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、ファイルから指定したバイト数を読み取りま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。エラーが発生
した場合は、NREAD は不定です。
3-53
3
インテル ® Fortran ライブラリ・リファレンス
PXFREADDIR
現在のディレクトリ・エントリを読
み取ります。
プロトタイプ
INTERFACE
SUBROUTINE PXFREADDIR (IDIRID, JDIRENT, IERROR)
INTEGER(4) IDIRID, JDIRENT, IERROR
END SUBROUTINE PXFREADDIR
END INTERFACE
IDIRID
DIR 構造体へのポインタ
JDIRENT
(出力)PXFDIRENT 構造体へのポインタ
IERROR
(出力)エラー・ステータス
説明
このサブルーチンは、現在のディレクトリ・エントリを読み取りま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFRENAME
ファイル名を変更します。
プロトタイプ
INTERFACE
SUBROUTINE PXFRENAME (OLD, LENOLD, NEW, LENNEW,
IERROR)
3-54
POSIX 関数
3
CHARACTER(LEN=*) OLD, NEW
INTEGER(4) LENOLD, LENNEW, IERROR
END SUBROUTINE PXFRENAME
END INTERFACE
OLD
古いファイル名
LENOLD
OLD 文字列の長さ
NEW
新しいファイル名
LENNEW
NEW 文字列の長さ
IERROR
戻り値
説明
このサブルーチンは、ファイル名を変更します。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFREWINDDIR
ストリームの位置をディレクトリの
先頭にリセットします。
プロトタイプ
INTERFACE
SUBROUTINE PXFREWINDDIR (IDIRID, IERROR)
INTEGER(4) IDIRID, IERROR
END SUBROUTINE PXFREWINDDIR
END INTERFACE
IDIRID
IERROR
DIR 構造体へのポインタ
(出力)エラー・ステータス
3-55
3
インテル ® Fortran ライブラリ・リファレンス
説明
このサブルーチンは、ストリームの位置をディレクトリの先頭にリ
セットします。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFRMDIR
ディレクトリを削除します。
プロトタイプ
INTERFACE
SUBROUTINE PXFRMDIR (PATH, ILEN, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IERROR
END SUBROUTINE PXFRMDIR
END INTERFACE
PATH
削除されるディレクトリ
ILEN
PATH 文字列の長さ
IERROR
戻り値
説明
このサブルーチンは、ディレクトリを削除します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-56
POSIX 関数
3
PXFSIGADDSET
集合に信号を追加します。
プロトタイプ
INTERFACE
SUBROUTINE PXFSIGADDSET (JSIGNET, ISIGNO, IERROR)
INTEGER(4) JSIGNSET, ISIGNO, IERROR
END SUBROUTINE PXFSIGADDSET
END INTERFACE
JSIGNET
ISIGNO
IERROR
PXFSTRUCTURECREATE によって作成されたビッ
トベクトル構造体
(入力)集合に追加される信号
戻りコード
説明
集合 JSIGNET に信号を追加します。
注:JSIGNSET 構造体を作成するには、PXFSTRUCTURECREATE
サブルーチンを使用しなければなりません。PXFFORK の結果と
して起動された子アプリケーションは、JSIGNSET を継承しませ
ん。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-57
3
インテル ® Fortran ライブラリ・リファレンス
PXFSIGDELSET
集合からの信号を削除します。
プロトタイプ
INTERFACE
SUBROUTINE PXFSIGDELSET (JSIGSET, ISIGNO, IERROR)
INTEGER(4) JSIGSET, ISIGNO, IERROR
END SUBROUTINE PXFSIGDELSET
END INTERFACE
JSIGNET
ISIGNO
IERROR
信号のグループ (PXFSTRUCTURECREATE によって
取得 ) を表す集合
(入力)集合から削除される信号
戻りコード
説明
集合 JSIGNSET から信号 ISIGNO の値を削除します。信号が削除
された後では、その信号が発生してもアプリケーションによって
「キャッチ」されずに、再送信されるため、致命的なアプリケー
ション・エラーを起こす可能性があります。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-58
POSIX 関数
3
PXFSIGEMPTYSET
信号集合が空であるかどうか判定し
ます。
プロトタイプ
INTERFACE
SUBROUTINE PXFSIGEMPTYSET (JSIGSET, IERROR)
INTEGER(4) JSIGSET, IERROR
END SUBROUTINE
END INTERFACE
JSIGNET
信号のグループ (PXFSTRUCTURECREATE によって
取得 ) を表す集合
IERROR
戻りコード
説明
JSIGNSET によって与えられた集合が空であるかどうかを検査しま
す。
注:JSIGNSET 構造体を作成するには、PXFSTRUCTURECREATE
サブルーチンを使用しなければなりません。
出力
成功した場合は、IERROR にはゼロが設定されます。空でない集合
の場合は、ゼロ以外が設定されます。
3-59
3
インテル ® Fortran ライブラリ・リファレンス
PXFSIGFILLSET
信号集合を埋めます。
プロトタイプ
INTERFACE
SUBROUTINE PXFSIGFILLSET (JSIGSET, IERROR)
INTEGER(4) JSIGSET, IERROR
END SUBROUTINE PXFSIGFILLSET
END INTERFACE
JSIGNET
信号のグループ (PXFSTRUCTURECREATE によって
取得 ) を表す集合
IERROR
戻りコード
説明
このサブルーチンは、JSIGNSET に信号を追加します。これは集合
の初期化に便利です。
注:JSIGNSET 構造体を作成するには、PXFSTRUCTURECREATE
サブルーチンを使用しなければなりません。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-60
POSIX 関数
3
PXFSIGISMEMBER
信号が集合のメンバーであるかどう
かチェックします。
プロトタイプ
INTERFACE
SUBROUTINE PXFSIGISMEMBER (JSIGSET, ISIGNO,
ISMEMBER,
IERROR)
INTEGER(4) JSIGSET, ISIGNO, IERROR
LOGICAL(4) ISMEMBER
END SUBROUTINE PXFSIGISMEMBER
END INTERFACE
JSIGNET
(入力)信号のグループ (PXFSTRUCTURECREATE
によって取得 ) を表す集合
ISIGNO
(入力)帰属関係を検査される信号
ISMEMBER
(出力)論理結果
IERROR
(出力)戻りコード
説明
このサブルーチンは、指定した信号が指定した集合のメンバーであ
るかどうかチェックします。
出力
真である場合は、ISMEMBER には .TRUE. が含まれます。そうでな
い場合は、.FALSE. が設定されます。
3-61
3
インテル ® Fortran ライブラリ・リファレンス
PXFSTAT
ファイルのステータスを取得しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFSTAT (PATH, ILEN, JSTAT, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, JSTAT, IERROR
END SUBROUTINE PXFSTAT
END INTERFACE
PATH
(入力)ファイル名
ILEN
(入力)PATH 文字列の長さ
JSTAT
(入力)PXFSTAT 構造体へのポインタ
IERROR
(出力)戻り値
説明
このサブルーチンは、ファイルのステータスを取得します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-62
POSIX 関数
3
PXFSTRGET
構造体の整数成分を取得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFSTRGET (JHANDLE, COMPNAME, INDEX,
VALUE, ILEN, IERROR)
INTEGER(4) JHANDLE, INDEX, ILEN, IERROR
CHARACTER(LEN=*) COMPNAME, VALUE
END SUBROUTINE PXFSTRGET
END INTERFACE
JHANDLE
構造体へのハンドル
COMPNAME
成分名
INDEX
成分のインデックス
VALUE
(出力)成分の値が格納される場所
ILEN
(出力)VALUE 文字列の長さ
IERROR
戻り値
説明
このサブルーチンは、構造体の整数成分を取得します。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-63
3
インテル ® Fortran ライブラリ・リファレンス
PXFSTRUCTCOPY
ある構造体の内容を別の構造体にコ
ピーします。
プロトタイプ
INTERFACE
SUBROUTINE PXFSTRUCTCOPY (STRUCTNAME, JHANDLE1,
JHANDLE2, IERROR)
INTEGER(4) JHANDLE1, JHANDLE2, IERROR
CHARACTER(LEN=*) STRUCTNAME
END SUBROUTINE PXFSTRUCTCOPY
END INTERFACE
STRUCTNAME
(入力)構造体名
JHANDLE1
コピー元の構造体へのハンドル ???
JHANDLE2
コピー先の構造体へのハンドル ???
IERROR
( 出力 ) 戻り値
説明
このサブルーチンは、ある構造体の内容を別の構造体にコピーしま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-64
POSIX 関数
3
PXFSTRUCTCREATE
指定した構造体のインスタンスを作
成します。
プロトタイプ
INTERFACE
SUBROUTINE PXFSTRUCTCREATE (STRUCTNAME, JHANDLE,
IERROR)
CHARACTER(LEN=*) STRUCTNAME
INTEGER(4) JHANDLE, IERROR
END SUBROUTINE PXFSTRUCTCREATE
END INTERFACE
STRUCTNAME
(入力)構造体名
JHANDLE
(出力)構造体へのハンドル
IERROR
(出力)戻り値
説明
このサブルーチンは、指定した構造体のインスタンスを作成しま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-65
3
インテル ® Fortran ライブラリ・リファレンス
PXFSTRUCTFREE
構造体のインスタンスを削除しま
す。
プロトタイプ
INTERFACE
SUBROUTINE PXFSTRUCTFREE (JHANDLE, IERROR)
INTEGER(4) JHANDLE, IERROR
END SUBROUTINE PXFSTRUCTFREE
END INTERFACE
JHANDLE
(入力)構造体へのハンドル
IERROR
(出力)戻り値
説明
このサブルーチンは、構造体のインスタンスを削除します。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFUCOMPARE
2 つの符号なし数値を比較して、そ
の差の絶対値を返します。
プロトタイプ
INTERFACE
SUBROUTINE PXFUCOMPARE (I1, I2, ICMPR, IDIFF)
INTEGER(4) I1, I2, ICMPR, IDIFF
END SUBROUTINE PXFUCOMPARE
3-66
POSIX 関数
3
END INTERFACE
I1、I2
比較する 2 つの符号なし整数
ICMPR
(出力)比較の結果 (-1,0,1)
IDIFF
(出力)差の絶対値
説明
このサブルーチンは、2 つの符号なし数値を比較して、その差の絶
対値を返します。
出力
完了時の ICMPR の値は次のとおりです。
-1
I1 < I2 の場合
0
I1 = I2 の場合
1
I1 > I2 の場合
PXFUMASK
ファイル生成マスクを設定および取
得します。
プロトタイプ
INTERFACE
SUBROUTINE PXFUMASK (ICMASK, IPREVCMASK, IERROR)
INTEGER(4) ICMASK, IPREVCMASK, IERROR
END SUBROUTINE PXFUMASK
END INTERFACE
ICMASK
(入力)設定マスク
IPREVCMASK
(出力)以前のマスク
IERROR
(出力)戻り値
3-67
3
インテル ® Fortran ライブラリ・リファレンス
説明
このサブルーチンは、ファイル生成マスクを設定および取得しま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFUNLINK
指定したディレクトリ・エントリを
削除します。
プロトタイプ
INTERFACE
SUBROUTINE PXFUNLINK (PATH, ILEN, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, IERROR
END SUBROUTINE PXFUNLINK
END INTERFACE
PATH
(入力)ディレクトリ・エントリの名前
ILEN
(入力)PATH 文字列の長さ
IERROR
(出力)戻り値
説明
このサブルーチンは、指定したディレクトリ・エントリを削除しま
す。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-68
POSIX 関数
3
PXFUTIME
ファイルのアクセス時刻と変更時刻
を設定します。
プロトタイプ
INTERFACE
SUBROUTINE PXFUTIME (PATH, ILEN, JUTIMBUG, IERROR)
CHARACTER(LEN=*) PATH
INTEGER(4) ILEN, JUTIMBUF, IERROR
END SUBROUTINE PXFUTIME
END INTERFACE
PATH
(入力)ファイル名
ILEN
(入力)PATH 文字列の長さ
JUTIMBUG
(入力)PXFUTIMBUF 構造体へのポインタ
IERROR
(出力)戻り値
説明
このサブルーチンは、ファイルのアクセス時刻と変更時刻を設定し
ます。
出力
成功した場合は、IERROR にはゼロが設定されます。
3-69
3
インテル ® Fortran ライブラリ・リファレンス
PXFWAIT
子プロセスを待ちます。
プロトタイプ
INTERFACE
SUBROUTINE PXFWAIT (ISTATE, IRETPID, IERROR)
INTEGER(4) ISTAT, IRETPID, IERROR
END SUBROUTINE PXFWAIT
END INTERFACE
ISTATE
(出力)子プロセスのステータス
IRETPID
(入出力)関数の呼び出し時に待つプロセス ID。返
される停止した子プロセスのプロセス ID。
IERROR
(出力)エラー値
説明
このサブルーチンは、子プロセスを待ちます。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFWAITPID
特定の PID を待ちます。
プロトタイプ
INTERFACE
SUBROUTINE PXFWAITPID (IPID, ISTAT, IOPTIONS,
IRETPID, IERROR)
INTEGER(4) IPID, ISTAT, IOPTIONS, IRETPID, IERROR
3-70
POSIX 関数
3
END SUBROUTINE PXFWAITPID
END INTERFACE
IPID
(入力)待つ対象の PID を指定します。
ISTAT
(出力)子プロセスのステータス
IOPTIONS
(入力)Linux では、
/usr/include/sys/wait.h を調べてオプショ
ンの値をチェックします (WCONTINUED、
WNOHANG、WNOWAIT、WUNTRACED)。Win32 シス
テムでは、include\process.h ファイル内の
MSVC システムをチェックします。
IRETPID
(出力)停止した子の pid
IERROR
(出力)エラー値
説明
このサブルーチンは、特定の PID を待ちます。
出力
WAITPID ルーチンをトリガして待機状態を停止させた子プロセスの
PID とステータスです。
PXFWIFEXITED
子プロセスが終了したかどうか判定
します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWIFEXITED (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWIFEXITED
END INTERFACE
3-71
3
インテル ® Fortran ライブラリ・リファレンス
ISTAT
(出力)PXFWEXITSTATUS から取得した整数ス
テータス
説明
子プロセスが終了したかどうか検査します。
出力
子プロセスが終了した場合は .TRUE. を返し、終了していない場合
は .FALSE. を返します。
PXFWEXITSTATUS
子プロセスの現在のステータスを返
します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWEXITSTATUS (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWEXITSTATUS
END INTERFACE
ISTAT
(出力)INTEGER*4 変数
説明
PXFFORK によって作成された子プロセスの終了ステータスを返しま
す。入力では、ISTAT には子プロセスのプロセス ID が含まれてい
ます。
出力
ISTAT には子プロセスの終了ステータス値が設定され、この値は
PXFWIFEXITED、PXFWIFSIGNALED、PXFWTERMSIG、または
PXFWIFSTOPPED によって解釈できます。子プロセスが見つからな
かった場合、この関数は .FALSE. を返します。
3-72
POSIX 関数
3
PXFWIFSIGNALED
子プロセスが信号によって終了した
かどうか判断します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWIFSIGNALED (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWIFSIGNALED
END INTERFACE
ISTAT
(出力)子プロセスに関して、前に呼び出した
PXFWAIT や PXFWAITPID から返されたステータス
変数。
説明
PXFWIFSIGNALED は、子プロセスに関して、前に呼び出した
PXFWAITPID から返されたステータス・コードを評価します。子プ
ロセスが信号の脱落によって終了した場合は、PXFWIFSIGNALED は
.TRUE. を返します。
出力
問い合わせが正しく行われた場合は、IERROR にはゼロが設定され
ます。関数の結果は、子 PID が終了した場合は .TRUE. で、子がま
だ活動状態であるか中断されている場合は .FALSE. です。
3-73
3
インテル ® Fortran ライブラリ・リファレンス
PXFWIFSTOPPED
子プロセスが現在停止または中断し
ているかどうか判断します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWIFSTOPPED (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWIFSTOPPED
END INTERFACE
ISTAT
(出力)子プロセスに関して、前に呼び出した
PXFWAIT や PXFWAITPID から返されたステータ
ス変数。
説明
PXFIFSTOPPED は、入力ステータス・コードを評価して、特定の子
プロセスが現在停止しているかどうか判断します。
出力
問い合わせが正しく行われた場合は、IERRO にはゼロが設定されま
す。関数の結果は、子 PID が停止した場合は .TRUE. であり、停止
していない場合は .FALSE. です。
PXFWRITE
ファイルに書き込みます。
プロトタイプ
INTERFACE
3-74
POSIX 関数
3
SUBROUTINE PXFWRITE (IFILDES, BUF, NBYTE,
NWRITTEN, IERROR)
INTEGER(4) IFILDES, NBYTE, NWRITTE, IERROR
CHARACTER BUF(LEN=*)
END SUBROUTINE PXFWRITE
END INTERFACE
IFILDES
(入力)書き込み先の記述子
BUF
(入力)書き込み元のバッファ
NBYTE
(入力)書き込むバイト数
NWRITTEN
(出力)書き込まれたバイト数
IERROR
(出力)返されるエラーコード
説明
このサブルーチンは、ファイルに出力を書き込みます。
出力
成功した場合は、IERROR にはゼロが設定されます。
PXFWSTOPSIG
子プロセスを停止させた信号の番号
を取得します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWSTOPSIG (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWSTOPSIG
END INTERFACE
ISTAT
(出力)入力では、子プロセス ID を表す整数値。出
力では、子プロセスを終了させた信号の値。
3-75
3
インテル ® Fortran ライブラリ・リファレンス
説明
この関数は、子プロセスを停止させた信号の番号を取得します。
出力
成功した場合は、ISTAT には信号値が含まれ、関数は .TRUE. を
返します。失敗した場合、関数は .FALSE. を返し、ISTAT は変更
されません。
PXFWTERMSIG
子プロセスを終了させた信号の番号
を取得します。
プロトタイプ
INTERFACE
LOGICAL(4) FUNCTION PXFWTERMSIG (ISTAT)
INTEGER(4) ISTAT
END FUNCTION PXFWTERMSIG
END INTERFACE
ISTAT
(入力 / 出力)入力ではプロセス ID、出力では信号
番号。
説明
この関数は、入力での ISTAT のプロセス ID によって定義される子
プロセスを終了させた信号の番号を取得します。
出力
成功した場合は、.TRUE. を返し、ISTAT に信号値を返します。失
敗した場合は、.FALSE. を返し、ISTAT は変更されません。
3-76
QuickWin ライブラリ
本章では、QuickWin ライブラリ(libqwin.lib)にある手続きに
ついて説明します。これらの手続きは、ユーザが /MW オプションを
呼び出して flib.fd インクルード・ファイルを使用する際に、コンパ
イラが利用できます。
INTERFACE 呼び出しを使用してプロトタイプを記述します。
INTERFACE 呼び出しでは、指定された手続きへの呼び出しに必要
な情報を提供しています。引用仕様宣言および /MW オプションにつ
いては、『インテル ® Fortran コンパイラ・ユーザーズ・ガイド』を
参照してください。
QuickWin ライブラリを使用すれば、プログラムを単純な Windows
アプリケーションにコンパイルでき、グラフィックス・ルーチンの
呼び出し、ビットマップのロードや保存、編集の実行、およびウィ
ンドウで行うことができるその他の操作が可能になります。
QuickWin ライブラリを使用するには、ユーザ・プログラムは次の
文によって明示的にこれらのライブラリ手続きを参照しなければな
りません。
INCLUDE
“<installation directory>\include\flib.fd”
手続きに PROGRAM 文がない場合は、グラフィックス呼び出しを
行う副プログラムに上記の文を記述しておく必要があります。本章
では、QuickWin ライブラリ手続きの主要グループについて以降の
節で説明します。
•
•
QuickWin サブルーチンおよび関数
グラフィックス・サブルーチンおよび関数
4-1
4
インテル ® Fortran ライブラリ・リファレンス
QuickWin サブルーチンおよび関数
このカテゴリには、ウィンドウの制御と設定、QuickWin アプリ
ケーションの機能拡張、およびカラー変換を行うサブルーチンと関
数が含まれます。このグループの手続きを使用するには、手続きが
記述されているプログラム単位に次の文を追加してください。
INCLUDE
“<installation directory>\include\flib.fd”
表 4-1
QuickWin ルーチン
名前 / 構文
サブルーチン
/ 関数
説明
ウィンドウ制御
FOCUSQQ
関数
指定したウィンドウに
フォーカスを設定します。
関数
現在活動状態の子ウィンド
ウの装置番号を返します。
関数
Windows ハンドルを必要と
する関数のために、ウィン
ドウ装置番号を Windows
ハンドルに変換します。
関数
現在のウィンドウ・プロパ
ティを返します。
関数
ウィンドウの大きさと位置
を返します。
関数
どのウィンドウが活動状態
でフォーカスを持っている
かを示します。
関数
子ウィンドウを活動状態に
しますが、フォーカスは与
えません。
関数
現在のウィンドウのプロパ
ティを設定します。
result = FOCUSQQ (iunit)
GETACTIVEQQ
result = GETACTIVEQQ ( )
GETHWNDQQ
result = GETHWNDQQ (unit)
GETWINDOWCONFIG
result = GETWINDOWCONFIG (wc)
GETWSIZEQQ
result = GETWSIZEQQ (unit,
ireq, winfo)
INQFOCUSQQ
result = INQFOCUSQQ (unit)
SETACTIVEQQ
result = SETACTIVEQQ (unit)
SETWINDOWCONFIG
result = SETWINDOWCONFIG (wc)
次ページにつづく
4-2
QuickWin ライブラリ
表 4-1
4
QuickWin ルーチン (続き)
名前 / 構文
サブルーチン
/ 関数
SETWSIZEQQ
関数
ウィンドウの大きさと位置
を設定します。
関数
カスタマイズされたテキス
トを含む「About」ボック
スを追加します。
関数
メニュー項目を追加しま
す。
関数
メニュー項目のクリックま
たは選択の効果をシミュ
レートします。
関数
メニュー項目を削除しま
す。
関数
QuickWin アプリケーショ
ンの終了動作の設定を返し
ます。
関数
キーボードからの 1 文字の
入力を読み取り、バッファ
に保存せずにその文字を表
す ASCII 値を返します。
関数
メニューの初期設定や初期
フレーム・ウィンドウを制
御します。
関数
メニュー項目を挿入しま
す。
関数
メッセージ・ボックスを表
示します。
result = SETWSIZEQQ (unit,
winfo)
説明
QuickWin アプリケーションの機能拡張
ABOUTBOXQQ
result = ABOUTBOXQQ (cstring)
APPENDMENUQQ
result = APPENDMENUQQ (menuID,
flags, text, routine)
CLICKMENUQQ
result = CLICKMENUQQ (item)
DELETEMENUQQ
result = DELETEMENUQQ (menuID,
itemID)
GETEXITQQ
result = GETEXITQQ ( )
INCHARQQ
result = INCHARQQ ( )
INITIALSETTINGS
result = INITIALSETTINGS ( )
INSERTMENUQQ
result = INSERTMENUQQ (menuID,
itemID, flag, text, routine)
MESSAGEBOXQQ
result = MESSAGEBOXQQ (msg,
caption, mtype)
次ページにつづく
4-3
4
インテル ® Fortran ライブラリ・リファレンス
表 4-1
QuickWin ルーチン (続き)
名前 / 構文
サブルーチン
/ 関数
MODIFYMENUFLAGSQQ
関数
メニュー項目の状態を変更
します。
関数
メニュー項目のコールバッ
ク・ルーチンを変更しま
す。
関数
メニュー項目のテキスト文
字列を変更します。
REGISTERMOUSEEVENT
result = REGISTERMOUSEEVENT
(unit, mouseevents,
callbackroutine)
関数
アプリケーション定義の
ルーチンを、マウスイベン
トの際に呼び出されるルー
チンとして登録します。
SETEXITQQ
result = SETEXITQQ (exitmode)
関数
QuickWin アプリケーショ
ンの終了動作を設定しま
す。
SETMESSAGEQQ
CALL SETMESSAGEQQ (msg, id)
サブルーチン
QuickWin のステータス・
バー・メッセージ、状態
メッセージ、ダイアログ・
ボックス・メッセージを変
更します。
SETWINDOWMENUQQ
result = SETWINDOWMENUQQ
(menuID)
関数
現在の子ウィンドウ名一覧
が追加されるメニューを設
定します。
UNREGISTERMOUSEEVENT
result = UNREGISTERMOUSEEVENT
(unit, mouseevents)
関数
REGISTERMOUSEEVENT
によって登録されたルーチ
ンを削除します。
WAITONMOUSEEVENT
result = WAITONMOUSEEVENT
(mouseevents, keystate, x, y)
関数
マウスイベントが起こるま
で返らないようにします。
result = MODIFYMENUFLAGSQQ
(menuID, itemID, flag)
MODIFYMENUROUTINEQQ
result = MODIFYMENUROUTINEQQ
(menuIdD, itemID, routine)
MODIFYMENUSTRINGQQ
result = MODIFYMENUSTRINGQQ
(menuID, itemID, text)
説明
次ページにつづく
4-4
QuickWin ライブラリ
表 4-1
4
QuickWin ルーチン (続き)
サブルーチン
/ 関数
名前 / 構文
説明
カラー変換
INTEGERTORGB
CALL INTEGERTORGB (rgb, red,
green, blue)
サブルーチン
RGB 色値を赤、緑、青の
各成分に変換します。
RGBTOINTEGER
関数
RGB ルーチンで使用する
ために、赤、緑、青の色で
指定される整数を RGB 整
数に変換します。
result = RGBTOINTEGER (red,
green, blue)
グラフィックス手続き
QuickWin ランタイム・ライブラリは、グラフィックス・プログラ
ムを単純な Windows アプリケーションに変換するのに役立ちます。
QuickWin アプリケーションでは、ピクセルを基本としたグラ
フィックス、実座標のグラフィックス、テキスト・ウィンドウ、文
字フォント、ユーザ定義のメニュー、マウスイベント、およびテキ
ストまたはグラフィックス(あるいはその両方)の編集(選択、コ
ピー、貼り付け)をサポートしています。
QuickWin ライブラリを使用するには、オプション /MW でコンパイ
ラ・ドライバを呼び出して、QuickWin ライブラリ libqwin.lib
にリンクし、QuickWin 手続きが記述されているプログラム単位に、
次の文を追加してください。
INCLUDE
“<installation directory>\include\flib.fd”
QuickWin を使用しない場合は、代わりにデフォルトでライブラリ
libqwind.lib にリンクします。このライブラリは、QuickWin 関数
の仮バージョンで構成され、リンク時の引用が未解決になるのを防
止します。
QuickWin アプリケーションを DLL にはできないこと、また
QuickWin は DLL に含まれているランタイム・ルーチンとはリンク
できないことに注意してください。
4-5
4
インテル ® Fortran ライブラリ・リファレンス
表 4-2 では、グラフィックス手続きについて要約しています。アプ
リケーションを記述するときには、大文字と小文字のどちらも使用
できます。
表 4-2
グラフィックス・ルーチンおよび関数の要約
名前 / 構文
サブルーチン
/ 関数
説明
ARC, ARC_W
関数
楕円弧を描画します。
サブルーチン
画面、ビューポート、また
はテキスト・ウィンドウを
クリアします。
関数
グラフィックス関数。カー
ソルの可視性を制御しま
す。
ELLIPSE, ELLIPSE_W
result = ELLIPSE (control, x1,
y1, x2, y2)
result = ELLIPSE_W (control,
wx1, wy1, wx2, wy2)
関数
円または楕円を描画しま
す。
FLOODFILL, FLOODFILL_W
result = FLOODFILL (x, y,
bcolor)
result = FLOODFILL_W (wx, wy,
bcolor)
関数
画面上の閉じた領域を、現
在の塗りつぶしマスクと現
在の色指標を使用して塗り
つぶします。
FLOODFILLRGB, FLOODFILLRGB_W
result = FLOODFILLRGB (x, y,
color)
result = FLOODFILLRGB_W (wx,
wy, color)
関数
画面上の閉じた領域を、現
在の塗りつぶしマスクと現
在の RGB 色を使用して塗
りつぶします。
result = ARC (x1, y1, x2, y2,
x3, y3, x4, y4)
result = ARC_W (wx1, wy1, wx2,
wy2, wx3, wy3, wx4, wy4)
CLEARSCREEN
CALL CLEARSCREEN (area)
DISPLAYCURSOR
result = DISPLAYCURSOR (toggle)
次ページにつづく
4-6
QuickWin ライブラリ
表 4-2
4
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
GETARCINFO
result = GETARCINFO (pstart,
pend, ppaint)
関数
最後に描画した円弧やパイ
の終点を決定します。
GETBKCOLOR
result = GETBKCOLOR ( )
関数
現在の背景の色指標を返し
ます。
GETBKCOLORRGB
result = GETBKCOLORRGB ( )
関数
現在の背景の RGB 色値を
返します。
GETCOLOR
result = GETCOLOR ( )
関数
現在の色指標を返します。
GETCOLORRGB
result = GETCOLORRGB ( )
関数
現在の RGB 色値を返しま
す。
GETCURRENTPOSITION,
GETCURRENTPOSITION_W
サブルーチン
現在のグラフィックス出力
位置の座標を返します。
GETFILLMASK
CALL GETFILLMASK (mask)
サブルーチン
現在の塗りつぶしマスクを
返します。
GETFONTINFO
result = GETFONTINFO (font)
関数
現在のフォント特性を返し
ます。
GETGTEXTEXTENT
result = GETGTEXTEXTENT (text)
関数
現在のフォントを使用して
指定された文字列を表示す
るために必要とされる幅を
決定します。
GETGTEXTROTATION
result = GETGTEXTROTATION ( )
関数
テキストの現在の向きを取
得します。
GETIMAGE, GETIMAGE_W
サブルーチン
画面イメージをメモリに保
存します。
CALL GETCURRENTPOSITION (t)
CALL GETCURRENTPOSITION_W (wt)
CALL GETIMAGE (x1, y1, x2, y2,
image)
CALL GETIMAGE_W (wx1, wy1, wx2,
wy2, image)
次ページにつづく
4-7
4
インテル ® Fortran ライブラリ・リファレンス
表 4-2
グラフィックス・ルーチンおよび関数の要約 (続き)
サブルーチン
/ 関数
説明
GETLINESTYLE
result = GETLINESTYLE ( )
関数
現在の線種を返します。
GETPHYSCOORD
CALL GETPHYSCOORD (x, y, t)
サブルーチン
ビューポート座標を物理座
標に変換します。
GETPIXEL, GETPIXEL_W
関数
ピクセルの色指標を返しま
す。
関数
ピクセルの RGB 色値を返
します。
GETPIXELS
CALL GETPIXELS (n, x, y, color)
関数
複数のピクセルの色指標を
返します。
GETPIXELSRGB
CALL GETPIXELSRGB (n, x, y,
color)
関数
複数のピクセルの RGB 色
値を返します。
GETTEXTCOLOR
関数
現在のテキストの色指標を
返します。
GETTEXTCOLORRGB
result = GETTEXTCOLORRGB ( )
関数
現在のテキストの RGB 色
値を返します。
GETTEXTPOSITION
CALL GETTEXTPOSITION (t)
サブルーチン
現在のテキスト出力位置を
返します。
GETTEXTWINDOW
CALL GETTEXTWINDOW (r1, c1, r2,
c2)
サブルーチン
現在のテキスト・ウィンド
ウの境界を返します。
GETVIEWCOORD, GETVIEWCOORD_W
サブルーチン
物理座標またはウィンドウ
座標をビューポート座標に
変換します。
サブルーチン
ビューポート座標をウィン
ドウ座標に変換します。
名前 / 構文
result = GETPIXEL (x, y)
result = GETPIXEL_W (wx, wy)
GETPIXELRGB, GETPIXELRGB_W
result = GETPIXELRGB (x, y)
result = GETPIXELRGB_W (wx, wy)
result = GETTEXTCOLOR ( )
CALL GETVIEWCOORD (x, y, t)
CALL GETVIEWCOORD_W (wx, wy,
wt)
GETWINDOWCOORD
CALL GETWINDOWCOORD (x, y, wt)
次ページにつづく
4-8
QuickWin ライブラリ
表 4-2
4
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
GETWRITEMODE
result = GETWRITEMODE ( )
関数
現在の論理書き込みモード
を返します。
GRSTATUS
result = GRSTATUS ( )
関数
直前に呼び出したグラ
フィックス・ルーチンのス
テータス ( 成功または失敗 )
を返します。
IMAGESIZE, IMAGESIZE_W
関数
イメージの大きさをバイト
数で返します。
INITIALIZEFONTS
result = INITIALIZEFONTS ( )
関数
フォント・ライブラリを初
期化します。
LINETO, LINETO_W
result = LINETO (x, y)
result = LINETO_W (wx, wy)
関数
現在のグラフィックス位置
から指定した位置まで線を
描画します。
LOADIMAGE, LOADIMAGE_W
関数
Windows ビットマップ・
ファイル (.BMP) からイ
メージを読み取り、それを
指定された位置に表示しま
す。
サブルーチン
現在の位置を指定された点
に移動します。
OUTGTEXT
CALL OUTGTEXT (text)
サブルーチン
画面上の現在の位置に現在
のフォントでテキストを送
ります。
OUTTEXT
CALL OUTTEXT (text)
サブルーチン
テキストを画面上の現在の
位置に送ります。
result = IMAGESIZE (x1, y1, x2,
y2)
result = IMAGESIZE_W (wx1, wy1,
wx2, wy2)
result = LOADIMAGE (filename,
xcoord, ycoord)
result = LOADIMAGE_W (filename,
wxcoord, wycoord)
MOVETO, MOVETO_W
CALL MOVETO (x, y, t)
CALL MOVETO_W (wx, wy, w)
次ページにつづく
4-9
4
インテル ® Fortran ライブラリ・リファレンス
表 4-2
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
PIE, PIE_W
関数
パイ形の図形を描画しま
す。
関数
多角形を描画します。
サブルーチン
メモリからイメージを取り
出し、表示します。
関数
矩形を描画します。
REMAPALLPALETTERGB
result = REMAPALLPALETTERGB
(colors)
関数
現在のビデオ構成が認識す
る指標に RGB 色値の組を
再マップします。
REMAPPALETTERGB
result = REMAPPALETTERGB
(index, color)
関数
1 つの RGB 色値を色指標
に再マップします。
result = PIE (i, x1, y1, x2, y2,
x3, y3, x4, y4)
result = PIE_W (i, wx1, wy1,
wx2, wy2, wx3, wy3, wx4, wy4)
POLYGON, POLYGON_W
説明
result = POLYGON (control,
ppoints, cpoints)
result = POLYGON_W (control,
wppoints, cpoints)
PUTIMAGE, PUTIMAGE_W
CALL PUTIMAGE (x, y, image,
action)
CALL PUTIMAGE_W (wx, wy, image,
action)
RECTANGLE, RECTANGLE_W
result = RECTANGLE (control,
x1, y1, x2, y2)
result = RECTANGLE_W (control,
wx1, wy1, wx2, wy2)
次ページにつづく
4-10
QuickWin ライブラリ
表 4-2
4
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
SAVEIMAGE, SAVEIMAGE_W
関数
画面上の指定された場所か
ら画面イメージを取り込
み、Windows ビットマッ
プ・ファイルとして保存し
ます。
SCROLLTEXTWINDOW
CALL SCROLLTEXTWINDOW (rows)
関数
テキスト・ウィンドウの内
容をスクロールします。
SETBKCOLOR
result = SETBKCOLOR (color)
関数
現在の背景の色指標を設定
します。
SETBKCOLORRGB
result = SETBKCOLORRGB (color)
関数
現在の背景色を定義したパ
レットの指標ではなく
RGB 色値で設定します。
SETCLIPRGN
CALL SETCLIPRGN (x1, y1, x2, x2)
サブルーチン
グラフィックス出力を画面
の一部に限定します。
SETCOLOR
result = SETCOLOR (color)
関数
現在の色を新しい色指標に
設定します。
SETCOLORRGB
result = SETCOLORRGB (color)
関数
現在の色を定義したパレッ
トの指標ではなく RGB 色
値で設定します。
SETFILLMASK
CALL SETFILLMASK (mask)
サブルーチン
現在の塗りつぶしマスクを
新しいパターンに変更しま
す。
SETFONT
result = SETFONT (options)
関数
指定した特性の組に一致す
るフォントを 1 つ探し出
し、OUTGTEXT に割り当
てます。
SETGTEXTROTATION
CALL SETGTEXTROTATION (degrees)
サブルーチン
テキスト出力の方向角を設
定します。
SETLINESTYLE
CALL SETLINESTYLE (mask)
サブルーチン
現在の線種を変更します。
result = SAVEIMAGE (filename,
ulxcoord, ulycoord, lrxcoord,
lrycoord)
result = SAVEIMAGE_W (filename,
ulwxcoord, ulwycoord,
lrwxcoord, lrwycoord)
説明
次ページにつづく
4-11
4
インテル ® Fortran ライブラリ・リファレンス
表 4-2
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
SETPIXEL, SETPIXEL_W
関数
指定した位置のピクセルの
色指標を設定します。
関数
指定した位置のピクセルの
RGB 色値を設定します。
SETPIXELS
CALL SETPIXELS (n, x, y, color)
サブルーチン
複数のピクセルの色指標を
設定します。
SETPIXELSRGB
CALL SETPIXELSRGB (n, x, y,
color)
サブルーチン
複数のピクセルの RGB 色
値を設定します。
SETTEXTCOLOR
result = SETTEXTCOLOR (index)
関数
現在のテキストの色を新し
い色指標に設定します。
SETTEXTCOLORRGB
result = SETTEXTCOLORRGB
(color)
関数
現在のテキストの色を定義
したパレットの指標ではな
く RGB 色値に設定します。
SETTEXTPOSITION
CALL SETTEXTPOSITION (row,
column, t)
サブルーチン
現在のテキスト位置を変更
します。
SETTEXTWINDOW
CALL SETTEXTWINDOW (r1, c1, r2,
c2)
サブルーチン
現在のテキスト表示ウィン
ドウを設定します。
SETVIEWORG
CALL SETVIEWORG (x, y, t)
サブルーチン
ビューポート座標の原点を
指定します。
SETVIEWPORT
CALL SETVIEWPORT (x1, y1, x2,
y2)
サブルーチン
ビューポートの大きさと画
面位置を定義します。
result = SETPIXEL (x, y)
result = SETPIXEL_W (wx, wy)
SETPIXELRGB, SETPIXELRGB_W
result = SETPIXELRGB (x, y,
color)
result = SETPIXELRGB_W (wx, wy,
color)
説明
次ページにつづく
4-12
QuickWin ライブラリ
表 4-2
4
グラフィックス・ルーチンおよび関数の要約 (続き)
名前 / 構文
サブルーチン
/ 関数
説明
SETWINDOW
result = SETWINDOW (finvert,
wx1, wy1, wx2, wy2)
関数
ウィンドウ座標系を定義し
ます。
SETWRITEMODE
result = SETWRITEMODE (wmode)
関数
現在の論理書き込みモード
を変更します。
WRAPON
result = WRAPON (option)
関数
行の折り返しをオンまたは
オフにします。
4-13
4
インテル ® Fortran ライブラリ・リファレンス
グラフィックス関数の説明
ARC
現在のグラフィックス色を使用し
て、楕円弧を描画します。
プロトタイプ
INTERFACE
FUNCTION ARC(X1,Y1,X2,Y2,X3,Y3,X4,Y4)
INTEGER(2) ARC,X1,Y1,X2,Y2,X3,Y3,X4,Y4
END FUNCTION
END INTERFACE
X1, Y1
入力。INTEGER(2)。境界矩形の左上隅のビュー
ポート座標。
X2, Y2
入力。INTEGER(2)。境界矩形の右下隅のビュー
ポート座標。
X3, Y3
入力。INTEGER(2)。開始ベクトルのビューポー
ト座標。
X4, Y4
入力。INTEGER(2)。終了ベクトルのビューポー
ト座標。
説明
この関数は、現在のグラフィックス色を使用して楕円弧を描画しま
す。円弧の中心は、点(X1, Y1)および(X2, Y2)で定義される境
界矩形の中心です。
円弧は、円弧の中心から点(X3, Y3)に伸ばした仮想線との交点か
ら始まります。円弧は、円弧の中心から反時計回りに描画され、円
弧の中心から点(X4, Y4)に伸ばした仮想線との交点で終わりま
す。
ARC はビューポート座標系で使用されます。円弧は現在の色で描画
されます。
4-14
QuickWin ライブラリ
4
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。円弧がクリップされるか、一部が境界
の外にはみ出した場合、円弧は正しく描画されたとみなされ、結果
は 1 になります。円弧が完全に境界の外で描画された場合、結果は
0 になります。
ARC_W
現在のグラフィックス色を使用し
て、楕円弧を描画します。
プロトタイプ
INTERFACE
FUNCTION ARC_W(WX1,WY1,WX2,WY2,WX3,WY3,WX4,WY4)
INTEGER(2) ARC_W
DOUBLE PRECISION WX1,WY1,WX2,WY2,WX3,WY3,WX4,WY4
END FUNCTION
END INTERFACE
WX1, WY1
入力。REAL(8)。境界矩形の左上隅のウィンドウ
座標。
WX2, WY2
入力。REAL(8)。境界矩形の右下隅のウィンドウ
座標。
WX3, WY3
入力。REAL(8)。開始ベクトルのウィンドウ座
標。
WX4, WY4
入力。REAL(8)。終了ベクトルのウィンドウ座
標。
説明
この関数は、現在のグラフィックス色を使用して楕円弧を描画しま
す。円弧の中心は、点(WX1, WY1)および(WX2, WY2)で定義され
る境界矩形の中心です。
4-15
4
インテル ® Fortran ライブラリ・リファレンス
円弧は、円弧の中心から点(WX3, WY3)に伸ばした仮想線との交点
から始まります。円弧は、円弧の中心から反時計回りに描画され、
円弧の中心から点(WX4, WY4)に伸ばした仮想線との交点で終わり
ます。
ARC_W は表示座標系で使用されます。円弧は現在の色で描画されま
す。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。円弧がクリップされるか、一部が境界
の外にはみ出した場合、円弧は正しく描画されたとみなされ、結果
は 1 になります。円弧が完全に境界の外で描画された場合、結果は
0 になります。
GETARCINFO
最後に描画した円弧やパイの終点
(ビューポート座標)を決定します。
プロトタイプ
INTERFACE
FUNCTION GETARCINGO(LPSTART,LPEND,LPPAINT)
INTEGER(2) GETARCHINFO
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD
INTEGER(2) YCOORD
END STRUCTURE
RECORD /XYCOORD/ LPSTART
RECORD /XYCOORD/ LPEND
RECORD /XYCOORD/ LPPAINT
END FUNCTION
END INTERFACE
4-16
QuickWin ライブラリ
LPSTART
出力。構造型 XYCOORD。円弧の始点のビューポー
ト座標。
LPEND
出力。構造型 XYCOORD。円弧の終点のビューポー
ト座標。
LPPAINT
出力。構造型 XYCOORD。塗りつぶしが開始される
点のビューポート座標。
4
説明
GETARCINFOは、XYCOORD構造型のLPSTARTとLPENDをARCまたは
PIE 関数の最後の呼び出しで描画された円弧の終点(ビューポート
座標)を含むように更新します。定義された XYCOORD 構造型は、
次のようになります。
TYPE XYCOORD
INTEGER(2) XCOORD
INTEGER(2) YCOORD
END TYPE XYCOORD
LPPAINT に返される値は、パイの塗りつぶしを開始できる点を指定
します。これを使用して、パイを境界色とは違う色で塗りつぶすこ
とができます。GETARCINFO を呼び出した後、SETCOLORRGB を使
用して色を変更します。FLOODFILLRGB 関数の引数として、
LPPAINT の座標ともに新しい色を使用します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
になります。最後に CLEARSCREEN または SETWINDOWCONFIG の
呼び出しが成功した後、または新しいビューポートが選択された後
で、ARC または PIE 関数の呼び出しに失敗した場合には、結果は
ゼロになります。
4-17
4
インテル ® Fortran ライブラリ・リファレンス
CLEARSCREEN
対象領域を消去し、現在の背景色で
塗りつぶします。
プロトタイプ
INTERFACE
SUBROUTINE CLEARSCREEN(AREA)
INTEGER(2) AREA
END SUBROUTINE
END INTERFACE
AREA
入力。INTEGER(4)。対象領域の識別子。
説明
パラメータ AREA は、対象領域を識別します。次のシンボル定数値
(flib.fd に定義されています)の 1 つでなければなりません。
$GCLEARSCREEN
画面全体をクリアします。
$GVIEWPORT
現在のビューポートのみをクリアします。
$GWINDOW
現在のテキスト・ウィンドウ(SETTEXTWINDOW
で設定)のみをクリアします。
対象領域のすべてのピクセルが SETBKCOLORRGB で指定された色に
設定されます。基本色は黒です。
出力
なし。
4-18
QuickWin ライブラリ
4
DISPLAYCURSOR
カーソルの可視性を制御します。
プロトタイプ
INTERFACE
FUNCTION DISPLAYCURSOR(TOGGLE)
INTEGER(2) DISPLAYCURSOR, TOGGLE
END FUNCTION
END INTERFACE
TOGGLE
入力。INTEGER(2)。カーソルの状態を定義する
定数。次の 2 つがあります。
$GCURSOROFF
カーソルの現在の形状とモードに関係なくカーソ
ルを見えなくします。
$GCURSORON
グラフィックス・モードで常にカーソルを見える
ようにします。
説明
この関数は、カーソルの可視性を制御します。次の 2 つの値があり
ます。
カーソルの設定は、現在活動状態の子ウィンドウに対してのみ保持
されます。カーソルを可視にしたい各ウィンドウで
DISPLAYCURSOR を呼び出す必要があります。
SETWINDOWCONFIG を呼び出すと、カーソルがオフになります。
出力
結果は、直前の TOGGLE の値です。
4-19
4
インテル ® Fortran ライブラリ・リファレンス
ELLIPSE
現在のグラフィックス色を使用し
て、円または楕円を描画します。
プロトタイプ
INTERFACE
FUNCTION ELLIPSE(CONTROL, X1, Y1, X2, Y2)
INTEGER(2) ELLIPSE, CONTROL, X1, Y1, X2, Y2
END FUNCTION
END INTERFACE
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
X1, Y1
入力。INTEGER(2)。境界矩形の左上隅のビュー
ポート座標。
X2, Y2
入力。INTEGER(2)。境界矩形の右下隅のビュー
ポート座標。
説明
ELLIPSE を使用する場合、楕円の中心はビューポート座標点(X1,
Y1)および(X2, Y2)で定義される境界矩形の中心です。境界矩形
引数が点と水平線または垂直線で定義されている場合、絵は描かれ
ません。
CONTROL に $GFILLINTERIOR を指定することは、開始点として楕
円の中心を使用し境界色として現在の色(SETCOLORRGB で設定)
を使用する FLOODFILLRGB 関数を引き続き呼び出すことと等価で
す。
4-20
QuickWin ライブラリ
4
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。楕円がクリップされるか、一部が境界
の外にはみ出した場合、楕円は正しく描画されたとみなされ、結果
は 1 になります。楕円が完全に境界の外で描画された場合、結果は
0 になります。
ELLIPSE_W
現在のグラフィックス色を使用し
て、円または楕円を描画します。
プロトタイプ
INTERFACE
FUNCTION ELLIPSE_W(CONTROL, WX1, WY1, WX2, WY2)
INTEGER(2) ELLIPSE_W, CONTROL
DOUBLE PRECISION WX1, WY1, WX2, WY2
END FUNCTION
END INTERFACE
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
WX1, WY1
入力。REAL(8)。境界矩形の左上隅のウィンドウ
座標。
WX2, WY2
入力。REAL(8)。境界矩形の右下隅のウィンドウ
座標。
4-21
4
インテル ® Fortran ライブラリ・リファレンス
説明
ELLIPSE_W を使用する場合、楕円の中心はウィンドウ座標点
(WX1, WY1)および(WX2, WY2)で定義される境界矩形の中心です。
境界矩形引数が点と水平線または垂直線で定義されている場合、絵
は描かれません。
CONTROL に $GFILLINTERIOR を指定することは、開始点として楕
円の中心を使用し境界色として現在の色(SETCOLORRGB で設定)
を使用する FLOODFILLRGB 関数を引き続き呼び出すことと等価で
す。
境界は、現在の色と線種で描画されます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。楕円がクリップされるか、一部が境界
の外にはみ出した場合、楕円は正しく描画されたとみなされ、結果
は 1 になります。楕円が完全に境界の外で描画された場合、結果は
0 になります。
FLOODFILL
現在の色指標と塗りつぶしマスクを
使用して、領域を塗りつぶします。
プロトタイプ
INTERFACE
FUNCTION FLOODFILL(X,Y,BOUNDARY)
INTEGER(2) FLOODFILL, X, Y, BOUNDARY
END FUNCTION
END INTERFACE
4-22
X, Y
入力。INTEGER(2)。塗りつぶし開始点のビュー
ポート座標。
BCOLOR
入力。INTEGER(2)。境界色の色指標。
QuickWin ライブラリ
4
説明
FLOODFILL は、ビューポート座標点(X, Y)から塗りつぶしを開始
します。FLOODFILL が使用する塗りつぶし色は、SETCOLOR で設
定されます。現在の塗りつぶし色指標は、GETCOLOR を呼び出して
取得することができます。これらの関数を使用すると、パレット中
の色(256 以下)に対してだけアクセスすることができます。VGA
(262,144 色)または TRUE COLOR システムの利用可能なすべての
色にアクセスするには、RGB 関数 FLOODFILLRGB および
FLOODFILLRGB_W を使用します。
開始点が図中にある場合は、内部が塗りつぶされます。開始点が図
の外にある場合は、背景が塗りつぶされます。両方の場合とも、塗
りつぶし色は SETCOLOR で設定された現在のグラフィックス色指標
です。開始点は図の中または外になければらず、図自身の境界上に
あってはなりません。塗りつぶしはすべての方向で発生し、境界色
BCOLOR のピクセルで停止します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。0 が返されるのは、塗りつぶしが完了
できなかった場合、開始点が境界色 BCOLOR を持つピクセル上にあ
る場合、または開始点がクリッピング領域外にある場合です。
FLOODFILL_W
現在の色指標と塗りつぶしマスクを
使用して、領域を塗りつぶします。
プロトタイプ
INTERFACE
FUNCTION FLOODFILL_W(WX1,WY1,BOUNDARY)
INTEGER(2) FLOODFILL_W, BOUNDARY
DOUBLE PRECISION WX1, WY1
END FUNCTION
4-23
4
インテル ® Fortran ライブラリ・リファレンス
END INTERFACE
WX1, WY1
入力。REAL(8)。塗りつぶし開始点のウィンドウ
座標。
BCOLOR
入力。INTEGER(2)。境界色の色指標。
説明
FLOODFILL_W は、ウィンドウ座標点(WX1, WY1)から塗りつぶし
を開始します。FLOODFILL_W が使用する塗りつぶし色は、
SETCOLOR で設定されます。現在の塗りつぶし色指標は、
GETCOLOR を呼び出して取得することができます。これらの関数を
使用すると、パレット中の色(256 以下)に対してだけアクセスす
ることができます。VGA(262,144 色)または TRUE COLOR シス
テムの利用可能なすべての色にアクセスするには、RGB 関数
FLOODFILLRGB および FLOODFILLRGB_W を使用します。
開始点が図中にある場合は、内部が塗りつぶされます。開始点が図
の外にある場合は、背景が塗りつぶされます。両方の場合とも、塗
りつぶし色は SETCOLOR で設定された現在のグラフィックス色指標
です。開始点は図の中または外になければならず、図自身の境界上
にあってはなりません。塗りつぶしはすべての方向で発生し、境界
色 BCOLOR のピクセルで停止します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。0 が返されるのは、塗りつぶしが完了
できなかった場合、開始点が境界色 BCOLOR を持つピクセル上にあ
る場合、または開始点がクリッピング領域外にある場合です。
4-24
QuickWin ライブラリ
4
FLOODFILLRGB
現在の RGB 色と塗りつぶしマスク
を使用して、領域を塗りつぶしま
す。
プロトタイプ
INTERFACE
FUNCTION FLOODFILLRGB(X,Y,BCOLOR)
INTEGER(2) FLOODFILLRGB,X,Y
INTEGER(4) BCOLOR
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。塗りつぶし開始点のビュー
ポート座標。
BCOLOR
入力。INTEGER(4)。境界色の RGB 色値。
説明
FLOODFILLRGB は、ビューポート座標点(X, Y)から塗りつぶしを
開始します。FLOODFILLRGB が使用する塗りつぶし色は、
SETCOLORRGB で設定されます。現在の塗りつぶし色は、
GETCOLORRGB を呼び出して取得することができます。
開始点が図中にある場合は、内部が塗りつぶされます。開始点が図
の外にある場合は、背景が塗りつぶされます。両方の場合とも、塗
りつぶし色は SETCOLORRGB で設定された現在の色です。開始点は
図の中または外になければらず、図自身の境界上にあってはなりま
せん。塗りつぶしはすべての方向で発生し、境界色 BCOLOR のピク
セルで停止します。
4-25
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。0 が返されるのは、塗りつぶしが完了
できなかった場合、開始点が境界色 BCOLOR を持つピクセル上にあ
る場合、または開始点がクリッピング領域外にある場合です。
FLOODFILLRGB_W
現在の RGB 色と塗りつぶしマスク
を使用して、領域を塗りつぶしま
す。
プロトタイプ
INTERFACE
FUNCTION FLOODFILLRGB_W(WX,WY,BCOLOR)
INTEGER(2) FLOODFILLRGB_W
DOUBLE PRECISIPON WX,WY
INTEGER(4) BCOLOR
END FUNCTION
END INTERFACE
WX, WY
入力。REAL(8)。塗りつぶし開始点のウィンドウ
座標。
BCOLOR
入力。INTEGER(4)。境界色の RGB 色値。
説明
FLOODFILLRGB_W は、ウィンドウ座標点(WX, WY)から塗りつぶし
を開始します。FLOODFILLRGB_W が使用する塗りつぶし色は、
SETCOLORRGB で設定されます。現在の塗りつぶし色は、
GETCOLORRGB を呼び出して取得することができます。
開始点が図中にある場合は、内部が塗りつぶされます。開始点が図
の外にある場合は、背景が塗りつぶされます。両方の場合とも、塗
りつぶし色は SETCOLORRGB で設定された現在の色です。開始点は
4-26
QuickWin ライブラリ
4
図の中または外になければならず、図自身の境界上にあってはなり
ません。塗りつぶしはすべての方向で発生し、境界色 BCOLOR のピ
クセルで停止します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。0 が返されるのは、塗りつぶしが完了
できなかった場合、開始点が境界色 BCOLOR を持つピクセル上にあ
る場合、または開始点がクリッピング領域外にある場合です。
GETBKCOLOR
テキストおよびグラフィックス出力
の両方について現在の背景の色指標
を取得します。
プロトタイプ
INTERFACE
FUNCTION GETBKCOLOR()
INTEGER(4) GENBKCOLOR
END FUNCTION
END INTERFACE
説明
GETBKCOLOR は、テキストおよびグラフィックスの両方について現
在の背景の色指標を返します。色指標は、SETBKCOLOR で設定され
ます。背景色上のテキストの色指標は、SETTEXTCOLOR で設定さ
れ、GETTEXTCOLOR で返されます。背景色上のグラフィックスの
色指標は、SETCOLOR で設定され、GETCOLOR で返されます。これ
らの非 RGB 色関数は、True Color 値ではなく色指標を使用し、ユー
ザが使用する色をパレットの色(最大 256 色)に制限します。すべ
てのシステム色にアクセスするには、SETBKCOLORRGB、
SETCOLORRGB、および SETTEXTCOLORRGB を使用します。
4-27
4
インテル ® Fortran ライブラリ・リファレンス
一般に、INTEGER(4) 色引数は色値を参照し、INTEGER(2) 色引
数は色指標を参照します。例外は GETBKCOLOR と SETBKCOLOR の
2 つです。デフォルトの背景色指標は 0 です。これは、ユーザが
REMAPPALETTERGB でパレットを再マップしていない限り、黒を表
しています。
出力
結果の型は INTEGER(4) です。結果は、テキストおよびグラ
フィックスの両方に対する現在の背景の色指標です。
GETCOLOR
現在のグラフィックスの色指標を取
得します。
プロトタイプ
INTERFACE
FUNCTION GETCOLOR()
INTEGER(2) GETCOLOR
END FUNCTION
END INTERFACE
説明
GETCOLOR は、SETCOLOR で設定された背景色上のグラフィックス
で使用される現在の色指標を返します。背景の色指標は、
SETBKCOLOR で設定され、GETBKCOLOR で返されます。背景色上の
テキストの色指標は、SETTEXTCOLOR で設定され、
GETTEXTCOLOR で返されます。これらの非 RGB 色関数は、True
Color 値ではなく色指標を使用し、ユーザが使用する色をパレット
の色(最大 256 色)に制限します。すべてのシステム色にアクセス
するには、SETCOLORRGB、SETBKCOLORRGB、および
SETTEXTCOLORRGB を使用します。
4-28
QuickWin ライブラリ
4
出力
結果の型は INTEGER(2) です。結果は、成功した場合は現在の色
指標で、失敗した場合は -1 です。
GETCURRENTPOSITION
現在のグラフィックス位置の座標を
取得します。
プロトタイプ
INTERFACE
SUBROUTINE GETCURRENTPOSITION(S)
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD, YCOORD
END STRUCTURE
RECORD /XYCOORD/ S
END SUBROUTINE
END INTERFACE
出力。構造型 XYCOORD。現在のグラフィックス位
置のビューポート座標。XYCOORD 構造型は、次の
ように定義されます。
T
TYPE XYCOORD
INTEGER(2) XCOORD
! x-coordinate
INTEGER(2) YCOORD
! y-coordinate
END TYPE XYCOORD
説明
LINETO、MOVETO、および OUTGTEXT は、現在のグラフィックス位
置をすべて変更します。ウィンドウが作成されたとき、グラフィッ
クス位置は画面の中心です。
4-29
4
インテル ® Fortran ライブラリ・リファレンス
グラフィックス出力は GETCURRENTPOSITION で返される現在のグ
ラフィックス位置から開始されます。この位置は、通常のテキスト
出力(例えば、OUTTEXT や WRITE からの出力)には関連していま
せん。テキスト出力は、現在のテキスト位置(SETTEXTPOSITION
を参照)から開始されます。ただし、これは OUTGTEXT からのグラ
フィックス・テキスト出力に影響します。
GETCURRENTPOSITION_W
現在のグラフィックス位置の座標を
取得します。
プロトタイプ
INTERFACE
SUBROUTINE GETCURRENTPOSITION_W(S)
STRUCTURE /WXYCOORD/
DOUBLE PRECISION WX, YX
END STRUCTURE
RECORD /WXYCOORD/ s
END SUBROUTINE
END INTERFACE
WT
出力。構造型 WXYCOORD。現在のグラフィックス
位置のウィンドウ座標。WXYCOORD 構造型は、次
のように定義されます。
TYPE WXYCOORD
REAL(8) WX
! x-coordinate
REAL(8) WY
! y-coordinate
END TYPE WXYCOORD
4-30
QuickWin ライブラリ
4
説明
LINETO、MOVETO、および OUTGTEXT は、現在のグラフィックス位
置をすべて変更します。ウィンドウが作成されたとき、グラフィッ
クス位置は画面の中心です。
グラフィックス出力は GETCURRENTPOSITION_W で返される現在
のグラフィックス位置から開始されます。この位置は、通常のテキ
スト出力(例えば、OUTTEXT や WRITE からの出力)には関連して
いません。テキスト出力は、現在のテキスト位置
(SETTEXTPOSITION を参照)から開始されます。ただし、これは
OUTGTEXT からのグラフィックス・テキスト出力に影響します。
GETFILLMASK
塗りつぶしマスクに使用される現在
のパターンを返します。
プロトタイプ
INTERFACE
SUBROUTINE GETFILL(MASK)
INTEGER(1) MASK(8)
END SUBROUTINE
END INTERFACE
MASK
出力。INTEGER(1)。長さ 8 の 1 次元配列。
説明
MASK は 8 バイトで、各バイトの 8 ビットのそれぞれは 8x8 パターンを
作成するピクセルを表します。MASK の第 1 要素(バイト)はパ
ターンの最上部の 8 ビットになり、第 8 要素(バイト)は最下部の
8 ビットになります。
塗りつぶし操作中には、ビット値 1 を持つピクセルが現在のグラ
フィックス色に設定され、ビット値 0 を持つピクセルは変更されま
せん。現在のグラフィックス色は、SETCOLORRGB または
SETCOLOR で設定されます。8 バイトマスクは、塗りつぶし領域全
4-31
4
インテル ® Fortran ライブラリ・リファレンス
体に模写されます。塗りつぶしマスクが(SETFILLMASK によっ
て)設定されていない場合、またはマスクがすべて 1 の場合、塗り
つぶし操作では現在の塗りつぶし色が使用されます。
塗りつぶしマスクは、グラフィックス・ルーチン
(FLOODFILLRGB、PIE、ELLIPSE、POLYGON、および
RECTANGLE)に対する塗りつぶしパターンを制御します。
GETIMAGE
指定した境界矩形で定義される画面
イメージを保存します。
プロトタイプ
INTERFACE
SUBROUTINE GETIMAGE(X1,Y1,X2,Y2,IMAGE)
INTEGER(2) X1,Y1,X2,Y2
INTEGER(1) IMAGE(*)
END SUBROUTINE
END INTERFACE
X1, Y1
入力。INTEGER(2)。境界矩形の左上隅のビュー
ポート座標。
X2, Y2
入力。INTEGER(2)。境界矩形の右下隅のビュー
ポート座標。
IMAGE
出力。INTEGER(1)。1 バイト整数の配列。保存す
るイメージのバッファ。
説明
GETIMAGE は、ビューポート座標点(X1, Y1)および(X2, Y2)で
境界矩形を定義します。
4-32
QuickWin ライブラリ
4
イメージを格納するために使用されるバッファは、それを保持する
のに十分な大きさでなければなりません。実行時に IMAGESIZE を
呼び出してイメージの大きさを決定することができます。イメージ
の大きさを決定した後、それに従ってバッファの次元を指定するこ
とができます。
GETIMAGE_W
指定した境界矩形で定義される画面
イメージを保存します。
プロトタイプ
INTERFACE
SUBROUTINE GETIMAGE_W(WX1,WY1,WX2,WY2,IMAGE)
double precision WX1,WY1,WX2,WY2
INTEGER(1) IMAGE(*)
!MS$ ATTRIBUTES REFERENCE ::
IMAGE
END SUBROUTINE
END INTERFACE
WX1, WY1
入力。REAL(8)。境界矩形の左上隅のウィンドウ
座標。
WX2, WY2
入力。REAL(8)。境界矩形の右下隅のウィンドウ
座標。
IMAGE
出力。INTEGER(1)。1 バイト整数の配列。保存す
るイメージのバッファ。
説明
GETIMAGE_W は、ウィンドウ座標点(WX1, WY1)および(WX2,
WY2)で境界矩形を定義します。
4-33
4
インテル ® Fortran ライブラリ・リファレンス
イメージを格納するために使用されるバッファは、それを保持する
のに十分な大きさでなければなりません。実行時に IMAGESIZE を
呼び出してイメージの大きさを決定することができます。イメージ
の大きさを決定した後、それに従ってバッファの次元を指定するこ
とができます。
GETLINESTYLE
現在のグラフィックスの線種を返し
ます。
プロトタイプ
INTERFACE
FUNCTION GETLINESTYLE()
INTEGER(2) GETLINESTYLE
END FUNCTION
END INTERFACE
説明
GETLINESTYLE は、線を描画するときに使用するマスク ( 線種 ) を取
り出します。マスクは 16 ビット数で、各ビットは描画される線の
ピクセルを表します。
ビットが 1 の場合、現在のグラフィックス色と論理書き込みモード
に従って対応するピクセルに色が付けられます。ビットが 0 の場
合、対応するピクセルは変更されません。マスクは、線の長さ全体
に対して繰り返されます。基本マスクは #FFFF(実線)です。点線
は #FF00(長いダッシュ)または #F0F0(短いダッシュ)で表す
ことができます。
線種は、SETLINESTYLE で設定されます。現在のグラフィック色
は、SETCOLORRGB または SETCOLOR で設定されます。
SETWRITEMODE は、線がどのように表示されるかに影響します。
4-34
QuickWin ライブラリ
4
GETLINESTYLE で取り出した線種は、LINETO、POLYGON、および
RECTANGLE での直線の描画に影響しますが、ARC、ELLIPSE、ま
たは PIE での曲線の描画には影響しません。
出力
結果の型は INTEGER(2) です。結果は現在の線種です。
GETPHYSCOORD
ビューポート座標を物理座標に変換
します。
プロトタイプ
INTERFACE
SUBROUTINE GETPHYSCOORD(X,Y,S)
INTEGER(2) X, Y
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD, YCOORD
END STRUCTURE
RECORD /XYCOORD/ S
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。物理座標に変換するビュー
ポート座標。
S
出力。構造型 XYCOORD。入力ビューポート位置の
物理座標。
TYPE xycoord
INTEGER(2) XCOORD
! x-coordinate
INTEGER(2) YCOORD
! y-coordinate
END TYPE XYCOORD
4-35
4
インテル ® Fortran ライブラリ・リファレンス
説明
物理座標は、物理画面を参照します。ビューポート座標は、
SETVIEWPORT でビューポートとして定義された画面の領域を参照
します。両方とも整数座標値をとります。ウィンドウ座標は、
SETWINDOW または SETWSIZEQQ で設定した大きさのウィンドウを
参照します。ウィンドウ座標は浮動小数点値で、ウィンドウ領域で
データの拡大縮小を簡単に行うことができます。
GETPIXEL
指定した位置のピクセルの色指標を
返します。
プロトタイプ
INTERFACE
FUNCTION GETPRIXEL(X,Y)
INTEGER(2) GETPIXEL,X,Y
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。ピクセル位置のビューポー
ト座標。
説明
GETPIXEL などの RGB 接尾辞がない色ルーチンは、True Color 値では
なく色指標を使用し、パレットの色(最大 256 色)に制限されま
す。すべてのシステム色にアクセスするには、明示的に RGB 値を
指定するために SETPIXELRGB を使用し、GETPIXELRGB で値を取
り出します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はピクセル
の色指標で、失敗した場合は –1(例えば、ピクセルがクリッピング
領域外にある場合)です。
4-36
QuickWin ライブラリ
4
GETPIXEL_W
指定した位置のピクセルの色指標を
返します。
プロトタイプ
INTERFACE
FUNCTION GETPIXEL_W(WX,WY)
INTEGER(2) GETPIXEL_W
DOUBLE PRECISION WX,WY
END FUNCTION
END INTERFACE
WX, WY
入力。REAL(8)。ピクセル位置のウィンドウ座
標。
説明
GETPIXEL_W などの RGB 接尾辞がない色ルーチンは、
True Color 値で
はなく色指標を使用し、パレットの色(最大 256 色)に制限されま
す。すべてのシステム色にアクセスするには、明示的に RGB 値を
指定するために SETPIXELRGB を使用し、GETPIXELRGB で値を取
り出します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はピクセル
の色指標で、失敗した場合は –1(例えば、ピクセルがクリッピング
領域外にある場合)です。
4-37
4
インテル ® Fortran ライブラリ・リファレンス
GETPIXELS
複数のピクセルの色指標を返しま
す。
プロトタイプ
INTERFACE
SUBROUTINE GETPIXELS(N, X, Y, C)
INTEGER(4) N
! input : size of arrays
INTEGER(2) X(*)
! input : x coordinates
INTEGER(2) Y(*)
! input : y coordinates
INTEGER(2) C(*)
! input : palette indices
END SUBROUTINE
END INTERFACE
N
入力。INTEGER(4)。得たいピクセルの数。他の
引数の要素数を設定します。
X, Y
入力。INTEGER(2)。得たいピクセルのビュー
ポート座標を含む並行配列。
C
出力。INTEGER(2)。x と y にあるピクセルの色指
標を書き込む配列。
説明
GETPIXELS は、2 つの入力配列 X および Y で指定されたピクセルの色
指標を配列 COLOR に入れます。これらの配列は並列です。3 つの配
列の第 1 要素は 1 ピクセルを参照し、第 2 要素は次のピクセルを参
照します。
ピクセルがクリッピング領域外にある場合、配列 color に置かれる
値は未定義です。N を 1 より小さくして GETPIXELS を呼び出して
も無視されます。複数のピクセル色指標を得る場合、GETPIXELS
の方が個々に GETPIXEL を呼び出すよりはるかに高速です。
4-38
QuickWin ライブラリ
4
ピクセル色指標値の可能な範囲は、現在のビデオモードとパレット
で決定されます。最大は 256 色です。すべてのシステム色にアクセ
スするには、非 RGB 色関数でパレット指標を使用するのではなく、
SETPIXELSRGB などの RGB 色関数で明示的に RGB 値を指定し、
GETPIXELSRGB で値を取り出す必要があります。
GETTEXTCOLOR
現在のテキストの色指標を取得しま
す。
プロトタイプ
INTERFACE
FUNCTION GETTEXTCOLOR()
INTEGER(2) GETTEXTCOLOR
END FUNCTION
END INTERFACE
説明
GETTEXTCOLOR は、SETTEXTCOLOR で設定されたテキストの色指
標を返します。SETTEXTCOLOR は、OUTTEXT、WRITE、および
PRINT でのテキスト出力に影響します。背景色指標は、
SETBKCOLOR で設定され、GETBKCOLOR で返されます。背景色上の
グラフィックスの色指標は、SETCOLOR で設定され、GETCOLOR で
返されます。これらの非 RGB 色関数は、True Color 値ではなく色指
標を使用し、ユーザが使用する色をパレットの色(最大 256 色)に
制限します。すべてのシステム色にアクセスするには、
SETTEXTCOLORRGB、SETBKCOLORRGB、および SETCOLORRGB を
使用します。
デフォルトのテキストの色指標は 15 です。これは、ユーザがパ
レットを再マップしない限り、白が割り当てられています。
4-39
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は INTEGER(2) です。結果は、現在のテキストの色指標
です。
GETTEXTPOSITION
現在のテキスト位置を返します。
プロトタイプ
INTERFACE
SUBROUTINE GETTEXTPOSITION(S)
STRUCTURE /RCCOORD/
INTEGER(2) ROW, COL
END STRUCTURE
RECORD /RCCOORD/ S
END SUBROUTINE
END INTERFACE
出力。構造型 RCCOORD。現在のテキスト位置。
S
TYPE RCCOORD
INTEGER(2) ROW
! Row coordinate
INTEGER(2) COL
! Column coordinate
END TYPE RCCOORD
説明
座標(1, 1)で与えられるテキスト位置は、テキスト・ウィンドウ
の左上隅として定義されています。OUTTEXT 関数(および WRITE
文と PRINT 文)からのテキスト出力は、現在のテキスト位置から
開始されます。フォントテキストは、現在のテキスト位置に影響さ
れません。OUTGTEXT 出力を含むグラフィックス出力は、現在のグ
ラフィックス出力位置から開始されます。これは、
GETCURRENTPOSITION で返される別の位置です。
4-40
QuickWin ライブラリ
4
GETTEXTWINDOW
現在のテキスト・ウィンドウの境界
を返します。
プロトタイプ
INTERFACE
SUBROUTINE gettextwindow(R1,C1,R2,C2)
INTEGER(2) R1,C1,R2,C2
END SUBROUTINE
END INTERFACE
R1, C1
出力。INTEGER(2)。テキスト・ウィンドウの左
上隅の行座標と列座標。
R2, C2
出力。INTEGER(2)。テキスト・ウィンドウの右
下隅の行座標と列座標。
説明
OUTTEXT と WRITE からの出力は、テキスト・ウィンドウに限定され
ています。デフォルトでは、テキスト・ウィンドウが
SETTEXTWINDOW で再定義されていない限り、これは画面全体です。
SETTEXTWINDOW で定義されるウィンドウは、OUTGTEXT からの出
力に影響しません。
4-41
4
インテル ® Fortran ライブラリ・リファレンス
GETVIEWCOORD
物理座標またはウィンドウ座標を
ビューポート座標に変換します。
プロトタイプ
INTERFACE GETVIEWCOORD
SUBROUTINE GETVIEWCOORD(X,Y,S)
INTEGER(2) X, Y
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD, YCOORD
END STRUCTURE
RECORD /XYCOORD/ S
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。ビューポート座標に変換す
る物理座標。
S
出力。構造型 XYCOORD。ビューポート座標。
TYPE XYCOORD
INTEGER(2) XCOORD
! x-coordinate
INTEGER(2) YCOORD
! y-coordinate
END TYPE XYCOORD
説明
ビューポート座標は、SETVIEWPORT でビューポートとして定義さ
れた画面の領域を参照します。物理座標は、物理画面を参照しま
す。両方とも整数座標値をとります。ウィンドウ座標は、
SETWINDOW または SETWSIZEQQ で設定した大きさのウィンドウを
参照します。ウィンドウ座標は浮動小数点値で、ウィンドウ領域で
データの拡大縮小を簡単に行うことができます。
4-42
QuickWin ライブラリ
4
GETVIEWCOORD_W
物理座標またはウィンドウ座標を
ビューポート座標に変換します。
プロトタイプ
INTERFACE
SUBROUTINE GETVIEWCOORD_W(WX,WY,S)
DOUBLE PRECISION WX,WY
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD, YCOORD
END STRUCTURE
RECORD /XYCOORD/ S
END SUBROUTINE
END INTERFACE
WX, WY
入力。REAL(8)。ビューポート座標に変換する
ウィンドウ座標。
S
出力。構造型 XYCOORD。ビューポート座標。
TYPE XYCOORD
INTEGER(2) XCOORD
! x-coordinate
INTEGER(2) ycYCOORDoord
! y-coordinate
END TYPE XYCOORD
説明
ビューポート座標は、SETVIEWPORT でビューポートとして定義さ
れた画面の領域を参照します。物理座標は、物理画面を参照しま
す。両方とも整数座標値をとります。ウィンドウ座標は、
SETWINDOW または SETWSIZEQQ で設定した大きさのウィンドウを
参照します。ウィンドウ座標は浮動小数点値で、ウィンドウ領域で
データの拡大縮小を簡単に行うことができます。
4-43
4
インテル ® Fortran ライブラリ・リファレンス
GETWINDOWCOORD
ビューポート座標をウィンドウ座標
に変換します。
プロトタイプ
INTERFACE GETWINDOWCOORD
SUBROUTINE GETWINDOWCOORD(X,Y,S)
INTEGER(2) X, Y
STRUCTURE /XYCOORD/
DOUBLE PRECISION X, Y
END STRUCTURE
RECORD /wxycoord/ s
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。ウィンドウ座標に変換する
ビューポート座標。
WT
出力。構造型 XYCOORD。ウィンドウ座標。
TYPE XYCOORD
REAL(8) X
! x-coordinate
REAL(8) Y
! y-coordinate
END TYPE XYCOORD
説明
物理座標は、物理画面を参照します。ビューポート座標は、
SETVIEWPORT でビューポートとして定義された画面の領域を参照
します。両方とも整数座標値をとります。ウィンドウ座標は、
SETWINDOW または SETWSIZEQQ で設定した大きさのウィンドウを
参照します。ウィンドウ座標は浮動小数点値で、ウィンドウ領域で
データの拡大縮小を簡単に行うことができます。
4-44
QuickWin ライブラリ
4
GETWRITEMODE
現在の論理書き込みモードを返しま
す。
プロトタイプ
INTERFACE
FUNCTION GETWRITEMODE()
INTEGER(2) GETWRITEMODE
END FUNCTION
END INTERFACE
説明
現在の論理書き込みモードを返します。これは、LINETO、
POLYGON、および RECTANGLE 関数で線を描画するときに使用され
ます。書き込みモードは、SETWRITEMODE で設定されます。
出力
結果の型は INTEGER(2) です。結果は、現在の書き込みモードで
す。デフォルト値は $GPSET です。可能性のある戻り値は、次のと
おりです。
$GPSET
現在のグラフィックス色で線を描画します(デ
フォルト)。
$GAND
現在のグラフィックス色と現在の背景色の論理積
をとった色で線を描画します。
$GOR
現在のグラフィックス色と現在の背景色の論理和
をとった色で線を描画します。
$GPRESET
現在のグラフィックス色の論理否定をとった色で
線を描画します。
$GXOR
現在のグラフィックス色と現在の背景色の排他的
論理和をとった色で線を描画します。
4-45
4
インテル ® Fortran ライブラリ・リファレンス
GRSTATUS
最後に使用したグラフィックス・
ルーチンのステータスを返します。
プロトタイプ
INTERFACE
FUNCTION GRSTATUS()
integer*2 GRSTATUS
END FUNCTION
END INTERFACE
説明
エラーまたは警告が発生したかどうかを判断するために、グラ
フィックス・ルーチンの呼び出しの直後で GRSTATUS を使用しま
す。戻り値が 0 より小さければエラーで、0 より大きければ警告で
す。
$GRFILEWRITEERROR ビットマップ・ファイルの書き込みエラー
$GRFILEOPENERROR ビットマップ・ファイルのオープンエラー
$GRIMAGEREADERROR イメージの読み取りエラー
$GRBITMAPDISPLAYERROR
ビットマップの表示エラー
$GRBITMAPTOOLARGE ビットマップが大きすぎる
$GRIMPROPERBITMAPFORMAT
ビットマップ・ファイルの不正な書式
$GRFILEREADERROR ファイルの読み取りエラー
$GRNOBITMAPFILE ビットマップ・ファイルなし
$GRINVALIDIMAGEBUFFER
イメージバッファ・データの不一致
4-46
QuickWin ライブラリ
4
$GRINSUFFICIENTMEMORY
バッファを割り当てるためのメモリまたは塗
りつぶし操作を完了するためのメモリが不足
$GRINVALIDPARAMETER
1 つ以上のパラメータが不正
$GRMODENOTSUPPORTED
要求したビデオモードがサポートされていな
い
$GRERROR
グラフィックス・エラー
$GROK
成功
$GRNOOUTPUT
実行する動作がない
$GRCLIPPED
出力がビューポートにクリップされた
$GRPARAMETERALTERED
1 つ以上の入力パラメータが範囲内で変更さ
れたかまたはパラメータのペアが適切な順で
交換された
エラーが発生したかどうかを判定するには、グラフィックス呼び出
しの後、GRSTATUS の戻り値を $GROK と比較します。
出力
結果の型は INTEGER(2) です。結果は、最後に使用したグラ
フィックス関数のステータスです。
4-47
4
インテル ® Fortran ライブラリ・リファレンス
IMAGESIZE
指定した境界矩形内にイメージを格
納するために必要となるバイト数を
返します。
プロトタイプ
INTERFACE
FUNCTION IMAGESIZE(X1,Y1,X2,Y2)
INTEGER(4) IMAGESIZE
INTEGER(2) X1,Y1,X2,Y2
END FUNCTION
END INTERFACE
X1, Y1
入力。INTEGER(2)。イメージの左上隅のビュー
ポート座標。
X2, Y2
入力。INTEGER(2)。イメージの右下隅のビュー
ポート座標。
説明
IMAGESIZE は、ビューポート座標点(X1, Y1)および(X2, Y2)の
境界矩形を定義します。指定した境界矩形内にイメージを格納する
ために必要となるバイト数を返します。GETIMAGE を呼び出すため
にどれだけのメモリが必要かを決定するのに役立ちます。
出力
結果の型は INTEGER(4) です。結果は、イメージの記録域の大き
さ(バイト)です。
4-48
QuickWin ライブラリ
4
IMAGESIZE_W
指定した境界矩形内にイメージを格
納するために必要となるバイト数を
返します。
プロトタイプ
INTERFACE
FUNCTION IMAGESIZE_W(WX1,WY1,WX2,WY2)
INTEGER(4) IMAGESIZE_W
DOUBLE PRECISION WX1,WY1,WX2,WY2
END FUNCTION
END INTERFACE
WX1, WY1
入力。REAL(8)。イメージの左上隅のウィンドウ
座標。
WX2, WY2
入力。REAL(8)。イメージの右下隅のウィンドウ
座標。
説明
IMAGESIZE_W は、ウィンドウ座標点(WX1, WY1)および(WX2,
WY2)の境界矩形を定義します。
指定した境界矩形内にイメージを格納するために必要となるバイト
数を返します。IMAGESIZE は、GETIMAGE を呼び出すためにどれ
だけのメモリが必要かを決定するのに役立ちます。
出力
結果の型は INTEGER(4) です。結果は、イメージの記録域の大き
さ(バイト)です。
4-49
4
インテル ® Fortran ライブラリ・リファレンス
LINETO
現在のグラフィックス位置から終点
まで線を描画します。
プロトタイプ
INTERFACE
FUNCTION LINETO(X,Y)
INTEGER(2) LINETO,X,Y
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。終点のビューポート座標。
説明
線は、現在のグラフィックス色、論理書き込みモード、および線種
を使用して描画されます。グラフィックス色は SETCOLORRGB で、
論理書き込みモードは SETWRITEMODE で、線種は SETLINESTYLE
で設定されます。
エラーが発生しなければ、LINETO は現在のグラフィックス位置を
ビューポート座標点(X, Y)に設定します。
LINETO で描かれた囲まれた図形を塗りつぶすために
FLOODFILLRGB を使用する場合、図形は実線で描かれていなければ
なりません。線種はデフォルトでは実線であり、SETLINESTYLE
で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。
4-50
QuickWin ライブラリ
4
LINETO_W
現在のグラフィックス位置から終点
まで線を描画します。
プロトタイプ
INTERFACE
FUNCTION LINETO_W(WX,WY)
INTEGER(2) LINETO_W
dDOUBLE PRECISION WX,WY
END FUNCTION
END INTERFACE
WX, WY
入力。REAL(8)。終点のウィンドウ座標。
説明
線は、現在のグラフィックス色、論理書き込みモード、および線種
を使用して描画されます。グラフィックス色は SETCOLORRGB で、
論理書き込みモードは SETWRITEMODE で、線種は SETLINESTYLE
で設定されます。
エラーが発生しなければ、LINETO_W は現在のグラフィックス位置
をウィンドウ座標点(WX, WY)に設定します。
LINETO_W で描かれた囲まれた図形を塗りつぶすために
FLOODFILLRGB を使用する場合、図形は実線で描かれていなければ
なりません。線種はデフォルトでは実線であり、SETLINESTYLE
で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。
4-51
4
インテル ® Fortran ライブラリ・リファレンス
LOADIMAGE
Windows ビットマップ・ファイルか
らイメージを読み取り、それを指定
された位置に表示します。
プロトタイプ
INTERFACE
FUNCTION LOADIMAGE(FNAME, X, Y)
INTEGER(4) LOADIMAGE, X, Y
CHARACTER(LEN=*) FNAME
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・
ファイルのパス。
X, Y
入力。INTEGER(4)。イメージ表示の左上隅の
ビューポート座標。
説明
イメージは、ビットマップ・ファイルの色で表示されます。ビット
マップ・ファイルの色パレットが現在のシステムパレットと異なっ
ている場合は、現在のパレットが破棄され、ビットマップのパレッ
トがロードされます。
LOADIMAGE は、ビューポート座標でイメージの画面上の表示場所
を指定します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。
4-52
QuickWin ライブラリ
4
LOADIMAGE_W
Windows ビットマップ・ファイルか
らイメージを読み取り、それを指定
された位置に表示します。
プロトタイプ
INTERFACE
FUNCTION LOADIMAGE_W(FNAME,WX,WY)
INTEGER(4) LOADIMAGE_W
CHARACTER(LEN=*) FNAME
DOUBLE PRECISION WX, WY
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・
ファイルのパス。
WX, WY
入力。REAL(8)。イメージ表示の左上隅のウィン
ドウ座標。
説明
イメージは、ビットマップ・ファイルの色で表示されます。ビット
マップ・ファイルの色パレットが現在のシステムパレットと異なっ
ている場合は、現在のパレットが破棄され、ビットマップのパレッ
トがロードされます。
LOADIMAGE_W は、ウィンドウ座標でイメージの画面上の表示場所
を指定します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。
4-53
4
インテル ® Fortran ライブラリ・リファレンス
MOVETO
現在のグラフィックス位置を指定し
た点に移動します。描画は発生しま
せん。
プロトタイプ
INTERFACE MOVETO
SUBROUTINE MOVETO(X,Y,S)
INTEGER(2) X, Y
integer*2 y
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD, YCOORD
END STRUCTURE
RECORD /XYCOORD/S
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。新しいグラフィックス位置
のビューポート座標。
S
出力。構造型 XYCOORD。直前のグラフィックス位
置のビューポート座標。
TYPE XYCOORD
INTEGER(2) XCOORD
INTEGER(2) YCOORD
END TYPE XYCOORD
! x coordinate
! y coordinate
説明
MOVETO は、現在のグラフィックス位置をビューポート座標(X, Y)
に設定します。MOVETO は、直前のグラフィックス位置の座標をそ
れぞれ S に割り当てます。
4-54
QuickWin ライブラリ
4
MOVETO_W
現在のグラフィックス位置を指定し
た点に移動します。描画は発生しま
せん。
プロトタイプ
INTERFACE
SUBROUTINE MOVETO_W(WX,WY,S)
DOUBLE PRECISION WX,WY
STRUCTURE /WXYCOORD/
DOUBLE PRECISION WX, WY
END STRUCTURE
RECORD /WXYCOORD/s
END SUBROUTINE
END INTERFACE
WX, WY
入力。REAL(8)。新しいグラフィックス位置の
ウィンドウ座標。
S
出力。構造型 WXYCOORD。直前のグラフィックス
位置のウィンドウ座標。
TYPE WXYCOORD
REAL(8) WX ! x window coordinate
REAL(8) WY ! y window coordinate
END TYPE WXYCOORD
説明
MOVETO_W は、現在のグラフィックス位置をウィンドウ座標(WX,
WY)に設定します。MOVETO_W は、直前のグラフィックス位置の座
標をそれぞれ S に割り当てます。
4-55
4
インテル ® Fortran ライブラリ・リファレンス
OUTTEXT
テキストまたはグラフィックス・
モードで、末尾の空白を含む文字列
を画面に送ります。
プロトタイプ
INTERFACE
SUBROUTINE OUTTEXT(TEXT)
CHARACTER(LEN=*) TEXT
END SUBROUTINE
END INTERFACE
入力。CHARACTER(LEN=*)。表示する文字列。
TEXT
説明
テキスト出力は、SETTEXTCOLORRGB または SETTEXTCOLOR で設
定された現在の色を使用して、現在のテキスト位置から開始されま
す。書式化は行われません。テキストを出力した後、OUTTEXT は
現在のテキスト位置を更新します。
PIE
現在のグラフィックス色でパイ形の
形状を描画します。
プロトタイプ
INTERFACE
FUNCTION PIE(I,X1,Y1,X2,Y2,X3,Y3,X4,Y4)
INTEGER(2) PIE,I,X1,Y1,X2,Y2,X3,Y3,X4,Y4
END FUNCTION
END INTERFACE
4-56
QuickWin ライブラリ
I
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
X1, Y1
入力。INTEGER(2)。境界矩形の左上隅のビュー
ポート座標。
X2, Y2
入力。INTEGER(2)。境界矩形の右下隅のビュー
ポート座標。
X3, Y3
入力。INTEGER(2)。開始ベクトルのビューポー
ト座標。
X4, Y4
入力。INTEGER(2)。終了ベクトルのビューポー
ト座標。
4
説明
パイの境界は、SETCOLORRGB で設定された現在の色で描画されま
す。
PIE 関数は、ビューポート座標系を使用します。円弧の中心は、
ビューポート座標点(X1, Y1)および(X2, Y2)で指定される境界
矩形の中心です。円弧は、円弧の中心から(X3, Y3)に伸ばした仮
想線との交点から始まります。円弧は、円弧の中心から反時計回り
に描画され、円弧の中心から(X4, Y4)に伸ばした仮想線との交点
で終わります。
塗りつぶしフラグに $GFILLINTERIOR を指定することは、開始点
としてパイの中心を使用し塗りつぶし色として現在の色
(SETCOLORRGB で設定)を使用する FLOODFILLRGB 関数を引き続
き呼び出すことと等価です。境界色と異なる塗りつぶし色を使用し
たい場合、$GFILLINTERIOR オプションは使用しません。その代
わりに、パイを描画した後、SETCOLORRGB で現在の色を変更し、
次に FLOODFILLRGB を呼び出します。塗りつぶしたい絵の内部点
を FLOODFILLRGB に指定しなければなりません。GETARCINFO を
呼び出すことによって、最後に描画したパイや円弧のこの点を得る
ことができます。
4-57
4
インテル ® Fortran ライブラリ・リファレンス
FLOODFILLRGB でパイを塗りつぶす場合、パイの境界線は実線で描
かれていなければなりません。線種はデフォルトでは実線であり、
SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。パイがクリップされるか、一部が境界
の外にはみ出した場合、パイは正しく描画されたとみなされ、結果
は 1 になります。パイが完全に境界の外で描画された場合、結果は
0 になります。
PIE_W
現在のグラフィックス色でパイ形の
形状を描画します。
プロトタイプ
INTERFACE
FUNCTION PIE_W(I,WX1,WY1,WX2,WY2,WX3,WY3,WX4,WY4)
INTEGER(2) PIE_W, I
DOUBLE PRECISION WX1,WY1,WX2,WY2,WX3,WY3,WX4,WY4
END FUNCTION
END INTERFACE
4-58
I
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
WX1, WY1
入力。REAL(8)。境界矩形の左上隅のウィンドウ
座標。
QuickWin ライブラリ
WX2, WY2
入力。REAL(8)。境界矩形の右下隅のウィンドウ
座標。
WX3, WY3
入力。REAL(8)。開始ベクトルのウィンドウ座
標。
WX4, WY4
入力。REAL(8)。終了ベクトルのウィンドウ座
標。
4
説明
パイの境界は、SETCOLORRGB で設定された現在の色で描画されま
す。
PIE_W 関数は、ウィンドウ座標系を使用します。円弧の中心は、
ウィンドウ座標点(WX1, WY1)および(WX2, WY2)で指定される境
界矩形の中心です。円弧は、円弧の中心から(WX3, WY3)に伸ばし
た仮想線との交点から始まります。円弧は、円弧の中心から反時計
回りに描画され、円弧の中心から(WX4, WY4)に伸ばした仮想線と
の交点で終わります。
塗りつぶしフラグに $GFILLINTERIOR を指定することは、開始点
としてパイの中心を使用し塗りつぶし色として現在の色
(SETCOLORRGB で設定 ) を使用する FLOODFILLRGB 関数を引き続
き呼び出すことと等価です。境界色と異なる塗りつぶし色を使用し
たい場合、$GFILLINTERIOR オプションは使用しません。その代
わりに、パイを描画した後、SETCOLORRGB で現在の色を変更し、
次に FLOODFILLRGB を呼び出します。塗りつぶしたい絵の内部点
を FLOODFILLRGB に指定しなければなりません。GETARCINFO を
呼び出すことによって、最後に描画したパイや円弧のこの点を得る
ことができます。
FLOODFILLRGB でパイを塗りつぶす場合、パイの境界線は実線で描
かれていなければなりません。線種はデフォルトでは実線であり、
SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。パイがクリップされるか、一部が境界
の外にはみ出した場合、パイは正しく描画されたとみなされ、結果
は 1 になります。パイが完全に境界の外で描画された場合、結果は
0 になります。
4-59
4
インテル ® Fortran ライブラリ・リファレンス
POLYGON
現在のグラフィックス色、論理書き
込みモード、および線種で多角形を
描画します。
プロトタイプ
INTERFACE
FUNCTION POLYGON(CONTROL,LPPOINTS,CPOINTS)
INTEGR(2) POLYGON,CONTROL,CPOINTS
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD
INTEGER(2) YCOORD
END STRUCTURE
RECORD /XYCOORD/LPPOINTS(*)
END FUNCTION
END INTERFACE
4-60
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
LPPOINTS
入力。構造型 XYCOORD。ビューポート座標で多角
形の頂点を定義する構造型配列。
TYPE XYCOORD
INTEGER(2) XCOORD
INTEGER(2) YCOORD
END TYPE XYCOORD
CPOINTS
入力。INTEGER(2)。多角形の頂点の数。
QuickWin ライブラリ
4
説明
多角形の境界は、SETCOLORRGB、SETWRITEMODE、および
SETLINESTYLE でそれぞれ設定された現在のグラフィックス色、論
理書き込みモード、および線種で描画されます。POLYGON ルーチ
ンは、ビューポート座標系(XYCOORD 構造型で表される)を使用
します。
引数 LPPOINTS は、要素が XYCOORD または WXYCOORD 構造型の配
列です。各要素は、多角形の頂点の 1 つを指定します。引数
CPOINTS は、LPPOINTS 配列の要素数(頂点の数)です。
POLYGON は、配列中の要素の順番に頂点間を結んで線を描画するこ
とに注意してください。したがって、境界線、骨格図、または塗り
つぶせない他の絵を描画するとき、頂点の順番に注意する必要があ
ります。いくつかの頂点間を線で結びたくない場合、絵をまたがっ
て描画しないようにするために、同じ線をたどって戻るように頂点
を繰り返し、別の頂点に進む必要があります。また、POLYGON は、
最後に指定した頂点から最初の頂点に線を引きます。
FLOODFILLRGB を使用して多角形を塗りつぶす場合、多角形の境界
線は実線で描かれていなければなりません。線種はデフォルトでは
実線であり、SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、何かが描画されればゼロ
以外で、何も描画されなければ 0 です。
POLYGON_W
現在のグラフィックス色、論理書き
込みモード、および線種で多角形を
描画します。
プロトタイプ
INTERFACE
FUNCTION POLYGON_W(CONTROL,LPPOINTS,CPOINTS)
4-61
4
インテル ® Fortran ライブラリ・リファレンス
INTEGR(2) POLYGON_W,CONTROL,CPOINTS
STRUCTURE /WXYCOORD/
DOUBLE PRECISION WX, WY
END STRUCTURE
RECORD /WXYCOORD/LPPOINTS(*)
END FUNCTION
END INTERFACE
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、絵を塗
りつぶします。
$GBORDER
絵を塗りつぶしません。
LPPOINTS
入力。構造型 WXYCOORD。ウィンドウ座標で多角
形の頂点を定義する構造型配列。
TYPE WXYCOORD
REAL(W) WX, WY
END TYPE WXYCOORD
CPOINTS
入力。INTEGER(2)。多角形の頂点の数。
説明
多角形の境界は、SETCOLORRGB、SETWRITEMODE、および
SETLINESTYLE でそれぞれ設定された現在のグラフィックス色、論
理書き込みモード、および線種で描画されます。POLYGON ルーチ
ンは、ウィンドウ座標系(WXYCOORD 構造型で表される)を使用し
ます。
引数 LPPOINTS は、要素が XYCOORD または WXYCOORD 構造型の配
列です。各要素は、多角形の頂点の 1 つを指定します。引数
CPOINTS は、LPPOINTS 配列の要素数(頂点の数)です。
POLYGON_W は、配列中の要素の順番に頂点間を結んで線を描画す
ることに注意してください。したがって、境界線、骨格図、または
塗りつぶせない他の絵を描画するとき、頂点の順番に注意する必要
があります。いくつかの頂点間を線で結びたくない場合、絵をまた
がって描画しないようにするために、同じ線をたどって戻るように
4-62
QuickWin ライブラリ
4
頂点を繰り返し、別の頂点に進む必要があります。また、
POLYGON_W は、最後に指定した頂点から最初の頂点に線を引きま
す。
FLOODFILLRGB を使用して多角形を塗りつぶす場合、多角形の境界
線は実線で描かれていなければなりません。線種はデフォルトでは
実線であり、SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、何かが描画されればゼロ
以外で、何も描画されなければ 0 です。
PUTIMAGE
メモリに格納されたイメージを画面
に転送します。
プロトタイプ
INTERFACE
SUBROUTINE PUTIMAGE(X,Y,IMAGE,ACTION)
INTEGER(2) X,Y,ACTION
INTEGER(1) IMAGE(*)
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。画面上に配置するときのイ
メージの左上隅のビューポート座標。
IMAGE
入力。INTEGER(1)。1 バイト整数の配列。格納し
たイメージのバッファ。
ACTION
入力。INTEGER(2)。既存の画面イメージと格納
したイメージの相互作用。次のシンボル定数の 1
つを使用することができます。
4-63
4
インテル ® Fortran ライブラリ・リファレンス
$GAND 格納したイメージと既存の画面イメージの
論理積として新しい画面表示を形成します。格納
したイメージと既存の画面イメージの両方で同じ
色を持つ点は、同じ色で残りますが、異なる色を
持つ点は論理積で結合されます。
$GOR 既存の画面イメージに格納したイメージを
重ね書きします。結果のイメージは、イメージの
論理和です。
$GPRESET データを点単位に画面に転送します。
イメージが負のイメージを作成する GETIMAGE で
画面から作成された場合、各点はイメージが持つ
色属性の逆を持っています。
$GPSET データを点単位で画面に転送します。イ
メージが GETIMAGE で画面から作成された場合、
各点はイメージが持つ色属性とまったく同じもの
になります。
$GXOR 格納したイメージに点があるところでは、
既存の画面イメージの点を逆にします。この動作
は、カーソルの描画に似ています。背景とイメー
ジの排他的論理和を 2 回実行すると、背景は変更
なしでリストアされます。これによって、背景を
消さないでオブジェクトを動かすことができます。
$GXOR 定数は、アニメーションでよく使用される
特殊なモードです。
また、次のラスタ操作定数を使用することができ
ます ( 詳細については、オンライン・ドキュメン
トの WIN32 API BitBlt を参照してください )。
$GSRCCOPY($GPSET と同じ)
$GSRCPAINT($GOR と同じ)
$GSRCAND($GAND と同じ)
$GSRCINVERT($GXOR と同じ)
$GSRCERASE
$GNOTSRCCOPY($GPRESET と同じ)
$GNOTSRCERASE
4-64
QuickWin ライブラリ
4
$GMERGECOPY
$GMERGEPAINT
$GPATCOPY
$GPATPAINT
$GPATINVERT
$GDSTINVERT
$GBLACKNESS
$GWHITENESS
説明
PUTIMAGE は、ビューポート座標(X, Y)にイメージの左上隅を配
置します。
PUTIMAGE_W
メモリに格納されたイメージを画面
に転送します。
プロトタイプ
INTERFACE
SUBROUTINE PUTIMAGE_W(WX,WY,IMAGE,ACTION)
DOUBLE PRECISION WX, WY
INTEGER(1) IMAGE(*)
!MS$ ATTRIBUTES REFERENCE ::
IMAGE
INTEGER(2) ACTION
END SUBROUTINE
END INTERFACE
WX, WY
入力。REAL(8)。画面上に配置するときのイメー
ジの左上隅のウィンドウ座標。
4-65
4
インテル ® Fortran ライブラリ・リファレンス
IMAGE
入力。INTEGER(1)。1 バイト整数の配列。格納し
たイメージのバッファ。
ACTION
入力。INTEGER(2)。既存の画面イメージと格納
したイメージの相互作用。次のシンボル定数の 1
つを使用することができます。
$GAND
格納したイメージと既存の画面イメー
ジの論理積として新しい画面表示を形
成します。格納したイメージと既存の
画面イメージの両方で同じ色を持つ点
は、同じ色で残りますが、異なる色を
持つ点は論理積で結合されます。
$GOR
既存の画面イメージに格納したイメー
ジを重ね書きします。結果のイメージ
は、イメージの論理和です。
$GPRESET データを点単位に画面に転送します。
イメージが負のイメージを作成する
GETIMAGE_W で画面から作成された場
合、各点はイメージが持つ色属性の逆
を持っています。
4-66
$GPSET
データを点単位で画面に転送します。
イメージが GETIMAGE_W で画面から
作成された場合、各点はイメージが持
つ色属性とまったく同じものになりま
す。
$GXOR
格納したイメージに点があるところで
は、既存の画面イメージの点を逆にし
ます。この動作は、カーソルの描画に
似ています。背景とイメージの排他的
論理和を 2 回実行すると、背景は変更
なしで格納されます。これによって、
背景を消さないでオブジェクトを動か
すことができます。$GXOR 定数は、ア
ニメーションでよく使用される特殊な
モードです。
QuickWin ライブラリ
4
また、次のラスタ操作定数を使用することができ
ます ( 詳細については、オンライン・ドキュメン
トの WIN32 API BitBlt を参照してください )。
$GSRCCOPY($GPSET と同じ)
$GSRCPAINT($GOR と同じ)
$GSRCAND($GAND と同じ)
$GSRCINVERT($GXOR と同じ)
$GSRCERASE
$GNOTSRCCOPY($GPRESET と同じ)
$GNOTSRCERASE
$GMERGECOPY
$GMERGEPAINT
$GPATCOPY
$GPATPAINT
$GPATINVERT
$GDSTINVERT
$GBLACKNESS
$GWHITENESS
説明
PUTIMAGE_W は、ウィンドウ座標(WX, WY)にイメージの左上隅を
配置します。
4-67
4
インテル ® Fortran ライブラリ・リファレンス
RECTANGLE
現在のグラフィックス色、論理書き
込みモード、および線種で矩形を描
画します。
プロトタイプ
INTERFACE
FUNCTION RECTANGLE(CONTROL,X1,Y1,X2,Y2)
INTEGER(2) RECTANGLE
INTEGER(2) CONTROL,X1,Y1,X2,Y2
END FUNCTION
END INTERFACE
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、実線矩
形を塗りつぶします。
$GBORDER
現在の色と線種を使用して、矩形の境界を描画し
ます。
X1, Y1
入力。INTEGER(2)。矩形の左上隅のビューポー
ト座標。
X2, Y2
入力。INTEGER(2)。矩形の右下隅のビューポー
ト座標。
説明
RECTANGLE 関数は、ビューポート座標系を使用します。ビュー
ポート座標(X1, Y1)および(X2, Y2)は、矩形の対角です。
4-68
QuickWin ライブラリ
4
SETCOLORRGB は、現在のグラフィックス色を設定します。
SETFILLMASK は、現在の塗りつぶしマスクを設定します。デフォ
ルトでは、囲まれたグラフィックス形状は、現在の色で塗りつぶさ
れます。
FLOODFILLRGB を使用して矩形を塗りつぶす場合、矩形の境界線は
実線で描かれていなければなりません。線種はデフォルトでは実線
であり、SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。
RECTANGLE_W
現在のグラフィックス色、論理書き
込みモード、および線種で矩形を描
画します。
プロトタイプ
INTERFACE
FUNCTION RECTANGLE_W(CONTROL,WX1,WY1,WX2,WY2)
INTEGER(2) RECTANGLE_W,CONTROL
DOUBLE PRECISION WX1,WY1,WX2,WY2
END FUNCTION
END INTERFACE
CONTROL
入力。INTEGER(2)。塗りつぶしフラグ。次のシ
ンボル定数の 1 つを使用することができます。
$GFILLINTERIOR
現在の色と塗りつぶしマスクを使用して、実線矩
形を塗りつぶします。
$GBORDER
現在の色と線種を使用して、矩形の境界を描画し
ます。
4-69
4
インテル ® Fortran ライブラリ・リファレンス
WX1, WY1
入力。REAL(8)。矩形の左上隅のウィンドウ座
標。
WX2, WY2
入力。REAL(8)。矩形の右下隅のウィンドウ座
標。
説明
RECTANGLE_W 関数は、ウィンドウ座標系を使用します。ウィンド
ウ座標(WX1, WY1)および(WX2, WY2)は、矩形の対角です。
SETCOLORRGB は、現在のグラフィックス色を設定します。
SETFILLMASK は、現在の塗りつぶしマスクを設定します。デフォ
ルトでは、囲まれたグラフィックス形状は、現在の色で塗りつぶさ
れます。
FLOODFILLRGB を使用して矩形を塗りつぶす場合、矩形の境界線は
実線で描かれていなければなりません。線種はデフォルトでは実線
であり、SETLINESTYLE で変更することができます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0 です。
REMAPALLPALETTERGB
ビデオ・ハードウェアが認識する色
指標に RGB 色値の組を再マップし
ます。
プロトタイプ
INTERFACE
FUNCTION REMAPALLPALETTERGB(COLORS)
INTEGER(2) REMAPALLPALETTERGB
INTEGER(4) COLORS(*)
END FUNCTION
END INTERFACE
4-70
QuickWin ライブラリ
4
入力。INTEGER(4)。色指標にマップする RGB 色
値の配列。0 〜 255 の要素を持たなければなりま
せん。
COLORS
説明
REMAPALLPALETTERGB 関数は、同時に利用可能なすべての色指標
(最大 236、20 色指標がオペレーティング・システムで予約されて
いる)を再マップします。COLORS 引数は、RGB 色値の配列を指し
ています。最初の 16 指標と色値間の基本マッピングを次の表に示
します。
指標
色
指標
色
0
$BLACK
8
$GRAY
1
$BLUE
9
$LIGHTBLUE
2
$GREEN
10
$LIGHTGREEN
3
$CYAN
11
$LIGHTCYAN
4
$RED
12
$LIGHTRED
5
$MAGENTA
13
$LIGHTMAGENTA
6
$BROWN
14
$YELLOW
7
$WHITE
15
$BRIGHTWHITE
現在のビデオモードでサポートされる色数が 236 よりも少ない場合
は、マップされる色数は 236 より少なくすることができますが、
REMAPPALETTERGB でマップできるのは最大 236 色です。ほとんど
の Windows グラフィックス・ドライバは、256K 色以上のパレット
をサポートしています。そのうち同時に 236 パレット指標にマップ
できるのは、わずか 2、3 だけです。システム上のすべての色にア
クセスし使用するには、パレットをバイパスして、直接
SETCOLORRGB や SETPIXELSRGB などの RGB 色関数を使用します。
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。REMAPALLPALETTERGB で指定する値で
は、赤が最も右端のバイトで、次に緑、青の順になります。RGB 値
の内部構造は次のとおりです。
4-71
4
インテル ® Fortran ライブラリ・リファレンス
数値が大きいほど色強度が強く、2 進数の 11111111(16 進数 FF)
が 3 つの各要素の最大強度になります。例えば、#008080 は赤の最
大強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
出力
結果の型は INTEGER(4) です。REMAPALLPALETTERGB は、成功
した場合は 0 を返し、失敗した場合は –1 を返します。
REMAPPALETTERGB
1 色指標に RGB 色値を再マップし
ます。
プロトタイプ
INTERFACE
FUNCTION REMAPPALETTERGB(INDEX,COLOR)
INTEGER(4) REMAPPALETTERGB,COLOR
INTEGER(2) INDEX
END FUNCTION
END INTERFACE
COLOR
入力。INTEGER(4)。色指標に割り当てる RGB 色
値。
INDEX
入力。INTEGER(2)。RGB 色値を再割り当てする
色指標。
説明
REMAPPALETTERGB 関数は、利用可能な色指標(最大 236、20 色指
標がオペレーティング・システムで予約されている)の 1 つを再
マップします。COLOR 引数は、割り当てる RGB 色値です。最初の
16 指標と色値間の基本マッピングを次の表に示します。
4-72
QuickWin ライブラリ
指標
色
指標
色
0
$BLACK
8
$GRAY
1
$BLUE
9
$LIGHTBLUE
2
$GREEN
10
$LIGHTGREEN
3
$CYAN
11
$LIGHTCYAN
4
$RED
12
$LIGHTRED
5
$MAGENTA
13
$LIGHTMAGENTA
6
$BROWN
14
$YELLOW
7
$WHITE
15
$BRIGHTWHITE
4
現在のビデオモードでサポートされる色数が 236 より少ない場合
は、マップされる色数を 236 より少なくすることができますが、
REMAPPALETTERGB でマップできるのは最大 236 色です。ほとんど
の Windows グラフィックス・ドライバは、256K 色以上のパレット
をサポートしています。そのうち同時に 236 パレット指標にマップ
できるのは、わずか 2、3 だけです。システム上のすべての色にア
クセスし使用するには、パレットをバイパスして、直接
SETCOLORRGB や SETPIXELSRGB などの RGB 色関数を使用します。
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。REMAPALLPALETTERGB で指定する値で
は、赤が最も右端のバイトで、次に緑、青の順になります。RGB 値
の内部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 11111111(16 進数 FF)
が 3 つの各要素の最大強度になります。例えば、#008080 は赤の最
大強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
出力
結果の型は INTEGER(4) です。REMAPPALETTERGB は、色指標に
以前割り当てられていた色を返します。
4-73
4
インテル ® Fortran ライブラリ・リファレンス
SAVEIMAGE
画面上の指定した部分を Windows
ビットマップ・ファイルに保存しま
す。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SAVEIMAGE(FNAME,X1,Y1,X2,Y2)
CHARACTER(LEN=*) FNAME
INTEGER(4) X1,Y1,X2,Y2
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・
ファイルのパス。
X1, Y1
入力。INTEGER(4)。捕捉する画面イメージの左
上隅のビューポート座標。
X2, Y2
入力。INTEGER(4)。捕捉する画面イメージの右
下隅のビューポート座標。
説明
SAVEIMAGE 関数は、左上隅と右下隅の画面座標で定義される矩形
内の画面イメージを捕え、FNAME で指定される Windows ビット
マップ・ファイルとしてイメージを保存します。イメージは、画面
上で表示されている色を持つパレットとともに保存されます。
SAVEIMAGE は、ビューポート座標で境界矩形を定義します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。
4-74
QuickWin ライブラリ
4
SAVEIMAGE_W
画面上の指定した部分を Windows
ビットマップ・ファイルに保存しま
す。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SAVEIMAGE_W(FNAME,X1,Y1,X2,Y2)
CHARACTER(LEN=*) FNAME
DOUBLE PRECISION WX1,WY1,WX2,WY2
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・
ファイルのパス。
WX1,WY1
入力。REAL(8)。捕捉する画面イメージの左上隅
のウィンドウ座標。
WX2,WY2
入力。REAL(8)。捕捉する画面イメージの右下隅
のウィンドウ座標。
説明
SAVEIMAGE_W 関数は、左上隅と右下隅の画面座標で定義される矩
形内の画面イメージを捕え、FNAME で指定される Windows ビット
マップ・ファイルとしてイメージを保存します。イメージは、画面
上で表示されている色を持つパレットとともに保存されます。
SAVEIMAGE_W は、ウィンドウ座標で境界矩形を定義します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。
4-75
4
インテル ® Fortran ライブラリ・リファレンス
SAVEJPEG
画面の指定された部分のイメージを
JPEG グラフィック・ファイルに保
存します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SAVEJPEG(FNAME,X1,Y1,X2,Y2,
JPGQUALITY)
CHARACTER(LEN=*) FNAME
INTEGER(4) X1,Y1,2,Y2,JPGQUALITY
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・
ファイルのパス。
X1, Y1
入力。INTEGER(4)。捕捉する画面イメージの左
上隅のビューポート座標。
X2, Y2
入力。INTEGER(4)。捕捉する画面イメージの右
下隅のビューポート座標。
JPGQUALITY
入力。INTEGER(4)。保存された JPEG イメージの
画質。[0-100] で、最高画質は 100 です。
説明
SAVEIMAGE 関数は、左上隅と右下隅の画面座標で定義される矩形
内の画面イメージを捕え、FNAME で指定される JPEG グラフィック
としてイメージを保存します。
SAVEIMAGE は、ビューポート座標で境界矩形を定義します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。
4-76
QuickWin ライブラリ
4
SAVEJPEG_W
画面の指定された部分のイメージを
JPEG グラフィック・ファイルに保
存します。
プロトタイプ
INTERFACE
INTEGER(4) FUNCTION SAVEJPEG_W(FNAME,WX1,WY1,
WX2,WY2,JPGWQUALITY)
CHARACTER(LEN=*) FNAME
DOUBLE PRECISION WX1,WY1,WX2,WY2,WJPGQUALITY
END FUNCTION
END INTERFACE
FNAME
入力。CHARACTER(LEN=*)。ビットマップ・ファ
イルのパス。
WX1,WY1
入力。REAL(8)。捕捉する画面イメージの左上隅
のビューポート座標。
WX2,WY2
入力。REAL(8)。捕捉する画面イメージの右下隅
のビューポート座標。
JPGWQUALITY
入力。INTEGER(4)。保存された JPEG イメージの
画質。[0-100] で、最高画質は 100 です。
説明
SAVEJPEG_W 関数は、左上隅と右下隅の画面座標で定義される矩
形内の画面イメージを捕え、FNAME で指定される JPEG グラフィッ
クとしてイメージを保存します。
SAVEJPEG_W は、ウィンドウ座標の境界矩形を定義します。
4-77
4
インテル ® Fortran ライブラリ・リファレンス
左上隅と右下隅の画面座標で定義される矩形内の画面イメージを捕
え、FNAME で指定される JPEG グラフィックとしてイメージを保存
します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、失
敗した場合は負の値です。
SCROLLTEXTWINDOW
テキスト・ウィンドウの内容をスク
ロールします。
プロトタイプ
INTERFACE
SUBROUTINE SCROLLTEXTWINDOW(ROWS)
INTEGER(2) ROWS
END SUBROUTINE
END INTERFACE
ROWS
入力。INTEGER(2)。スクロールする行数。
説明
SCROLLTEXTWINDOW サブルーチンは、テキスト・ウィンドウ ( 以前
に SETTEXTWINDOW で定義されたウィンドウ ) のテキストをスク
ロールします。デフォルトのテキスト・ウィンドウは全画面です。
ROWS 引数はスクロールする行数を指定します。ROWS の正の値は、
ウィンドウを上(通常方向)にスクロールします。負の値は、ウィ
ンドウを下にスクロールします。現在のテキスト・ウィンドウの高
さよりも大きい数を指定することは、CLEARSCREEN($GWINDOW)
を呼び出すことと等価です。ROWS に 0 を指定しても、何の効果も
ありません。
4-78
QuickWin ライブラリ
4
SETBKCOLOR
テキストとグラフィックス両方の現
在の背景色指標を設定します。
プロトタイプ
INTERFACE
FUNCTION SETBKCOLOR(COLOR)
INTEGER(4) SETBKCOLOR,COLOR
END FUNCTION
END INTERFACE
COLOR
入力。INTEGER(4)。背景色に設定する色指標。
説明
SETBKCOLOR は、テキストとグラフィックス両方の背景色指標を変
更します。背景色上のテキストの色指標は、SETTEXTCOLOR で設
定します。背景色上のグラフィックスの色指標(FLOODFILL や
ELLIPSE などの描画関数によって使用される)は、SETCOLOR で設
定します。これらの非 RGB 色関数は、True Color 値ではなく色指標
を使用し、ユーザが使用する色をパレットの色(最大 256 色)に制
限します。すべてのシステム色にアクセスするには、
SETBKCOLORRGB、SETCOLORRGB、および SETTEXTCOLORRGB を
使用します。
背景の色指標を変更しても、画面にすぐには反映されません。変更
は CLEARSCREEN が実行されるか、あるいは READ、WRITE、
OUTTEXT などのテキスト入力や出力を行うときに有効になります。
グラフィックス出力関数 OUTGTEXT は、背景の色に影響しません。
一般に、INTEGER(4) 色引数は色値を参照し、INTEGER(2) 色引
数は色指標を参照します。例外は GETBKCOLOR と SETBKCOLOR の
2 つです。デフォルトの背景色指標は 0 です。これは、ユーザが
REMAPPALETTERGB でパレットを再マップしていない限り、黒を表
しています。
4-79
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は INTEGER(4) です。結果は、直前の背景の色指標です。
SETCLIPRGN
グラフィックス出力を画面の一部に
限定します。
プロトタイプ
INTERFACE
SUBROUTINE SETCLIPRGN(X1,Y1,X2,Y2)
INTEGER(2) X1,Y1,X2,Y2
END SUBROUTINE
END INTERFACE
X1, Y1
入力。INTEGER(2)。クリッピング領域の左上隅
の物理座標。
X2, Y2
入力。INTEGER(2)。クリッピング領域の右下隅
の物理座標。
説明
SETCLIPRGN 関数は、以降のグラフィックス出力、フォントテキス
ト出力の表示を画面の指定領域 (" クリッピング領域 ") 内に限定し
ます。物理座標(X1, Y1)および(X2, Y2)は、クリッピング領域
を定義する矩形の左上隅と右下隅です。SETCLIPRGN 関数は、
ビューポート座標系を変更しません。これは、単に画面へのグラ
フィックス出力をマスクするにすぎません。
SETCLIPRGN は、グラフィックス出力と OUTGTEXT などのフォント
テキスト出力にのみ影響します。OUTTEXT を使用したテキスト出
力に対して画面をマスクするには、SETTEXTWINDOW を使用しま
す。
4-80
QuickWin ライブラリ
4
SETCOLOR
現在のグラフィックスの色指標を設
定します。
プロトタイプ
INTERFACE
FUNCTION SETCOLOR(COLOR)
INTEGER(2) SETCOLOR
INTEGER(2) COLOR
END FUNCTION
END INTERFACE
COLOR
入力。INTEGER(2)。現在のグラフィックス色と
して設定する色指標。
説明
SETCOLOR 関数は、現在のグラフィックス色指標を設定します。こ
の色指標は、ELLIPSE などのグラフィックス関数で使用されます。
背景の色指標は SETBKCOLOR で設定します。背景色上のテキスト
の色指標は、SETTEXTCOLOR で設定します。これらの非 RGB 色関
数は、True Color 値ではなく色指標を使用し、ユーザが使用する色
をパレットの色(最大 256 色)に制限します。すべてのシステム色
にアクセスするには、SETBKCOLORRGB、SETCOLORRGB、および
SETTEXTCOLORRGB を使用します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合は直前の色
指標で、失敗した場合は –1 です。
4-81
4
インテル ® Fortran ライブラリ・リファレンス
SETFILLMASK
現在の塗りつぶしマスクを新しいパ
ターンに設定します。
プロトタイプ
INTERFACE
SUBROUTINE SETFILLMASK(MASK)
INTEGER(1) MASK(8)
END SUBROUTINE
END INTERFACE
MASK
入力。INTEGER(1)。長さ 8 の 1 次元配列。
説明
MASK は 8 バイトで、各バイトの 8 ビットがそれぞれ 8x8 パターンを作
成するピクセルを表します。MASK の第 1 要素(バイト)はパター
ンの最上部の 8 ビットになり、第 8 要素(バイト)は最下部の 8
ビットになります。
塗りつぶし操作中には、ビット値 1 を持つピクセルが現在のグラ
フィックス色に設定され、ビット値 0 を持つピクセルは現在の背景
色に設定されます。現在のグラフィックス色は、SETCOLORRGB ま
たは SETCOLOR で設定されます。8 バイトマスクは、塗りつぶし領
域全体に複写されます。塗りつぶしマスクが(SETFILLMASK に
よって)設定されていない場合、またはマスクがすべて 1 の場合、
塗りつぶし操作では現在の塗りつぶし色が使用されます。
塗りつぶしマスクは、グラフィックス・ルーチン (FLOODFILLRGB、
PIE、ELLIPSE、POLYGON、および RECTANGLE) の塗りつぶしパ
ターンを制御します。
現在の塗りつぶしマスクを変更するには、次の例のように、希望す
るビットパターンに対応するバイトの配列を決定し、
SETFILLMASK でパターンを設定します。
4-82
QuickWin ライブラリ
4
SETLINESTYLE
現在の線種を新しい線種に設定しま
す。
プロトタイプ
INTERFACE
SUBROUTINE SETLINESTYLE(MASK)
INTEGER(2) MASK
END SUBROUTINE
END INTERFACE
MASK
入力。INTEGER(2)。希望の Quickwin 線種マスク
(下表を参照)。
説明
マスクは、設定するマスクのビットの割合に最も近い値の線種に
マップされます。線種は、その線のピクセルの一定の割合をカバー
する線を生成します。
SETLINESTYLE は、線の描画に使用される線種を設定します。次の
線種から選択できます。
QuickWin
マスク
内部 Windows 形式
選択基準
画面表示
0xFFFF
PS_SOLID
16 ビットがオン
___________
0xEEEE
PS_DASH
11 〜 15 ビット
がオン
----------------
0xECEC
PS_DASHDOT
10 ビットがオン
-.-.-.-.-.-.-.-.-.-
0xECCC
PS_DASHDOTDOT
9 ビットがオン
-..-..-..-..-..-..-.
0xAAAA
PS_DOT
1 〜 8 ビットが
オン
......................
0x0000
PS_NULL
0 ビットがオン
4-83
4
インテル ® Fortran ライブラリ・リファレンス
SETLINESTYLE は、LINETO、POLYGON、および RECTANGLE での
直線の描画に影響しますが、ARC、ELLIPSE、または PIE での曲線
の描画には影響しません。
現在のグラフィックス色は、SETCOLORRGB または SETCOLOR で設
定されます。SETWRITEMODE は、線の表示方法に影響します。
SETPIXEL
指定した位置のピクセルに現在のグ
ラフィックス色指標を設定します。
プロトタイプ
INTERFACE
FUNCTION SETPIXEL(X,Y)
INTEGER(2) SETPIXEL,X,Y
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。目的のピクセルのビュー
ポート座標。
説明
SETPIXEL は、指定したピクセルに現在のグラフィックス色指標を
設定します。現在のグラフィックス色指標は、SETCOLOR で設定さ
れ、GETCOLOR で取り出されます。非 RGB 色関数(SETCOLOR お
よび SETPIXELS など)は、True Color 値ではなく色指標を使用し
ます。
出力
結果の型は INTEGER(2) です。結果は、成功した場合は目的のピ
クセルの直前の色指標で、失敗した場合は –1(例えば、ピクセルが
クリッピング領域外にある場合)です。
4-84
QuickWin ライブラリ
4
SETPIXEL_W
指定した位置のピクセルに現在のグ
ラフィックス色指標を設定します。
プロトタイプ
INTERFACE
FUNCTION SETPIXEL_W(WX,WY)
INTEGER(2) SETPIXEL_W
DOUBLE PRECISION WX,WY
END FUNCTION
END INTERFACE
WX, WY
入力。REAL(8)。目的のピクセルのウィンドウ座
標。
説明
SETPIXEL_W は、指定したピクセルに現在のグラフィックス色指標
を設定します。現在のグラフィックス色指標は、SETCOLOR で設
定され、GETCOLOR で取り出されます。非 RGB 色関数
(SETCOLOR および SETPIXELS など)は、True Color 値ではなく色
指標を使用します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合は目的のピ
クセルの直前の色指標で、失敗した場合は –1(例えば、ピクセルが
クリッピング領域外にある場合)です。
4-85
4
インテル ® Fortran ライブラリ・リファレンス
SETPIXELS
複数のピクセルに色指標を設定しま
す。
プロトタイプ
INTERFACE
SUBROUTINE SETPIXELS(N, X, Y, COLOR)
INTEGER(4)N
! size of arrays
INTEGER(2)X(*),Y(*)! x, y coordinates
INTEGER(2) COLOR(*)! palette indices
END SUBROUTINE
END INTERFACE
N
入力。INTEGER(4)。設定するピクセル数。他の
引数の要素数を指定します。
X, Y
入力。INTEGER(2)。設定するピクセルのビュー
ポート座標を含む並行配列。
COLOR
入力。INTEGER(2)。ピクセルに設定する色指標
を含む配列。
説明
SETPIXELS は、COLOR の色指標を配列 X および Y で指定されるピク
セルに設定します。これらの配列は並列です。3 つの配列の第 1 要
素は 1 ピクセルを参照し、第 2 要素は次のピクセルを参照します。
いずれかのピクセルがクリッピング領域外にある場合、それらのピ
クセルは無視されます。N を 1 より小さくして SETPIXELS を呼び
出しても無視されます。複数のピクセルに色指標を設定する場合、
SETPIXELSの方が個々にSETPIXELを呼び出すよりはるかに高速で
す。
SETPIXELS とは異なり、SETPIXELSRGB はパレットに対する指標
ではなく、直接色値を使用してシステムの全色にアクセスできま
す。非 RGB 色関数(SETPIXELS や SETCOLOR など)は、True
Color 値ではなく色指標を使用します。
4-86
QuickWin ライブラリ
4
色指標を使用する場合には、パレットで利用可能な色(最大 256
色)に制限されます。ディスプレイ・アダプタ(SVGA または True
Color)には、262,144(256K)色以上を作成する機能を備えている
ものもあります。すべての利用可能な色にアクセスするには、非
RGB 色関数でパレット指標を指定しないで、RGB 色関数で明示的
に RGB 色値を指定する必要があります。
SETTEXTCOLOR
現在のテキストの色指標を設定しま
す。
プロトタイプ
INTERFACE
FUNCTION SETTEXTCOLOR(INDEX)
INTEGER(2) SETTEXTCOLOR,INDEX
END FUNCTION
END INTERFACE
INDEX
入力。INTEGER(2)。テキストの色に設定する色
指標。
説明
SETTEXTCOLOR は、現在のテキストの色指標を設定します。デフォ
ルト値は 15 で、この値はユーザがパレットを再マップしない限り、
白色に関連付けられています。GETTEXTCOLOR は、
SETTEXTCOLOR で設定したテキストの色指標を返します。
SETTEXTCOLOR は、OUTTEXT、WRITE、および PRINT でのテキス
ト出力に影響します。
出力
結果の型は INTEGER(2) です。結果は、直前のテキストの色指標
です。
4-87
4
インテル ® Fortran ライブラリ・リファレンス
SETTEXTPOSITION
現在のテキスト位置を現在のテキス
ト・ウィンドウの指定位置に設定し
ます。
プロトタイプ
INTERFACE
SUBROUTINE SETTEXTPOSITION(ROW, COL, S)
INTEGER(2) ROW, COL
integer*2 col
STRUCTURE /RCCOORD/
INTEGER(2) ROW, COL
integer*2 col
END STRUCTURE
RECORD /RCCOORD/s
END SUBROUTINE
END INTERFACE
ROW
入力。INTEGER(2)。新しいテキスト行位置。
COLUM
入力。INTEGER(2)。新しいテキスト列位置。
S
出力。構造型 RCCOORD。直前のテキスト位置。
TYPE RCCOORD
INTEGER(2) ROW ! Row coordinate
INTEGER(2) COL ! Column coordinate
END TYPE RCCOORD
説明
この関数に続いて呼び出される OUTTEXT 関数(および PRINT、
WRITE などの標準コンソール I/O 文)のテキスト出力は、点(ROW,
COL)から開始されます。
4-88
QuickWin ライブラリ
4
SETTEXTWINDOW
現在のテキスト・ウィンドウを設定
します。
プロトタイプ
INTERFACE
SUBROUTINE SETTEXTWINDOW(R1,C1,R2,C2)
iNTEGER(2) R1,C1,R2,C2
END SUBROUTINE
END INTERFACE
R1, C1
入力。INTEGER(2)。テキスト・ウィンドウの左
上隅の行座標と列座標。
R2, C2
入力。INTEGER(2)。テキスト・ウィンドウの右
下隅の行座標と列座標。
説明
SETTEXTWINDOW は、OUTTEXT、WRITE、または PRINT を使用して
画面に出力されるテキストが表示されるウィンドウの行座標と列座
標を指定します。SETTEXTPOSITION を使用して、このウィンドウ
内にテキスト位置を設定します。
テキストは、ウィンドウの上から下に出力されます。ウィンドウが
いっぱいになると、連続した行は最後の行に上書きされます。
SETTEXTWINDOW は、グラフィックス・テキスト・ルーチン
OUTGTEXT の出力に影響しません。グラフィックス出力の表示領域
を制御するには、SETVIEWPORT を使用します。
4-89
4
インテル ® Fortran ライブラリ・リファレンス
SETVIEWORG
ビューポート座標原点 (0, 0) を指定
した物理座標点に移動します。
プロトタイプ
INTERFACE
SUBROUTINE SETVIEWORG(X,Y,S)
INTEGER(2) X,Y
integer*2 y
STRUCTURE /XYCOORD/
INTEGER(2) XCOORD,YCOORD
END STRUCTURE
RECORD /XYCOORD/s
END SUBROUTINE
END INTERFACE
X, Y
入力。INTEGER(2)。新しいビューポート原点の
物理座標。
S
出力。構造型 XYCOORD。直前のビューポート原点
の物理座標。
TYPE XYCOORD
INTEGER(2) XCOORD ! x-coordinate
INTEGER(2) YCOORD ! y-coordinate
END TYPE XYCOORD
説明
XYCOORD 構造型変数 S は、直前のビューポート原点の物理座標を返
します。
4-90
QuickWin ライブラリ
4
SETVIEWPORT
グラフィックス・ビューポートを再
定義します。
プロトタイプ
INTERFACE
SUBROUTINE SETVIEWPORT(X1,Y1,X2,Y2)
INTEGER(2) X1,Y1,X2,Y2
END SUBROUTINE
END INTERFACE
X1, Y1
入力。INTEGER(2)。ビューポートの左上隅の物
理座標。
X2, Y2
入力。INTEGER(2)。ビューポートの右下隅の物
理座標。
説明
SETCLIPRGN と同じ方法でクリッピング領域を定義し、次にビュー
ポート座標原点を領域の左上隅に設定してグラフィックス・ビュー
ポートを再定義します。物理座標(X1, Y1)および(X2, Y2)は、
クリッピング領域の矩形の左上隅と右下隅です。SETWINDOW 関数
でのウィンドウ変換は、画面全体ではなくビューポートに相対的に
行われます。
SETWINDOW
指定した座標でウィンドウ境界を定
義します。
プロトタイプ
INTERFACE
4-91
4
インテル ® Fortran ライブラリ・リファレンス
FUNCTION SETWINDOW(FINVERT,WX1,WY1,WX2,WY2)
INTEGER(2) SETWINDOW
LOGICAL(2) FINVERT
DOUBLE PRECISION WX1,WY1,WX2,WY
END FUNCTION
END INTERFACE
FINVERT
入力。LOGICAL(2)。Y 軸が増加する方向。
FINVERT が .TRUE. の場合、Y 軸はウィンドウ下部
からウィンドウ上部(デカルト座標として)へ増
加します。FINVERT が .FALSE. の場合、Y 軸は
ウィンドウ上部からウィンドウ下部(ピクセル座
標として)へ増加します。
WX1, WY1
入力。REAL(8)。ウィンドウの左上隅のウィンド
ウ座標。
WX2, WY2
入力。REAL(8)。ウィンドウの右下隅のウィンド
ウ座標。
説明
SETWINDOW 関数は、すべてのウィンドウ関連グラフィックス・
ルーチンが使用する座標系を決定します。末尾が _W のグラフィッ
クス・ルーチン(例えば、ARC_W、RECTANGLE_W、LINETO_W)
は、SETWINDOW で設定した座標系を使用します。
SETWINDOW 関数でのウィンドウ変換は、画面全体ではなく、
ビューポートに相対的に行われます。
逆のウィンドウ座標を使用して描画した円弧は、通常のウィンドウ
座標の同じパラメータで描画した円弧を上下に逆にしたものにはな
りません。円弧は、同様に反時計回りに描画されますが、円弧の始
点と終点を定義する点が逆になります。
WX1 と WX2 が等しいか、WY1 と WY2 が等しい場合、
SETWINDOW は失
敗します。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロ以外
で、失敗した場合は 0(例えば、SETWINDOW を呼び出すプログラ
ムがグラフィックス・モードではない場合)です。
4-92
QuickWin ライブラリ
4
SETWRITEMODE
現在の論理書き込みモードを設定し
ます。
プロトタイプ
INTERFACE
FUNCTION SETWRITEMODE(WMODE)
INTEGER(2) SETWRITEMODE,WMODE
END FUNCTION
END INTERFACE
WMODE
入力。INTEGER(2)。設定する書き込みモード。
次のシンボル定数値のいずれかです。
$GPSET
現在のグラフィックス色で線を描画し
ます(デフォルト)。
$GAND
現在のグラフィックス色と現在の背景
色の論理積をとった色で線を描画しま
す。
$GOR
現在のグラフィックス色と現在の背景
色の論理和をとった色で線を描画しま
す。
$GPRESET 現在のグラフィックス色の論理否定を
とった色で線を描画します。
$GXOR
現在のグラフィックス色と現在の背景
色の排他的論理和をとった色で線を描
画します。
また、次の 2 進ラスタ操作定数(Win32 API
SetROP2 のオンライン・ドキュメントを参照)の
1 つを使用することができます。
$GR2_BLACK
$GR2_NOTMERGEPEN
$GR2_MASKNOTPEN
4-93
4
インテル ® Fortran ライブラリ・リファレンス
$GR2_NOTCOPYPEN($GPRESET と同じ)
$GR2_MASKPENNOT
$GR2_NOT
$GR2_XORPEN($GXOR と同じ)
$GR2_NOTMASKPEN
$GR2_MASKPEN($GAND と同じ)
$GR2_NOTXORPEN
$GR2_NOP
$GR2_MERGENOTPEN
$GR2_COPYPEN($GPSET と同じ)
$GR2_MERGEPENNOT
$GR2_MERGEPEN($GOR と同じ)
$GR2_WHITE
説明
LINETO、POLYGON、および RECTANGLE 関数で線を描画するときに
使用される現在の論理書き込みモードを設定します。現在のグラ
フィックス色は SETCOLORRGB(または SETCOLOR)で設定され、
現在の背景色は SETBKCOLORRGB(または SETBKCOLOR)で設定さ
れます。例として、次のコマンドで背景色を黄色(#00FFFF)、グ
ラフィックス色を紫色(#FF00FF)に設定する場合を考えます。
OLDCOLOR = SETBKCOLORRGB(#00FFFF)
CALL CLEARSCREEN($GCLEARSCREEN)
OLDCOLOR = SETCOLORRGB(#FF00FF)
次に、書き込みモードを $GAND オプションで設定した場合、線は
赤色(#0000FF)で描画されます。$GOR オプションで設定した場
合、線は白色(#FFFFFF)で描画されます。$GXOR オプションで
設定した場合、線は青緑色(#FFFF00)で描画されます。
$GPRESET オプションで設定した場合、線は緑色(#00FF00)で描
画されます。書き込みモードを $GPSET に設定すると、線はグラ
フィックス色で描画されます。
4-94
QuickWin ライブラリ
4
出力
結果の型は INTEGER(2) です。結果は、成功した場合は直前の書
き込みモードで、失敗した場合は –1 です。
WRAPON
テキスト出力の折り返しを制御しま
す。
プロトタイプ
INTERFACE
FUNCTION WRAPON(OPTION)
INTEGER(2) WRAPON,OPTION
END FUNCTION
END INTERFACE
OPTION
入力。INTEGER(2)。折り返しモード。次のシン
ボル定数のいずれかです。
$GWRAPOFF
ウィンドウ境界の右端で行を切り取ります。
$GWRAPON
ウィンドウ境界で行を折り返し、必要に応じてス
クロールします。
説明
テキスト出力が定義されたテキスト・ウィンドウの端に到達したと
き、OUTTEXT 関数でテキスト出力を新しい行に折り返えすか切り
捨てるかを制御します。WRAPON は、OUTGTEXT などのフォント
ルーチンには影響しません。
出力
結果の型は INTEGER(2) です。結果は、直前の OPTION の値です。
4-95
4
インテル ® Fortran ライブラリ・リファレンス
ピクセル単位および色単位の関数
GETCOLORRGB
現在のグラフィックスの RGB 値を
取得します。
プロトタイプ
INTERFACE
FUNCTION GETCOLRRGB()
integer*4 GETCOLRRGB
END FUNCTION
END INTERFACE
説明
現在のグラフィックスの RGB 値(ARC、ELLIPSE、
FLOODFILLRGB などのグラフィックス関数で使用)を取得します。
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。GETCOLORRGB で取り出した値では、赤
が最も右端のバイトで、次に緑、青の順になります。RGB 色値の内
部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
GETCOLORRGB は、グラフィックスの現在の RGB 色値を返します。背
景色上のグラフィックスの RGB 色値(ARC、OUTGTEXT、および
FLOODFILLRGB などのグラフィックス関数で使用)は、
SETCOLORRGB で設定されます。GETBKCOLORRGB は、
SETBKCOLORRGB で設定されたテキストおよびグラフィックスの両
方について現在の背景の RGB 色値を返します。背景色上のテキス
4-96
QuickWin ライブラリ
4
トの RGB 色値(OUTTEXT、WRITE、および PRINT などのテキスト
関数で使用)は、SETTEXTCOLORRGB で設定され、
GETTEXTCOLORRGB で返されます。
SETCOLORRGB(および他の SETBKCOLORRGB や
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETCOLOR、
SETBKCOLOR、SETTEXTCOLOR)は、True Color 値ではなく色指標
を使用します。色指標を使用する場合には、パレットで利用可能な
色(最大 256 色)に制限されます。ディスプレイ・アダプタ
(SVGA または True Color)には、262,144(256K)色以上を作成す
る機能を備えているものもあります。すべての利用可能な色にアク
セスするには、非 RGB 色関数でパレット指標を指定しないで、
RGB 色関数で明示的に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、グラフィックス色の現在
の RGB 色値です。
GETBKCOLORRGB
テキストおよびグラフィックス出力
の両方について現在の背景の RGB
色値を取得します。
プロトタイプ
INTERFACE
FUNCTION GETBKCOLORRGB()
INTEGER(4) GETBKCOLORRGB
END FUNCTION
END INTERFACE
4-97
4
インテル ® Fortran ライブラリ・リファレンス
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。GETBKCOLORRGB で取り出した値では、
赤が最も右端のバイトで、次に緑、青の順になります。RGB 色値の
内部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
GETBKCOLORRGB は、テキストおよびグラフィックスの両方につい
て現在の背景の RGB 色値を返します。RGB 色値は、
SETBKCOLORRGB で設定されます。背景色上のテキストの RGB 色値
(OUTTEXT、WRITE、PRINT などのテキスト関数で使用)は、
SETTEXTCOLORRGB で設定され、GETTEXTCOLORRGB で返されま
す。背景色上のグラフィックスの RGB 色値(ARC、OUTGTEXT、
FLOODFILLRGB などのグラフィックス関数で使用)は、
SETCOLORRGB で設定され、GETCOLORRGB で返されます。
SETBKCOLORRGB(および他の SETCOLORRGB や
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETBKCOLOR、
SETCOLOR、および SETTEXTCOLOR)は、True Color 値ではなく色
指標を使用します。色指標を使用する場合には、パレットで利用可
能な色(最大で 256 色)に制限されます。ディスプレイ・アダプタ
(SVGA または True Color)には、262,144(256K)色以上を作成す
る機能を備えているものもあります。すべての利用可能な色にアク
セスするには、非 RGB 色関数でパレット指標を指定しないで、
RGB 色関数で明示的に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、テキストおよびグラ
フィックスの両方に対する現在の背景の RGB 色値です。
4-98
QuickWin ライブラリ
4
GETPIXELRGB
指定した位置のピクセルの RGB 色
値を返します。
プロトタイプ
INTERFACE
FUNCTION GETPIXELRGB(X,Y)
INTEGER(4) GETPIXELRGB
INTEGER(2) X,Y
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。ピクセル位置のビューポー
ト座標。
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。GETPIXELRGB で取り出した値では、赤
が最も右端のバイトで次に緑、青の順になります。RGB 色値の内部
構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
GETPIXELRGB は、ピクセルの True Color 値を返します。この値は、
SETPIXELRGB、SETCOLORRGB、SETBKCOLORRGB、または
SETTEXTCOLORRGB で設定されます。これは、ピクセルの位置と現
在の画面の構成に依存します。
SETPIXELRGB(および他の SETCOLORRGB、SETBKCOLORRGB、
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETPIXELS、
SETCOLOR、SETBKCOLOR、SETTEXTCOLOR)は、True Color 値で
はなく色指標を使用します。色指標を使用する場合には、パレット
で利用可能な色(最大で 256 色)に制限されます。ディスプレイ・
4-99
4
インテル ® Fortran ライブラリ・リファレンス
アダプタ(SVGA または True Color)には、262,144(256K)色以上
を作成する機能を備えているものもあります。すべての利用可能な
色にアクセスするには、非 RGB 色関数でパレット指標を指定しな
いで、RGB 色関数で明示的に RGB 色値を指定する必要がありま
す。
出力
結果の型は INTEGER(4) です。結果は、ピクセルの現在の RGB 色
値です。
GETPIXELRGB_W
指定した位置のピクセルの RGB 色
値を返します。
プロトタイプ
INTERFACE
FUNCTION GETPIXELRGB_W(WX,WY)
INTEGER(4) GETPIXELRGB_W
REAL*8
WX,WY
REAL*8
wy
END FUNCTION
END INTERFACE
WX, WY
入力。REAL(8)。ピクセル位置のウィンドウ座
標。
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。GETPIXELRGB_W で取り出した値では、
赤が最も右端のバイトで、次に緑、青の順になります。RGB 色値の
内部構造は次のとおりです。
4-100
QuickWin ライブラリ
4
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
GETPIXELRGB_W は、ピクセルの True Color 値を返します。この値
は、SETPIXELRGB_W、SETCOLORRGB、SETBKCOLORRGB、または
SETTEXTCOLORRGB で設定されます。これは、ピクセルの位置と現
在の画面の構成に依存します。
SETPIXELRGB_W(および他の SETCOLORRGB、SETBKCOLORRGB、
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETPIXELS、
SETCOLOR、SETBKCOLOR、SETTEXTCOLOR)は、True Color 値で
はなく色指標を使用します。色指標を使用する場合には、パレット
で利用可能な色(最大で 256 色)に制限されます。ディスプレイ・
アダプタ(SVGA または True Color)には、262,144(256K)色以上
を作成する機能を備えているものもあります。すべての利用可能な
色にアクセスするには、非 RGB 色関数でパレット指標を指定しな
いで、RGB 色関数で明示的に RGB 色値を指定する必要がありま
す。
出力
結果の型は INTEGER(4) です。結果は、ピクセルの現在の RGB 色
値です。
SETPIXELSRGB
指定した RGB 色値を複数のピクセ
ルに設定します。
プロトタイプ
INTERFACE
SUBROUTINE SETPIXELSRGB(N,X,Y,COLOR)
INTEGER(4) N
4-101
4
インテル ® Fortran ライブラリ・リファレンス
INTEGER(2) X(*),Y(*)
INTEGER(4) COLOR(*)
END SUBROUTINE
END INTERFACE
N
入力。INTEGER(4)。設定するピクセル数。配列
X および Y の要素数を指定します。
X, Y
入力。INTEGER(2)。設定するピクセルのビュー
ポート座標を含む並行配列。
COLOR
入力。INTEGER(4)。ピクセルに設定する RGB 色
値を含む配列。範囲と結果は、システムのディス
プレイ・アダプタによって異なります。
説明
SETPIXELSRGB は、COLOR の RGB 色値を配列 X および Y で指定され
るピクセルに設定します。これらの配列は並列です。3 つの配列の
第 1 要素は 1 ピクセルを参照し、第 2 要素は次のピクセルを参照し
ます。
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETPIXELSRGB で指定した値では、赤
が最も右端のバイトで、次に緑、青の順になります。RGB 色値の内
部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETPIXELSRGB は、SETPIXELRGB のバッファリング形式として使
用するのがよい使用方法です。これによって十分な性能の向上が得
られます。例のコードは、この方法を示しています。
いずれかのピクセルがクリッピング領域外にある場合、それらのピ
クセルは無視されます。N を 1 より小さくして SETPIXELS を呼び
出しても無視されます。
SETPIXELSRGB(および他の SETPIXELRGB や SETCOLORRGB など
の RGB 色選択関数)は、全利用可能範囲から選択された値に色を
設定します。非 RGB 色関数(SETPIXELS や SETCOLOR など)は、
True Color 値ではなく色指標を使用します。
4-102
QuickWin ライブラリ
4
色指標を使用する場合には、パレットで利用可能な色(最大で 256
色)に制限されます。ディスプレイ・アダプタ(SVGA または True
Color)には、262,144(256K)色以上を作成する機能を備えている
ものもあります。すべての利用可能な色にアクセスするには、非
RGB 色関数でパレット指標を指定しないで、RGB 色関数で明示的
に RGB 色値を指定する必要があります。
GETPIXELSRGB
複数のピクセルの RGB 色値を返し
ます。
プロトタイプ
INTERFACE
SUBROUTINE GETPIXELSRGB(N,X,Y,COLOR)
INTEGER(4) N
INTEGER(2) X(*),Y(*)
INTEGER(4) COLOR (*)
END SUBROUTINE
END INTERFACE
N
入力。INTEGER(4)。取得するピクセルの数。他
の引数配列の要素数を設定します。
X, Y
入力。INTEGER(2)。取得するピクセルのビュー
ポート座標を含む並行配列。
COLOR
出力。INTEGER(4)。X と Y にあるピクセルの RGB
色値を書き込む配列。
説明
GETPIXELSRGB は、2 つの入力配列 X および Y で指定されたピクセル
の RGB 色値を配列 COLOR に入れます。これらの配列は並列です。
3 つの配列の第 1 要素は 1 ピクセルを参照し、第 2 要素は次のピク
セルを参照します。
4-103
4
インテル ® Fortran ライブラリ・リファレンス
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。GETPIXELSRGB で取り出した値では、
赤が最も右端のバイトで、次に緑、青の順になります。RGB 色値の
内部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
複数のピクセルの RGB 色値を得る場合、GETPIXELSRGB の方が
個々に GETPIXELRGB を呼び出すよりはるかに高速です。
GETPIXELSRGB は、複数のピクセルの True Color 値の配列を返しま
す。この値は、SETPIXELSRGB、SETCOLORRGB、
SETBKCOLORRGB、または SETTEXTCOLORRGB で設定されます。こ
れは、ピクセルの位置と現在の画面の構成に依存します。
SETPIXELSRGB(および他の SETCOLORRGB、SETBKCOLORRGB、
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETPIXELS、
SETCOLOR、SETBKCOLOR、SETTEXTCOLOR)は、True Color 値で
はなく色指標を使用します。色指標を使用する場合には、パレット
で利用可能な色(最大で 256 色)に制限されます。ディスプレイ・
アダプタ(SVGA または True Color)には、262,144(256K)色以上
を作成する機能を備えているものもあります。すべての利用可能な
色にアクセスするには、非 RGB 色関数でパレット指標を指定しな
いで、RGB 色関数で明示的に RGB 色値を指定する必要がありま
す。
SETCOLORRGB
現在のグラフィックス色に指定した
RGB 色値を設定します。
プロトタイプ
INTERFACE
FUNCTION SETCOLORRGB(COLOR)
4-104
QuickWin ライブラリ
4
INTEGER(4) SETCOLORRGB,COLOR
END FUNCTION
END INTERFACE
COLOR
入力。INTEGER(4)。現在のグラフィックス色に
設定する RGB 色値。範囲と結果は、システムの
ディスプレイ・アダプタによって異なります。
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETCOLORRGB で指定した値では、赤が
最も右端のバイトで、次に緑、青の順になります。RGB 色値の内部
構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETCOLORRGB は、背景色上のグラフィックスの RGB 色値を設定し
ます。この値は、ARC、ELLIPSE、FLOODFILL、LINETO、
OUTGTEXT、PIE、POLYGON、RECTANGLE、および SETPIXEL のグ
ラフィックス関数で使用されます。SETBKCOLORRGB は、テキスト
およびグラフィックスの両方について現在の背景の RGB 色値を設
定します。SETTEXTCOLORRGB は、背景色上のテキストの RGB 色
値(OUTTEXT、WRITE、PRINT などのテキスト関数で使用)を設
定します。
SETCOLORRGB(および他の SETBKCOLORRGB や
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETCOLOR、
SETBKCOLOR、SETTEXTCOLOR)は、True Color 値ではなく色指標
を使用します。色指標を使用する場合には、パレットで利用可能な
色(最大で 256 色)に制限されます。ディスプレイ・アダプタ
(SVGA または True Color)には、262,144(256K)色以上を作成す
る機能を備えているものもあります。すべての利用可能な色にアク
セスするには、非 RGB 色関数でパレット指標を指定しないで、
RGB 色関数で明示的に RGB 色値を指定する必要があります。
4-105
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は INTEGER(4) です。結果は、直前の RGB 色値です。
SETBKCOLORRGB
指定した RGB 色値を現在の背景色
に設定します。
プロトタイプ
INTERFACE
FUNCTION SETBKCOLORRGB(color)
INTEGER(4) SETBKCOLORRGB,COLOR
END FUNCTION
END INTERFACE
COLOR
入力。INTEGER(4)。背景色に設定する RGB 色値。
範囲と結果は、システムのディスプレイ・アダプ
タによって異なります。
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETBKCOLORRGB で指定した値では、赤
が最も右端のバイトで、次に緑、青の順になります。RGB 色値の内
部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETBKCOLORRGB は、テキストおよびグラフィックスの両方につい
て現在の背景の RGB 色値を設定します。背景色上のテキストの
RGB 色値(OUTTEXT、WRITE、PRINT などのテキスト関数で使用)
は、SETTEXTCOLORRGB で設定されます。背景色上のグラフィック
スの RGB 色値(ARC、OUTGTEXT、FLOODFILLRGB などのグラ
フィックス関数で使用)は、SETCOLORRGB で設定されます。
4-106
QuickWin ライブラリ
4
SETBKCOLORRGB(および他の SETCOLORRGB や
SETTEXTCOLORRGB などの RGB 色選択関数)は、全利用可能範囲か
ら選択された値に色を設定します。非 RGB 色関数(SETCOLOR、
SETBKCOLOR、SETTEXTCOLOR)は、True Color 値ではなく色指標
を使用します。色指標を使用する場合には、パレットで利用可能な
色(最大で 256 色)に制限されます。ディスプレイ・アダプタ
(SVGA または True Color)には、262,144(256K)色以上を作成す
る機能を備えているものもあります。すべての利用可能な色にアク
セスするには、非 RGB 色関数でパレット指標を指定しないで、
RGB 色関数で明示的に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、直前の背景の RGB 色値で
す。
SETPIXELRGB
指定した位置のピクセルに指定した
RGB 色値を設定します。
プロトタイプ
INTERFACE
FUNCTION SETPIXELRGB(X,Y,COLOR)
INTEGER(4) SETPIXELRGB,COLOR
INTEGER(2) X,Y
END FUNCTION
END INTERFACE
X, Y
入力。INTEGER(2)。目的のピクセルのビュー
ポート座標。
COLOR
入力。INTEGER(4)。ピクセルに設定する RGB 色
値。範囲と結果は、システムのディスプレイ・ア
ダプタによって異なります。
4-107
4
インテル ® Fortran ライブラリ・リファレンス
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETPIXELRGB で指定した値では、赤が
最も右端のバイトで、次に緑、青の順になります。RGB 色値の内部
構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETPIXELRGB(および他の SETPIXELSRGB や SETCOLORRGB など
の RGB 色選択関数)は、全利用可能範囲から選択された値に色を
設定します。非 RGB 色関数(SETPIXELS、SETCOLOR など)は、
True Color 値ではなく色指標を使用します。
色指標を使用する場合には、パレットで利用可能な色(最大で 256
色)に制限されます。ディスプレイ・アダプタ(SVGA または True
Color)には、262,144(256K)色以上を作成する機能を備えている
ものもあります。すべての利用可能な色にアクセスするには、非
RGB 色関数でパレット指標を指定しないで、RGB 色関数で明示的
に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、ピクセルの直前の RGB 色
値です。
SETPIXELRGB_W
指定した位置のピクセルに指定した
RGB 色値を設定します。
プロトタイプ
INTERFACE
FUNCTION SETPIXELRGB_W(X,Y,COLOR)
INTEGER(4) SETPIXELRGB_W,COLOR
4-108
QuickWin ライブラリ
REAL*8
END FUNCTION
END INTERFACE
4
WX,WY
WX, WY
入力。REAL(8)。目的のピクセルのウィンドウ座
標。
COLOR
入力。INTEGER(4)。ピクセルに設定する RGB 色
値。範囲と結果は、システムのディスプレイ・ア
ダプタによって異なります。
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETPIXELRGB_W で指定した値では、赤
が最も右端のバイトで、次に緑、青の順になります。RGB 色値の内
部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETPIXELRGB_W(および他の SETPIXELSRGB や SETCOLORRGB な
どの RGB 色選択関数)は、全利用可能範囲から選択された値に色
を設定します。非 RGB 色関数(SETPIXELS、SETCOLOR など)
は、True Color 値ではなく色指標を使用します。
色指標を使用する場合には、パレットで利用可能な色(最大で 256
色)に制限されます。ディスプレイ・アダプタ(SVGA または True
Color)には、262,144(256K)色以上を作成する機能を備えている
ものもあります。すべての利用可能な色にアクセスするには、非
RGB 色関数でパレット指標を指定しないで、RGB 色関数で明示的
に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、ピクセルの直前の RGB 色
値です。
4-109
4
インテル ® Fortran ライブラリ・リファレンス
RGBTOINTEGER
赤、緑、青の色輝度を指定した 3 つ
の整数を 4 バイト RGB 整数に変換
します。
プロトタイプ
INTERFACE
FUNCTION RGBTOINTEGER(RED,GREEN,BLUE)
INTEGER(4) RGBTOINTEGER,RED,GREEN,BLUE
END FUNCTION
END INTERFACE
RED
入力。INTEGER(4)。RGB 色値の赤成分の輝度。
RED の下位 8 ビットのみが使用されます。
GREEN
入力。INTEGER(4)。RGB 色値の緑成分の輝度。
GREEN の下位 8 ビットのみが使用されます。
BLUE
入力。INTEGER(4)。RGB 色値の青成分の輝度。
BLUE の下位 8 ビットのみが使用されます。
説明
RGB 関数およびサブルーチンで使用するために、赤、緑、青の色輝
度を指定した 3 つの整数を 4 バイト RGB 整数に変換します。各
RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進数の
2 桁)で表されます。RGBTOINTEGER で返された値では、赤が最も
右端のバイトで、次に緑、青の順になります。RGB 色値の内部構造
は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
4-110
QuickWin ライブラリ
4
出力
結果の型は INTEGER(4) です。結果は、混合された RGB 色値で
す。
INTEGERTORGB
RGB 色値を赤、緑、青の各成分に
変換します。
プロトタイプ
INTERFACE
SUBROUTINE INTEGER(4) (RGB,RED,GREEN,BLUE)
INTEGER(4) RGB,RED,GREEN,BLUE
END SUBROUTINE
END INTERFACE
RGB
入力。INTEGER(4)。赤、緑、青の各成分に変換
する RGB 色値。
RED
出力。INTEGER(4)。RGB 色値の赤成分の輝度。
GREEN
出力。INTEGER(4)。RGB 色値の緑成分の輝度。
BLUE
出力。INTEGER(4)。RGB 色値の青成分の輝度。
説明
INTEGERTORGBは、4バイトのRGB色値を次のように3つの成分に分
解します。
4-111
4
インテル ® Fortran ライブラリ・リファレンス
フォント操作関数
GETFONTINFO
現在のフォント特性を取得します。
プロトタイプ
INTERFACE
FUNCTION GETFONTINFO(FI)
INTEGER(2) GETFONTINFO
STRUCTURE /FONTINFO/
INTEGER(4) TYPE
INTEGER(4) ASCENT
INTEGER(4) PIXWIDTH
INTEGER(4) PIXHEIGHT
INTEGER(4)4 AVGWIDTH
CHARACTER(LEN=81) FILENAME
CHARACTER(LEN=32) FACENAME
LOGICAL(1) ITALIC
LOGICAL(1) EMPHASIZED
LOGICAL(1) UNDELINE
END STRUCTURE
RECORD /FONTINFO/FI
END FUNCTION
END INTERFACE
FI
出力。構造型 FONTINFO。現在のフォントの特性
を設定します。
TYPE FONTINFO
INTEGER(4) TYPE
INTEGER(4) ASCENT
INTEGER(4) PIXWIDTH
4-112
!
!
!
!
1 = truetype, 0 = bit map
Pixel distance from top
to baseline
Character width in pixels,
QuickWin ライブラリ
!
!
!
!
CHARACTER(32)XFACENAME !
LOGICAL(1) ITALIC
!
!
LOGICAL(1) EMPHASIZED !
!
LOGICAL(1) UNDERLINE
!
!
END TYPE FONTINFO
INTEGER(4) PIXHEIGHT
INTEGER(4) AVGWIDTH
4
0=proportional
Character height in pixels
Average character width in
pixels
Font name
.TRUE. if current font
formatted italic
.TRUE. if current font
formatted bold
.TRUE. if current font
formatted underlined
説明
GETFONTINFO を含むすべてのフォントに関連した関数を呼び出す
前に、INITIALIZEFONTS でフォントを初期化しなければなりませ
ん。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はゼロで、
失敗した場合は –1 です。
GETGTEXTEXTENT
現在のフォントを使用して
OUTGTEXT で与えられた文字列を
出力するのに必要な幅をピクセル値
で返します。
プロトタイプ
INTERFACE
FUNCTION GETGTEXTEXTENT(TEXT)
INTEGER(2) GETGTEXTEXTENT
4-113
4
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(LEN=*) TEXT
END FUNCTION
END INTERFACE
入力。CHARACTER(LEN=*)。解析するためのテ
キスト。
TEXT
説明
現在のフォントを使用して OUTGTEXT で与えられた文字列(末尾の
空白を含む)を表示するのに必要な幅をピクセル値で返します。こ
の関数は、プロポーショナル・フォントを使用したテキストの大き
さを決定するのに役立ちます。GETGTEXTEXTENT を含むすべての
フォントに関連した関数を呼び出す前に、INITIALIZEFONTS で
フォントを初期化しなければなりません。
出力
結果の型は INTEGER(2) です。結果は、成功した場合は text の幅
のピクセル数です。失敗した場合は、–1(例えば、
INITIALIZEFONTS でフォントが初期化されていない場合)です。
OUTGTEXT
グラフィックス・モードで、末尾の
空白を含む文字列を画面に送りま
す。
プロトタイプ
INTERFACE
SUBROUTINE OUTGTEXT(TEXT)
CHARACTER(LEN=*) TEXT
END SUBROUTINE
END INTERFACE
TEXT
4-114
入力。CHARACTER(LEN=*)。表示する文字列。
QuickWin ライブラリ
4
説明
グラフィックス・モードで、末尾の空白を含む文字列を画面に送り
ます。テキスト出力は、SETFONT で設定された現在のフォントと
SETCOLORRGB または SETCOLOR で設定された現在の色を使用して、
現在のグラフィックス位置から開始されます。書式化は行われませ
ん。テキストを出力した後、OUTGTEXT は現在のグラフィックス位
置を更新します。
OUTGTEXT を呼び出す前に、INITIALIZEFONTS を呼び出さなけれ
ばなりません。
OUTGTEXT はグラフィックス関数のため、テキストの色は
SETTEXTCOLORRGB 関数ではなく SETCOLORRGB 関数に影響されま
す。
INITIALIZEFONTS
Windows フォントを初期化します。
プロトタイプ
INTERFACE
FUNCTION INITIALIZAFONTS()
INTEGER(2) INITIALIZAFONTS
END FUNCTION
END INTERFACE
説明
Windows のフォントはすべて、INITIALIZEFONTS を呼び出した後
で利用可能になります。フォントは、他のフォント関連ライブラリ
関数(GETFONTINFO、GETGTEXTEXTENT、SETFONT、OUTGTEXT
など)を使用する前に、INITIALIZEFONTS で初期化されていなけ
ればなりません。
4-115
4
インテル ® Fortran ライブラリ・リファレンス
開いた各ウィンドウに対して、SETFONT を呼び出す前に
INITIALIZEFONTS を呼び出さなければなりません。SETFONT 呼び
出しを成功させるには、新しい子ウィンドウを開くたびに、
INITIALIZEFONTS を実行する必要があります。
出力
結果の型は INTEGER(2) です。結果は、初期化されたフォント数
です。
SETFONT
指定した特性の組み合わせに一致す
る 1 つのフォントを検索します。
プロトタイプ
INTERFACE
FUNCTION SETFONT(OPTIONS)
INTEGER(2) SETFONT
CHARACTER(LEN=*) OPTIONS
END FUNCTION
END INTERFACE
OPTIONS
入力。CHARACTER(LEN=*)。フォント特性を表
す文字列。
説明
指定した特性の組み合わせに一致する 1 つのフォントを検索し、そ
れを OUTGTEXT 関数が使用する現在のフォントとして設定します。
SETFONT 関数は、OPTIONS で指定した特性に一致するフォントを
利用可能なフォント一覧で検索します。特性に一致するフォントが
あれば、それが現在のフォントになります。現在のフォントは、後
続のすべての OUTGTEXT 関数への呼び出しに使用されます。現在の
フォントは 1 つしかありません。
4-116
QuickWin ライブラリ
4
OPTIONS 引数は、希望のフォントを表す次のような文字コードで構
成されます。OPTIONS パラメータには、大文字小文字や場所の区
別はありません。
t'fontname'
希望の書体名。インストールされているどのフォ
ントでも指定できます。
hy
字高。y はピクセル数です。
wx
字幅を選択。x はピクセル数です。
f
固定長フォントのみを選択(p 特性と一緒には使
用できません)。
p
可変長フォントのみを選択(f 特性と一緒には使
用できません)。
v
ベクトル・マップ・フォントのみを選択(r 特性
と一緒には使用できません)。Windows NT では、
Roman、Modern、および Script がベクトル・マッ
プ・フォントの例です。これは、プロッタフォン
トとも呼ばれます。True Type フォント(Arial、
Symbol、Times New Roman など)はベクトル・
マップ・フォントではありません。
r
ラスタマップ(ビットマップ)フォントのみを選
択(v 特性と一緒には使用できません)
。Windows
NT では、Courier、Helvetica、および Palatino がラ
スタマップ・フォントの例です。これは、スク
リーン・フォントとも呼ばれます。True Type フォ
ントはラスタマップ・フォントではありません。
e
ボールドのテキスト書式を選択。フォントにボー
ルド書式を使用できない場合、このパラメータは
無視されます。
u
下線テキスト書式を選択。フォントに下線を使用
できない場合、このパラメータは無視されます。
i
イタリック・テキスト書式を選択。フォントにイ
タリック書式を使用できない場合、このパラメー
タは無視されます。
b
指定した他のパラメータに最もよく適合するフォ
ントを選択。
4-117
4
インテル ® Fortran ライブラリ・リファレンス
nx
フォント番号 x を選択。x は、INTIALIZEFONTS
関数が返す値と等しいかそれ以下です。
単独で使用しなければならない nx を除いて、必要なだけオプショ
ンを指定できます。相互に排他的(f/p または r/v の組など)な
オプションを指定した場合、SETFONT 関数はそれらを無視します。
nx と一緒に互換性のないパラメータを使用しても、エラーは検出さ
れません。
b オプションが指定され、少なくとも 1 つのフォントが初期化されて
いる場合、SETFONT は 1 つのフォントを設定し、成功を示す 0 を
返します。
フォントを選択する場合、SETFONT 関数は次の基準を上から下の
優先順位で使用します。
•
•
•
•
ピクセル高
書体
ピクセル幅
固定長または可変長フォント
フォントにピクセル幅とピクセル高を指定することもできます。存
在しない値を選択するか、b オプションを指定した場合、SETFONT
は最も近い値を選択します。
小さいフォントサイズが大きいサイズよりも優先されます。b オプ
ションで Arial 12 を要求したけれども、Arial 10 と Arial 14 しか利用
できない場合、SETFONT は Arial 10 を選択します。
ピクセル高とピクセル幅に存在しない値を選択した場合、SETFONT
関数はベクトル・マップ・フォントに拡大率を適用して適切なフォ
ントサイズを得ます。この自動拡大は、r オプション(ラスタマッ
プ・フォント)を指定するか、または特定の書体を指定して b オプ
ション(最良適合)を指定しなかった場合は適用されません。
nx パラメータを指定した場合、SETFONT は指定された他のオプ
ションを無視し、x に対応するフォント番号だけを供給します。
字高が指定され字幅が指定されていない場合やその逆の場合、
SETFONT は指定のない値を計算して正しいフォント特性を保持しま
す。
フォント関数は、OUTGTEXT と現在のグラフィックス位置にのみ影
響します。他の Fortran グラフィックス・ライブラリ関数はフォン
トの使用に影響されません。
4-118
QuickWin ライブラリ
4
開いた各ウィンドウに対して、SETFONT を呼び出す前に
INITIALIZEFONTS を呼び出さなければなりません。SETFONT 呼び
出しを成功させるには、新しい子ウィンドウを開くたびに、
INITIALIZEFONTS を実行する必要があります。
出力
結果の型は INTEGER(2) です。結果は、成功した場合はフォント
の指標数(nx オプションで使用する x)で、失敗した場合は –1 で
す。
SETGTEXTROTATION
フォントテキスト出力の方向角を度
単位で設定します。
プロトタイプ
INTERFACE
SUBROUTINE SETGTEXTROTATION(DEGREES)
INTEGER(4) DEGREES
END SUBROUTINE
END INTERFACE
DEGREES
入力。INTEGER(4)。フォントテキスト出力の方
向角 (0.1 度の単位 )。
説明
フォントテキスト出力の方向角を度単位で設定します。現在の向き
は、OUTGTEXT の呼び出しで使用されます。フォントテキスト出力
の向きは、1/10°単位で設定します。水平は 0°で、角度は反時計
回りに増加します。したがって、900(90°)は上向き、1800(180
°)は上下逆の左向き、2700(270°)は下向きというようになり
ます。ユーザが 3600(360°)より大きい値を指定した場合、サブ
ルーチンは次と等しい値をとります。
MODULO(ユーザ指定の度数(1/10°単位)、3600)
4-119
4
インテル ® Fortran ライブラリ・リファレンス
SETGTEXTROTATION は 1/10°単位の引数を受け入れますが、画面
上では 1°以上の増加でないと視覚的に違いはわかりません。
GETGTEXTROTATION
OUTGTEXT で出力されるフォントテ
キストの現在の向きを返します。
プロトタイプ
INTERFACE
FUNCTION GETGTEXTROTATION()
INTEGER(4) GETGTEXTROTATION
END FUNCTION
END INTERFACE
説明
OUTGTEXT を使用したフォントテキスト出力の向きは、
SETGTEXTROTATION で設定されます。
出力
結果の型は INTEGER(4) です。結果は、フォントテキスト出力の現
在の向き(1/10°単位)です。水平が 0°で、角度は反時計回りに増
加します。したがって、900(90°)は上向き、1800(180°)は上
下逆の左向き、2700(270°)は下向きというようになります。
4-120
QuickWin ライブラリ
4
GETTEXTCOLORRGB
現在のテキストの色の RGB 色値を
取得します。
プロトタイプ
INTERFACE
FUNCTION GETTEXTCOLORRGB()
INTEGER(4) GETTEXTCOLORRGB
END FUNCTION
END INTERFACE
説明
現在のテキストの色(OUTTEXT、WRITE、および PRINT で使用)
の RGB 色値を取得します。各 RGB 色値では、3 色(赤、緑、青)
の各色は 8 ビット値(16 進数の 2 桁)で表されます。
GETTEXTCOLORRGB で取り出した値では、赤が最も右端のバイト
で、次に緑、青の順になります。RGB 色値の内部構造は次のとおり
です。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
GETTEXTCOLORRGB は、背景色上のテキストの RGB 色値
(OUTTEXT、WRITE、PRINT などのテキスト関数で使用)を返しま
す。RGB 色値は、SETTEXTCOLORRGB で設定されます。グラ
フィックスに対して使用される RGB 色値は、SETCOLORRGB で設
定され、GETCOLORRGB で返されます。SETCOLORRGB は、グラ
フィックス関数 OUTGTEXT で使用される色を制御します。一方、
SETTEXTCOLORRGB は、他のすべてのテキスト出力関数で使用され
る色を制御します。テキストとグラフィックスの両方の RGB 背景
色は、SETBKCOLORRGB で設定され、GETBKCOLORRGB で返されま
す。
4-121
4
インテル ® Fortran ライブラリ・リファレンス
SETTEXTCOLORRGB(および他の SETBKCOLORRGB や
SETCOLORRGB などの RGB 色選択関数)は、全利用可能範囲から選
択された値に色を設定します。非 RGB 色関数(SETTEXTCOLOR、
SETBKCOLOR、および SETCOLOR)は、True Color 値ではなく色指標
を使用します。色指標を使用する場合には、パレットで利用可能な
色(最大で 256 色)に制限されます。ディスプレイ・アダプタ
(SVGA または True Color)には、262,144(256K)色以上を作成す
る機能を備えているものもあります。すべての利用可能な色にアク
セスするには、非 RGB 色関数でパレット指標を指定しないで、
RGB 色関数で明示的に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は現在のテキストの色の RGB
色値です。
SETTEXTCOLORRGB
指定した RGB 色値を現在のテキス
トの色に設定します。
プロトタイプ
INTERFACE
FUNCTION SETTEXTCOLORRGB(COLOR)
INTEGER(4) SETTEXTCOLORRGB,COLOR
END FUNCTION
END INTERFACE
COLOR
4-122
入力。INTEGER(4)。テキストの色に設定する
RGB 色値。範囲と結果は、システムのディスプレ
イ・アダプタによって異なります。
QuickWin ライブラリ
4
説明
各 RGB 色値では、3 色(赤、緑、青)の各色は 8 ビット値(16 進
数の 2 桁)で表されます。SETTEXTCOLORRGB で指定した値では、
赤が最も右端のバイトで、次に緑、青の順になります。RGB 色値の
内部構造は次のとおりです。
数値が大きいほど色強度が強く、2 進数の 1111111(16 進数 FF)が
3 つの各要素の最大強度になります。例えば、#0000FF は赤の最大
強度、#00FF00 は緑の最大強度、#FF0000 は青の最大強度、
#FFFFFF は 3 つすべての最大強度で結果的に明るい白になります。
SETTEXTCOLORRGB は、現在のテキスト RGB 色値を設定します。デ
フォルト値は #00FFFFFF で、最大輝度の白色です。
SETTEXTCOLORRGB は、OUTTEXT、WRITE、および PRINT で使用す
る色を設定します。これは、OUTGTEXT フォントルーチンのテキス
ト出力の色には影響しません。フォントテキスト出力の色を変更す
るには、SETCOLORRGB を使用します。
SETBKCOLORRGB は、テキストとグラフィックスの両方について現
在の背景の RGB 色値を設定します。背景色上のグラフィックスの
RGB 色値(ARC、FLOODFILLRGB、OUTGTEXT などのグラフィッ
クス関数で使用)は、SETCOLORRGB で設定します。
SETTEXTCOLORRGB(および他の SETBKCOLORRGB や
SETCOLORRGB などの RGB 色選択関数)は、全利用可能範囲から選
択された値に色を設定します。非 RGB 色関数(SETTEXTCOLOR、
SETBKCOLOR、および SETCOLOR)は、True Color 値ではなく色指標
を使用します。
色指標を使用する場合には、パレットで利用可能な色(最大で 256
色)に制限されます。ディスプレイ・アダプタ(SVGA または True
Color)には、262,144(256K)色以上を作成する機能を備えている
ものもあります。すべての利用可能な色にアクセスするには、非
RGB 色関数でパレット指標を指定しないで、RGB 色関数で明示的
に RGB 色値を指定する必要があります。
出力
結果の型は INTEGER(4) です。結果は、直前のテキスト RGB 色値
です。
4-123
4
インテル ® Fortran ライブラリ・リファレンス
QuickWin との互換性サポート
ABOUTBOXQQ
ヘルプメニューから「About」コマ
ンドを選択したときに表示される
メッセージ・ボックス情報を指定し
ます。
プロトタイプ
INTERFACE
FUNCTION ABOUTBOXQQ(STR)
INTEGER(4) ABOUTBOXQQ
CHARACTER(LEN=*) STR
END FUNCTION
END INTERFACE
STR
入力、出力。CHARACTER(LEN=*)。ヌルで終了
する C 文字列。
説明
QuickWin アプリケーションのヘルプメニューから「About」コマン
ドを選択したときに現れるメッセージ・ボックスに表示される情報
を指定します。プログラムが ABOUTBOXQQ を呼び出していない場
合、QuickWin ランタイム・ライブラリはデフォルトの文字列を提
供します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合は 0 で、失
敗した場合はゼロ以外です。
4-124
QuickWin ライブラリ
4
APPENDMENUQQ
メニューの最後にメニュー項目を追
加し、コールバック・サブルーチン
を登録します。
プロトタイプ
INTERFACE
FUNCTION APPENDMENUQQ(MENUID,FLAGS,TEXT,ROUTINE)
LOGICAL APPENDMENUQQ
INTEGER(4) MENUID,FLAGS
CHARACTER(LEN=*) TEXT
EXTERNAL ROUTINE
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。項目を追加するメニューの
識別子。最も左のメニューが 1 です。
FLAGS
入力。INTEGER(4)。メニュー状態を示す定数。
包和的論理和でフラグを結合することができます。
次の定数が利用可能です。
$MENUGRAYED メニュー項目を無効にし、表示を
グレーにします。
$MENUDISABLED
メニュー項目を無効にしますが、
表示をグレーにしません。
$MENUENABLED
メニュー項目を有効にします。
$MENUSEPARATOR
区切りバーを描画します。
$MENUCHECKED
メニュー項目にチェックを入れま
す。
4-125
4
インテル ® Fortran ライブラリ・リファレンス
$MENUUNCHECKED
メニュー項目のチェックを取り除
きます。
4-126
TEXT
入力。CHARACTER(LEN=*)。メニュー項目名。
ヌルで終わる C 文字列でなければなりません。例
えば、'WORDS OF TEXT'C です。
ROUTINE
入力。EXTERNAL。メニュー項目が選択されたと
きに呼び出されるコールバック・サブルーチン。
すべてのルーチンは、メニュー項目がチェックさ
れたかどうかを示す 1 つの LOGICAL パラメータ
をとります。次の事前定義済みルーチンをメ
ニューに割り当てることができます。
WINPRINT
プログラムを印刷します。
WINSAVE
プログラムを保存します。
WINEXIT
プログラムを終了します。
WINSELTEXT 現在のウィンドウからテキストを
選択します。
WINSELGRAPH 現在のウィンドウからグラフィッ
クスを選択します。
WINSELALL
現在のウィンドウの全内容を選択
します。
WINCOPY
現在のウィンドウから選択したテ
キストおよび / またはグラフィッ
クスをクリップボードにコピーし
ます。
WINPASTE
READ 中にクリップボートの内容
(テキストのみ)を活動状態にあ
るウィンドウの現在のテキスト・
ウィンドウに貼り付けることを利
用者に許可します。
WINCLEARPASTE
貼り付けバッファをクリアしま
す。
WINSIZETOFIT
出力をウィンドウに合わせた大き
さにします。
QuickWin ライブラリ
4
WINFULLSCREEN
出力を全画面で表示します。
WINSTATE
テキスト出力の状態を中断と再開
の間で切り替えます。
WINCASCADE 活動状態のウィンドウを重ねて表
示します。
WINTILE
活動状態のウィンドウを並べて表
示します。
WINARRANGE アイコンを整列させます。
WINSTATUS
ステータス・バーを有効にしま
す。
WININDEX
QuickWin ヘルプの索引を表示しま
す。
WINUSING
ヘルプの使用方法の情報を表示し
ます。
WINABOUT
現在の QuickWin アプリケーション
の情報を表示します。
NUL
コールバック・ルーチンなし。
説明
APPENDMENUQQ が常にメニュー一覧の最後に新しい項目を追加する
ため、メニュー項目番号を指定する必要はありません。まだメ
ニューに項目がない場合、追加した項目は最上位メニュー項目(メ
ニューバーに表示されます)として扱われ、TEXT がメニューのタ
イトルになります。
メニューに他のメニュー項目がない場合、APPENDMENUQQ は最上
位メニュー項目のコールバック・ルーチンを無視します。この場合
は、ROUTINE を NUL に設定することができます。
メニュー項目をメニュー一覧の最後に追加するのではなく、メ
ニュー中に挿入したい場合には、INSERTMENUQQ を使用します。
FLAGS に利用できる定数は、$MENUCHECKED .OR.
$MENUENABLED のように包和的論理和で結合することができます。
組み合わせによっては意味のないものあり(例えば、
$MENUENABLED と $MENUDISABLED)、その動作は不定です。
4-127
4
インテル ® Fortran ライブラリ・リファレンス
テキスト文字列でショートカット・キーを作成することができま
す。下線を引きたい文字の前にアンパサンド (&) を置き、TEXT と
して APPENDMENUQQ に渡します。例えば、"R" に下線を引いた
"Print" メニュー項目を追加する場合は、TEXT を "P&rint" にしま
す。プログラムのユーザは、ショートカット・キーによって、マウ
スで項目を選択する代わりに、ALT+QUICK-ACCESS-KEY(例え
ば、ALT+R)キーの組み合わせで、メニュー項目をアクティブにす
ることができます。
出力
結果の型は LOGICAL です。結果は、成功した場合は .TRUE. で、
失敗した場合は .FALSE. です。
CLICKMENUQQ
メニューコマンドのクリックまたは
選択の効果をシュミレートします。
プロトタイプ
FUNCTION CLICKMENUQQ(ITEM)
INTEGER(4) CLICKMENUQQ,ITEM
END FUNCTION
END INTERFACE
ITEM
4-128
入力。INTEGER(4)。ウィンドウ・メニューから
選択されたコマンドを表す定数。次のシンボル定
数値のいずれかでなければなりません。
QWIN$STATUS ステータス・コマンド
QWIN$TILE
並べて表示コマンド
QWIN$CASCADE
重ねて表示コマンド
QWIN$ARRANGE
アイコンの整列コマンド
QuickWin ライブラリ
4
説明
メニューコマンドのクリックまたは選択の効果をシュミレートしま
す。QuickWin アプリケーションは、ユーザがコマンドをクリック
または選択した場合と同じように応答します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合はゼロ以外です。
DELETEMENUQQ
QuickWin メニューからメニュー項
目を削除します。
プロトタイプ
INTERFACE
FUNCTION DELETEMENUQQ(MENUID,ITEMID)
LOGICAL DELETEMENUQQ
INTEGER(4) MENUID,ITEMID
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。削除するメニュー項目を含
むメニューの識別子。最も左のメニューが 1 です。
ITEMID 入力。INTEGER(4)。削除するメニュー
項目の識別子。最上位メニュー項目が 0 です。
説明
QuickWin メニューからメニュー項目を削除します。
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
4-129
4
インテル ® Fortran ライブラリ・リファレンス
FOCUSQQ
指定した装置番号のウィンドウに
フォーカスを設定します。
プロトタイプ
INTERFACE
FUNCTION FOCUSQQ(IUNIT)
INTEGER(4) FOCUSQQ,IUNIT
END FUNCTION
END INTERFACE
IUNIT
入力。INTEGER(4)。フォーカスを設定するウィ
ンドウの装置番号。装置番号 0、5、および 6 は、
デフォルトの開始ウィンドウとして参照されます。
説明
プログラムが装置番号 0、5、および 6 を指定して開かなければ、装
置番号 0、5、および 6 はデフォルトのウィンドウとして参照されま
す。これらの装置が開かれ、ウィンドウに接続されている場合は、
これらの装置が閉じられると自動的にコンソールに再接続されま
す。
SETACTIVEQQ とは異なり、FOCUSQQ は指定した装置を前面に移動
します。フォーカスを持つウィンドウが必ずしも活動状態のウィン
ドウ(グラフィックス出力を受け取るウィンドウ)である必要はな
いことに注意してください。SETACTIVEQQ を呼び出せば、フォー
カスを取得しなくてもウィンドウを活動状態にすることができま
す。
ウィンドウは、IOFOCUS=.FALSE. で開かれていない限り、
FOCUSQQ でフォーカスが与えられたとき、マウスをクリックして選
択されたとき、またはグラフィックス操作以外の I/O 操作を行った
ときにフォーカスを持ちます。IOFOCUS 指定子は、その装置で I/O
文が実行されたときにウィンドウがフォーカスを受け取るかどうか
を決定します。例えば、次のようになります。
OPEN (UNIT = 10, FILE = 'USER', IOFOCUS = .TRUE.)
4-130
QuickWin ライブラリ
4
子ウィンドウが装置 * として開かれている場合を除いて、デフォル
トでは IOFOCUS=.TRUE. です。IOFOCUS=.TRUE. の場合、子
ウィンドウは READ、WRITE、PRINT、または OUTTEXT より先に
フォーカスを受け取ります。グラフィックス関数(OUTGTEXT や
ARC など)を呼び出しても、フォーカスは移動しません。
出力
結果の型は INTEGER(4) です。結果は、成功した場合は 0 で、失
敗した場合はゼロ以外です。
GETACTIVEQQ
現在活動状態の子ウィンドウの装置
番号を返します。
プロトタイプ
INTERFACE
FUNCTION GETACTIVEQQ()
INTEGER(4) GETACTIVEQQ
END FUNCTION
END INTERFACE
説明
この関数は、現在活動状態の子ウィンドウの装置番号を返します。
出力
結果の型は INTEGER(4) です。結果は、現在活動状態のウィンド
ウの装置番号です。子ウィンドウが活動状態でない場合は、パラ
メータ QWIN$NOACTIVEWINDOW が返されます。
4-131
4
インテル ® Fortran ライブラリ・リファレンス
GETEXITQQ
QuickWin アプリケーションの終了
動作の設定を取得します。
プロトタイプ
INTERFACE
FUNCTION GETEXITQQ()
INTEGER(4) GETEXITQQ
END FUNCTION
END INTERFACE
説明
この関数は、QuickWin アプリケーションの終了動作の設定を取得
します。
出力
結果の型は INTEGER(4) です。結果は、次の定数の 1 つを持つ終
了モードです。
QWIN$EXITPROMPT
"Program exited with exit status n. Exit
Window?" のメッセージ・ボックスを
表示します。ここで、n はプログラ
ムからの終了状態です。「Yes」を選
択すると、アプリケーションはウィ
ンドウを閉じて終了します。
「No」
を選択すると、ダイアログ・ボック
スが消え、通常どおりウィンドウを
操作することができます。ウィンド
ウは手動で閉じなければなりません。
QWIN$EXITNOPERSIST
4-132
メッセージ・ボックスを表示しない
でアプリケーションを終了します。
QuickWin ライブラリ
QWIN$EXITPERSIST
4
メッセージ・ボックスを表示しない
でアプリケーションを開いたままに
します。
QuickWin および Console Graphics アプリケーションともデフォルト
は、QWIN$EXITPROMPT です。
GETHWNDQQ
ウィンドウ装置番号を Windows ハン
ドルに変換します。
プロトタイプ
INTERFACE
FUNCTION GETHWNDQQ(IUNIT)
INTEGER(4) GETHWNDQQ, IUNIT
END FUNCTION
END INTERFACE
IUNIT
入力。INTEGER(4)。ウィンドウ装置番号。
IUNIT に QWIN$FRAMEWINDOW が設定されている
場合、フレーム・ウィンドウのハンドルが返され
ます。
説明
この関数は、ウィンドウ装置番号を Windows ハンドルに変換しま
す。
出力
結果の型は INTEGER(4) です。結果は、ウィンドウに対する
Windows ハンドルです。IUNIT が開かれていない場合は、-1 が返
されます。
4-133
4
インテル ® Fortran ライブラリ・リファレンス
GETUNITQQ
指定した Windows ハンドルに対応す
る装置番号を返します。
プロトタイプ
INTERFACE
FUNCTION GETUNITQQ(IHANDLE)
INTEGER(4) GETUNITQQ,IHANDLE
END FUNCTION
END INTERFACE
IHANDLE
入力。INTEGER(4)。ウィンドウの Windows ハン
ドル。これは一意の ID です。
説明
指定した Windows ハンドルに対応する装置番号を返します。この
ルーチンは、GETHWNDQQ の逆を行います。
出力
結果の型は INTEGER(4) です。結果は、指定した Windows ハンド
ルに対応する装置番号です。IHANDLE が存在しない場合は、-1 が
返されます。
GETWINDOWCONFIG
現在のウィンドウのプロパティを取
得します。
プロトタイプ
INTERFACE
FUNCTION GETWINDOWCONFIG(WC)
4-134
QuickWin ライブラリ
4
LOGICAL GETWINDOWCONFIG
STRUCTURE /WINDOWCONFIG/
INTEGER(2) NUMXPIXELS,NUMYPIXELS
INTEGER(2) NUMTEXTCOLS,NUMTEXTROWS
INTEGER(2) NUMCOLORS
INTEGER(2) FONTSIZE
CHARACTER(LEN=80) TITLE
INTEGER(2) BITSPERPIXEL
INTEGER(2) NUMVIDEOPAGES
INTEGER(2) MODE
INTEGER(2) ADAPTER
INTEGER(2) MONITOR
INTEGER(2) MEMORY
INTEGER(2) ENVIRONMENT
CHARACTER(LEN=32) EXTENDFONTNAME
INTEGER(4) EXTENDFONTSIZE
INTEGER(4) EXTENDFONTATTRIBUTES
END STRUCTURE
RECORD /WINDOWCONFIG/WC
END FUNCTION
END INTERFACE
出力。構造型 WINDOWCONFIG。ウィンドウ・プロ
パティが含まれます。
TYPE WINDOWCONFIG
INTEGER(2) NUMXPIXELS
! Number of pixels on x-axis
INTEGER(2) NUMYPIXELS
! Number of pixels on y-axis
INTEGER(2) NUMTEXTCOLS
! Number of text columns
! available
INTEGER(2) NUMTEXTROWS
! Number of text rows
! available
INTEGER(2) NUMCOLORS
! Number of color indexes
INTEGER(4) FONTSIZE
! Size of default font. Set
! to QWIN$EXTENDFONT when using
! multibyte characters, in which case
! EXTENFONTSIZE sets the font size.
WC
4-135
4
インテル ® Fortran ライブラリ・リファレンス
CHARACTER(LEN=80) title ! window title
INTEGER(2) BITSPERPIXEL ! number of bits per pixel
! The next three parameters support multibyte
! character sets (such as Japanese)
CHARACTER(LEN=32) EXTENDFONTNAME
! any
! nonproportionally spaced font available on the
! system
INTEGER(4) EXTENDFONTSIZE ! takes same values as
! FONTSIZE, but used for multibyte
! character sets when FONTSIZE set to
! QWIN$EXTENDFONT
INTEGER(4) EXTENDFONTATTRIBUTES ! font attributes
! such as bold and italic for
! multibyte character sets
END TYPE WINDOWCONFIG
説明
GETWINDOWCONFIG は、活動状態の子ウィンドウに関する情報を返
します。SETWINDOWCONFIG でウィンドウ・プロパティを設定して
いない場合、GETWINDOWCONFIG はデフォルトのウィンドウ値を返
します。
標準的な値は、1024 X ピクセル、768 Y ピクセル、128 テキスト行、
48 テキスト列、および 8x16 ピクセルのフォントサイズです。画面
の解像度と 8x16 ピクセルの仮定フォントサイズによって、テキス
ト行数とテキスト列数が生成されます。解像度(この場合、1024 X
ピクセルと 768 Y ピクセル)は、仮想ウィンドウ・サイズです。画
面上の可視物理ウィンドウ・サイズを取得するには、GETWSIZEQQ
を使用します。この場合、GETWSIZEQQ は、物理ウィンドウの x と
y 位置の(0,0)、高さまたは列数の 25、幅または行数の 71 を返しま
した。
返される色数は、ビデオドライブによって異なります。デフォルト
のウィンドウ・タイトルは "Graphic1" です。これらの値はすべて、
SETWINDOWCONFIG で変更することができます。
WINDOWCONFIG 構造型の bitsperpixel 欄は、出力のみであることに
注意してください。他の欄は GETWINDOWCONFIG に出力値を返し、
SETWINDOWCONFIG から入力値を受け取ります。
4-136
QuickWin ライブラリ
4
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE.(例えば、活動状態の子ウィンドウ
がない場合)です。
GETWSIZEQQ
ウィンドウの大きさと位置を取得し
ます。
プロトタイプ
INTERFACE
FUNCTION GETWSIZEQQ(IUNIT,IREQ,WINFO)
structure /QWINFO/
INTEGER(2) TYPE,X,Y,H,W
END STRUCTURE
INTEGER(4) GETWSIZEQQ,IUNIT
INTEGER(4) IREQ
RECORD /QWINFO/ WINFO
END FUNCTION
END INTERFACE
IUNIT
入力。INTEGER(4)。ウィンドウ装置番号を指定
します。OPEN 文で装置番号 0、5、および 6 を明
示的に開いていない場合、これらの装置番号はデ
フォルトの開始ウィンドウのみを参照します。フ
レーム・ウィンドウ(子ウィンドウに対して)の
情報を参照するには、unit にシンボル定数
QWIN$FRAMEWINDOW を設定します。
IREQ
入力。INTEGER(4)。取得したい情報を指定しま
す。
QWIN$SIZEMAX
最大ウィンドウ・サイズに関する
情報を取得します。
4-137
4
インテル ® Fortran ライブラリ・リファレンス
QWIN$SIZECURR
現在のウィンドウ・サイズに関す
る情報を取得します。
WINFO
出力。構造型 QWINFO。ウィンドウの左上隅の物
理座標、およびウィンドウのクライアント領域
(フレーム内の領域)の現在または最大の高さと
幅。
TYPE QWINFO
INTEGER(2) TYPE
INTEGER(2) X
INTEGER(2) Y
INTEGER(2) H
INTEGER(2) W
END TYPE QWINFO
!
!
!
!
!
!
request type (controls
SETWSIZEQQ)
x coordinate for upper left
y coordinate for upper left
window height
window width
説明
子ウィンドウの位置と大きさは、文字の高さと幅の単位で表されま
す。フレーム・ウィンドウの位置と大きさは、画面のピクセル値で
表されます。
フレーム・ウィンドウに返される高さと幅は、境界、メニュー、フ
レーム・ウィンドウ下部のステータス・バーを除くクライアント領
域の大きさ(ピクセル数)に反映されます。これを考慮に入れて
SETWSIZEQQ で使用する値を調整する必要があります。
クライアント領域は、子ウィンドウを配置するのに実際に利用でき
る領域です。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合はゼロ以外です。
4-138
QuickWin ライブラリ
4
INQFOCUSQQ
どのウィンドウにフォーカスがある
か判別します。
プロトタイプ
INTERFACE
FUNCTION INQFOCUSQQ(IUNIT)
INTEGER(4) INQFOCUSQQ,IUNIT
END FUNCTION
END INTERFACE
IUNIT
出力。INTEGER(4)。I/O フォーカスを持つウィ
ンドウの装置番号。
説明
プログラムが装置番号 0、5、および 6 を指定して開かなければ、装
置番号 0、5、および 6 はデフォルトのウィンドウとして参照されま
す。これらの装置が開かれ、ウィンドウに接続されている場合は、
これらの装置が閉じられると自動的にコンソールに再接続されま
す。
フォーカスを持つウィンドウは、常に前面にあります。フォーカス
を持つウィンドウが必ずしも活動状態のウィンドウ(グラフィック
ス出力を受け取るウィンドウ)である必要はないことに注意してく
ださい。SETACTIVEQQ を呼び出せば、フォーカスを取得しなくて
もウィンドウを活動状態にすることができます。
ウィンドウは、IOFOCUS=.FALSE. で開かれていない限り、
FOCUSQQ でフォーカスが与えられたとき、マウスをクリックして選
択されたとき、またはグラフィックス操作以外の I/O 操作を行った
ときにフォーカスを持ちます。IOFOCUS 指定子は、その装置で I/O
文が実行されたときにウィンドウがフォーカスを受け取るかどうか
を決定します。例えば、次のようになります。
OPEN (UNIT = 10, FILE = 'USER', IOFOCUS = .TRUE.)
4-139
4
インテル ® Fortran ライブラリ・リファレンス
子ウィンドウが装置 * として開かれている場合を除いて、デフォル
トでは IOFOCUS=.TRUE. です。IOFOCUS=.TRUE. の場合、子
ウィンドウは READ、WRITE、PRINT、または OUTTEXT より先に
フォーカスを受け取ります。グラフィックス関数(OUTGTEXT や
ARC など)を呼び出しても、フォーカスは移動しません。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合はゼロ以外です。フォーカスを持つウィンドウが閉じ
られた装置番号に結合されている場合、関数は失敗します。
INSERTMENUQQ
QuickWin メニューにメニュー項目
を挿入し、そのコールバック・ルー
チンを登録します。
プロトタイプ
INTERFACE
FUNCTION
INSERTMENUQQ(MENUID,ITEMID,FLGS,TEXT,ROUTINE)
LOGICAL INSERTMENUQQ
INTEGER(4) MENUID,ITEMID,FLAGS
CHARACTER(LEN=*) TEXT
EXTERNAL ROUTINE
END FUNCTION
END INTERFACE
4-140
MENUID
入力。INTEGER(4)。項目を挿入するメニューの
識別子。最も左のメニューが 1 です。
ITEMID
入力。INTEGER(4)。項目が挿入されるメニュー
位置の識別子。最上位メニュー項目が 0 です。
QuickWin ライブラリ
FLAGS
4
入力。INTEGER(4)。メニュー状態を示す定数。
包和的論理和でフラグを結合することができます
( 結果を参照 )。次の定数が利用可能です。
$MENUGRAYED
メニュー項目を無効にし、表示をグレーにします。
$MENUDISABLED
メニュー項目を無効にしますが、表示をグレーに
しません。
$MENUENABLED
メニュー項目を有効にします。
$MENUSEPARATOR
区切りバーを描画します。
$MENUCHECKED
メニュー項目にチェックを入れます。
$MENUUNCHECKED
メニュー項目のチェックを取り除きます。
TEXT
入力。CHARACTER(LEN=*)。メニュー項目名。
ヌルで終わる C 文字列でなければなりません。例
えば、'WORDS OF TEXT'C です。
ROUTINE
入力。EXTERNAL。メニュー項目が選択されたと
きに呼び出されるコールバック・サブルーチン。
すべてのルーチンは、メニュー項目がチェックさ
れたかどうかを示す 1 つの LOGICAL パラメータ
をとります。次の事前定義済みルーチンをメ
ニューに割り当てることができます。
WINPRINT
プログラムを印刷します。
WINSAVE
プログラムを保存します。
WINEXIT
プログラムを終了します。
WINSELTEXT 現在のウィンドウからテキストを
選択します。
WINSELGRAPH 現在のウィンドウからグラフィッ
クスを選択します。
4-141
4
インテル ® Fortran ライブラリ・リファレンス
現在のウィンドウの全内容を選択
します。
WINCOPY
現在のウィンドウから選択したテ
キストおよび / またはグラフィッ
クスをクリップボードにコピーし
ます。
WINPASTE
READ 中にクリップボードの内容
(テキストのみ)を活動状態にあ
るウィンドウの現在のテキスト・
ウィンドウに貼り付けることを利
用者に許可します。
WINCLEARPASTE
貼り付けバッファをクリアしま
す。
WINSIZETOFIT
出力をウィンドウに合わせた大き
さにします。
WINFULLSCREEN
出力を全画面で表示します。
WINSTATE
テキスト出力の状態を中断と再開
の間で切り替えます。
WINCASCADE 活動状態のウィンドウを重ねて表
示します。
WINTILE
活動状態のウィンドウを並べて表
示します。
WINARRANGE アイコンを整列させます。
WINSTATUS
ステータス・バーを有効にしま
す。
WININDEX
QuickWin ヘルプの索引を表示しま
す。
WINUSING
ヘルプの使用方法の情報を表示し
ます。
WINABOUT
現在の QuickWin アプリケーション
の情報を表示します。
NUL
コールバック・ルーチンなし。
WINSELALL
4-142
QuickWin ライブラリ
4
説明
メニューとメニュー項目は、左から右、上から下の順に定義しなけ
ればなりません。例えば、メニュー項目 5 と 6 が定義されていない
ときにメニュー項目 7 を挿入しようとすると、INSERTMENUQQ は
失敗します。最上位メニュー項目に対して、コールバック・ルーチ
ンはその下に副項目があれば無視されます。
FLAGS に利用できる定数は、$MENUCHECKED .OR.
$MENUENABLED のように包和的論理和で結合することができます。
組み合わせによっては意味のないものもあり(例えば、
$MENUENABLED と $MENUDISABLED)、その動作は不定です。
テキスト文字列でショートカット・キーを作成することができま
す。下線を引きたい文字の前にアンパサンド (&) を置き、TEXT と
して APPENDMENUQQ に渡します。例えば、"R" に下線を引いた
"Print" メニュー項目を追加する場合は、TEXT を "P&rint" にしま
す。プログラムのユーザは、ショートカット・キーによって、マウ
スで項目を選択する代わりに、ALT+QUICK-ACCESS-KEY(例え
ば、ALT+R)キーの組み合わせで、メニュー項目をアクティブにす
ることができます。
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
MESSAGEBOXQQ
QuickWin ウィンドウにメッセージ・
ボックスを表示します。
プロトタイプ
INTERFACE
FUNCTION MESSAGEBOXQQ(MSG,CAPTION,MTYPE)
CHARACTER(LEN=*) MSG,CAPTION
INTEGER(4) MESSAGEBOXQQ,MTYPE
4-143
4
インテル ® Fortran ライブラリ・リファレンス
END FUNCTION
END INTERFACE
MSG
入力。CHARACTER(LEN=*)。ヌルで終わる C 文
字列。ボックスに表示されるメッセージ。
CAPTION
入力。CHARACTER(LEN=*)。ヌルで終わる C 文字
列。タイトルバーに表示されるタイトル。
MTYPE
入力。INTEGER(4)。オブジェクト(ボタンとア
イコン)とメッセージ・ボックスの属性を決定す
るシンボル定数。包和的論理和(IOR または OR)
を使用していくつかの定数を結合することができ
ます。シンボル定数とそれに関連するオブジェク
トまたは属性は、次のとおりです。
MB$ABORTRETRYIGNORE
Abort、Retry、および Ignore ボタ
ン。
MB$DEFBUTTON1
第 1 ボタンがデフォルト。
MB$DEFBUTTON2
第 2 ボタンがデフォルト。
MB$DEFBUTTON3
第 3 ボタンがデフォルト。
MB$ICONASTERISK
青い円アイコンの小文字の i。
MB$ICONEXCLAMATION 疑問符アイコン。
MB$ICONHAND 停止信号アイコン。
MB$ICONINFORMATION
青い円アイコンの小文字の i。
MB$ICONQUESTION
疑問符アイコン。
MB$ICONSTOP 停止信号アイコン。
MB$OK
OK ボタン。
MB$OKCANCEL
OK および Cancel ボタン。
MB$RETRYCANCEL
Retry および Cancel ボタン。
4-144
QuickWin ライブラリ
4
MB$SYSTEMMODAL
ボックスがシステムモーダル。
ユーザが応答するまですべてのア
プリケーションが停止します。
MB$YESNO
Yes および No ボタン。
MB$YESNOCANCEL
Yes、No、および Cancel ボタン。
説明
この関数は、QuickWin ウィンドウにメッセージ・ボックスを表示
します。
出力
結果の型は INTEGER(4) です。メッセージ・ボックスを表示する
のに十分なメモリがない場合、結果はゼロです。そうでなければ、
結果はメッセージ・ボックスへのユーザの応答を示す次の値のいず
れかです。
MB$IDABORT
Abort ボタンが押された。
MB$IDCANCEL
Cancel ボタンが押された。
MB$IDIGNORE
Ignore ボタンが押された。
MB$IDNO
No ボタンが押された。
MB$IDOK
OK ボタンが押された。
MB$IDRETRY
Retry ボタンが押された。
MB$IDYES
Yes ボタンが押された。
MODIFYMENUFLAGSQQ
メニュー項目の状態を修正します。
プロトタイプ
INTERFACE
FUNCTION MODIFYMENUFLAGSQQ(MENUID,ITEMID,FLAGS)
4-145
4
インテル ® Fortran ライブラリ・リファレンス
LOGICAL MODIFYMENUFLAGSQQ
INTEGER(4) MENUID,ITEMID,FLAGS
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。状態を修正する項目を含む
メニューの識別子。最も左のメニューが 1 です。
ITEMID
入力。INTEGER(4)。状態を修正するメニュー項
目の識別子。最上位メニュー項目が 0 です。
FLAGS
入力。INTEGER(4)。メニュー状態を示す定数。
包和的論理和でフラグを結合することができます。
次の定数が利用可能です。
$MENUGRAYED メニュー項目を無効にし、表示を
グレーにします。
$MENUDISABLED
メニュー項目を無効にしますが、
表示をグレーにしません。
$MENUENABLED
メニュー項目を有効にします。
$MENUSEPARATOR
区切りバーを描画します。
$MENUCHECKED
メニュー項目にチェックを入れま
す。
$MENUUNCHECKED
メニュー項目のチェックを取り除
きます。
説明
FLAGS に利用できる定数は、$MENUCHECKED .OR.
$MENUENABLED のように包和的論理和で結合することができます。
組み合わせによっては意味のないものもあり(例えば、
$MENUENABLED と $MENUDISABLED)、その動作は不定です。
4-146
QuickWin ライブラリ
4
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
MODIFYMENUROUTINEQQ
メニュー項目のコールバック・ルー
チンを変更します。
プロトタイプ
INTERFACE
FUNCTION MODIFYMENUROUTINEQQ(MENUID,ITENID,ROUTINE)
LOGICAL MODIFYMENUROUTINEQQ
INTEGR(4) MENUID,ITEMID
EXTERNAL ROUTINE
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。コールバック・ルーチンを
変更する項目を含むメニューの識別子。最も左の
メニューが 1 です。
ITEMID
入力。INTEGER(4)。コールバック・ルーチンを
変更するメニュー項目の識別子。最上位メニュー
項目が 0 です。
ROUTINE
入力。EXTERNAL。メニュー項目が選択されたと
きに呼び出されるコールバック・サブルーチン。
すべてのルーチンは、メニュー項目がチェックさ
れたかどうかを示す 1 つの LOGICAL パラメータ
をとります。次の事前定義済みルーチンをメ
ニューに割り当てることができます。
WINPRINT
プログラムを印刷します。
WINSAVE
プログラムを保存します。
WINEXIT
プログラムを終了します。
4-147
4
インテル ® Fortran ライブラリ・リファレンス
現在のウィンドウからテキストを
選択します。
WINSELGRAPH 現在のウィンドウからグラフィッ
クスを選択します。
WINSELALL
現在のウィンドウの全内容を選択
します。
WINCOPY
現在のウィンドウから選択したテ
キストおよび / またはグラフィッ
クスをクリップボードにコピーし
ます。
WINPASTE
READ 中にクリップボードの内容
(テキストのみ)を活動状態にあ
るウィンドウの現在のテキスト・
ウィンドウに貼り付けることを
ユーザに許可します。
WINCLEARPASTE
貼り付けバッファをクリアしま
す。
WINSIZETOFIT
出力をウィンドウに合わせた大き
さにします。
WINFULLSCREEN
出力を全画面で表示します。
WINSTATE
テキスト出力の状態を中断と再開
の間で切り替えます。
WINCASCADE 活動状態のウィンドウを重ねて表
示します。
WINTILE
活動状態のウィンドウを並べて表
示します。
WINARRANGE アイコンを整列させます。
WINSTATUS
ステータス・バーを有効にしま
す。
WININDEX
QuickWin ヘルプの索引を表示しま
す。
WINUSING
ヘルプの使用方法の情報を表示し
ます。
WINSELTEXT
4-148
QuickWin ライブラリ
WINABOUT
NUL
4
現在の QuickWin アプリケーション
の情報を表示します。
コールバック・ルーチンなし。
説明
この関数はメニュー項目のコールバック・ルーチンを変更します。
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
MODIFYMENUSTRINGQQ
メニュー項目のテキスト文字列を変
更します。
プロトタイプ
INTERFACE
FUNCTION MODIFYMENUSTRINGQQ(MENUID,ITEMID,TEXT)
LOGICAL MODIFYMENUSTRINGQQ
INTEGER(4) MENUID,ITEMID
CHARACTER(LEN=*) TEXT
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。テキスト文字列を変更する
項目を含むメニューの識別子。最も左のメニュー
が 1 です。
ITEMID
入力。INTEGER(4)。テキスト文字列を変更する
メニュー項目の識別子。最上位メニュー項目が 0
です。
TEXT
入力。CHARACTER(LEN=*)。メニュー項目名。
ヌルで終わる C 文字列でなければなりません。例
えば、'words of text'C です。
4-149
4
インテル ® Fortran ライブラリ・リファレンス
説明
下線を引きたい文字の前にアンパサンド (&) を置くことによって、
テキスト文字列にショートカット・キーを作成することができま
す。例えば、"R" に下線を引いた "Print" メニュー項目を追加する場
合は、TEXT を "P&rint" にします。
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
REGISTERMOUSEEVENT
指定したウィンドウで指定したマウ
スイベントが発生したときに呼び出
されるアプリケーション供給のコー
ルバック・ルーチンを登録します。
プロトタイプ
INTERFACE
FUNCTION
REGISTERMOUSEEVENT(UNIT,MouseEvents,CallBackRoutine)
INTEGER REGISTERMOUSEEVENT,UNIT
INTEGER MouseEvents
EXTERNAL CallBackRoutine
END FUNCTION
END INTERFACE
4-150
UNIT
入力。INTEGER(4)。マウスイベントのコール
バック・ルーチンを登録するウィンドウの装置番
号。
MOUSEEVENTS
入力。INTEGER(4)。登録するコールバック・
ルーチンによって処理される 1 つ以上のマウスイ
ベント。マウスイベントに対応するシンボル定数
は、次のとおりです。
QuickWin ライブラリ
4
MOUSE$LBUTTONDOWN
左マウスボタンが押された。
MOUSE$LBUTTONUP
左マウスボタンが離された。
MOUSE$LBUTTONDBLCLK
左マウスボタンがダブルクリック
された。
MOUSE$RBUTTONDOWN
右マウスボタンが押された。
MOUSE$RBUTTONUP
右マウスボタンが離された。
MOUSE$RBUTTONDBLCLK
右マウスボタンがダブルクリック
された。
MOUSE$MOVE マウスが移動された。
CALLBACKROUTINE
入力。EXTERNAL。指定したウィ
ンドウで指定したマウスイベント
が発生したときに呼び出される
ルーチン。
説明
指定したウィンドウで指定したマウスイベントが発生したときに呼
び出されるアプリケーション供給のコールバック・ルーチンを登録
します。すべての BUTTONDOWN または BUTTONDBLCLK イベントに
対して、関連した BUTTONUP イベントがあります。ユーザがダブル
クリックした場合、4 つのイベントが発生します。最初のクリック
で BUTTONDOWN と BUTTONUP イベントが発生し、2 番目のクリッ
クで BUTTONDBLCLK と BUTTONUP イベントが発生します。2 番目
のクリックで BUTTONDBLCLK を得るか、BUTTONDOWN を得るかの
違いは、システムの「コントロール・パネル / マウス」で設定する
ダブルクリックの間隔で 2 番目のクリックが発生したかどうかに依
存します。
4-151
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロまた
は正の整数で、失敗した場合は、次のいずれかの負の整数です。
MOUSE$BADUNIT
指定した装置が開かれていないか、
QuickWin ウィンドウに結合されていません。
MOUSE$BADEVENT
指定したイベントはサポートされていませ
ん。
SETACTIVEQQ
子ウィンドウを活動状態にします
が、フォーカスは与えません。
プロトタイプ
INTERFACE
FUNCTION SETACTIVEQQ(UNIT)
INTEGER(4) SETACTIVEQQ, UNIT
END FUNCTION
END INTERFACE
UNIT
入力。INTEGER(4)。活動状態にする子ウィンド
ウの装置番号。
説明
ウィンドウが活動状態になると、グラフィックス出力(ARC、
LINETO、OUTGTEXT などから)を受け取りますが、前面に移動せ
ず、フォーカスも持ちません。ウィンドウを前面に移動する必要が
ある場合には、ウィンドウにフォーカスを与えなければなりませ
ん。ウィンドウは、IOFOCUS=.FALSE. で開かれていない限り、
FOCUSQQ でフォーカスが与えられたとき、マウスをクリックして選
択されたとき、またはグラフィックス操作以外の I/O 操作を行った
ときにフォーカスを持ちます。子ウィンドウが装置 '*' として開か
れている場合を除いて、デフォルトでは IOFOCUS='.TRUE.' で
す。
4-152
QuickWin ライブラリ
4
フォーカスを持つウィンドウは、常に最前面にあり、他のすべての
ウィンドウのタイトルはグレー表示されます。ウィンドウがフォー
カスを持っても、まだ活動状態になく、グラフィックス出力が行わ
れないこともあります。グラフィックス出力とフォーカスは関係あ
りません。
IOFOCUS=.TRUE. の場合、子ウィンドウは READ、WRITE、PRINT、
または OUTTEXT より先にフォーカスを受け取ります。グラフィッ
クス関数(OUTGTEXT や ARC など)を呼び出しても、フォーカス
は移動しません。
出力
結果の型は INTEGER(4) です。結果は、成功した場合は 1 で、失
敗した場合は 0 です。
SETEXITQQ
QuickWin アプリケーションの終了
動作を設定します。
プロトタイプ
INTERFACE
FUNCTION SETEXITQQ(EXITMODE)
INTEGER(4) SETEXITQQ,EXITMODE
END FUNCTION
END INTERFACE
EXITMODE
入力。INTEGER(4)。プログラムの終了動作を決
定します。次の終了パラメータのいずれかを指定
します。
QWIN$EXITPROMPT
"Program exited with exit status X.
Exit Window?" のメッセージ・ボッ
クスを表示します。ここで、X は
プログラムからの終了状態です。
4-153
4
インテル ® Fortran ライブラリ・リファレンス
「Yes」を選択すると、アプリケー
ションはウィンドウを閉じて終了
します。「No」を選択すると、ダ
イアログ・ボックスが消え、通常
どおりウィンドウを操作すること
ができます。ウィンドウは手動で
閉じなければなりません。
QWIN$EXITNOPERSIST
メッセージ・ボックスを表示しな
いでアプリケーションを終了しま
す。
QWIN$EXITPERSIST
メッセージ・ボックスを表示しな
いでアプリケーションを開いたま
まにします。
説明
この関数は、QuickWin アプリケーションの終了動作を設定します。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合は負の値です。QuickWin および Standard Graphics アプ
リケーションともデフォルトは、QWIN$EXITPROMPT です。
SETMESSAGEQQ
QuickWin ステータス・メッセージ、
状態メッセージ、およびダイアログ
ボックス・メッセージを変更しま
す。
プロトタイプ
INTERFACE
SUBROUTINE SETMESSAGEQQ(MSG,ID)
4-154
QuickWin ライブラリ
4
CHARACTER(LEN=*) MSG
INTEGER(4) ID
END SUBROUTINE
END INTERFACE
MSG
入力。CHARACTER(LEN=*)。表示されるメッ
セージ。C 文字列ではなく通常の Fortran 文字列で
なければなりません。マルチバイト文字を含むこ
とができます。
ID
入力。INTEGER(4)。変更するメッセージの識別
子。下表に、変更できるメッセージとその識別子
を示します
ID
Message
QWIN$MSG_TERM
"Program terminated with exit code"
QWIN$MSG_EXITQ
"\nExit Window?"
QWIN$MSG_FINISHED
"Finished"
QWIN$MSG_PAUSED
"Paused"
QWIN$MSG_RUNNING
"Running"
QWIN$MSG_FILEOPENDLG
"Text Files(*.txt), *.txt; Data
Files(*.dat), *.dat; All Files(*.*), *.*;"
QWIN$MSG_BMPSAVEDLG
"Bitmap Files(*.bmp), *.bmp; All
Files(*.*), *.*;"
QWIN$MSG_INPUTPEND
"Input pending in"
QWIN$MSG_PASTEINPUTPEND
"Paste input pending"
QWIN$MSG_MOUSEINPUTPEND
"Mouse input pending in"
QWIN$MSG_SELECTTEXT
"Select Text in"
QWIN$MSG_SELECTGRAPHICS
"Select Graphics in"
QWIN$MSG_PRINTABORT
"Error! Printing Aborted."
QWIN$MSG_PRINTLOAD
"Error loading printer driver"
QWIN$MSG_PRINTNODEFAULT
"No Default Printer."
QWIN$MSG_PRINTDRIVER
"No Printer Driver."
QWIN$MSG_PRINTINGERROR
"Print: Printing Error."
4-155
4
インテル ® Fortran ライブラリ・リファレンス
ID
Message
QWIN$MSG_PRINTING
"Printing"
QWIN$MSG_PRINTCANCEL
"Cancel"
QWIN$MSG_PRINTINPROGRESS
"Printing in progress..."
QWIN$MSG_HELPNOTAVAIL
"Help Not Available for Menu Item"
QWIN$MSG_TITLETEXT
"Graphic"
説明
QuickWin が生成する文字列は、SETMESSAGEQQ を適切な ID で呼
び出して変更することができます。これには、QuickWin アプリ
ケーションの下部に表示されるステータス・メッセージ、状態メッ
セージ("Paused" など)、およびダイアログボックス・メッセージ
が含まれます。これらのメッセージには、マルチバイト文字を含め
ることができます。
SETWINDOWCONFIG
子ウィンドウのプロパティを設定し
ます。
プロトタイプ
INTERFACE
FUNCTION SETWINDOWCONFIG(wc)
logical SETWINDOWCONFIG
STRUCTURE /WINDOWCONFIG/
INTEGER(2) NUMXPIXELS, NUMYPIXELS
INTEGER(2) NUMTEXTCOLS, NUMTEXTROWS
INTEGER(2) NUMCOLORS
INTEGER(4) FONTSIZE
CHARACTER(LEN=80) TITLE
INTEGER(2) BITSPERPIXEL
INTEGER(2) NUMVIDEOPAGES
4-156
QuickWin ライブラリ
4
INTEGER(2) MODE
INTEGER(2) ADAPTER
INTEGER(2) MONITOR
INTEGER(2) MEMORY
INTEGER(2) ENVIRONMENT
CHARACTER(LEN=32) EXTENDFONTNAME
INTEGER(4) EXTENDFONTSIZE
INTEGER(4) EXTENDFONTATTRIBUTES
END STRUCTURE
RECORD /WINDOWCONFIG/WC
END FUNCTION
END INTERFACE
入力。構造型 WINDOWCONFIG。ウィンドウ・プロ
パティが含まれます。
TYPE WINDOWCONFIG
INTEGER(2) NUMXPIXELS
! Number of pixels on x-axis
INTEGER(2) NUMYPIXELS
! Number of pixels on y-axis
INTEGER(2) NUMTEXTCOLS ! Number of text columns
! available
INTEGER(2) NUMTEXTROWS ! Number of text rows
! available
INTEGER(2) NUMCOLORS
! Number of color indexes
INTEGER(4) FONTSIZE
! Size of default font. Set
! to QWIN$EXTENDFONT when using
! multibyte characters, in which case
! EXTENDFONTSIZE sets the font size.
CHARACTER(LEN=80) TITLE ! window title, a C string
! The next three parameters support multibyte
! character sets (such as Japanese)
CHARACTER(LEN=32) EXTENDFONTNAME ! any
! nonproportionally spaced font available on the
! system
INTEGER(4) EXTENDFONTSIZE ! takes same values as
! FONTSIZE, but used for multibyte
! character sets when FONTSIZE set to
! QWIN$EXTENDFONT
WC
4-157
4
インテル ® Fortran ライブラリ・リファレンス
INTEGER(4) EXTENDFONTATTRIBUTES ! font attributes
! such as bold and italic for
! multibyte character sets
END TYPE WINDOWCONFIG
説明
SETWINDOWCONFIGを使用してWINDOWCONFIGの変数を–1に設定す
ると、この関数はシステムで可能な最大解像度を設定し、他の欄が
あれば指定した値を設定します。ウィンドウ・サイズに影響を与え
るパラメータ(x と y のピクセル数、行数および列数、フォントサ
イズ)を指定すれば、ウィンドウの実際の大きさを設定できます。
SETWINDOWCONFIG を呼び出さないと、ウィンドウにはデフォルト
で可能な最大解像度と 8x16 のフォントサイズが設定されます。利
用可能な色数は、使用するビデオドライバによって異なります。
SETWINDOWCONFIG を使用する場合、各欄に値(数値欄には –1 また
は自分の値、タイトルには C 文字列(例えば、"words of text"C))
を指定しなければなりません。一部の欄にのみ値を指定して
SETWINDOWCONFIG を使用した場合、指定していない欄の値は無効
です。
設定できない構成を要求した場合、SETWINDOWCONFIG は
.FALSE. を返し、動作し、要求した構成にできるだけ近いパラメー
タ値を計算します。SETWINDOWCONFIG の 2 回目の呼び出しでは、
調整された値が確立されます。次のようにします。
status = SETWINDOWCONFIG(WC)
if (.NOT.status) status = SETWINDOWCONFIG(WC)
4 つのサイズ・パラメータ(NUMXPIXELS、NUMYPIXELS、
NUMTEXTCOLS、NUMTEXTROWS)のすべてに値を指定した場合、
フォントサイズはこれらの値を除算して計算されます。デフォルト
のフォントは Courier New で、デフォルトのフォントサイズは 8x16
です。ウィンドウ・サイズがフォントサイズに対応していなければ
ならないことを除いて、フォントサイズに制限はありません。
Standard Graphics では、アプリケーションはウィンドウの装飾(ス
クロール・バー、メニューバー、タイトルバー、メッセージ・
バー)なしで全画面(Full Screen)モードで開始しようとします。
そのため、最大解像度をフルに活用できます。ALT+ENTER を使用
して、この 2 つのモードをいつでも切り替えることができます。
4-158
QuickWin ライブラリ
4
全画面モードのとき、ビデオドライバの解像度とウィンドウの解像
度が一致しない場合、グラフィックス出力はウィンドウでの描画に
比べて遅くなります。
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
SETWINDOWMENUQQ
現在の子ウィンドウ名の一覧を追加
するメニューとして最上位メニュー
を設定します。
プロトタイプ
INTERFACE
FUNCTION SETWINDOWMENUQQ(MENUID)
LOGICAL SETWINDOWMENUQQ
INTEGER(4) MENUID
END FUNCTION
END INTERFACE
MENUID
入力。INTEGER(4)。子ウィンドウ名を保持する
メニューの識別子。最も左のメニューが 1 になり
ます。
説明
現在の子ウィンドウ名一覧は、同時に 1 メニューだけに表示するこ
とができます。ウィンドウ一覧がメニューにある場合、そのメ
ニューから削除されます。デフォルトでは、子ウィンドウ一覧は
Windows メニューの最後に表示されます。
4-159
4
インテル ® Fortran ライブラリ・リファレンス
出力
結果の型は LOGICAL(4) です。結果は、成功した場合は .TRUE.
で、失敗した場合は .FALSE. です。
SETWSIZEQQ
ウィンドウの大きさと位置を設定し
ます。
プロトタイプ
INTERFACE
FUNCTION SETWSIZEQQ(IUNIT,WINFO)
STRUCTURE /QWINFO/
INTEGER(2) TYPE,X,Y,H,W
END STRUCTURE
INTEGER(4) SETWSIZEQQ, IUNIT
RECORD /QWINFO/ WINFO
END FUNCTION
END INTERFACE
IUNIT
WINFO
入力。INTEGER(4)。ウィンドウ装置番号を指定
します。プログラムの中で OPEN 文で装置番号 0、
5、および 6 を明示的に開いていない場合、これら
の装置番号はデフォルトの開始ウィンドウのみを
参照します。フレーム・ウィンドウ(子ウィンド
ウに対して)の大きさを設定するには、IUNIT に
シンボル定数 QWIN$FRAMEWINDOW を設定しま
す。
入力。構造型 QWINFO。ウィンドウの左上隅の物
理座標、およびウィンドウのクライアント領域
(フレーム内の領域)の現在または最大の高さと
幅。
TYPE QWINFO
INTEGER(2) TYPE
4-160
! request type
QuickWin ライブラリ
INTEGER(2) X
INTEGER(2) Y
INTEGER(2) H
INTEGER(2) W
END TYPE QWINFO
!
!
!
!
4
x coordinate for upper left
y coordinate for upper left
window height
window width
この関数の動作は、QWINFO.TYPE の値に依存し
ます。QWINFO.TYPE は、次のいずれかの値です。
QWIN$MIN
ウィンドウを最小化します。
QWIN$MAX
ウィンドウを最大化します。
QWIN$RESTORE
最小化ウィンドウを直前の大きさ
に復元します。
QWIN$SET
QWINFO の他の値に従ってウィン
ドウの位置と大きさを設定しま
す。
説明
子ウィンドウの位置と大きさは、文字の高さと幅の単位で表されま
す。フレーム・ウィンドウの位置と大きさは、画面のピクセル値で
表されます。
フレーム・ウィンドウに指定された高さと幅は、境界、メニュー、
フレーム・ウィンドウの下部のステータス・バーを含むフレーム・
ウィンドウの実際の大きさ(ピクセル単位)に反映されます。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロで、
失敗した場合はゼロ以外です。
4-161
4
インテル ® Fortran ライブラリ・リファレンス
UNREGISTERMOUSEEVENT
以前に REGISTERMOUSEEVENT 呼
び出しで指定したウィンドウに登録
したコールバック・ルーチンを削除
します。
プロトタイプ
INTERFACE
FUNCTION UNREGISTERMOUSEEVENT(UNIT,MOUSEEVENTS)
INTEGER UNREGISTERMOUSEEVENT,UNIT,MOUSEEVENTS
END FUNCTION
END INTERFACE
4-162
UNIT
入力。INTEGER(4)。マウスイベントのコール
バック・ルーチンの登録を削除するウィンドウの
装置番号。
MOUSEEVENTS
入力。INTEGER(4)。登録を削除するコールバッ
ク・ルーチンが処理する 1 つ以上のマウスイベン
ト。マウスイベントに対するシンボル定数は、次
のとおりです。
MOUSE$LBUTTONDOWN
左マウスボタンが押された。
MOUSE$LBUTTONUP
左マウスボタンが離された。
MOUSE$LBUTTONDBLCLK
左マウスボタンがダブルクリック
された。
MOUSE$RBUTTONDOWN
右マウスボタンが押された。
MOUSE$RBUTTONUP
右マウスボタンが離された。
MOUSE$RBUTTONDBLCLK
右マウスボタンがダブルクリック
された。
QuickWin ライブラリ
MOUSE$MOVE
4
マウスが移動された。
説明
一度 UNREGISTERMOUSEEVENT を呼び出すと、QuickWin はマウス
イベント発生時にウィンドウに対して前に指定されていたコール
バック・ルーチンを呼び出すことはありません。ウィンドウに対し
て登録されたコールバック・ルーチンがないときの
UNREGISTERMOUSEEVENT 呼び出しには、何の効果もありません。
出力
結果の型は INTEGER(4) です。結果は、成功した場合はゼロまた
は正の整数で、失敗した場合は、次のいずれかの負の整数です。
MOUSE$BADUNIT
指定した装置が開かれていないか、
QuickWin ウィンドウに関連付けられていま
せん。
MOUSE$BADEVENT
指定したイベントはサポートされていませ
ん。
WAITONMOUSEEVENT
ユーザからの指定したマウス入力を
待ちます。
プロトタイプ
INTERFACE
FUNCTION WAITONMOUSEEVENT(MouseEvents,KeyState,X,Y)
INTEGER WAITONMOUSEEVENT,MouseEvents,KeyState,X,Y
END FUNCTION
END INTERFACE
MOUSEEVENTS
入力。INTEGER(4)。関数が返される前に発生し
なければならない 1 つ以上のマウスイベント。マ
ウスイベントに対応するシンボル定数は、次のと
おりです。
4-163
4
インテル ® Fortran ライブラリ・リファレンス
MOUSE$LBUTTONDOWN
左マウスボタンが押された。
MOUSE$LBUTTONUP
左マウスボタンが離された。
MOUSE$LBUTTONDBLCLK
左マウスボタンがダブルクリック
された。
MOUSE$RBUTTONDOWN
右マウスボタンが押された。
MOUSE$RBUTTONUP
右マウスボタンが離された。
MOUSE$RBUTTONDBLCLK
右マウスボタンがダブルクリック
された。
MOUSE$MOVE
マウスが移動された。
MOUSE$KS_LBUTTON
イベント発生時に左マウスボタン
が押された。
MOUSE$KS_RBUTTON
イベント発生時に右マウスボタン
が押された。
MOUSE$KS_SHIFT
イベント発生時に Shift キーが押
されたまま。
MOUSE$KS_CONTROL
イベント発生時に CTRL キーが押
されたまま。
4-164
X
出力。INTEGER(4)。イベント発生時のマウスの
X 位置。
Y
出力。INTEGER(4)。イベント発生時のマウスの
Y 位置。
QuickWin ライブラリ
4
説明
ユーザが指定したマウスイベントが発生しない限り、
WAITONMOUSEEVENT は返りません。マウスイベントの発生を待っ
ている間、ステータス・バーは "Mouse input pending in XXX" に変更
されています。ここで、XXX はウィンドウ名です。マウスイベン
トが発生すると、ステータス・バーは前の値に戻ります。
マウスイベントは、WAITONMOUSEEVENT が最初に呼び出されたと
きにフォーカスを持っていたウィンドウで発生しなければなりませ
ん。他のウィンドウでマウスイベントが発生しても、待ち状態は終
了しません。コールバックが以前に他のウィンドウに対して登録さ
れていた場合、他のウィンドウのマウスイベントが発生すると、そ
のウィンドウに対してコールバックが呼び出されます。
すべての BUTTONDOWN または BUTTONDBLCLK イベントに対して、
関連した BUTTONUP イベントがあります。ユーザがダブルクリック
した場合、4 つのイベントが発生します。最初のクリックで
BUTTONDOWN と BUTTONUP イベントが発生し、2 番目のクリックで
BUTTONDBLCLK と BUTTONUP イベントが発生します。2 番目のク
リックで BUTTONDBLCLK を得るか、BUTTONDOWN を得るかの違い
は、システムの「コントロール・パネル / マウス」で設定するダブ
ルクリックの間隔で 2 番目のクリックが発生したかどうかに依存し
ます。
出力
結果の型は INTEGER(4) です。結果は、成功した場合は、発生し
たマウスイベントに関連するシンボル定数が返されます。失敗した
場合は、定数 MOUSE$BADEVENT が返されます。これは、指定した
イベントがサポートされていないことを意味します。
QuickWin デフォルト・メニューのサポート
これらは事前定義済みコールバック関数で、コールバック・ルーチ
ンとして登録したり、プログラムから直接呼び出すことができま
す。
4-165
4
インテル ® Fortran ライブラリ・リファレンス
WINPRINT
プログラムを印刷します。
プロトタイプ
INTERFACE
SUBROUTINE WINPRINT()
!MS$ ATTRIBUTES stdcall, alias:'_WINPRINT@0' ::
WINPRINT
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、現在活動状態にある(フォーカス
がある)子ウィンドウの内容を印刷するか、またはビットマップ・
ファイルとして保存するために、"Print..." ダイアログを呼び出しま
す。
WINSAVE
プログラムを保存します。
プロトタイプ
INTERFACE
SUBROUTINE WINSAVE()
!MS$ ATTRIBUTES stdcall, alias:'_WINSAVE@0' ::
WINSAVE
END SUBROUTINE
END INTERFACE
4-166
QuickWin ライブラリ
4
説明
このコールバック・ルーチンは、現在活動状態にある(フォーカス
がある)子ウィンドウの内容を印刷するか、またはビットマップ・
ファイルとして保存するために、"Save..." ダイアログを呼び出しま
す。
WINEXIT
プログラムを終了させます。
プロトタイプ
INTERFACE
SUBROUTINE WINEXIT()
!MS$ ATTRIBUTES stdcall, alias:'_WINEXIT@0' ::
WINEXIT
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、現在活動状態にある(フォーカス
がある)子ウィンドウを終了するために、"Exit..." ダイアログを呼
び出します。
WINCOPY
選択したテキストおよび / またはグ
ラフィックスを現在のウィンドウか
らクリップボードにコピーします。
プロトタイプ
INTERFACE
4-167
4
インテル ® Fortran ライブラリ・リファレンス
SUBROUTINE WINCOPY()
!MS$ ATTRIBUTES stdcall, alias:'_WINCOPY@0' ::
WINCOPY
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、選択したテキストおよび / または
グラフィックスを現在のウィンドウからクリップボードにコピーし
ます。
WINPASTE
READ 実行中にクリップボードの内
容(テキストのみ)を活動状態にあ
るウィンドウの現在のテキスト・
ウィンドウに貼り付けます。
プロトタイプ
INTERFACE
SUBROUTINE WINPASTE()
!MS$ ATTRIBUTES stdcall, alias:'_WINPASTE@0' ::
PASTE
WIN-
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、READ 実行中にクリップボードの
内容(テキストのみ)を活動状態にあるウィンドウの現在のテキス
ト・ウィンドウに貼り付けます。
4-168
QuickWin ライブラリ
4
WINSIZETOFIT
出力をウィンドウに合う大きさにし
ます。
プロトタイプ
INTERFACE
SUBROUTINE WINSIZETOFIT()
!MS$ ATTRIBUTES stdcall, alias:'_WINSIZETOFIT@0' ::
WINSIZETOFIT
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、出力をウィンドウに合う大きさに
します。
WINFULLSCREEN
出力を全画面に表示します。
プロトタイプ
INTERFACE
SUBROUTINE WINFULLSCREEN()
!MS$ ATTRIBUTES stdcall, alias:'_WINFULLSCREEN@0' ::
WINFULLSCREEN
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、出力を全画面に表示します。
4-169
4
インテル ® Fortran ライブラリ・リファレンス
WINSTATE
テキスト出力の状態を中断と再開の
間で切り替えます。
プロトタイプ
INTERFACE
SUBROUTINE WINSTATE()
!MS$ ATTRIBUTES stdcall, alias:'_WINSTATE@0' ::
WINSTATE
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、テキスト出力の状態を中断と再開
の間で切り替えます。
WINCASCADE
活動状態のウィンドウを重ねて表示
します。
プロトタイプ
INTERFACE
SUBROUTINE WINCASCADE()
!MS$ ATTRIBUTES stdcall, alias:'_WINCASCADE@0' ::
WINCASCADE
END SUBROUTINE
END INTERFACE
4-170
QuickWin ライブラリ
4
説明
このコールバック・ルーチンは、活動状態のウィンドウを重ねて表
示します。
WINTILE
活動状態のウィンドウを並べて表示
します。
プロトタイプ
INTERFACE
SUBROUTINE WINTILE()
!MS$ ATTRIBUTES stdcall, alias:'_WINTILE@0' ::
WINTILE
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、活動状態のウィンドウを並べて表
示します。
WINARRANGE
アイコンを整列させます。
プロトタイプ
INTERFACE
SUBROUTINE WINARRANGE()
!MS$ ATTRIBUTES stdcall, alias:'_WINARRANGE@0' ::
WINARRANGE
4-171
4
インテル ® Fortran ライブラリ・リファレンス
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、アイコンを整列させます。
WININPUT
プロトタイプ
INTERFACE
SUBROUTINE WININPUT()
!MS$ ATTRIBUTES stdcall, alias:'_WININPUT@0' ::
WININPUT
END SUBROUTINE
END INTERFACE
WINCLEARPASTE
貼り付けバッファをクリアします。
プロトタイプ
INTERFACE
SUBROUTINE WINCLEARPASTE()
!MS$ ATTRIBUTES stdcall, alias:'_WINCLEARPASTE@0' ::
WINCLEARPASTE
END SUBROUTINE
END INTERFACE
4-172
QuickWin ライブラリ
4
説明
このコールバック・ルーチンは、貼り付けバッファをクリアしま
す。
WINSTATUS
ステータス・バーを有効にします。
プロトタイプ
INTERFACE
SUBROUTINE WINSTATUS()
!MS$ ATTRIBUTES stdcall, alias:'_WINSTATUS@0' ::
WINSTATUS
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、ステータス・バーを有効にしま
す。
WININDEX
QuickWin ヘルプの索引を表示しま
す。
プロトタイプ
INTERFACE
SUBROUTINE WININDEX()
!MS$ ATTRIBUTES stdcall, alias:'_WININDEX@0' ::
WININDEX
4-173
4
インテル ® Fortran ライブラリ・リファレンス
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンによって、QuickWin ヘルプの索引が
表示されます。
WINUSING
ヘルプの使用方法の情報を表示しま
す。
プロトタイプ
INTERFACE
SUBROUTINE WINUSING()
!MS$ ATTRIBUTES stdcall, alias:'_WINUSING@0' ::
WINUSING
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンによって、ヘルプの使用方法の情報が
表示されます。
WINABOUT
現在の QuickWin アプリケーション
の情報を表示します。
プロトタイプ
INTERFACE
4-174
QuickWin ライブラリ
4
SUBROUTINE WINABOUT()
!MS$ ATTRIBUTES stdcall, alias:'_WINABOUT@0' ::
WINABOUT
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンによって、現在の QuickWin アプリ
ケーションの情報が表示されます。
WINSELECTTEXT
現在のウィンドウからテキストを選
択します。
プロトタイプ
INTERFACE
SUBROUTINE WINSELECTTEXT()
!MS$ ATTRIBUTES stdcall, alias:'_WINSELECTTEXT@0' ::
WINSELECTTEXT
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、現在のウィンドウからテキストを
選択します。
4-175
4
インテル ® Fortran ライブラリ・リファレンス
WINSELECTGRAPHICS
現在のウィンドウからグラフィック
スを選択します。
プロトタイプ
INTERFACE
SUBROUTINE WINSELECTGRAPHICS()
!MS$ ATTRIBUTES stdcall,alias:'_WINSELECTGRAPHICS@0'
:: WINSELECTGRAPHICS
END SUBROUTINE
END INTERFACE
説明
このコールバック・ルーチンは、現在のウィンドウからグラフィッ
クスを選択します。
WINSELECTALL
現在のウィンドウの全内容を選択し
ます。
プロトタイプ
INTERFACE
SUBROUTINE WINSELECTALL()
!MS$ ATTRIBUTES stdcall, alias:'_WINSELECTALL@0' ::
WINSELECTALL
END SUBROUTINE
END INTERFACE
4-176
QuickWin ライブラリ
4
説明
このコールバック・ルーチンは、現在のウィンドウの全内容を選択
します。
NUL
コールバック・ルーチンなし。
プロトタイプ
INTERFACE
SUBROUTINE NUL()
!MS$ ATTRIBUTES stdcall, alias:'_NUL@0' ::
END SUBROUTINE
END INTERFACE
NUL
説明
これは、コールバック・ルーチンの禁止です。コールバック・ルー
チンの使用を拒否します。
未知の関数
GETACTIVEPAGE
プロトタイプ
INTERFACE
FUNCTION GETACTIVEPAGE()
INTEGER(2) GETACTIVEPAGE
END FUNCTION
4-177
4
インテル ® Fortran ライブラリ・リファレンス
END INTERFACE
GETTEXTCURSOR
プロトタイプ
INTERFACE
FUNCTION GETTEXTCURSOR()
INTEGER(2) GETTEXTCURSOR
END FUNCTION
END INTERFACE
GETTEXTVECTOR
プロトタイプ
INTERFACE
SUBROUTINE GETGTEXTVECTOR(X,Y)
!MS$ ATTRIBUTES stdcall, ALIAS:"__f_getgtextvector@8"
:: getgtextvector
INTEGER(2) X,Y
!MS$ ATTRIBUTES REFERENCE ::
X
!MS$ ATTRIBUTES REFERENCE ::
Y
END SUBROUTINE
END INTERFACE
4-178
QuickWin ライブラリ
4
GETHANDLEQQ
プロトタイプ
INTERFACE
FUNCTION GETHANDLEQQ(IUNIT)
integer*4 GETHANDLEQQ, IUNIT
END FUNCTION
END INTERFACE
GETVIDEOCONFIG
プロトタイプ
INTERFACE
SUBROUTINE GETVIDEOCONFIG(s)
STRUCTURE /VIDEOCONFIG/
INTEGER(2) NUMXPIXELS ! number of pixels on X axis
INTEGER(2) NUMYPIXELS ! number of pixels on Y axis
INTEGER(2) NUMTEXTCOLS ! number of text columns
! available
INTEGER(2) NUMTEXTROWS ! number of text rows
! available
INTEGER(2) NUMCOLORS
! number of actual colors
INTEGER(2) BITSPERPIXEL ! number of bits per pixel
INTEGER(2) NUMVIDEOPAGES ! number of available
! video pages
INTEGER(2) MODE
! current video mode
INTEGER(2) ADAPTER
! active display adapter
4-179
4
インテル ® Fortran ライブラリ・リファレンス
INTEGER(2) MONITOR
INTEGER(2) MEMORY
END STRUCTURE
RECORD /VIDEOCONFIG/ S
!MS$ ATTRIBUTES REFERENCE ::
END SUBROUTINE
END INTERFACE
! active display monitor
! adapter video memory in
! K bytes
S
GETVISUALPAGE
プロトタイプ
INTERFACE
FUNCTION GETVISUALPAGE()
INTEGER(2) GETVISUALPAGE
END FUNCTION
END INTERFACE
REGISTERFONTS
プロトタイプ
INTERFACE
FUNCTION REGISTERFONTS(FILENAME)
INTEGER(2) REGISTERFONTS
!MS$ ATTRIBUTES ALIAS:"__ILf_registerfonts" ::
REGISTERFONTS
4-180
QuickWin ライブラリ
4
CHARACTER(LEN=*) FILENAME
!MS$ ATTRIBUTES REFERENCE ::
FILENAME
END FUNCTION
END INTERFACE
SELECTPALETTE
プロトタイプ
INTERFACE
FUNCTION SELECTPALETTE(NUMBER)
INTEGER(2) SELECTPALETTE,NUMBER
END FUNCTION
END INTERFACE
SETACTIVEPAGE
プロトタイプ
INTERFACE
FUNCTION SETACTIVEPAGE(PAGE)
INTEGER(2) SETACTIVEPAGE,PAGE
END FUNCTION
END INTERFACE
4-181
4
インテル ® Fortran ライブラリ・リファレンス
SETFRAMEWINDOW
プロトタイプ
INTERFACE
SUBROUTINE SETFRAMEWINDOW(X,Y,WIDTH,HEIGHT)
INTEGER X,Y,WIDTH,HEIGHT
END SUBROUTINE
END INTERFACE
DSETGTEXTVECTOR
プロトタイプ
INTERFACE
SUBROUTINE SETGTEXTVECTOR(X,Y)
INTEGER(2) X,Y
END SUBROUTINE
END INTERFACE
4-182
QuickWin ライブラリ
4
SETSTATUSMESSAGE
プロトタイプ
INTERFACE
SUBROUTINE SETSTATUSMESSAGE(MSG,ID)
CHARACTER(LEN=*) MSG
!MS$ ATTRIBUTES reference ::
MSG
INTEGER(4) ID
END SUBROUTINE
END INTERFACE
SETTEXTCURSOR
プロトタイプ
INTERFACE
FUNCTION SETTEXTCURSOR(ATTR)
INTEGER(2) SETTEXTCURSOR,ATTR
END FUNCTION
END INTERFACE
4-183
4
インテル ® Fortran ライブラリ・リファレンス
SETTEXTFONT
プロトタイプ
INTERFACE
SUBROUTINE SETTEXTFONT (FONTNAME)
!MS$ ATTRIBUTES ALIAS:"__ILf_settextfont" ::
SETTEXTFONT
character*(*) FONTNAME
!MS$ ATTRIBUTES REFERENCE ::
FONTNAME
END SUBROUTINE
END INTERFACE
SETTEXTROWS
プロトタイプ
INTERFACE
FUNCTION SETTEXTROWS(ROWS)
INTEGER(2) SETTEXTROWS,ROWS
END FUNCTION
END INTERFACE
4-184
QuickWin ライブラリ
4
SETVIDEOMODE
プロトタイプ
INTERFACE
FUNCTION SETVIDEOMODE(MODE)
INTEGER(2) SETVIDEOMODE,MODE
END FUNCTION
END INTERFACE
SETVIDEOMODEROWS
プロトタイプ
INTERFACE
FUNCTION SETVIDEOMODEROWS(MODE,ROWS)
INTEGER(2) SETVIDEOMODEROWS
INTEGER(2) MODE,ROWS
END FUNCTION
END INTERFACE
4-185
4
インテル ® Fortran ライブラリ・リファレンス
SETVISUALPAGE
プロトタイプ
INTERFACE
FUNCTION SETVISUALPAGE(PAGE)
INTEGER(2) SETVISUALPAGE,PAGE
END FUNCTION
END INTERFACE
UNREGISTERFONTS
プロトタイプ
INTERFACE
SUBROUTINE UNREGISTERFONTS()
END SUBROUTINE
END INTERFACE
4-186
QuickWin ライブラリ
4
QuickWin 構成要素のための Windows ハンドルの参照
GETHANDLEFRAMEQQ
プロトタイプ
INTERFACE
FUNCTION GETHANDLEFRAMEQQ()
INTEGER(4) GETHANDLEFRAMEQQ
END FUNCTION
END INTERFACE
GETHANDLECLIENTQQ
プロトタイプ
INTERFACE
FUNCTION GETHANDLECLIENTQQ()
INTEGER(4) GETHANDLECLIENTQQ
END FUNCTION
END INTERFACE
4-187
4
インテル ® Fortran ライブラリ・リファレンス
GETHANDLECHILDQQ
プロトタイプ
INTERFACE
FUNCTION GETHANDLECHILDQQ(QUICKHND)
INTEGER(4) GETHANDLECHILDQQ
INTEGER(4) QUICKHND
END FUNCTION
END INTERFACE
UNUSEDQQ
"unused" 警告メッセージを回避する
ために使用します。
プロトタイプ
INTERFACE
SUBROUTINE UNUSEDQQ()
!MS$ ATTRIBUTES
C,REFERENCE,VARYING,ALIAS:"__FFunusedqq"::UNUSEDQQ
END SUBROUTINE
END INTERFACE
説明
未使用のルーチンです。単純に戻ります。"unused" 警告メッセージ
を回避するために使用します。
4-188
索引
記号
$? 環境変数、2-32
$status 環境変数、2-32
数字
4Yposixlib、3-1
A
ABOUTBOXQQ QuickWin 関数、4-124
ABS 組み込み関数、1-139
ACHAR 組み込み関数、1-140
ACOSD 組み込み関数、1-142
ACOSH 組み込み関数、1-143
ACOS 組み込み関数、1-141
ADJUSTL 組み込み関数、1-144
ADJUSTR 組み込み関数、1-145
AIMAG 組み込み関数、1-146
AINT 組み込み関数、1-147
ALLOCATED 組み込み関数、1-150
ALL 組み込み関数、1-148
AND 組み込み関数、1-151
ANINT 組み込み関数、1-152
ANY 組み込み関数、1-153
APPENDMENUQQ QuickWin 関数、4-125
ARC_W グラフィックス関数、4-15
ARC グラフィックス関数、4-14
ASCII 大小順序、1-140, 1-171, 1-203, 1-210,
1-232, 1-233, 1-234, 1-235
ASIND 組み込み関数、1-156
ASINH 組み込み関数、1-157
ASIN 組み込み関数、1-155
ASSOCIATED 組み込み関数、1-158
ATAN2D 組み込み関数、1-163
ATAN2 組み込み関数、1-161
ATAND 組み込み関数、1-164
ATANH 組み込み関数、1-165
ATAN 組み込み関数、1-160
B
BADDRESS 組み込み関数、1-166
BIT_SIZE 組み込み関数、1-167
BTEST 組み込み関数、1-168
C
CDFLOAT
ポータビリティ関数、2-7
CEILING 組み込み関数、1-169
CHAR 組み込み関数、1-170
CLEARSCREEN グラフィックス・サブルー
索引 -1
インテル ® Fortran ライブラリ・リファレンス
チン、4-18
CLICKMENUQQ QuickWin 関数、4-128
CLOCKX ポータビリティサブルーチン、
2-12
CLOCK ポータビリティサブルーチン、2-11
CMPLX 組み込み関数、1-171
COMPL ポータビリティ関数、2-15
CONJG 組み込み関数、1-172
COSD 組み込み関数、1-174
COSH 組み込み関数、1-175
COS 組み込み関数、1-173
COUNT 組み込み関数、1-176
CSHIFT 組み込み関数、1-179
CTIME ポータビリティ関数、2-16
D
DATE_AND_TIME 組み込みサブルーチン、
1-181
DATE4 ポータビリティサブルーチン、2-18
DATE ポータビリティサブルーチン、2-17
DBLE 組み込み関数、1-183
DCLOCK ポータビリティ関数、2-21
DELETEMENUQQ QuickWin 関数、4-129
DFLOATI ポータビリティ関数、2-24
DFLOATJ ポータビリティ関数、2-25
DFLOATK ポータビリティ関数、2-26
DFLOAT 組み込み関数、1-184
DIGITS 組み込み関数、1-185
DIM 組み込み関数、1-186
DISPLAYCURSOR グラフィックス関数、
4-19
DNUM 組み込み関数、1-187
DOT_PRODUCT 組み込み関数、1-188
DPROD 組み込み関数、1-189
DRAND ポータビリティ関数、2-26
DRANSET ポータビリティサブルーチン、
2-27
DREAL 組み込み関数、1-190
索引 -2
DSETGTEXTVECTOR QuickWin サブルーチ
ン、4-182
DSHIFTL ポータビリティ関数、2-28
DSHIFTR ポータビリティ関数、2-29
DTIME ポータビリティ関数、2-30
E
ELLIPS_W グラフィックス関数、4-21
ELLIPSE グラフィックス関数、4-20
EOSHIFT 組み込み関数、1-192
EPSILON 組み込み関数、1-195
ETIME ポータビリティ関数、2-31
EXIT ポータビリティ関数、2-32
EXPONENT 組み込み関数、1-197
EXP 組み込み関数、1-196
EXTERNAL 文および属性、1-2
F
FDATE ポータビリティサブルーチン、2-33
FFLUSH POSIX サブルーチン、3-22
FGETC POSIX サブルーチン、3-23
FGETC ポータビリティ関数、2-34
flib.fd インクルード・ファイル、4-1
FLOODFILL_W グラフィックス関数、4-23
FLOODFILLRGB_W グラフィックス関数、
4-26
FLOODFILLRGB グラフィックス関数、4-25
FLOODFILL グラフィックス関数、4-22
FLOOR 組み込み関数、1-198
FLUSH ポータビリティサブルーチン、2-36
FOCUSQQ QuickWin 関数、4-130
FPUTC POSIX サブルーチン、3-26
FPUTC ポータビリティ関数、2-39
FRACTION 組み込み関数、1-199
FSEEK POSIX サブルーチン、3-27
FSEEK ポータビリティサブルーチン、2-40
FTELL POSIX サブルーチン、3-29
索引
FTELL ポータビリティ関数、2-44
G
generic name、1-4
generic intrinsic function、1-4,1-15
GERRNO ポータビリティサブルーチン、
2-47
GETACTIVEPAGE QuickWin 関数、4-177
GETACTIVEQQ QuickWin 関数、4-131
GETARCINFO グラフィックス関数、4-16
GETARG ポータビリティサブルーチン、
2-48
GETBKCOLORRGB 色関数、4-97
GETBKCOLOR グラフィックス関数、4-27
GETC POSIX サブルーチン、3-31
GETCOLORRGB 色関数、4-96
GETCOLOR グラフィックス関数、4-28
GETCURRENTPOSITION_W グラフィック
ス・サブルーチン、4-30
GETCURRENTPOSITION グラフィックス・
サブルーチン、4-29
GETCWD POSIX サブルーチン、3-32
GETDAT ポータビリティサブルーチン、
2-55
GETENV ポータビリティサブルーチン、
2-61
GETEXITQQ QuickWin 関数、4-132
GETFILLMASK グラフィックス・サブルー
チン、4-31
GETFONTINFO フォント操作関数、4-112
GETGID ポータビリティ関数、2-69
GETGTESTROTATION フォント操作関数、
4-120
GETGTEXTEXTENT フォント操作関数、
4-113
GETGTEXTVECTOR QuickWin サブルーチ
ン、4-178
GETHANDLECHILDQQ QuickWin ウィンド
ウ・ハンドル関数、4-188
GETHANDLECLIENTQQ QuickWin ウィンド
ウ・ハンドル関数、4-187
GETHANDLEFRAMEQQ QuickWin ウィンド
ウ・ハンドル関数、4-187
GETHANDLEQQ QuickWin 関数、4-179
GETHWNDQQ QuickWin 関数、4-133
GETIMAGE_W グラフィックス・サブルー
チン、4-33
GETIMAGE グラフィックス・サブルーチ
ン、4-32
GETIM ポータビリティサブルーチン、2-79
GETLASTERROR ポータビリティ関数、
2-70
GETLINESTYLE グラフィックス関数、4-34
GETLOG ポータビリティサブルーチン、
2-73
GETPHYSCOORD グラフィックス・サブ
ルーチン、4-35
GETPID ポータビリティ関数、2-74
GETPIXEL_W グラフィックス関数、4-37
GETPIXELRGB_W 色関数、4-100
GETPIXELRGB_W ピクセル関数、4-100
GETPIXELRGB 色関数、4-99
GETPIXELRGB ピクセル関数、4-99
GETPIXELSRGB 色サブルーチン、4-103
GETPIXELSRGB ピクセル・サブルーチン、
4-103
GETPIXELS グラフィックス・サブルーチ
ン、4-38
GETPIXEL グラフィックス関数、4-36
GETPOS ポータビリティ関数、2-74
GETTEXTCOLORRGB フォント操作関数、
4-121
GETTEXTCOLOR グラフィックス関数、
4-39
GETTEXTCURSOR QuickWin 関数、4-178
GETTEXTPOSITION グラフィックス・サブ
ルーチン、4-40
GETTEXTWINDOW グラフィックス・サブ
ルーチン、4-41
索引 -3
インテル ® Fortran ライブラリ・リファレンス
GETUID ポータビリティ関数、2-80
GETUNITQQ QuickWin 関数、4-134
GETVIDEOCONFIG QuickWin サブルーチン、
4-179
GETVIEWCOORD_W グラフィックス・サブ
ルーチン、4-43
GETVIEWCOORD グラフィックス・サブ
ルーチン、4-42
GETVISUALPAGE QuickWin 関数、4-180
GETWINDOWCONFIG QuickWin 関数、
4-134
GETWINDOWCOORD グラフィックス・サ
ブルーチン、4-44
GETWRITEMODE グラフィックス関数、
4-45
GETWSIZEQQ QuickWin 関数、4-137
GMTIME ポータビリティサブルーチン、
2-81
GRAN ポータビリティ関数、2-82
GRSTATUS グラフィックス関数、4-46
H
HFIX 組み込み関数、1-201
HOSTNM ポータビリティサブルーチン、
2-83
HUGE 組み込み関数、1-202
I
IACHAR 組み込み関数、1-203
IADDR 組み込み関数、1-204
IAND 組み込み関数、1-205
IARGC ポータビリティ関数、2-84
IBCLR 組み込み関数、1-206
IBITS 組み込み関数、1-207
IBSET 組み込み関数、1-208
ICHAR 組み込み関数、1-209
IDATE4 ポータビリティサブルーチン、2-86
IDATE ポータビリティサブルーチン、2-85
索引 -4
IDIM 組み込み関数、1-210
IEEE_FLAGS ポータビリティ関数、2-87
IEEE_HANDLER ポータビリティ関数、2-88
IEOR 組み込み関数、1-211
IERRNO ポータビリティ関数、2-89
IFLOATI ポータビリティ関数、2-91
iflport.f90、2-2, 2-166
IJINT 組み込み関数、1-212
IMAGESIZE_W グラフィックス関数、4-49
IMAGESIZE グラフィックス関数、4-48
IMAG 組み込み関数、1-213
INDEX 組み込み関数、1-214
INITIALIZEFONTS フォント操作関数、
4-115
INMAX ポータビリティ関数、2-93
INQFOCUSQQ QuickWin 関数、4-139
INSERTMENUQQ QuickWin 関数、4-140
INT1 組み込み関数、1-216
INT2 組み込み関数、1-217
INT4 組み込み関数、1-218
INT8 組み込み関数、1-218
INTC ポータビリティ関数、2-93
INTEGERTORGB 色サブルーチン、4-111
INTERFACE ポータビリティ関数、2-1
INTRINSIC 属性および文、1-7
INT 組み込み関数、1-215
INUM 組み込み関数、1-219
IOR 組み込み関数、1-220
IQINT 組み込み関数、1-221
IRAND ポータビリティ関数、2-94
IRANGET ポータビリティサブルーチン、
2-95
IRANSET ポータビリティサブルーチン、
2-96
ISATTY ポータビリティ関数、2-96
ISHFTC 組み込み関数、1-222
ISHFT 組み込み関数、1-221
ISIGN 組み込み関数、1-224
索引
ISNAN 組み込み関数、1-225
ITIME ポータビリティサブルーチン、2-97
IXOR 組み込み関数、1-225
LSHFT 組み込み関数、1-239
LSHIFT 組み込み関数、1-239
LTIME ポータビリティサブルーチン、2-102
J
M
JABS、2-98
JABS ポータビリティ関数、2-98
JDATE4 ポータビリティサブルーチン、2-99
JDATE ポータビリティサブルーチン、2-98
JNUM 組み込み関数、1-227
MATMUL 組み込み関数、1-241
MAXEXPONENT 組み込み関数、1-244
MAXLOC 組み込み関数、1-245
MAXVAL 組み込み関数、1-247
MAX 組み込み関数、1-243
MBCharLen MBCS 問い合わせ関数、2-167,
2-195
K
KILL ポータビリティ関数、2-100
KIND 組み込み関数、1-227
L
LBOUND 組み込み関数、1-228
LEN_TRIM 組み込み関数、1-231
LEN 組み込み関数、1-230
LGE 組み込み関数、1-232
LGT 組み込み関数、1-233
libcl.a ライブラリ、1-1
libF90.a ライブラリ、1-1
libPEPCF90.lib ライブラリ、2-1
libPOSF90.lib ライブラリ、3-1
libQWF90.lib ライブラリ、4-1
LINETO_W グラフィックス関数、4-51
LINETO グラフィックス関数、4-50
LLE 組み込み関数、1-234
LLT 組み込み関数、1-235
LOADIMAGE_W グラフィックス関数、4-53
LOADIMAGE グラフィックス関数、4-52
LOC 組み込み関数、1-236
LOG10 組み込み関数、1-237
LOGICAL 組み込み関数、1-238
LOG 組み込み関数、1-236
MBConvertMBToUnicode MBCS 変換関数、
2-169, 2-202
MBConvertUnicodeToMB MBCS 変換関数、
2-169, 2-204
MBCS Fortran 等価手続き
MBINCHARQQ、2-206
MBINDEX、2-207
MBJISTToJMS、2-213
MBJMSTToJIS、2-214
MBLEQ、2-208
MBLGE、2-208
MBLGT、2-208
MBLLE、2-208
MBLLT、2-208
MBLNE、2-208
MBSCAN、2-211
MBVERIFY、2-212
MBCS 問い合わせ手続き
MBCharLen、2-195
MBCurMax、2-196
MBLen、2-197
MBLen_Trim、2-198
MBNext、2-199
MBPrev、2-200
MBStrLead、2-201
MBCS 変換手続き
MBConvertMBToUnicode、2-202
MBConvertUnicodeToMB、2-204
MBCurMax MBCS 問い合わせ関数、2-168,
索引 -5
インテル ® Fortran ライブラリ・リファレンス
MBINCHARQQ MBCS Fortran 等価関数、
2-170, 2-206
MKDIR POSIX サブルーチン、3-47
MODIFYMENUFLAGSQQ QuickWin 関数、
4-145
MBINDEX MBCS Fortran 等価関数、2-170,
2-207
MODIFYMENUROUTINEQQ QuickWin 関数、
4-147
MBJISTToJMS MBCS Fortran 等価関数、
2-170, 2-213
MODIFYMENUSTRINGQQ QuickWin 関数、
4-149
MBJMSTToJIS MBCS Fortran 等価関数、
2-170, 2-214
MODULO 組み込み関数、1-258
MOD 組み込み関数、1-257
MOVETO_W グラフィックス・サブルーチ
ン、4-55
MOVETO グラフィックス・サブルーチン、
4-54
2-196
MBLead MBCS 問い合わせ関数、2-168
MBLen MBCS 問い合わせ関数、2-168, 2-197
MBLen_Trim MBCS 問い合わせ関数、2-169,
2-198
MBLEQ MBCS Fortran 等価関数、2-170,
2-208
MBLGE MBCS Fortran 等価関数、2-170,
2-208
MBLGT MBCS Fortran 等価関数、2-170,
2-208
MBLLE MBCS Fortran 等価関数、2-170, 2-208
MBLLT MBCS Fortran 等価関数、2-170, 2-208
MBLNE MBCS Fortran 等価関数、2-170,
2-208
MBNext MBCS 問い合わせ関数、2-169, 2-199
MBPrev MBCS 問い合わせ関数、2-169, 2-200
MBSCAN MBCS Fortran 等価関数、2-170,
2-211
MBStrLead MBCS 問い合わせ関数、2-169,
2-201
MBVERIFY MBCS Fortran 等価関数、2-170,
2-212
MCLOCK 組み込み関数、1-249
MERGE 組み込み関数、1-250
MESSAGEBOXQQ QuickWin 関数、4-143
Microsoft Visual C++ 32-bit edition for
Windows、1-xxii
MINEXPONENT 組み込み関数、1-252
MINLOC 組み込み関数、1-253
MINVAL 組み込み関数、1-255
MIN 組み込み関数、1-251
索引 -6
MVBITS 組み込みサブルーチン、1-259
N
NaN( 数値ではない )、1-225
NARGS、2-108
ポータビリティ関数、2-108
National Language Support ルーチン、2-166
NEAREST 組み込み関数、1-260
NINT 組み込み関数、1-261
NLS MBCS Fortran 等価手続き、2-170
MBINCHARQQ、2-170
MBINDEX、2-170
MBJISTToJMS、2-170
MBJMSTToJIX、2-170
MBLEQ、2-170
MBLGE、2-170
MBLGT、2-170
MBLLE、2-170
MBLLT、2-170
MBLNE、2-170
MBSCAN、2-170
MBVERIFY、2-170
NLS MBCS 問い合わせ手続き、2-167
MBCharLen、2-167
MBCurMax、2-168
MBLead、2-168
MBLen、2-168
MBLen_Trim、2-169
索引
MBNext、2-169
MBPrev、2-169
MBStrLead、2-169
NLS MBCS 変換手続き
MBConvertMBToUnicode、2-169
MBConvertUnicodeToMB、2-169
NLSEnumCodepages 問い合わせ関数、2-166,
2-171
NLSEnumLocales 問い合わせ関数、2-166,
2-172
NLSFormatCurrency ロケール書式指定関数、
2-167, 2-188
NLSFormatDate ロケール書式指定関数、
2-167, 2-190
NLSFormatNumber ロケール書式指定関数、
2-167, 2-192
NLSFormatTime ロケール書式指定関数、
2-167, 2-193
NLSGetEnvironmentCodepage 問い合わせ関
数、2-166, 2-173
NLSGetLocale NLS サブルーチン、2-174
NLSGetLocaleInfo 問い合わせ関数、2-167,
2-175
NLSGetLocale 問い合わせサブルーチン、
2-166
NLSSetEnvironmentCodepage 問い合わせ関
数、2-167
NLSSetEnvironmentcodepage 問い合わせ関
数、2-184
NLSSetLocale 問い合わせ関数、2-167, 2-186
NLS 手続き
NLSEnumCodepages 関数、2-171
NLSEnumLocales 関数、2-172
NLSFormatCurrency、2-188
NLSFormatDate、2-190
NLSFormatNumber、2-192
NLSFormatTime、2-193
NLSGetEnvironmentCodepage、2-173
NLSGetLocale、2-174
NLSGetLocaleInfo、2-175
NLSSetEnvironmentCodepage、2-184
NLSSetLocale、2-186
NLS マルチバイト・ルーチンおよび関数
一覧
MBCS Fortran 等価手続き、2-170
MBCS 問い合わせ、2-167
ロケールの書式指定、2-167
ロケールの設定および問い合わせ、
2-166
NLS マルチバイト・ルーチンおよび関数一
覧、2-166
NLS ルーチン、2-166
NLS ロケール書式指定手続き、2-167
NLSFormatCurrency、2-167
NLSFormatDate、2-167
NLSFormatNumber、2-167
NLSFormatTime、2-167
NLS ロケール設定および問い合わせ手続き、
2-166
NLSEnumCodepages、2-166
NLSEnumLocales、2-166
NLSGetEnvironmentCodepage、2-166
NLSGetLocale、2-166
NLSGetLocaleInfo、2-167
NLSSetEnvironmentCodepage、2-167
NLSSetLocale、2-167
NOT 組み込み関数、1-262
NUL QuickWin メニュー・サブルーチン、
4-177
NUMARG ポータビリティ関数、2-109
O
OR 組み込み関数、1-263
OUTGTEXT フォント操作サブルーチン、
4-114
OUTTEXT グラフィックス・サブルーチン、
4-56
P
PACK 組み込み関数、1-264
PERROR ポータビリティサブルーチン、
2-113
索引 -7
インテル ® Fortran ライブラリ・リファレンス
PIE_W グラフィックス関数、4-58
PIE グラフィックス関数、4-56
POLYGON_W グラフィックス関数、4-61
POLYGON グラフィックス関数、4-60
POPCNT ポータビリティ関数、2-114
POPPAR ポータビリティ関数、2-114
ポータビリティ問題、1-9
ポータビリティおよび非標準の組み込み手
続き、1-9
ポータビリティ関数、2-98
/4Yportlib、2-1
CDFLOAT、2-7
CLOCK、2-11
CLOCKX、2-12
COMPL、2-15
CTIME、2-16
DATE、2-17
DATE4、2-18
DCLOCK、2-21
DFLOATI、2-24
DFLOATJ、2-25
DFLOATK、2-26
DRAND、2-26
DRANSET、2-27
DSHIFTL、2-28
DSHIFTR、2-29
DTIME、2-30
ETIME、2-31
EXIT、2-32
FDATE、2-33
FGETC、2-34
FLUSH、2-36
FPUTC、2-39
FSEEK、2-40
FTELL、2-44
GERRNO、2-47
GETARG、2-48
GETDAT、2-55
GETENV、2-61
GETGID、2-69
GETLASTERROR、2-70
GETLOG、2-73
GETPID、2-74
索引 -8
GETPOS、2-74
GETTIM、2-79
GETUID、2-80
GMTIME、2-81
GRAN、2-82
HOSTNM、2-83
IARGC、2-84
IDATE、2-85
IDATE4、2-86
IEEE_FLAGS、2-87
IEEE_HANDLER、2-88
IERRNO、2-89
IFLOATI、2-91
iflport.f90、2-2
INMAX、2-93
INTC、2-93
IRAND、2-94
IRANGET、2-95
IRANSET、2-96
ISATTY、2-96
ITIME、2-97
JDATE、2-98
JDATE4、2-99
KILL、2-100
LTIME、2-102
NARGS、2-108
NUMARG、2-109
PERROR、2-113
POPCNT、2-114
POPPAR、2-114
PUTC、2-115
QSORT、2-116
RAN、2-118
RAND、2-119
RANDOM、2-121
RANDU、2-122
RANF、2-123
RANGET、2-124
RANSET、2-124
RENAME、2-125
RINDEX、2-127
SCANENV、2-130
SECNDS、2-131
SEED、2-131
SETDAT、2-135
索引
SETTIM、2-142
SHIFTL、2-143
SHIFTR、2-144
SLEEP、2-148
SRAND、2-151
STAT、2-153
SYSTEM、2-155
TCLOSE、2-160
TIME、2-157
TIMEF、2-158
TOPEN、2-159
TREAD、2-161
TTYNAM、2-162
TWRITE、2-162
UNLINK、2-163
引用仕様宣言、2-1
ポータビリティライブラリ、2-1
POSIX subroutine、3-57
POSIX 関数、3-1
FFLUSH、3-22
FGETC、3-23
FPUTC、3-26
FSEEK、3-27
FTELL、3-29
GETC、3-31
GETCWD、3-32
MKDIR、3-47
PXFACCESS、3-2
PXFAINTGET、3-4
PXFAINTSET、3-5
PXFCALLSUBHANDLE、3-6
PXFCHDIR、3-7
PXFCHMOD、3-7
PXFCHOWN、3-8
PXFCLOSE、3-9
PXFCLOSEDIR、3-10
PXFCONST、3-11
PXFCREAT、3-12
PXFDUP、3-13
PXFDUP2、3-14
PXFEINTGET、3-15
PXFEINTSET、3-16
PXFESTRGET、3-17
PXFEXECV、3-18
PXFEXECVE、3-19
PXFEXECVP、3-20
PXFEXIT、3-21
PXFFASTEXIT、3-21
PXFFILENO、3-24
PXFFORK、3-25
PXFFSTAT、3-28
PXFGETGRGID、3-32
PXFGETGRNAM、3-33
PXFGETPWNAM、3-34
PXFGETPWUID、3-35
PXFGETSUBHANDLE、3-35
PXFINTGET、3-36
PXFINTSET、3-37
PXFISBLK、3-38
PXFISCHR、3-39
PXFISDIR、3-41
PXFISFIFO、3-41
PXFISREG、3-42
PXFKILL、3-43
PXFLINK、3-44
PXFLOCALTIME、3-45
PXFLSEEK、3-46
PXFMKFIFO、3-48
PXFOPEN、3-49
PXFOPENDIR、3-50
PXFPIPE、3-51
PXFPUTC、3-52
PXFREAD、3-53
PXFREADDIR、3-54
PXFRENAME、3-54
PXFREWINDDIR、3-55
PXFRMDIR、3-56
PXFSIGADDSET、3-57
PXFSIGDELSET、3-58
PXFSIGEMPTYSET、3-59
PXFSIGFILLSET、3-60
PXFSIGISMEMBER、3-61
PXFSTAT、3-62
PXFSTRGET、3-63
PXFSTRUCTCOPY、3-64
PXFSTRUCTCREATE、3-65
PXFSTRUCTFREE、3-66
PXFUCOMPARE、3-66
PXFUMASK、3-67
索引 -9
インテル ® Fortran ライブラリ・リファレンス
PXFUNLINK、3-68
PXFUTIME、3-69
PXFWAIT、3-70
PXFWAITPID、3-70
PXFWEXITSTATUS、3-72
PXFWIFEXITED、3-71
PXFWIFSIGNALED、3-73
PXFWIFSTOPPED、3-74
PXFWRITE、3-74
PXFWSTOPSIG、3-75
PXFWTERMSIG、3-76
POSIX ライブラリ、3-1
PRECISION 組み込み関数、1-266
PRESENT 組み込み関数、1-267
PRODUCT 組み込み関数、1-268
PUTC ポータビリティ関数、2-115
PUTIMAGE_W グラフィックス・サブルー
チン、4-65
PUTIMAGE グラフィックス・サブルーチ
ン、4-63
PXFACCESS POSIX サブルーチン、3-2
PXFAINTGET POSIX サブルーチン、3-4
PXFAINTSET POSIX サブルーチン、3-5
PXFCALLSUBHANDLE POSIX サブルーチ
ン、3-6
PXFCHDIR POSIX サブルーチン、3-7
PXFCHMOD POSIX サブルーチン、3-7
PXFCHOWN POSIX サブルーチン、3-8
PXFCLOSE POSIX サブルーチン、3-9
PXFCLOSEDIR POSIX サブルーチン、3-10
PXFCONST POSIX サブルーチン、3-11
PXFCREAT POSIX サブルーチン、3-12
PXFDUP POSIX サブルーチン、3-13
PXFDUP2 POSIX サブルーチン、3-14
PXFEINTGET POSIX サブルーチン、3-15
PXFEINTSET POSIX サブルーチン、3-16
PXFESTRGET POSIX サブルーチン、3-17
PXFEXECV POSIX サブルーチン、3-18
PXFEXECVE POSIX サブルーチン、3-19
PXFEXECVP POSIX サブルーチン、3-20
索引 -10
PXFEXIT POSIX サブルーチン、3-21
PXFFASTEXIT POSIX サブルーチン、3-21
PXFFILENO POSIX サブルーチン、3-24
PXFFORK POSIX サブルーチン、3-25
PXFFSTAT POSIX サブルーチン、3-28
PXFGETGRGID POSIX サブルーチン、3-32
PXFGETGRNAM POSIX サブルーチン、3-33
PXFGETPWNAM POSIX サブルーチン、3-34
PXFGETPWUID POSIX サブルーチン、3-35
PXFGETSUBHANDLE POSIX サブルーチン、
3-35
PXFINTGET POSIX サブルーチン、3-36
PXFINTSET POSIX サブルーチン、3-37
PXFISBLK POSIX 関数、3-38
PXFISCHR POSIX 関数、3-39
PXFISDIR POSIX 関数、3-41
PXFISFIFO POSIX 関数、3-41
PXFISREG POSIX 関数、3-42
PXFKILL POSIX サブルーチン、3-43
PXFLINK POSIX サブルーチン、3-44
PXFLOCALTIME POSIX サブルーチン、3-45
PXFLSEEK POSIX サブルーチン、3-46
PXFMKFIFO POSIX サブルーチン、3-48
PXFOPEN POSIX サブルーチン、3-49
PXFOPENDIR POSIX サブルーチン、3-50
PXFPIPE POSIX サブルーチン、3-51
PXFPUTC POSIX サブルーチン、3-52
PXFREAD POSIX サブルーチン、3-53
PXFREADDIR POSIX サブルーチン、3-54
PXFRENAME POSIX サブルーチン、3-54
PXFREWINDDIR POSIX サブルーチン、3-55
PXFRMDIR POSIX サブルーチン、3-56
PXFSIGADDSET POSIX サブルーチン、3-57
PXFSIGDELSET POSIX サブルーチン、3-58
PXFSIGEMPTYSET POSIX サブルーチン、
3-59
PXFSIGFILLSET POSIX サブルーチン、3-60
PXFSIGISMEMBER POSIX サブルーチン、
索引
3-61
PXFSTAT POSIX サブルーチン、3-62
PXFSTRGET POSIX サブルーチン、3-63
PXFSTRUCTCOPY POSIX サブルーチン、
3-64
PXFSTRUCTCREATE POSIX サブルーチン、
3-65
PXFSTRUCTFREE POSIX サブルーチン、
3-66
PXFUCOMPARE POSIX サブルーチン、3-66
PXFUMASK POSIX サブルーチン、3-67
PXFUNLINK POSIX サブルーチン、3-68
PXFUTIME POSIX サブルーチン、3-69
PXFWAIT POSIX サブルーチン、3-70
PXFWAITPID POSIX サブルーチン、3-70
PXFWEXITSTATUS POSIX 関数、3-72
PXFWIFEXITED POSIX 関数、3-71
PXFWIFSIGNALED POSIX 関数、3-73
PXFWIFSTOPPED POSIX 関数、3-74
PXFWRITE POSIX サブルーチン、3-74
PXFWSTOPSIG POSIX 関数、3-75
PXFWTERMSIG POSIX 関数、3-76
Q
QSORT ポータビリティサブルーチン、
2-116
QuickWin 関数
ABOUTBOXQQ、4-124
APPENDMENUQQ、4-125
CLICKMENUQQ、4-128
DELETEMENUQQ、4-129
DSETGTEXTVECTOR、4-182
FOCUSQQ、4-130
GETACTIVEPAGE、4-177
GETACTIVEQQ、4-131
GETEXITQQ、4-132
GETGTEXTVECTOR、4-178
GETHANDLECHILDQQ、4-188
GETHANDLECLIENTQQ、4-187
GETHANDLEFRAMEQQ、4-187
GETHANDLEQQ、4-179
GETHWNDQQ、4-133
GETTEXTCURSOR、4-178
GETUNITQQ、4-134
GETVIDEOCONFIG、4-179
GETVISUALPAGE、4-180
GETWINDOWCONFIG、4-134
GETWSIZEQQ、4-137
INQFOCUSQQ、4-139
INSERTMENUQQ、4-140
MESSAGEBOXQQ、4-143
MODIFYMENUFLAGSQQ、4-145
MODIFYMENUROUTINEQQ、4-147
MODIFYMENUSTRINGQQ、4-149
REGISTERFONTS、4-180
REGISTERMOUSEEVENT、4-150
SELECTPALETTE、4-181
SETACTIVEPAGE、4-181
SETACTIVEQQ、4-152
SETEXITQQ、4-153
SETFRAMEWINDOW、4-182
SETMESSAGEQQ、4-154
SETSTATUSMESSAGE、4-183
SETTEXTCURSOR、4-183
SETTEXTFONT、4-184
SETTEXTROWS、4-184
SETVIDEOMODE、4-185
SETVIDEOMODEROWS、4-185
SETVISUALPAGE、4-186
SETWINDOWCONFIG、4-156
SETWINDOWMENUQQ、4-159
SETWSIZEQQ、4-160
UNREGISTERFONTS、4-186
UNREGISTERMOUSEEVENT、4-162
UNUSEDQQ、4-188
WAITONMOUSEEVENT、4-163
QuickWin メニュー関数
NUL、4-177
WINABOUT、4-174
WINARRANGE、4-171
WINCASCADE、4-170
WINCLEARPASTE、4-172
WINCOPY、4-167
WINEXIT、4-167
WINFULLSCREEN、4-169
索引 -11
インテル ® Fortran ライブラリ・リファレンス
WININDEX、4-173
WININPUT、4-172
WINPASTE、4-168
WINPRINT、4-166
WINSAVE、4-166
WINSELECTALL、4-176
WINSELECTGRAPHICS、4-176
WINSELECTTEXT、4-175
WINSIZETOFIT、4-169
WINSTATE、4-170
WINSTATUS、4-173
WINTILE、4-171
WINUSING、4-174
QuickWin ライブラリ、4-1
QuickWin ルーチン、4-2
REMAPALLPALETTERGB グラフィックス
関数、4-70
REMAPALLPALETTERGP グラフィックス関
数、4-70
REMAPPALETTERGB グラフィックス関数、
4-72
RENAME ポータビリティ関数、2-125
REPEAT 組み込み関数、1-276
RESHAPE 組み込み関数、1-277
RGBTOINTEGER 色関数、4-110
RINDEX ポータビリティ関数、2-127
RNUM 組み込み関数、1-278
RRSPACING 組み込み関数、1-279
RSHFT 組み込み関数、1-280
RSHIFT 組み込み関数、1-280
R
RADIX 組み込み関数、1-270
RANDOM_NUMBER 組み込みサブルーチ
ン、1-271
RANDOM_SEED 組み込みサブルーチン、
1-272
RANDOM ポータビリティサブルーチン、
2-121
RANDU ポータビリティ関数、2-122
RAND ポータビリティ関数、2-119
RAND 組み込み関数、2-119
RANF ポータビリティ関数、2-123
RANGET ポータビリティサブルーチン、
2-124
RANGE 組み込み関数、1-273
RANSET ポータビリティサブルーチン、
2-124
RAN ポータビリティ関数、2-118
REAL 組み込み関数、1-274
RECTANGLE_W グラフィックス関数、4-69
RECTANGLE グラフィックス関数、4-68
REGISTERFONTS QuickWin 関数、4-180
REGISTERMOUSEEVENT QuickWin 関数、
4-150
索引 -12
S
SAVEIMAGE_W グラフィックス関数、4-75
SAVEIMAGE グラフィックス関数、4-74
SCALE 組み込み関数、1-281
SCANENV ポータビリティサブルーチン、
2-130
SCAN 組み込み関数、1-282
SCROLLTEXTWINDOW グラフィックス・
サブルーチン、4-78
SECNDS ポータビリティ関数、2-131
SEED ポータビリティサブルーチン、2-131
SELECTED_INT_KIND 組み込み関数、1-283
SELECTED_REAL_KIND 組み込み関数、
1-284
SELECTPALETTE QuickWin 関数、4-181
SET_EXPONENT 組み込み関数、1-285
SETACTIVEPAGE QuickWin 関数、4-181
SETACTIVEQQ QuickWin 関数、4-152
SETBKCOLORRGB 色関数、4-106
SETBKCOLOR グラフィックス関数、4-79
SETCLIPRGN グラフィックス・サブルーチ
ン、4-80
SETCOLORRGB 色関数、4-104
索引
SETCOLOR グラフィックス関数、4-81
SETDAT ポータビリティサブルーチン、
2-135
SETEXITQQ QuickWin 関数、4-153
SETFILLMASK グラフィックス・サブルー
チン、4-82
SETFONT フォント操作関数、4-116
SETFRAMEWINDOW QuickWin サブルーチ
ン、4-182
SETGTEXTROTATION フォント操作サブ
ルーチン、4-119
SETLINESTYLE グラフィックス・サブルー
チン、4-83
SETMESSAGEQQ QuickWin サブルーチン、
4-154
SETPIXEL_W グラフィックス関数、4-85
SETPIXELRGB_W 色関数、4-108
SETPIXELRGB_W ピクセル関数、4-108
SETPIXELRGB 色関数、4-107
SETPIXELRGB ピクセル関数、4-107
SETPIXELSRGB 色サブルーチン、4-101
SETPIXELSRGB ピクセル・サブルーチン、
4-101
SETPIXELS グラフィックス・サブルーチ
ン、4-86
SETPIXEL グラフィックス関数、4-84
SETSTATUSMESSAGE QuickWin サブルーチ
ン、4-183
SETTEXTCOLORRGB フォント操作関数、
4-122
SETTEXTCOLOR グラフィックス関数、4-87
SETTEXTCURSOR QuickWin 関数、4-183
SETTEXTFONT QuickWin サブルーチン、
4-184
SETTEXTPOSITION グラフィックス・サブ
ルーチン、4-88
SETTEXTROWS QuickWin 関数、4-184
SETTEXTWINDOW グラフィックス・サブ
ルーチン、4-89
SETTIM ポータビリティサブルーチン、
2-142
SETVIDEOMODE QuickWin 関数、4-185
SETVIDEOMODEROWS 関数、4-185
SETVIEWORG グラフィックス・サブルーチ
ン、4-90
SETVIEWPORT グラフィックス・サブルー
チン、4-91
SETVISUALPAGE QuickWin 関数、4-186
SETWINDOWCONFIG QuickWin 関数、4-156
SETWINDOWMENUQQ QuickWin 関数、
4-159
SETWINDOW グラフィックス関数、4-91
SETWRITEMODE グラフィックス関数、
4-93
SETWSIZEQQ QuickWin 関数、4-160
SHAPE 組み込み関数、1-286
SHIFTL ポータビリティ関数、2-143
SHIFTR ポータビリティ関数、2-144
SIGN 組み込み関数、1-287
SIND 組み込み関数、1-289
SINH 組み込み関数、1-290
SIN 組み込み関数、1-288
SIZE 組み込み関数、1-291
SLEEP ポータビリティサブルーチン、2-148
SPACING 組み込み関数、1-292
specific and generic、1-4、1-15
SPREAD 組み込み関数、1-293
SQRT 組み込み関数、1-294
SRAND ポータビリティサブルーチン、
2-151
STAT ポータビリティ関数、2-153
SUM 組み込み関数、1-295
SYSTEM_CLOCK 組み込みサブルーチン、
1-297
SYSTEM ポータビリティ関数、2-155
T
TAND 組み込み関数、1-299
索引 -13
インテル ® Fortran ライブラリ・リファレンス
TANH 組み込み関数、1-300
TAN 組み込み関数、1-298
TCLOSE ポータビリティ関数、2-160
TIMEF ポータビリティ関数、2-158
TIME ポータビリティサブルーチン、2-157
TINY 組み込み関数、1-301
TOPEN ポータビリティ関数、2-159
TRANSFER 組み込み関数、1-302
TRANSPOSE 組み込み関数、1-304
TREAD ポータビリティ関数、2-161
TRIM 組み込み関数、1-305
TTYNAM ポータビリティ関数、2-162
TWRITE ポータビリティ関数、2-162
U
UBOUND 組み込み関数、1-306
UNLINK ポータビリティ関数、2-163
UNPACK 組み込み関数、1-308
UNREGISTERFONTS QuickWin サブルーチ
ン、4-186
UNREGISTERMOUSEEVENT QuickWin 関
数、4-162
UNUSEDQQ QuickWin ウィンドウ・ハンド
ル・サブルーチン、4-188
USE IFLPORT 文、2-2
V
VERIFY 組み込み関数、1-310
W
WAITONMOUSEEVENT QuickWin 関数、
4-163
WINABOUT QuickWin メニュー・サブルー
チン、4-174
WINARRANGE QuickWin メニュー・サブ
ルーチン、4-171
WINCASCADE QuickWin メニュー・サブ
索引 -14
ルーチン、4-170
WINCLEARPASTE QuickWin メニュー・サブ
ルーチン、4-172
WINCOPY QuickWin メニュー・サブルーチ
ン、4-167
WINEXIT Quickwin メニュー・サブルーチ
ン、4-167
WINFULLSCREEN QuickWin メニュー・サ
ブルーチン、4-169
WININDEX QuickWin メニュー・サブルーチ
ン、4-173
WININPUT QuickWin メニュー・サブルーチ
ン、4-172
WINPASTE QuickWin メニュー・サブルーチ
ン、4-168
WINPRINT QuickWin メニュー・サブルーチ
ン、4-166
WINSAVE QuickWin メニュー・サブルーチ
ン、4-166
WINSELECTALL QuickWin メニュー・サブ
ルーチン、4-176
WINSELECTGRAPHICS QuickWin メ
ニュー・サブルーチン、4-176
WINSELECTTEXT QuickWin メニュー・サブ
ルーチン、4-175
WINSIZETOFIT QuickWin メニュー・サブ
ルーチン、4-169
WINSTATE QuickWin メニュー・サブルーチ
ン、4-170
WINSTATUS QuickWin メニュー・サブルー
チン、4-173
WINTILE QuickWin メニュー・サブルーチ
ン、4-171
WINUSING QuickWin メニュー・サブルーチ
ン、4-174
WRAPON グラフィックス関数、4-95
X
XOR 組み込み関数、1-312
索引
い
移植性関数、2-98
移植性ライブラリ、2-1
色関数
GETBKCOLORRGB、4-97
GETCOLORRGB、4-96
GETPIXELRGB、4-99
GETPIXELRGB_W、4-100
GETPIXELSRGB、4-103
INTEGERTORGB、4-111
RBGTOINTEGER、4-110
SETBKCOLORRGB、4-106
SETCOLORRGB、4-104
SETPIXELRGB、4-107
SETPIXELRGB_W、4-108
SETPIXELSRGB、4-101
引用仕様宣言、2-1
か
拡張
組み込み手続き、1-9
環境変数
$?、2-32
$status、2-32
関数
引用仕様宣言、2-1
組み込み、1-3
総称および個別、1-4, 1-15
問い合わせ組み込み、1-5
変形組み込み、1-6
要素別処理組み込み、1-5
き
キーワード
組み込み手続き内の〜、1-139
く
空白
パディング、1-232, 1-233, 1-234, 1-235
組み込み
関数、1-1, 1-3
サブルーチン、1-3
手続き、1-1
組み込み手続き
ABS、1-139
ACHAR、1-140
ACOS、1-141
ACOSD、1-142
ACOSH、1-143
ADJUSTL、1-144
ADJUSTR、1-145
AIMAG、1-146
AINT、1-147
ALL、1-148
ALLOCATED、1-150
AND、1-151
ANINT、1-152
ANY、1-153
ASIN、1-155
ASIND、1-156
ASINH、1-157
ASSOCIATED、1-158
ATAN、1-160
ATAN2、1-161
ATAN2D、1-163
ATAND、1-164
ATANH、1-165
BADDRESS、1-166
BIT_SIZE、1-167
BTEST、1-168
CEILING、1-169
CHAR、1-170
CMPLX、1-171
CONJG、1-172
COS、1-173
COSD、1-174
COSH、1-175
COUNT、1-176
CSHIFT、1-179
DATE_AND_TIME、1-181
DBLE、1-183
DFLOAT、1-184
DIGITS、1-185
DIM、1-186
DNUM、1-187
索引 -15
インテル ® Fortran ライブラリ・リファレンス
DOT_PRODUCT、1-188
DPROD、1-189
DREAL、1-190
EOSHIFT、1-192
EPSILON、1-195
EXP、1-196
EXPONENT、1-197
EXTERNAL 属性、1-2
FLOOR、1-198
FRACTION、1-199
HFIX、1-201
HUGE、1-202
IACHAR、1-203
IADDR、1-204
IAND、1-205
IBCLR、1-206
IBITS、1-207
IBSET、1-208
ICHAR、1-209
IDIM、1-210
IEOR、1-211
IJINT、1-212
IMAG、1-213
INDEX、1-214
INT、1-215
INT1、1-216
INT2、1-217
INT4、1-218
INT8、1-218
INTRINSIC 属性、1-7
INTRINSIC 文、1-7
INUM、1-219
IOR、1-220
IQINT、1-221
ISHFT、1-221
ISHFTC、1-222
ISIGN、1-224
ISNAN、1-225
IXOR、1-225
JNUM、1-227
KIND、1-227
LBOUND、1-228
LEN、1-230
LEN_TRIM、1-231
LGE、1-232
索引 -16
LGT、1-233
libU77 ルーチンも参照、1-1
LLE、1-234
LLT、1-235
LOC、1-236
LOG、1-236
LOG10、1-237
LOGICAL、1-238
LSHFT、1-239
LSHIFT、1-239
MATMUL、1-241
MAX、1-243
MAXEXPONENT、1-244
MAXLOC、1-245
MAXVAL、1-247
MCLOCK、1-249
MERGE、1-250
MIN、1-251
MINEXPONENT、1-252
MINLOC、1-253
MINVAL、1-255
MOD、1-257
MODULO、1-258
MVBITS、1-259
NEAREST、1-260
NINT、1-261
NOT、1-262
OR、1-263
PACK、1-264
PRECISION、1-266
PRESENT、1-267
PRODUCT、1-268
RADIX、1-270
RANDOM_NUMBER、1-271
RANDOM_SEED、1-272
RANGE、1-273
REAL、1-274
REPEAT、1-276
RESHAPE、1-277
RNUM、1-278
RRSPACING、1-279
RSHFT、1-280
RSHIFT、1-280
SCALE、1-281
SCAN、1-282
索引
SELECTED_INT_KIND、1-283
SELECTED_REAL_KIND、1-284
SET_EXPONENT、1-285
SHAPE、1-286
SIGN、1-287
SIN、1-288
SIND、1-289
SINH、1-290
SIZE、1-291
SPACING、1-292
SPREAD、1-293
SQRT、1-294
SUM、1-295
SYSTEM_CLOCK、1-297
TAN、1-298
TAND、1-299
TANH、1-300
TINY、1-301
TRANSFER、1-302
TRANSPOSE、1-304
TRIM、1-305
UBOUND、1-306
UNPACK、1-308
VERIFY、1-310
XOR、1-312
可用性、1-2
関数、1-3
キーワード、1-139
個別および総称、1-4, 1-15
サブルーチン、1-3
仕様、1-139
総称および個別、1-4, 1-15
データ型表現、1-10
問い合わせ関数、1-5
名前の競合、1-2
〜の非可用性、1-2
〜の分類、1-2
引数として渡す、1-7
非標準、1-9, 1-15
変形関数、1-6
要素別処理関数、1-5
要素別処理サブルーチン、1-3
組み込み手続きの可用性、1-2
グラフィックス関数
ARC、4-14
ARC_W、4-15
CLEARSCREEN、4-18
DISPLAYCURSOR、4-19
ELLIPS_W、4-21
ELLIPSE、4-20
FLOODFILL、4-22
FLOODFILL_W、4-23
FLOODFILLRGB、4-25
FLOODFILLRGB_W、4-26
GETARCINFO、4-16
GETBKCOLOR、4-27
GETCOLOR、4-28
GETCURRENTPOSITION、4-29
GETCURRENTPOSITION_W、4-30
GETFILLMASK、4-31
GETIMAGE、4-32
GETIMAGE_W、4-33
GETLINESTYLE、4-34
GETPHYSCOORD、4-35
GETPIXEL、4-36
GETPIXEL_W、4-37
GETPIXELS、4-38
GETTEXTCOLOR、4-39
GETTEXTPOSITION、4-40
GETTEXTWINDOW、4-41
GETVIEWCOORD、4-42
GETVIEWCOORD_W、4-43
GETWINDOWCOORD、4-44
GETWRITEMODE、4-45
GRSTATUS、4-46
IMAGESIZE、4-48
IMAGESIZE_W、4-49
LINETO、4-50
LINETO_W、4-51
LOADIMAGE、4-52
LOADIMAGE_W、4-53
MOVETO、4-54
MOVETO_W、4-55
OUTTEXT、4-56
PIE、4-56
PIE_W、4-58
POLYGON、4-60
POLYGON_W、4-61
PUTIMAGE、4-63
索引 -17
インテル ® Fortran ライブラリ・リファレンス
PUTIMAGE_W、4-65
RECTANGLE、4-68
RECTANGLE_W、4-69
REMAPALLPALETTERGB、4-70
REMAPALLPALETTERGP、4-70
REMAPPALETTERGB、4-72
SAVEIMAGE、4-74
SAVEIMAGE_W、4-75
SCROLLTEXTWINDOW、4-78
SETBKCOLOR、4-79
SETCLIPRGN、4-80
SETCOLOR、4-81
SETFILLMASK、4-82
SETLINESTYLE、4-83
SETPIXEL、4-84
SETPIXEL_W、4-85
SETPIXELS、4-86
SETTEXTCOLOR、4-87
SETTEXTPOSITION、4-88
SETTEXTWINDOW、4-89
SETVIEWORG、4-90
SETVIEWPORT、4-91
SETWINDOW、4-91
SETWRITEMODE、4-93
WRAPON、4-95
グラフィックス手続き、4-5, 4-6
こ
構文
組み込み手続き、Chapter 11、1-1
個別組み込み関数、1-4, 1-15
さ
QuickWin サブルーチン
WINABOUT QuickWin メニュー・サブ
ルーチン、4-174
サブルーチン
CLEARSCREEN グラフィックス・サブ
ルーチン、4-18
CLOCKX ポータビリティサブルーチン、
2-12
CLOCK ポータビリティサブルーチン、
索引 -18
2-11
DATE4 ポータビリティサブルーチン、
2-18
DATE ポータビリティサブルーチン、
2-17
DRANSET ポータビリティサブルーチ
ン、2-27
DSETGTEXTVECTOR QuickWin サブルー
チン、4-182
FDATE ポータビリティサブルーチン、
2-33
FGETC POSIX サブルーチン、3-23
FLLUSH POSIX サブルーチン、3-22
FLUSH ポータビリティサブルーチン、
2-36
FPUTC POSIX サブルーチン、3-26
FSEEK POSIX サブルーチン、3-27
FSEEK ポータビリティサブルーチン、
2-40
FTELL POSIX サブルーチン、3-29
GERRNO ポータビリティサブルーチン、
2-47
GETARG ポータビリティサブルーチン、
2-48
GETC POSIX サブルーチン、3-31
GETCURRENTPOSITION_W グラフィッ
クス・サブルーチン、4-30
GETCURRENTPOSITION グラフィック
ス・サブルーチン、4-29
GETCWD POSIX サブルーチン、3-32
GETDAT ポータビリティサブルーチン、
2-55
GETENV ポータビリティサブルーチン、
2-61
GETGTEXTVECTOR QuickWin サブルー
チン、4-178
GETIMAGE_W グラフィックス・サブ
ルーチン、4-33
GETIMAGE グラフィックス・サブルー
チン、4-32
GETLOG ポータビリティサブルーチン、
2-73
GETPHYSCOORD グラフィックス・サ
ブルーチン、4-35
GETPIXELSRGB ピクセルおよび色サブ
索引
ルーチン、4-103
GETPIXELS グラフィックス・サブルー
チン、4-38
GETTEXTPOSITION グラフィックス・
サブルーチン、4-40
GETTEXTWINDOW グラフィックス・サ
ブルーチン、4-41
GETTIM ポータビリティサブルーチン、
2-79
GETVIDEOCONFIG QuickWin サブルー
チン、4-179
GETVIEWCOORD_W グラフィックス・
サブルーチン、4-43
GETVIEWCOORD グラフィックス・サ
ブルーチン、4-42
GETWINDOWCOORD グラフィックス・
サブルーチン、4-44
GMTIME ポータビリティサブルーチン、
2-81
HOSTNM ポータビリティサブルーチン、
2-83
IDATE4 ポータビリティサブルーチン、
2-86
IDATE ポータビリティサブルーチン、
2-85
IRANGET ポータビリティサブルーチン、
2-95
IRANSET ポータビリティサブルーチン、
2-96
ITIME ポータビリティサブルーチン、
2-97
JDATE4 ポータビリティサブルーチン、
2-99
JDATE ポータビリティサブルーチン、
2-98
LTIME ポータビリティサブルーチン、
2-102
MKDIR POSIX サブルーチン、3-47
MOVETO_W グラフィックス・サブルー
チン、4-55
MOVETO グラフィックス・サブルーチ
ン、4-54
NLSGetLocale 問い合わせサブルーチン、
2-174
NUL QuickWin メニュー・サブルーチン、
4-177
OUTGTEXT フォント操作サブルーチン、
4-114
OUTTEXT グラフィックス・サブルーチ
ン、4-56
PERROR ポータビリティサブルーチン、
2-113
PUTIMAGE_W グラフィックス・サブ
ルーチン、4-65
PUTIMAGE グラフィックス・サブルー
チン、4-63
PXFACCESS POSIX サブルーチン、3-2
PXFAINTGET POSIX サブルーチン、3-4
PXFAINTSET POSIX サブルーチン、3-5
PXFCALLSUBHANDLE POSIX サブルー
チン、3-6
PXFCHDIR POSIX サブルーチン、3-7
PXFCHMOD POSIX サブルーチン、3-7
PXFCHOWN POSIX サブルーチン、3-8
PXFCLOSE POSIX サブルーチン、3-9
PXFCLOSEDIR POSIX サブルーチン、
3-10
PXFCONST POSIX サブルーチン、3-11
PXFCREAT POSIX サブルーチン、3-12
PXFDUP POSIX サブルーチン、3-13
PXFDUP2 POSIX サブルーチン、3-14
PXFEINTGET POSIX サブルーチン、3-15
PXFEINTSET POSIX サブルーチン、3-16
PXFESTRGET POSIX サブルーチン、
3-17
PXFEXECV POSIX サブルーチン、3-18
PXFEXECVE POSIX サブルーチン、3-19
PXFEXECVP POSIX サブルーチン、3-20
PXFEXIT POSIX サブルーチン、3-21
PXFFASTEXIT POSIX サブルーチン、
3-21
PXFFILENO POSIX サブルーチン、3-24
PXFFORK POSIX サブルーチン、3-25
PXFFSTAT POSIX サブルーチン、3-28
PXFGETGRGID POSIX サブルーチン、
3-32
PXFGETGRNAM POSIX サブルーチン、
3-33
PXFGETPWNAM POSIX サブルーチン、
3-34
索引 -19
インテル ® Fortran ライブラリ・リファレンス
PXFGETPWUID POSIX サブルーチン、
3-35
PXFGETSUBHANDLE POSIX サブルーチ
ン、3-35
PXFINTGET POSIX サブルーチン、3-36
PXFINTSET POSIX サブルーチン、3-37
PXFKILL POSIX サブルーチン、3-43
PXFLINK POSIX サブルーチン、3-44
PXFLOCALTIME POSIX サブルーチン、
3-45
PXFLSEEK POSIX サブルーチン、3-46
PXFMKFIFO POSIX サブルーチン、3-48
PXFOPEN POSIX サブルーチン、3-49
PXFOPENDIR POSIX サブルーチン、
3-50
PXFPIPE POSIX サブルーチン、3-51
PXFPUTC POSIX サブルーチン、3-52
PXFREAD POSIX サブルーチン、3-53
PXFREADDIR POSIX サブルーチン、
3-54
PXFRENAME POSIX サブルーチン、3-54
PXFREWINDDIR POSIX サブルーチン、
3-55
PXFRMDIR POSIX サブルーチン、3-56
PXFSIGADDSET POSIX サブルーチン、
3-57
PXFSIGDELSET POSIX サブルーチン、
3-58
PXFSIGEMPTYSET POSIX サブルーチ
ン、3-59
PXFSIGFILLSET POSIX サブルーチン、
3-60
PXFSIGISMEMBER POSIX サブルーチ
ン、3-61
PXFSTAT POSIX サブルーチン、3-62
PXFSTRGET POSIX サブルーチン、3-63
PXFSTRUCTCREATE POSIX サブルーチ
ン、3-65
PXFSTRUCTFREE POSIX サブルーチン、
3-66
PXFSTRUCTOCPY POSIX サブルーチン、
3-64
PXFUCOMPARE POSIX サブルーチン、
3-66
PXFUMASK POSIX サブルーチン、3-67
索引 -20
PXFUNLINK POSIX サブルーチン、3-68
PXFUTIME POSIX サブルーチン、3-69
PXFWAIT POSIX サブルーチン、3-70
PXFWAITPID POSIX サブルーチン、3-70
PXFWRITE、3-74
QSORT ポータビリティサブルーチン、
2-116
RANDOM ポータビリティサブルーチン、
2-121
RANGET ポータビリティサブルーチン、
2-124
RANSET ポータビリティサブルーチン、
2-124
SCANENV ポータビリティサブルーチ
ン、2-130
SCROLLTEXTWINDOW グラフィック
ス・サブルーチン、4-78
SEED ポータビリティサブルーチン、
2-131
SETCLIPRGN グラフィックス・サブ
ルーチン、4-80
SETDAT ポータビリティサブルーチン、
2-135
SETEXTFONT QuickWin サブルーチン、
4-184
SETFILLMASK グラフィックス・サブ
ルーチン、4-82
SETFRAMEWINDOW QuickWin サブルー
チン、4-182
SETGTEXTROTATION フォント操作サブ
ルーチン、4-119
SETLINESTYLE グラフィックス・サブ
ルーチン、4-83
SETMESSAGEQQ QuickWin サブルーチ
ン、4-154
SETPIXELSRGB ピクセルおよび色サブ
ルーチン、4-101
SETPIXELS グラフィックス・サブルー
チン、4-86
SETSTATUSMESSAGE QuickWin サブ
ルーチン、4-183
SETTEXTPOSITION グラフィックス・サ
ブルーチン、4-88
SETTEXTWINDOW グラフィックス・サ
ブルーチン、4-89
索引
SETTIM ポータビリティサブルーチン、
2-142
SETVIEWORG グラフィックス・サブ
ルーチン、4-90
SETVIEWPORT グラフィックス・サブ
ルーチン、4-91
SLEEP ポータビリティサブルーチン、
2-148
SRAND ポータビリティサブルーチン、
2-151
TIME ポータビリティサブルーチン、
2-157
UNREGISTERFONTS QuickWin サブルー
チン、4-186
UNUSEDQQ QuickWin ウィンドウ・ハン
ドル・サブルーチン、4-188
WINARRANGE QuickWin メニュー・サ
ブルーチン、4-171
WINCASCADE QuickWin メニュー・サブ
ルーチン、4-170
WINCLEARPASTE QuickWin メニュー・
サブルーチン、4-172
WINCOPY QuickWin メニュー・サブルー
チン、4-167
WINEXIT QuickWin メニュー・サブルー
チン、4-167
WINFULLSCREEN QuickWin メニュー・
サブルーチン、4-169
WININDEX QuickWin メニュー・サブ
ルーチン、4-173
WININPUT QuickWin メニュー・サブ
ルーチン、4-172
WINPASTE QuickWin メニュー・サブ
ルーチン、4-168
WINPRINT QuickWin メニュー・サブ
ルーチン、4-166
WINSAVE メニュー・サブルーチン、
4-166
WINSELECTALL QuickWin メニュー・サ
ブルーチン、4-176
WINSELECTGRAPHICS QuickWin メ
ニュー・サブルーチン、4-176
WINSELECTTEXT QuickWin メニュー・
サブルーチン、4-175
WINSIZETOFIT QuickWin メニュー・サ
ブルーチン、4-169
WINSTATE QuickWin メニュー・サブ
ルーチン、4-170
WINSTATUS QuickWin メニュー・サブ
ルーチン、4-173
WINTILE QuickWin メニュー・サブルー
チン、4-171
WINUSING QuickWin メニュー・サブ
ルーチン、4-174
組み込み、1-3
要素別処理組み込み、1-3
グラフィックス関数
GETFILLMASK、4-31
参考文献、1-xxi
し
実数
〜の表現、1-12
実引数
〜としての組み込み手続き、1-7
省略可能な引数、1-139
所要時間、計算処理、1-249
せ
整数
〜の表現、1-11
そ
総称名 (generic name) と個別名、1-4
総称組み込み関数、1-4, 1-15
属性
INTRINSIC、1-7
た
ターゲット・アーキテクチャ、1-xxii
大小順序、ASCII、1-140, 1-171, 1-203, 1-210,
1-232, 1-233, 1-234, 1-235
索引 -21
インテル ® Fortran ライブラリ・リファレンス
ち
非標準の組み込み手続き、1-9, 1-15
注釈
〜としての INTRINSIC 属性および文、
1-7
ふ
て
データ型
実数表現、1-12
整数表現、1-11
〜の表現、1-9
ビット表現、1-11
データ表現モデル、1-9
手続き、組み込み、1-1
と
問い合わせ関数、1-5
な
名前
競合、1-2
フォント操作関数
GETFONTINFO、4-112
GETGTEXTEXTENT、4-113
GETGTEXTROTATION、4-120
GETTEXTCOLORRGB、4-121
INITIALIZEFONTS、4-115
OUTGTEXT、4-114
SETFONT、4-116
SETGTEXTROTATION、4-119
SETTEXTCOLORRGB、4-122
プログラム実行の時間、1-249
プログラム速度を測定する、1-249
文
INTRINSIC、1-7
文関数
名前の競合、1-2
文書
参考文献を参照、1-xxi, 1-xxii
へ
は
パディング
空白、1-232, 1-233, 1-234, 1-235
ひ
引数
省略可能な〜、1-139
〜としての組み込み手続き、1-7
ピクセル関数
GETPIXELRGB、4-99
GETPIXELRGB_W、4-100
GETPIXELSRGB、4-103
SETPIXELRGB、4-107
SETPIXELRGB_W、4-108
SETPIXELSRGB、4-101
ビットデータ型
〜の表現、1-11
索引 -22
変形関数、1-6
ほ
ポータビリティ問題、1-9
ポータビリティおよび非標準の組み込み手
続き、1-9
ポータビリティ関数、2-98
/4Yportlib、2-1
CDFLOAT、2-7
CLOCK、2-11
CLOCKX、2-12
COMPL、2-15
CTIME、2-16
DATE、2-17
DATE4、2-18
DCLOCK、2-21
DFLOATI、2-24
索引
DFLOATJ、2-25
DFLOATK、2-26
DRAND、2-26
DRANSET、2-27
DSHIFTL、2-28
DSHIFTR、2-29
DTIME、2-30
ETIME、2-31
EXIT、2-32
FDATE、2-33
FGETC、2-34
FLUSH、2-36
FPUTC、2-39
FSEEK、2-40
FTELL、2-44
GERRNO、2-47
GETARG、2-48
GETDAT、2-55
GETENV、2-61
GETGID、2-69
GETLASTERROR、2-70
GETLOG、2-73
GETPID、2-74
GETPOS、2-74
GETTIM、2-79
GETUID、2-80
GMTIME、2-81
GRAN、2-82
HOSTNM、2-83
IARGC、2-84
IDATE、2-85
IDATE4、2-86
IEEE_FLAGS、2-87
IEEE_HANDLER、2-88
IERRNO、2-89
IFLOATI、2-91
iflport.f90、2-2
INMAX、2-93
INTC、2-93
IRAND、2-94
IRANGET、2-95
IRANSET、2-96
ISATTY、2-96
ITIME、2-97
JDATE、2-98
JDATE4、2-99
KILL、2-100
LTIME、2-102
NARGS、2-108
NUMARG、2-109
PERROR、2-113
POPCNT、2-114
POPPAR、2-114
PUTC、2-115
QSORT、2-116
RAN、2-118
RAND、2-119
RANDOM、2-121
RANDU、2-122
RANF、2-123
RANGET、2-124
RANSET、2-124
RENAME、2-125
RINDEX、2-127
SCANENV、2-130
SECNDS、2-131
SEED、2-131
SETDAT、2-135
SETTIM、2-142
SHIFTL、2-143
SHIFTR、2-144
SLEEP、2-148
SRAND、2-151
STAT、2-153
SYSTEM、2-155
TCLOSE、2-160
TIME、2-157
TIMEF、2-158
TOPEN、2-159
TREAD、2-161
TTYNAM、2-162
TWRITE、2-162
UNLINK、2-163
引用仕様宣言、2-1
ポータビリティライブラリ、2-1
も
戻りコード、2-32
索引 -23
インテル ® Fortran ライブラリ・リファレンス
よ
要素別処理
組み込み関数、1-5
組み込みサブルーチン、1-3
索引 -24