Combine duplicate get_global subroutines.

These are all the same save for one loop bound. But that nested loop can
be re-written as a single loop that works for all cases.
Combine duplicates of sort_array_coordinates.

This unfortunately causes a bit of extra allocation for unused
parameters. Hopefully I can find a workaraound for that.
Replace Numerical Routines sorting code.

Numerical Routines source code is not re-distributable in any way at all
and is 100% incompatible with the GPL.

The replacement code originates from the heap_sort.f90 in the mesher
code. It appears to be a fairly straight-forward translation of the heap
sort algorithm (e.g., from RosettaCode) and should be unencumbered. I
have added additional parameters in order to sort multiple arrays at the
same time. Interestingly, this code is slightly faster than the
previous version.
Remove get_value_string subroutine.

All it does is copy the default value to the result.
Normalize case of some Fortran keywords.

There are a couple of files with code I'd rather not touch right now.