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 ] );
}
}
}