Hello,everyone.
when i used open-mp for ARTS, an error occurred because of error use of vector.
I traced the problem and found that Rng_seed has no definition.
I changed Rng_seed to seeds (see code below)and got it work. So, I'd like to
know is this a bug in ARTS.
Thank you!
Alfred xu
/*!
Seeds the Rng with the integer argument.
Every seed is only used once. The provided seed is increased by 1 until an
unused seed is found.
*/
void Rng::seed(unsigned long int n, const Verbosity& verbosity)
{
// Static pool of previously used seeds.
static vector<unsigned long int> seeds;
#pragma omp critical (Rng_seed)
{
unsigned long int n_orig = n;
//cout << "Requested seed: " << n;
while (find(seeds.begin(), seeds.end(), n) != seeds.end())
{
if (n >= ULONG_MAX - 1)
n=0;
else
n++;
// If all possible seeds were already used, we empty the pool and
// start over.
if (n == n_orig)
{
CREATE_OUT0;
out0 << "Rng Warning: Couldn't find an unused seed. Clearing seed
pool.\n";
seeds.empty();
break;
}
}
seeds.push_back(n);
seed_no=n;
//cout << " Got seed: " << seed_no << endl;
}
gsl_rng_set(r,seed_no);
}
_______________________________________________
arts_users.mi mailing list
arts_users.mi@lists.uni-hamburg.de
https://mailman.rrz.uni-hamburg.de/mailman/listinfo/arts_users.mi