70 int *layer,
int *ipt,
int *ply,
int *nuvar,
int *gauss,
int *idMds,
int *idMdsVar,
71 int *idMatMds,
char *comment,
int *s_comment,
char *mdsUvarName,
int *sizeMdsUvarName,
74 char *cname, *cname2, *ccomment, *cmdsuvar;
75 int cname_len, cname_len1, ccomment_len, cmdsuvar_len;
76 int i, cpt_size, cptBlank;
77 bool isBlankVar =
false;
80 unsigned int elem_count = 1;
82 cname_len = *size1 + 1;
83 cname = (
char *)malloc(
sizeof(
char) * cname_len);
84 for (i = 0; i < *size1; i++)
88 for (i = 0; i < *size1; i++)
93 cname[cpt_size + 1] =
'\0';
95 ccomment_len = *s_comment + 1;
96 ccomment = (
char *)malloc(
sizeof(
char) * ccomment_len);
97 for (i = 0; i < *s_comment; i++)
98 ccomment[i] = comment[i];
99 ccomment[*s_comment] =
'\0';
101 cmdsuvar_len = *sizeMdsUvarName + 1;
102 cmdsuvar = (
char *)malloc(
sizeof(
char) * cmdsuvar_len);
103 for (i = 0; i < *sizeMdsUvarName; i++)
104 cmdsuvar[i] = mdsUvarName[i];
105 for (i = 0; i < *sizeMdsUvarName; i++)
106 if (isblank(cmdsuvar[i]))
107 cptBlank = cptBlank + 1;
108 if (cptBlank == *sizeMdsUvarName)
110 cmdsuvar[*sizeMdsUvarName] =
'\0';
112 char *LAYERPOOL =
new char[100];
114 char *LAYER_STRING =
new char[100];
115 LAYER_STRING[0] =
'\0';
116 char *IPT_STRING =
new char[100];
117 IPT_STRING[0] =
'\0';
118 char *GAUSS_STRING =
new char[100];
119 GAUSS_STRING[0] =
'\0';
120 char *PLY_STRING =
new char[100];
121 PLY_STRING[0] =
'\0';
122 char *NUVAR_STRING =
new char[100];
123 NUVAR_STRING[0] =
'\0';
124 char *MID_STRING =
new char[100];
125 MID_STRING[0] =
'\0';
126 char *RES_STRING =
new char[100];
127 RES_STRING[0] =
'\0';
128 char *ID_STRING =
new char[100];
130 char *MODE_STRING =
new char[100];
131 MODE_STRING[0] =
'\0';
133 H3D_ID layer_pool_id = H3D_NULL_ID;
136 strcat_s(RES_STRING, 100, cname);
138 RES_STRING = strcat(RES_STRING, cname);
142 if (*idMdsVar > 0 && *idMds > 0)
144 sprintf(NUVAR_STRING,
" LAW %d", *idMatMds);
146 strcat_s(RES_STRING, 100, NUVAR_STRING);
148 RES_STRING = strcat(RES_STRING, NUVAR_STRING);
152 sprintf(NUVAR_STRING,
": _");
154 strcat_s(RES_STRING, 100, NUVAR_STRING);
156 RES_STRING = strcat(RES_STRING, NUVAR_STRING);
161 sprintf(NUVAR_STRING,
": %s ", cmdsuvar);
163 strcat_s(RES_STRING, 100, NUVAR_STRING);
165 RES_STRING = strcat(RES_STRING, NUVAR_STRING);
174 sprintf(NUVAR_STRING,
" %d ", *nuvar);
176 strcat_s(RES_STRING, 100, NUVAR_STRING);
178 RES_STRING = strcat(RES_STRING, NUVAR_STRING);
185 if (*layer > 0 || *ipt > 0 || *ply > 0 || *gauss > 0)
188 if (*layer > 0 && *ipt > 0)
190 sprintf(LAYER_STRING,
"LAYER/IPT %d %d ", *layer, *ipt);
192 strcat_s(LAYERPOOL, 100, LAYER_STRING);
194 LAYERPOOL = strcat(LAYERPOOL, LAYER_STRING);
199 sprintf(LAYER_STRING,
"LAYER %d ", *layer);
201 strcat_s(LAYERPOOL, 100, LAYER_STRING);
203 LAYERPOOL = strcat(LAYERPOOL, LAYER_STRING);
206 else if (*ply > 0 && *ipt > 0)
208 sprintf(PLY_STRING,
"PLY/IPT %d %d", *ply, *ipt);
210 strcat_s(LAYERPOOL, 100, PLY_STRING);
212 LAYERPOOL = strcat(LAYERPOOL, PLY_STRING);
215 else if (*ply > 0 && *ipt == -4)
217 sprintf(PLY_STRING,
"PLY/MEMB %d", *ply);
219 strcat_s(LAYERPOOL, 100, PLY_STRING);
221 LAYERPOOL = strcat(LAYERPOOL, PLY_STRING);
226 sprintf(IPT_STRING,
"IPT %d ", *ipt);
228 strcat_s(LAYERPOOL, 100, IPT_STRING);
230 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
235 sprintf(IPT_STRING,
"PLY %d ", *ply);
237 strcat_s(LAYERPOOL, 100, IPT_STRING);
239 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
243 else if (*layer < -1 || *ipt < -1)
247 sprintf(LAYER_STRING,
"Layer Lower ");
249 strcat_s(LAYERPOOL, 100, LAYER_STRING);
251 LAYERPOOL = strcat(LAYERPOOL, LAYER_STRING);
256 sprintf(LAYER_STRING,
"Layer Upper ");
258 strcat_s(LAYERPOOL, 100, LAYER_STRING);
260 LAYERPOOL = strcat(LAYERPOOL, LAYER_STRING);
265 sprintf(IPT_STRING,
"npt Lower ");
267 strcat_s(LAYERPOOL, 100, IPT_STRING);
269 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
274 sprintf(IPT_STRING,
"npt Upper ");
276 strcat_s(LAYERPOOL, 100, IPT_STRING);
278 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
283 sprintf(IPT_STRING,
"npt Membrane ");
285 strcat_s(LAYERPOOL, 100, IPT_STRING);
287 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
293 sprintf(IPT_STRING,
"Mid");
295 strcat_s(LAYERPOOL, 100, IPT_STRING);
297 LAYERPOOL = strcat(LAYERPOOL, IPT_STRING);
336 if (strlen(ccomment) != 0)
365 delete[] LAYER_STRING;
367 delete[] GAUSS_STRING;
369 delete[] NUVAR_STRING;
372 delete[] MODE_STRING;
void _FCALL C_H3D_CREATE_SHELL_SCALAR_DATATYPE(int *cpt_data, char *name1, int *size1, int *info1, int *info2, char *name2, int *size2, int *layer, int *ipt, int *ply, int *nuvar, int *gauss, int *idMds, int *idMdsVar, int *idMatMds, char *comment, int *s_comment, char *mdsUvarName, int *sizeMdsUvarName, int *id, int *mode)
void c_create_shell_scalar_datatype(int *cpt_data, char *name1, int *size1, int *info1, int *info2, char *name2, int *size2, int *layer, int *ipt, int *ply, int *nuvar, int *gauss, int *idMds, int *idMdsVar, int *idMatMds, char *comment, int *s_comment, char *mdsUvarName, int *sizeMdsUvarName, int *id, int *mode)
void c_h3d_create_shell_scalar_datatype__(int *cpt_data, char *name1, int *size1, int *info1, int *info2, char *name2, int *size2, int *layer, int *ipt, int *ply, int *nuvar, int *gauss, int *idMds, int *idMdsVar, int *idMatMds, char *comment, int *s_comment, char *mdsUvarName, int *sizeMdsUvarName, int *id, int *mode)
void c_h3d_create_shell_scalar_datatype_(int *cpt_data, char *name1, int *size1, int *info1, int *info2, char *name2, int *size2, int *layer, int *ipt, int *ply, int *nuvar, int *gauss, int *idMds, int *idMdsVar, int *idMatMds, char *comment, int *s_comment, char *mdsUvarName, int *sizeMdsUvarName, int *id, int *mode)