I get it now. I suppose the description wasn't clear enough for me or I was in a rush. Either way, I get it now. I have never had to use those subroutines and I do not even recall at which level those get called (if I recall correctly, UELs and UMATs are at the highest level).
If the new function you are referring to is already implemented in another code, then perhaps you might be better off with co-simulation. Or, perhaps, UEXTERNALDB/URDFIL/POSFIL/.. might come in handy as well. An example like FELBOW.f might have something tangentially useful in there as well.
If I am off base there, and a subroutine is the only way out, then here are some additional (likely unhelpful) thoughts -
First and foremost, I do not know if anyone has even attempted such a thing. Abaqus' internal machinery has to recognize the function you wish to write and if it something that is not supported by Abaqus, then what is the point? So, may be I still don't quite get it.
Second, if I were going to such a length as to write an entirely new function for a solver, I would consider using an open source code and avoid bothering to create a Frankenstein in the first place.
*********************************************************
Are you new to this forum? If so, please read these FAQs: