用OpenMP老出错
UlTMa 2011-03-03 04:27:17 没有任何出错信息,直接退出(控制台程序)。请高手帮忙看看有没有什么问题。使用omp的代码如下(概化):
// 定义的类成员变量
int **lue; // 循环外赋值
double **de; // 循环外赋值
double **EA;
double **RD;
double **SW;
int NODATA; // 循环外赋值
double la, lb; // 循环外赋值
struct DTA dta; // 循环外赋值
void func()
{
// 这是几个局部变量
int i, j;
CCell cell; // class
CCV cv; // struct
#pragma omp prarallel for private (cell, cv)
for (i=0; i<Rows; i++)
{
for (j=0; j<Cols; j++)
{
if (lue[i][j] != NODATA)
{
double lt = la+i*(lb-la)/Rows;
cell.setprams(de, lue, lt, SW[i][j]);
dosomeother(j, i, cv);
cell.setotherparams(cv,dta);
EA[i][j] = cell.calcea();
RD[i][j] = cell.calcrd();
SW[i][j] = cell.calcsw();
}
}
}
}