找回密码
 注册
查看: 2198|回复: 0

并行调用UDF提取坐标点时,输出出现问题

[复制链接]
发表于 2009-4-9 15:23:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我想用UDF读取各个网格中心的坐标点,但是我用并行计算时(LINUX下8台并行),提取出来的文件大小只有单机运算时的1/8,感觉好像只有一台机器的数据输出出来了,谁遇到过这样的问题么?帮小妹看看吧,谢了^_^

#include "udf.h"

#define UDM_RH 0
#define N_REQ_UDM 0

DEFINE_ON_DEMAND(centroid)
{
Domain *domain=Get_Domain(1);
cell_t cell;
Thread *thread;
real x[ND_ND];
char filename[]="center.txt";
FILE *dfp;        /*destination file pointer*/

Message("\n FILENAME:%s\n",filename);

dfp = fopen(filename, "w");
if(dfp == NULL)
{   
Message("\n Warning: unable to open %s for reading\n", filename);
}

if(sg_udm<N_REQ_UDM)
Message("\nNot enough user defined memory allocated. %d required\n",
            N_REQ_UDM);
else
{
  thread_loop_c(thread,domain)
  {

   if (FLUID_THREAD_P(thread)&& NNULLP(THREAD_STORAGE(thread,SV_UDM_I)))
    {
    begin_c_loop(cell,thread)
     {
     C_CENTROID(x,cell,thread);
     C_UDMI(cell,thread,UDM_RH)=0.0;
     fprintf(dfp, "%.6f %+.6f %+.6f\n", x[0], x[1], x[2]);
     }
    end_c_loop(cell,thread)
    }


fclose(dfp);

}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表