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

📄 ne_plbp.c

📁 一个用来实现偏微分方程中网格的计算库
💻 C
📖 第 1 页 / 共 2 页
字号:
      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_bor_elems > 0)" */  if (num_int_nodes > 0) {    /* Define variable for vector of internal FEM node IDs */    ltempsv = num_int_nodes;    if ((status = nc_def_dim(neid, DIM_NUM_INT_NODES, ltempsv, &dimid[0])) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to dimension \"%s\" in file id %d",              DIM_NUM_INT_NODES, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    if ((status = nc_def_var(neid, VAR_NODE_MAP_INT, NC_INT, 1, &dimid[0], &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to define variable \"%s\" in file ID %d",              VAR_NODE_MAP_INT, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_int_nodes > 0)" */  if (num_bor_nodes > 0) {    /* Define variable for vector of border FEM node IDs */    ltempsv = num_bor_nodes;    if ((status = nc_def_dim(neid, DIM_NUM_BOR_NODES, ltempsv, &dimid[1])) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to dimension \"%s\" in file id %d",              DIM_NUM_BOR_NODES, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    if ((status = nc_def_var(neid, VAR_NODE_MAP_BOR, NC_INT, 1, &dimid[1], &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to define variable \"%s\" in file ID %d",              VAR_NODE_MAP_BOR, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_bor_nodes > 0)" */  if (num_ext_nodes > 0) {    /* Define dimension for vector of external FEM node IDs */    ltempsv = num_ext_nodes;    if ((status = nc_def_dim(neid, DIM_NUM_EXT_NODES, ltempsv, &dimid[2])) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to dimension \"%s\" in file id %d",              DIM_NUM_EXT_NODES, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    if ((status = nc_def_var(neid, VAR_NODE_MAP_EXT, NC_INT, 1, &dimid[2], &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to define variable \"%s\" in file ID %d",              VAR_NODE_MAP_EXT, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_ext_nodes > 0)" */  /* Add the nodal communication map count */  if (num_node_cmaps > 0) {    ltempsv = num_node_cmaps;    if ((status = nc_def_dim(neid, DIM_NUM_N_CMAPS, ltempsv, &dimid[0])) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to add dimension \"%s\" in file ID %d",              DIM_NUM_N_CMAPS, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    /* Add the ID vector */    if ((status = nc_def_var(neid, VAR_N_COMM_IDS, NC_INT, 1, dimid, &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to define variable \"%s\" in file ID %d",              VAR_N_COMM_IDS, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    /* Add the status vector */    if ((status = nc_def_var(neid, VAR_N_COMM_STAT, NC_INT, 1, dimid, &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to define variable \"%s\" in file ID %d",              VAR_N_COMM_STAT, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_node_cmaps > 0)" */  /* Add the nodal communication map count */  if (num_elem_cmaps > 0) {    ltempsv = num_elem_cmaps;    if ((status = nc_def_dim(neid, DIM_NUM_E_CMAPS, ltempsv, &dimid[0])) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to add dimension \"%s\" in file ID %d",              DIM_NUM_E_CMAPS, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    /* Add variables for elemental communication maps */    if ((status = nc_def_var(neid, VAR_E_COMM_IDS, NC_INT, 1, dimid, &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,	      "Error: failed to define variable \"%s\" in file ID %d",	      VAR_E_COMM_IDS, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }    if ((status = nc_def_var(neid, VAR_E_COMM_STAT, NC_INT, 1, dimid, &varid)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,	      "Error: failed to define variable \"%s\" in file ID %d",	      VAR_E_COMM_STAT, neid);      ex_err(func_name, errmsg, exerrval);      /* Leave define mode before returning */      ne_leavedef(neid, func_name);      return (EX_FATAL);    }  } /* End "if (num_elem_cmaps > 0)" */  /* Leave define mode */  if (ne_leavedef(neid, func_name) != EX_NOERR)    return (EX_FATAL);  /*  ** Set up status vector for internal node map  ** NOTE(9/26/96): this function is no longer valid  ** for scaler files, so no need to check for file type  */  if (num_int_nodes == 0) {    /* NULL set for internal nodes */    nmstat = 0;    if ((status = nc_put_var_int(neid, varid_nm[0], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for int node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  }  else {    nmstat = 1;    if ((status = nc_put_var_int(neid, varid_nm[0], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for int node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  } /* End "if (num_int_nodes == 0)" */  /* Set up status vector for border node map */  if (num_bor_nodes == 0) {    /* NULL set for border nodes */    nmstat = 0;    if ((status = nc_put_var_int(neid, varid_nm[1], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for bor node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  }  else {    /* Set the status indicating non-NULL size */    nmstat = 1;    if ((status = nc_put_var_int(neid, varid_nm[1], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for bor node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  } /* End "if (num_bor_nodes == 0)" */  /* Set up status vector for external node map */  if (num_ext_nodes == 0) {    /* NULL set for external nodes */    nmstat = 0;    if ((status = nc_put_var_int(neid, varid_nm[2], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for ext node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  }  else {    /* Set the status indicating non-NULL size */    nmstat = 1;    if ((status = nc_put_var_int(neid, varid_nm[2], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for ext node map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  } /* End "if (num_ext_nodes == 0)" */  /* Set up status vector for internal element map */  if (num_int_elems == 0) {    /* NULL set for internal elements */    nmstat = 0;    if ((status = nc_put_var_int(neid, varid_em[0], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for int elem map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  }  else {    /* Set the status indicating non-NULL size */    nmstat = 1;    if ((status = nc_put_var_int(neid, varid_em[0], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for int elem map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  } /* End "if (num_int_elems == 0)" */  /* Set up status vector for border element map */  if (num_bor_elems == 0) {    /* NULL set for internal elements */    nmstat = 0;    if ((status = nc_put_var_int(neid, varid_em[1], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for bor elem map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  }  else {    /* Set the status indicating non-NULL size */    nmstat = 1;    if ((status = nc_put_var_int(neid, varid_em[1], &nmstat)) != NC_NOERR) {      exerrval = status;      sprintf(errmsg,              "Error: failed to output status for bor elem map in file ID %d",              neid);      ex_err(func_name, errmsg, exerrval);      return (EX_FATAL);    }  } /* End "if (num_bor_elems == 0)" */  return (EX_NOERR);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -