Добавьте атрибут nopass
к объявлению компонента-указателя процедуры.
procedure(interface1), pointer, nopass :: p
Изменить: В ответ на ваш комментарий, если вы хотите использовать ключевое слово pass, интерфейс должен быть изменен следующим образом:
ABSTRACT INTERFACE
integer function interface1(passed_object, a)
import :: type1
class(type1), intent(...) :: passed_object
real, intent(in) :: a
END function interface1
END INTERFACE