Error msg in PROGMEM

const long LONDON[10][10][8] PROGMEM = {

You don't have ten cities, you have two cities.

Uncompiled, untested, from your original post)

#include <avr/pgmspace.h> 
#include <EEPROM.h>
const long CITIES [2][10][8] PROGMEM = {
  {
		{	1,	1,	539,	700,	1225,	325,	545,	701	},
		{	2,	1,	540,	700,	1225,	325,	545,	701	},
		{	3,	1,	540,	701,	1226,	326,	546,	702	},
		{	4,	1,	540,	701,	1226,	327,	547,	702	},
		{	5,	1,	541,	701,	1227,	327,	547,	703	},
		{	6,	1,	541,	701,	1227,	328,	548,	704	},
		{	7,	1,	541,	702,	1228,	329,	549,	704	},
		{	8,	1,	541,	702,	1228,	329,	549,	705	},
		{	9,	1,	542,	702,	1229,	330,	550,	706	},
		{	10,	1,	542,	702,	1229,	331,	551,	706	}
	},
	{
		{	1,	1,	539,	720,	1230,	325,	545,	708	},
		{	2,	1,	540,	700,	1225,	345,	545,	701	},
		{	3,	1,	540,	701,	1226,	326,	546,	702	},
		{	4,	1,	540,	701,	1226,	327,	547,	702	},
		{	5,	1,	541,	701,	1227,	327,	547,	703	},
		{	6,	1,	541,	701,	1227,	328,	548,	704	},
		{	7,	1,	541,	702,	1228,	329,	549,	704	},
		{	8,	1,	541,	702,	1228,	329,	549,	705	},
		{	9,	1,	542,	702,	1229,	330,	550,	706	},
		{	10,	1,	542,	702,	1229,	339,	551,	706	}
	}	
};

int CityCode;

int day, month, FA, SH,DH, AS, MA, ESH;

void setup()
{
  CityCode = EEPROM.read(7);
}

void loop()
{
  char CityName = CityCode - 1;

  for (int r = 0; r < 10; r++)
  {
    if ((pgm_read_word( &CITIES[CityName][r][ 0 ]) == day) && (pgm_read_word( & CITIES [CityName][ r ][ 1 ]) == month))
    {
		   FA = pgm_read_word( & CITIES[CityName][ r ][ 2 ] );
		   SH = pgm_read_word( & CITIES[CityName][ r ][ 3 ] );
		   DH = pgm_read_word( & CITIES[CityName][ r ][ 4 ] );
		   AS = pgm_read_word( & CITIES[CityName][ r ][ 5 ] );
		   MA = pgm_read_word( & CITIES[CityName][ r ][ 6 ] );
		   ESH = pgm_read_word( & CITIES[CityName][ r ][ 7 ] );
    }
  }
}