Profiling: use different names and variables for real and complex versions of functions
At the moment, the same profiling name is used for real and complex versions of functions (in *_inc.F90 files). In some cases, different variables are used because they are defined locally in the function and sometimes the same variable is used. In the first case, the same profiling name will appear twice if both the real and complex version of the function are called in one run (which can happen, e.g. in tests). In the second case, there is one name only, but it contains the profiling results from the real and complex version of the function which might be quite different in terms of performance.
Thus, the profiling should happen separately for real and complex versions of functions. This requires separate variables (e.g. locally defined) and separate names (e.g. X(PROFILING_NAME)).