Are there any computer algebra systems (e.g. Macaulay2 og singular) that allows one to compute the Picard number (i.e. the rank of the Neron-Severi group) of a given variety?



Are there any sofware packages for computing Picard numbers?
A more basic question is whether there even exists an algorithm to compute this number.
I've wondered this for a long time, and I honestly don't know what to expect. 
Any algorithm would have to be quite subtle. In the early 1980's Shioda had to work quite hard to construct explicit examples of surfaces in $\mathbb{P}^3$, defined over $\mathbb{Q}$, with Picard number 1. 


Added: Of course, I should have said Shioda's example have degree >1. As further
evidence of subtlety of the problem: one can decide whether an elliptic curve $E$
has CM by computing the Picard number of $E\times E$. 


