Implementation of a parametrized objective function without using module variables or internal subroutines

Even though it is valid to call problem%objective(x, y), the interface of problem%objective does not comply with OBJ(x, y). This felt a bit inconsistent to me.