仅从某些处理器编写netcdf并行文件

时间:2014-07-16 19:09:48

标签: parallel-processing fortran netcdf

我遇到了一个特定的任务来创建一个netcdf文件,该文件仅存储来自某些处理器的数据。问题如下 - 我有3d场,分为(nx)x(ny)x(nz)域。每个域都有一个分配给它的处理器。我想只保存x方向某个位置的域中的数据。这意味着数据将仅来自ny x nz处理器。我一直试图找到有关如何编写此类数据的示例,但不成功。有谁知道这是否可行,还有 - 我应该使用的具体命令。

例如,我尝试使用if if条件使用if(mpid%rank == 0)然后...与nf90_var_par_access(ncid,varid,nf90_independent)调用一起调用写入数据,但是没有成功,程序似乎陷入困境。

提前谢谢你!

1 个答案:

答案 0 :(得分:0)

实际上,我在发布问题几个小时后设法解决了这个问题。主要问题是nf90_def_dim调用中的维度长度定义。在其中,我默认采用的代码是维度,它是域中数量和点数的乘积。我改变了这个定义,以适应只使用某些域并且只有少数处理器的写入过程有效的情况。

关于所有