So I want to take my existing array of gpx routes and split them down into smaller segments of maybe 200 kms, and most likely into files of around that length that start and end at controls.
A gpx file is a plain text file that can be edited in notepad or whatever your preferred editor is.
The file for a track looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>ACTIVE LOG172431</name>
<trkseg>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-77.964</ele>
<time>2011-05-10T16:24:31Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.445</ele>
<time>2011-05-10T16:24:33Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.403</ele>
<time>2011-05-10T16:24:34Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.725</ele>
<time>2011-05-10T16:24:40Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.847</ele>
<time>2011-05-10T16:24:41Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.847</ele>
<time>2011-05-10T16:24:42Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.207</ele>
<time>2011-05-10T16:24:43Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
To split it, you just have to open a copy of the file, and delete the points you don't want, taking care that you delete whole trackpoints (everything between "<trkpt>" and the next "</trkpt>", including the two tags just quoted.
Then take another copy of the original file, and delete the points you didn't delete in the first copy.
The following would be the first 4 of the 7 trackpoints in the above track
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>ACTIVE LOG172431</name>
<trkseg>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-77.964</ele>
<time>2011-05-10T16:24:31Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.445</ele>
<time>2011-05-10T16:24:33Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.403</ele>
<time>2011-05-10T16:24:34Z</time>
</trkpt>
<trkpt lat="51.861718" lon="-2.223100">
<ele>-78.725</ele>
<time>2011-05-10T16:24:40Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
If you've got a route, you will have route tags (<rte>...</rte>), with a number of routepoints (<rtept>...</rtept>) or waypoints (<wpt>...</<wpt>). Again, you have to delete everything between the opening tag (eg "<rtept>") and the closing tag("</rtept>"), including the tags themselves.
Routes are easier in that waypoints and routepoints would generally have names, which makes it easier to split the gpx in the correct place.
The important thing is that every opening tag <xyz> has a matching closing tag </xyz>.
You can check this by renaming the file from xyz.gpx to xyz.xml, and then double-clicking it to open it in Internet Explorer. If everything is OK, you'll have no error messages, and each opening tag will have a "-" next to it that you can click on to collapse the tag and everything up to the matching closing tag to a single line with a "+" where the "-" was. You should be able to click the "-" next to the "<gpx...>" tag, and collapse the whole file to two lines (The gpx line and a header line similar to "<?xml version="1.0" encoding="UTF-8"?>".
If eveything is OK, rename the file back to xyx.gpx.