" I was told there isn't any roaming charges in Europe but if I get a SIM card in Spain & call within Portugal or make a call to Spain, will I have long distance charges?"
First, there are no more roaming charges in the EU; this is not the same as Europe. If you take an EU SIM to a non-EU country such as Norway or Switzerland, charges can change - a little or a lot.
Second, what "no roaming" means is that when you take a SIM out of its country of origin but still in the EU, your charges don't change. So, if you take your Spanish SIM to Portugal, it will cost the same as using it in Spain.
However, long distance or international calling are not the same as roaming. So, you have to check the terms of the particular package you buy to see what it would cost to call Portugal from Spain. Again, this will not change when you move to Portugal, as your phone remains a "bubble" of the country of the SIM. In other words, when you have a Spanish SIM in your phone, you keep your Spanish phone number and rate terms, wherever you go, and whichever local phone network you are accessing.
Concrete (totally made up) example: Say your Spanish SIM, while in Spain, charges €0.10 per minute for calls within Spain, €0.15 per minute to calls to other EU countries, €0.20 per minute to call Switzerland, and €1 per minute for calls to Canada. That's what you'll pay when you take that Spanish SIM to Portugal, England, or any other EU country (that's what "no roaming surcharges" means). But, if you take that phone to Switzerland, the prices can/will change.
Real story of what I mean: a few years ago, a friend of mine had a UK SIM with good rates within England and the EU (something like £0.10 per minute) and cheap rates to the US (£0.06 per minute). He took it to Turkey, and on my advice looked into costs of using it there. OUCH - £1.50 per minute! Again, an EU SIM roaming outside the EU is not regulated, so carriers "make up their losses" (as they see it) by doing this.