Prism 6.0 User's Guide

User-Defined Operators

Prism views user-defined operators as functions. If a new operator . my_op. appears in a Fortran 90 program, then Prism cannot deal with the operator . my_op. as an operator, but it can deal with the function my_op, viewed as a generic function. You cannot use operators named * (or +, or any other keyword operator.), but you can stop in functions that are used to define such operators. For example:

interface operator(.add_op.)
  integer function int_add(i, j)
  integer*4, intent(in) :: i, j
  end function int_add
  real function real_add(x, y) 
  real, intent(in) :: x, y 
  end function real_add
end interface

In this example, Prism does not support debugging the user defined function .add_op.

(prism) print 1 .add_op. 2

However, Prism supports the function add_op:

(prism) print add_op(1,2)  

A list pops up, allowing you to choose which add_op to apply.