my family and I are considering a Med cruise departing from Barcelona on March 16th. We would like to fly into another city and explore (very quickly) other areas before heading to Barcelona. looking for some recommendations.... we are open to taking the train between destinations.
I have the perfect area for you to visit in Spain before the start of cruise in Barcelona. Basque Country is not far from Barcelona and would make a great destination to explore before your trip. You can fly into Bilbao. You will have the option to tour Bilbao, and San Sebastián. Pamplona is also another interesting city. Then, you can train to Barcelona from either San Sebastian or Pamplona. The Guggenheim Museum in Bilbao is the highlight of the city and a must see.
If you wish to visit another country near Barcelona with a city not too far, then I suggest fly into Marseilles France. Tour Marseilles, Montpellier and Toulouse. From Toulouse France, you can take the train to Barcelona. You have two great options to choose from.
The largest airport in Spain is Madrid (code MAD), Barcelona is easily reached from Madrid's Atocha train station via high speed (AVE) train, arriving at Barcelona's Sants train station - which is nearer the cruise ship docks than the Barcelona airport. The AVE train is not inexpensive, the landscape between the two cities is not particularly interesting (although it is not uninteresting) - but the Spanish high speed rail system is my favorite in all of Europe. There is a lot of opportunity for discovery in Madrid, although it should be stated that I think most travelers, when comparing the two, prefer Barcelona over Madrid. I love them both.
I am hesitant to state that there is much to see and do in Barcelona, and if you have not previously visited that great city, it is worth every minute of your travel time.
I like RJean's suggestion of adding the Basque region to your travel - the only issue I have with it - and this is completely personal - I love the Basque Country so much, I would never want to leave it. They had to throw me on the plane in Bilbao after taking the RS "Best of Basque Country" tour last autumn.....as Smokey Robinson said....."A taste of honey is worse than none at all."
I have enjoyed multiple visits to Madrid. You do not say if the cruise makes a (distant ... ) stop "For Granada." We enjoyed multiple nights in Granada. And it would save bus time if you see it on your own. The question then is finding a closer, independent (?) trip for the Granada port visit.
Check climate and temperatures for March. In October, we found some northern Med "resort" towns were a quiet, with some tourist businesses closed for the season. On one island, we were unable to get a taxi to let us hire them for the entire day (!), even when the TI lady called them herself. (I'm talking about Working to Live vs. Living to Work!)
Depending on the amount of advance time, Madrid is the logical choice. If time permits day trips to Toledo, Avail, Segovia, etc. Easy airport to arrival at, Madrid has many great sites, and the train connection to Barcelona is very good.
It doesn't sound as if you'll have much time for this additional stop, so I'd prioritize limiting the transportation required in order to maximize sightseeing time. My first thought was Barcelona itself. If you haven't been there before, it's worth at least four full days (5 nights). To me it's more interesting than any of the practical alternatives for a short visit. (I don't consider Andalucía practical because of the travel time.)
If you've been to Barcelona before, I'd suggest the lovely, historic, smaller city of Girona to the north and/or Zaragoza to the southwest. However, anywhere inland is likely to be considerably cooler at night than Barcelona. I like the Basque Country a lot, but it's cool and damp even in the summer (thus a very good mid-summer destination when so much of Europe can be too hot), and I wouldn't choose it in March. The temperature would probably be pretty similar to those in Girona and Zaragoza, but the Basque Country gets a great deal more rain.