https://gcc.gnu.org/onlinedocs/gfortran/Working-with-Pointers.html "If a pointer is a dummy-argument of an interoperable procedure, it usually has to be declared using the VALUE attribute. void* matches TYPE(C_PTR), VALUE, while TYPE(C_PTR) alone matches void**." What does "usually" mean in this context? Under what conditions do we have to do this?