Calling C libraries in Metal functions

I'm trying to call a function in a C .o file from within a metal function. The function being called doesn't have the device modifier in front of its parameters. As a simple example, here is function declaration in a C header.

void add(const float* a, const float* b, float* sum);

Is there a way around this problem that doesn't require re-writing the entire function?

I'm attempting to get to the point that I can use a library of compiled Fortran that has a C interface.

Any help appreciated