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.