INTRINSIC

目的

INTRINSIC 属性によって、名前を組み込みプロシージャーとして識別し、組み込みプロシージャーの固有の名前を実引数として使用できるようにします。

構文

構文図を読む構文図をスキップする
>>-INTRINSIC--+-----+--name_list-------------------------------><
              '- :: '              

name
組み込みプロシージャーの名前です。

規則

有効範囲単位で、固有の組み込みプロシージャー名を実引数として使用する場合、INTRINSIC 属性を指定する必要があります。一般名には、INTRINSIC 属性がありますが、それらが、固有名である場合を除いて、引数として渡すことができません。

INTRINSIC 属性を持つ一般または固有のプロシージャーは、それぞれのプロパティーを保持します。

INTRINSIC 属性を持つ一般組み込みプロシージャーは、一般インターフェース・ブロックの名前にすることもできます。一般インターフェース・ブロックによって、一般組み込みプロシージャーへの拡張機能を定義します。

表 1. INTRINSIC 属性と互換性のある属性
PRIVATE PUBLIC

PROGRAM MAIN
  INTRINSIC SIN, ABS
  INTERFACE ABS
    LOGICAL FUNCTION MYABS(ARG)
      LOGICAL ARG
    END FUNCTION
  END INTERFACE
  LOGICAL LANS,LVAR
  REAL(8) DANS,DVAR
  DANS = ABS(DVAR)            ! Calls the DABS intrinsic procedure
  LANS = ABS(LVAR)            ! Calls the MYABS external procedure

! Pass intrinsic procedure name to subroutine
  CALL DOIT(0.5,SIN,X)        ! Passes the SIN specific intrinsic
END PROGRAM

SUBROUTINE DOIT(RIN,OPER,RESULT)
  INTRINSIC :: MATMUL
  INTRINSIC    COS
  RESULT = OPER(RIN)
END SUBROUTINE

関連情報