print('==================== read Airports Database ==================== ' +
          time.strftime("%c"))
    airportsDB = AirportsDatabase()
    assert (airportsDB.read())

    print('========== departure is LONDON ================')
    departureAirport = airportsDB.getAirportFromICAOCode('EGLL')
    assert not (departureAirport is None)

    print('========== ' + str(arrivalRunway) + ' =================')
    airportIcaoCode = arrivalRunway.getAirportICAOcode()
    arrivalAirport = airportsDB.getAirportFromICAOCode(airportIcaoCode)
    print('arrival airport= {0}'.format(arrivalAirport))

    aircraft.setArrivalAirportElevationMeters(
        arrivalAirport.fieldElevationAboveSeaLevelMeters)

    print(
        '=========== add final turn, descent and ground run ==================='
    )
    arrivalGroundRun = GroundRunLeg(runway=arrivalRunway,
                                    aircraft=aircraft,
                                    airport=arrivalAirport)
    touchDownWayPoint = arrivalGroundRun.computeTouchDownWayPoint()
    print(touchDownWayPoint)

    print(
        '===================== final 3 degrees descending glide slope ================'
    )
    dummyDescentGlideSlope = DescentGlideSlope(runway=arrivalRunway,
                                               aircraft=aircraft,
            earth)
        aircraft.dump()
    else:
        raise ValueError(': aircraft not found= ' + aircraftIcaoCode)
    assert not (aircraft is None)

    latitudeDegrees = 45.0
    distanceStillToFlyMeters = 500000.0

    elapsedTimeSeconds = 0.0
    deltaTimeSeconds = 1.0

    aircraft.initStateVector(elapsedTimeSeconds=0.0,
                             trueAirSpeedMetersSecond=0.0,
                             altitudeMeanSeaLevelMeters=0.0)
    aircraft.setArrivalAirportElevationMeters(0.0)

    aircraft.setTargetCruiseFlightLevel(RequestedFlightLevel=310.0,
                                        departureAirportAltitudeMSLmeters=0.0)
    aircraft.setAircraftMassKilograms(massKilograms=64000.0)
    aircraft.setTargetCruiseMach(cruiseMach=0.8)

    tas = aircraft.getCurrentTrueAirSpeedMetersSecond()
    previousAltitudeMSLmeters = 0.0
    t0 = time.clock()
    print('simulation start= {0} seconds'.format(t0))
    print('=========== simulation start ==================')
    endOfSimulation = False
    while ((endOfSimulation == False)
           and not (aircraft.isLandingConfiguration())):
        endOfSimulation, deltaDistanceMeters, altitudeMeters = aircraft.fly(