European route E15
The European route E 15 is part of the United Nations international E-road network. It is a north-south "reference road", running from Inverness, Scotland south through England and France to Algeciras, Spain.[1] Along most of its route between Paris and London, the road parallels the LGV Nord (as the French A1 autoroute) and High Speed 1 (as the English M20 motorway). Its length is 2,300 miles (3,700 km).
Major junctions | |
---|---|
North end | Inverness, United Kingdom |
South end | Algeciras, Spain |
Location | |
Countries | |
Highway system | |
International E-road network |
Wikimedia Commons has media related to E15. |
Features
The E15 has a gap at the English Channel between Dover and Calais, France. There is a ferry link between Dover and Calais. The Eurotunnel Shuttle (using the Channel Tunnel) provides an alternative link via Folkestone.
The roads in the UK are signed solely by the local number (e.g. M20).
Route
United Kingdom A9: Inverness - Perth M90: Perth - M90 M9: M90 - M8 (Interchange with E16) M8: Edinburgh A720: Edinburgh City Bypass A1: Edinburgh - Gateshead (Interchange with E18 at A69 Newcastle upon Tyne) A1(M): Gateshead - Pontefract (Interchange with E20 and E22 at M62) A1: Pontefract - Doncaster A1(M): Doncaster Bypass (Interchange with E13 at M18) A1: Doncaster - Peterborough A1(M): Peterborough - Huntingdon (Interchange with E24 at A14) A1: Huntingdon - Stevenage A1(M): Stevenage - M25 M25: London Orbital (Multiplex with E30 between A1(M) and A12) A282: Dartford Crossing (Charge) M25: London Orbital M20: Channel Tunnel
- Gap (English Channel)
: Folkestone - Calais
France A 16: Calais (E 40 E 402) A 26: Calais (E 40) - Arras (E 17) A 1: Arras (E 17) - Combles (Start of concurrency with E 19) - Chaulnes (E 44) - Compiègne (E 46) - Roissy-en-France (End of concurrency with E 19) A 3: Roissy-en-France (E 19) - Paris - Boulevard Périphérique: Paris (E 50 E 54)
A 6b: Paris (E 50) - Massy (E 5 E 50) A 6: Massy (E 5 E 50) - Courtenay (E 511, Start of concurrency with E 60) - Auxerre - Beaune (End of concurrency with E 60, Start of concurrency with E 21) - Chalon-sur-Saône (E 607) - Mâcon (E 62, End of concurrency with E 21) - Anse A 46: Anse - Vaulx-en-Velin (E 611) N 346: Vaulx-en-Velin (E 611) - Saint-Priest (E 70 E 711) A 46: Saint-Priest (E 70 E 711) - Givors (E 70) A 7: Givors (E 70) - Valence (E 713) - Orange (E 714) A 9: Orange (E 714) - Nîmes (Start of concurrency with E 80) - Montpellier - Béziers (E 711) - Narbonne (End of concurrency with E 80) - Perpignan - Le Boulou
Spain AP-7: La Jonquera - Girona - Rubí (E-9) - Rubí (Start of concurrency with E-90) - El Vendrell (End of concurrency with E-90) - Tarragona - Castelló de la Plana - València (E-901) - Alacant(E-903) - Crevillent A-7: Crevillent - Murcia - Motril (E-902) - Málaga AP-7: Málaga - Torreguadiaro A-7: Torreguadiaro - Algeciras (E-5)
gollark: Perfectly sane.
gollark: <@!509849474647064576> and <@!134073775925886976> are perfectly sane.
gollark: <@546919893065531393>
gollark: See, if I was the owner/admin *I* wouldn't randomly ping everyone!
gollark: ```python#!/usr/bin/env python3import argparseimport subprocessimport randomimport stringparser = argparse.ArgumentParser(description="Compile a WHY program using WHYJIT.")parser.add_argument("input", help="File containing WHY source code")parser.add_argument("-o", "--output", help="Filename of the output executable to make", default="./a.why")parser.add_argument("-O", "--optimize", help="Optimization level", type=int, default="0")args = parser.parse_args()def randomword(length): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(length))def which(program): proc = subprocess.run(["which", program], stdout=subprocess.PIPE) if proc.returncode == 0: return proc.stdout.replace(b"\n", b"") else: return Nonedef find_C_compiler(): compilers = ["gcc", "clang", "tcc", "cc"] for compiler in compilers: path = which(compiler) if path != None: return pathdef build_output(code, mx): C_code = f"""#define QUITELONG long long intconst QUITELONG max = {mx};int main() {{ volatile QUITELONG i = 0; // disable some "optimizations" that RUIN OUR BEAUTIFUL CODE! while (i < max) {{ i++; }} {code}}} """ heredoc = randomword(100) devnull = "2>/dev/null" shell_script = f"""#!/bin/shTMP1=/tmp/ignore-meTMP2=/tmp/ignore-me-tooTMP3=/tmp/dont-look-here cat << {heredoc} > $TMP1{C_code}{heredoc}sed -e '1,/^exit \$?$/d' "$0" > $TMP3chmod +x $TMP3$TMP3 -x c -o $TMP2 $TMP1chmod +x $TMP2$TMP2exit $?""".encode("utf-8") with open(find_C_compiler(), "rb") as f: return shell_script + f.read()input = args.inputoutput = args.outputwith open(input, "r") as f: contents = f.read() looplen = max(1000, (2 ** -args.optimize) * 1000000000) code = build_output( contents, looplen ) with open(output, "wb") as out: out.write(code)```
References
External links
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.