インテル ® 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
© Copyright 2024 Paperzz