📄 write_blocks_mpiio_r8.c
字号:
kend = 1; jstart = 0; jend = 1; } k2d = 0; if (*ndim >= 2) k2d = 1; k3d = 0; if (*ndim == 3) k3d = 1; disp = disp_old + (MPI_Offset)((*n_to_left)* (*nvar_chk_cc)* (kend-kstart)* (jend-jstart)* (iend-istart)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_fc)* (kend-kstart)* (jend-jstart)* (iend-istart+1)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_fc)* (kend-kstart)* (jend-jstart+k2d)* (iend-istart)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_fc)* (kend-kstart+k3d)* (jend-jstart)* (iend-istart)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_ec)* (kend-kstart+k3d)* (jend-jstart+k2d)* (iend-istart)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_ec)* (kend-kstart+k3d)* (jend-jstart)* (iend-istart+1)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_ec)* (kend-kstart)* (jend-jstart+k2d)* (iend-istart+1)* sizeof(float)) + (MPI_Offset)((*n_to_left)* (*nvar_chk_nc)* (kend-kstart+k3d)* (jend-jstart+k2d)* (iend-istart+1)* sizeof(float)) ; get_new_type(iend-istart, jend-jstart, kend-kstart, *nvar, iorder, *nx, *ny, *nz, &unk_type); MPI_Type_size(unk_type, &unk_size); get_new_type(iend-istart+1, jend-jstart, kend-kstart, *nbndvar, iorder, *nx+1, *ny, *nz, &facevarx_type); MPI_Type_size(facevarx_type, &facevarx_size); get_new_type(iend-istart, jend-jstart+k2d, kend-kstart, *nbndvar, iorder, *nx, *ny+k2d, *nz, &facevary_type); MPI_Type_size(facevary_type, &facevary_size); get_new_type(iend-istart, jend-jstart, kend-kstart+k3d, *nbndvar, iorder, *nx, *ny, *nz+k3d, &facevarz_type); MPI_Type_size(facevarz_type, &facevarz_size); get_new_type(iend-istart, jend-jstart+k2d, kend-kstart+k3d, *nbndvare, iorder, *nx, *ny+k2d, *nz+k3d, &unk_e_x_type); MPI_Type_size(unk_e_x_type, &unk_e_x_size); get_new_type(iend-istart+1, jend-jstart, kend-kstart+k3d, *nbndvare, iorder, *nx+1, *ny, *nz+k3d, &unk_e_y_type); MPI_Type_size(unk_e_y_type, &unk_e_y_size); get_new_type(iend-istart+1, jend-jstart+k2d, kend-kstart, *nbndvare, iorder, *nx+1, *ny+k2d, *nz, &unk_e_z_type); MPI_Type_size(unk_e_z_type, &unk_e_z_size); get_new_type(iend-istart+1, jend-jstart+k2d, kend-kstart+k3d, *nbndvarc, iorder, *nx+1, *ny+k2d, *nz+k3d, &unk_n_type); MPI_Type_size(unk_n_type, &unk_n_size); int udim[4]; int it[4]; for (lb = 0; lb < *lnblocks; lb++) { /* unk data */ if (*nvar_chk_cc > 0) { for (ivar=0; ivar < *nvar; ivar++) { get_udim_mpiio(*nvar, *nx, *ny, *nz, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_cc[ivar] == 1) { MPI_File_write_at(file_handle, disp, &unk[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, unk_type, &status); disp = disp + (MPI_Offset)unk_size; } } /* end ivar loop */ } /* end if (nvar_chk_cc */ if (*nvar_chk_fc > 0) { for (ivar = 0; ivar < *nbndvar; ivar++) { get_udim_mpiio(*nbndvar, *nx+1, *ny, *nz, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_fc[ivar + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &facevarx[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, facevarx_type, &status); disp = disp + (MPI_Offset)facevarx_size; } } /* end ivar loop */ /* facevary data */ for (ivar = 0; ivar < *nbndvar; ivar++) { get_udim_mpiio(*nbndvar, *nx, *ny+k2d, *nz, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_fc[ivar + 1 + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &facevary[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, facevary_type, &status); disp = disp + (MPI_Offset)facevary_size; } } /* end ivar loop */ /* facevarz data */ for (ivar = 0; ivar < *nbndvar; ivar++) { get_udim_mpiio(*nbndvar, *nx, *ny, *nz+k3d, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_fc[ivar + 2 + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &facevarz[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, facevarz_type, &status); disp = disp + (MPI_Offset)facevarz_size; } } /* end ivar loop */ } /* end if (nvar_chk_fc */ /* unk_e_x data */ if (*nvar_chk_ec > 0) { for (ivar = 0; ivar < *nbndvare; ivar++) { get_udim_mpiio(*nbndvare, *nx, *ny+k2d, *nz+k3d, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_ec[ivar + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &unk_e_x[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, unk_e_x_type, &status); disp = disp + (MPI_Offset)unk_e_x_size; } } /* end ivar loop */ /* unk_e_y data */ for (ivar = 0; ivar < *nbndvare; ivar++) { get_udim_mpiio(*nbndvare, *nx+1, *ny, *nz+k3d, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_ec[ivar + 1 + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &unk_e_y[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, unk_e_y_type, &status); disp = disp + (MPI_Offset)unk_e_y_size; } } /* end ivar loop */ /* unk_e_z data */ for (ivar = 0; ivar < *nbndvare; ivar++) { get_udim_mpiio(*nbndvare, *nx+1, *ny+k2d, *nz, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_ec[ivar + 2 + 2 * ivar] == 1) { MPI_File_write_at(file_handle, disp, &unk_e_z[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, unk_e_z_type, &status); disp = disp + (MPI_Offset)unk_e_z_size; } } /* end ivar loop */ } /* end if (nvar_chk_ec */ if (*nvar_chk_nc > 0) { for (ivar=0; ivar < *nbndvarc; ivar++) { get_udim_mpiio(*nbndvarc, *nx+1, *ny+k2d, *nz+k3d, ivar, istart, jstart, kstart, iorder, udim, it); if (checkp_on_nc[ivar] == 1) { MPI_File_write_at(file_handle, disp, &unk_n[(udim[3] * udim[2] * udim[1] * udim[0] * lb) + (udim[2] * udim[1] * udim[0] * it[3]) + (udim[1] * udim[0] * it[2]) + (udim[0] * it[1]) + it[0]] , 1, unk_n_type, &status); disp = disp + (MPI_Offset)unk_n_size; } } /* end ivar loop */ } /* end if (nvar_chk_nc */ } /* end loop over blocks */ MPI_Type_free(&unk_type); MPI_Type_free(&facevarx_type); MPI_Type_free(&facevary_type); MPI_Type_free(&facevarz_type); MPI_Type_free(&unk_e_x_type); MPI_Type_free(&unk_e_y_type); MPI_Type_free(&unk_e_z_type); MPI_Type_free(&unk_n_type); /* close the file */ MPI_File_close(&file_handle); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -