我对气象场进行了模拟,我的总域数(nx * ny * nz)被分为处理器数量(在我的情况下为100)。我必须将本地机器创建的作业文件发送到集群以供执行。
我想编写Fortran例程,将每个处理器的输出数据写入NetCDF文件。
以下是我的代码段,位于user_init.f90
stat = NF90_CREATE('/home/sachin/e_output.nc', NF90_NETCDF4, ncid_user, comm = comm2d,info = MPI_INFO_NULL)
stat = NF90_DEF_DIM( ncid_user, i, NF90_UNLIMITED, i_id )
stat = NF90_DEF_DIM( ncid_user, j, NF90_UNLIMITED, j_id )
stat = NF90_DEF_DIM( ncid_user, k, NF90_UNLIMITED, k_id )
e_id=i_id(/i_id,j_id,k_id/)
stat = NF90_DEF_VAR( ncid_user, ene, NF90_INT, e_id, ev_id )
从其他文件我将输出数据写入NetCDF文件
stat1 = nf90_put_var(ncid_user, ev_id, pt, start = (/ 1 + myid*INT(procs1), 1 + myid*INT(procs1), 1 /),count = (/ 152,120,120 /))