SYSTEM_CLOCK(COUNT, COUNT_RATE, COUNT_MAX)

目的

リアルタイム・クロックから整数データを戻します。

クラス

サブルーチン

引き数の型と属性

COUNT (オプション)
INTENT(OUT) 引き数であり、スカラーで、型がデフォルトの整数でなければなりません。COUNT の初期値は、プロセッサー・クロックの現行値によって異なり、 0 から COUNT_MAX までの範囲内の値になります。 COUNT は、COUNT が COUNT_MAX の値に到達するまで、各クロック・カウントごとに 1 ずつ増分します。 COUNT_MAX に到達した後、次のクロック・カウントで COUNT の値はゼロにリセットされます。

COUNT_RATE (オプション)
INTENT(OUT) 引き数であり、スカラーで、型がデフォルトの整数でなければなりません。デフォルトであるセンチ秒の解像度を使用すると、 COUNT_RATE は 1 秒当たりのプロセッサー・クロックのカウント数になるか、 またはクロックがない場合はゼロになります。

-qsclk=micro を使用してマイクロ秒の解像度を指定した場合は、 COUNT_RATE の値は 1 秒当たり 1 000 000 クロック・カウントになります。

COUNT_MAX (オプション)
INTENT(OUT) 引き数であり、スカラーで、型がデフォルトの整数でなければなりません。デフォルトであるセンチ秒の解像度を使用すると、 COUNT_MAX は指定されたプロセッサー・クロックの最大クロック・カウント数になります。

-qsclk=micro とデフォルトの INTEGER(4) を使用して マイクロ秒の解像度を指定した場合、COUNT_MAX の値は 1 799 999 999 クロック・カウント、 つまり約 30 分になります。

-qsclk=micro とデフォルトの INTEGER(8) を使用して マイクロ秒の解像度を指定した場合、COUNT_MAX の値は 8 639 999 999 クロック・カウント、 つまり約 24 時間になります。

+----------------------------------IBM 拡張----------------------------------+

次の例では、クロックは 24 時間クロックです。 SYSTEM_CLOCK の呼び出し後、COUNT には 1 秒当たりのクロック刻みで表された 1 日の時刻が含まれます。 1 秒当たりの刻み数は COUNT_RATE で使用できます。 COUNT_RATE 値は インプリメンテーションによって異なります。

     INTEGER, DIMENSION(8) :: IV
     TIME_SYNC: DO
     CALL DATE_AND_TIME(VALUES=IV)
     IHR  = IV(5)
     IMIN = IV(6)
     ISEC = IV(7)
     CALL SYSTEM_CLOCK(COUNT=IC, COUNT_RATE=IR, COUNT_MAX=IM)
     CALL DATE_AND_TIME(VALUES=IV)
 
     IF ((IHR == IV(5)) .AND. (IMIN == IV(6)) .AND. &
       (ISEC == IV(7))) EXIT TIME_SYNC
 
     END DO TIME_SYNC
 
     IDAY_SEC = 3600*IHR + IMIN*60 + ISEC
     IDAY_TICKS = IDAY_SEC * IR
 
     IF (IDAY_TICKS /= IC) THEN
       STOP 'clock error'
     ENDIF
     END

+------------------------------End of IBM 拡張-------------------------------+

関連情報

システム・クロックの解像度の指定について詳しくは、「XL Fortran ユーザーズ・ガイド」の -qsclk コンパイラー・オプションを参照してください。 IBM Copyright 2003