⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write_blocks_mpiio_r4.c

📁 做网格的好程序
💻 C
📖 第 1 页 / 共 2 页
字号:
    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_r4(iend-istart, jend-jstart, kend-kstart, *nvar,	       iorder,	       *nx, *ny, *nz, &unk_type);  MPI_Type_size(unk_type, &unk_size);  get_new_type_r4(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_r4(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_r4(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_r4(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_r4(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_r4(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_r4(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_r4(*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_r4(*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_r4(*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_r4(*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_r4(*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_r4(*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_r4(*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_r4(*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 + -