67 static ITG nkcoords,nout,noutmin,noutplus,iaxial;
70 ITG i,j,k,l,m,n,o,indexe,nemax,nlayer,noutloc,iset,iselect,ncomp,nope,
71 nodes,ifield[7],nfield[2],icomp[7],ifieldstate[*nstate_],icompstate[*nstate_],nelout;
75 ITG ncompscalar=1,ifieldscalar[1]={1},icompscalar[1]={0},nfieldscalar[2]={1,0};
76 ITG ncompvector=3,ifieldvector[3]={1,1,1},icompvector[3]={0,1,2},nfieldvector1[2]={3,0},nfieldvector0[2]={mi[1]+1,0},icompvectorlast[3]={3,4,5};
77 ITG ncomptensor=6,ifieldtensor[6]={1,1,1,1,1,1},icomptensor[6]={0,1,2,3,5,4},nfieldtensor[2]={6,0};
78 ITG ncompscalph=2,ifieldscalph[2]={1,2},icompscalph[2]={0,0},nfieldscalph[2]={0,0};
79 ITG ncompvectph=6,ifieldvectph[6]={1,1,1,2,2,2},icompvectph[6]={1,2,3,1,2,3},nfieldvectph[2]={mi[1]+1,mi[1]+1};
80 ITG ncomptensph=12,ifieldtensph[12]={1,1,1,1,1,1,2,2,2,2,2,2},icomptensph[12]={0,1,2,3,5,4,0,1,2,3,5,4},nfieldtensph[2]={6,6};
85 ITG num_dim, num_elem;
87 ITG num_ns, num_ss, num_es, num_fs;
88 int CPU_word_size =
sizeof(float);
89 int IO_word_size =
sizeof(float);
92 strcpy (fneig, jobnamec);
93 strcat (fneig,
".exo");
98 ITG num_nodes = nkcoords;
109 if(inum[i]==0)
continue;
110 if(inum[i]>0) noutplus++;
111 if(inum[i]<0) noutmin++;
120 x = (
float *) calloc(nout,
sizeof(
float));
121 y = (
float *) calloc(nout,
sizeof(
float));
122 z = (
float *) calloc(nout,
sizeof(
float));
126 ITG *node_map,*node_map_inv;
127 node_map = (
ITG *) calloc(nout,
sizeof(
ITG));
128 node_map_inv = (
ITG *) calloc(nkcoords,
sizeof(
ITG));
132 if(inum[i]==0){
continue;}
136 node_map_inv[i] = j+1;
144 node_map_inv[i] = j+1;
154 if((*kode==1)&&((*nmethod!=5)||(*mode!=0))){
160 exosetfind(
set, nset, ialset, istartset, iendset,
161 &num_ns, &num_ss, &num_es, &num_fs, NULL, exoid, (
int) 0, nk);
162 printf (
"Side sets to exo file not implemented.\n");
168 exoid = ex_create (fneig,
173 exoid = ex_create (fneig,
185 }
else if(
strcmp1(&lakon[8*i],
"ESPRNGC")==0){
187 }
else if(
strcmp1(&lakon[8*i],
"ESPRNGF")==0){
189 }
else if(
strcmp1(&lakon[8*i],
"DCOUP3D")==0){
191 }
else if(
strcmp2(&lakon[8*i+6],
"LC",2)==0){
194 for(k=0;k<mi[2];k++){
195 if(ielmat[i*mi[2]+k]==0)
break;
199 for(k=0;k<nlayer;k++){
212 printf(
"\nData writen to the .exo file\n");
214 printf(
"Number of nodes: %" ITGFORMAT "\n", num_nodes);
215 printf(
"Number of elements %" ITGFORMAT "\n", num_elem);
216 printf(
"Number of element blocks %" ITGFORMAT "\n", num_elem_blk);
217 printf(
"Number of node sets %" ITGFORMAT "\n", num_ns);
218 printf(
"Number of side sets %" ITGFORMAT "\n", num_ss);
220 errr = ex_put_init (exoid,
"CalculiX EXO File",
222 num_elem, num_elem_blk,
226 errr = ex_put_coord (exoid, x, y, z);
227 if(errr)printf(
"*ERROR in exo: failed node positions");
228 errr = ex_put_node_num_map (exoid, node_map);
229 if(errr)printf(
"*ERROR in exo: failed node map");
238 char *coord_names[3];
239 coord_names[0] =
"x";
240 coord_names[1] =
"y";
241 coord_names[2] =
"z";
242 errr = ex_put_coord_names (exoid, coord_names);
243 if(errr){printf(
"*ERROR in exo: failed coordinate names");}
247 elem_map = (
ITG *) calloc(num_elem,
sizeof(
ITG));
251 blkassign = (
ITG *) calloc(num_elem,
sizeof(
ITG));
259 }
else if(
strcmp1(&lakon[8*i],
"F")==0){
261 }
else if(
strcmp1(&lakon[8*i],
"ESPRNGC")==0){
263 }
else if(
strcmp1(&lakon[8*i],
"ESPRNGF")==0){
265 }
else if(
strcmp1(&lakon[8*i],
"DCOUP3D")==0){
276 strcpy1(material,&matname[80*(ielmat[i*mi[2]]-1)],5);
278 if(
strcmp1(&lakon[8*i+3],
"2")==0){
280 if(((
strcmp1(&lakon[8*i+6],
" ")==0)||
282 (
strcmp1(&lakon[8*i+6],
"I")==0))&&
283 (
strcmp2(&lakon[8*i+6],
"LC",2)!=0)){
285 }
else if(
strcmp2(&lakon[8*i+6],
"LC",2)==0){
288 for(k=0;k<mi[2];k++){
289 if(ielmat[i*mi[2]+k]==0)
break;
292 for(k=0;k<nlayer;k++){
297 }
else if(
strcmp1(&lakon[8*i+6],
"B")==0){
304 }
else if(
strcmp1(&lakon[8*i+3],
"8")==0){
305 if((
strcmp1(&lakon[8*i+6],
" ")==0)||
309 }
else if(
strcmp1(&lakon[8*i+6],
"B")==0){
311 if(
strcmp1(&lakon[8*i+4],
"R")==0){
313 }
else if(
strcmp1(&lakon[8*i+4],
"I")==0){
319 if(
strcmp1(&lakon[8*i+6],
"A")==0) iaxial=1;
321 if(
strcmp1(&lakon[8*i+4],
"R")==0){
323 }
else if(
strcmp1(&lakon[8*i+4],
"I")==0){
327 }
else if((
strcmp1(&lakon[8*i+3],
"10")==0)||
328 (
strcmp1(&lakon[8*i+3],
"14")==0)){
331 }
else if(
strcmp1(&lakon[8*i+3],
"4")==0){
334 }
else if(
strcmp1(&lakon[8*i+3],
"15")==0){
335 if(((
strcmp1(&lakon[8*i+6],
" ")==0)||
337 (
strcmp2(&lakon[8*i+6],
"LC",2)!=0)){
343 if(
strcmp1(&lakon[8*i+6],
"A")==0) iaxial=1;
347 }
else if(
strcmp1(&lakon[8*i+3],
"6")==0){
348 if((
strcmp1(&lakon[8*i+6],
" ")==0)||
355 if(
strcmp1(&lakon[8*i+6],
"A")==0) iaxial=1;
361 }
else if(
strcmp1(&lakon[8*i],
"D")==0){
365 }
else if(kon[indexe+2]==0){
372 }
else if((
strcmp1(&lakon[8*i],
"E")==0)&&
373 (
strcmp1(&lakon[8*i+6],
"A")==0)){
375 if(
strcmp1(&lakon[8*i+6],
"A")==0) iaxial=1;
383 int num_nodes_per_elem[num_elem_blk];
384 char *blknames[num_elem_blk];
386 num_nodes_per_elem[j]=1; blknames[j++]=
"PNT";
387 num_nodes_per_elem[j]=20; blknames[j++]=
"C3D20 C3D20R";
388 num_nodes_per_elem[j]=20; blknames[j++]=
"COMPOSITE LAYER C3D20";
389 num_nodes_per_elem[j]=3; blknames[j++]=
"Beam B32 B32R";
390 num_nodes_per_elem[j]=8; blknames[j++]=
"CPS8 CPE8 CAX8 S8 S8R";
391 num_nodes_per_elem[j]=8; blknames[j++]=
"C3D8 C3D8R";
392 num_nodes_per_elem[j]=2; blknames[j++]=
"TRUSS2";
393 num_nodes_per_elem[j]=2; blknames[j++]=
"TRUSS2";
394 num_nodes_per_elem[j]=4; blknames[j++]=
"CPS4R CPE4R S4 S4R";
395 num_nodes_per_elem[j]=4; blknames[j++]=
"CPS4I CPE4I";
396 num_nodes_per_elem[j]=10; blknames[j++]=
"C3D10";
397 num_nodes_per_elem[j]=4; blknames[j++]=
"C3D4";
398 num_nodes_per_elem[j]=15; blknames[j++]=
"C3D15";
399 num_nodes_per_elem[j]=6; blknames[j++]=
"CPS6 CPE6 S6";
400 num_nodes_per_elem[j]=6; blknames[j++]=
"C3D6";
401 num_nodes_per_elem[j]=3; blknames[j++]=
"CPS3 CPE3 S3";
402 num_nodes_per_elem[j]=2; blknames[j++]=
"2-node 1d network entry elem";
403 num_nodes_per_elem[j]=2; blknames[j++]=
"2-node 1d network exit elem";
404 num_nodes_per_elem[j]=3; blknames[j++]=
"2-node 1d genuine network elem";
405 num_nodes_per_elem[j]=2; blknames[j++]=
"2-node 1d spring elem";
407 errr = ex_put_names (exoid, EX_ELEM_BLOCK, blknames);
408 if(errr){printf(
"*ERROR in exo: cannot write block names");}
414 ITG blksize[num_elem_blk];
416 for(l=0;l<num_elem_blk;l++){
421 if(ipkon[i]<0)
continue;
424 for(k=0;k<mi[2];k++){
425 if(ielmat[i*mi[2]+k]==0)
break;
436 num_elem_in_blk=blksize[l];
438 connect = (
ITG *) calloc (num_elem_in_blk*num_nodes_per_elem[l],
sizeof(
ITG));
443 if(ipkon[i]<0)
continue;
445 if (blkassign[o]==l){
448 for(m=0;m<12;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
449 for(m=16;m<20;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
450 for(m=12;m<16;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
451 }
else if(blkassign[o]==12){
452 for(m=0;m<9;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
453 for(m=12;m<15;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
454 for(m=9;m<12;m++){connect[k++] = node_map_inv[kon[indexe+m]-1];}
455 }
else if (blkassign[o]==2){
457 for(l=0;l<mi[2];l++){
458 if(ielmat[i*mi[2]+l]==0)
break;
461 for(n=0;n<nlayer;n++){
462 for(m=0;m<12;m++){connect[k++] = node_map_inv[kon[indexe+28+20*n+m]-1];}
463 for(m=16;m<20;m++){connect[k++] = node_map_inv[kon[indexe+28+20*n+m]-1];}
464 for(m=12;m<16;m++){connect[k++] = node_map_inv[kon[indexe+28+20*n+m]-1];}
466 }
else if(blkassign[o]==4){
467 for (j = 0; j <num_nodes_per_elem[l]; j++){
468 connect[k++] = node_map_inv[kon[indexe+20+j]-1];
470 }
else if(blkassign[o]== 5 ||
474 for (j = 0; j <num_nodes_per_elem[l]; j++){
475 connect[k++] = node_map_inv[kon[indexe+j]-1];
477 }
else if(blkassign[o]==13){
478 for (j = 0; j <num_nodes_per_elem[l]; j++){
479 connect[k++] = node_map_inv[kon[indexe+15+j]-1];
481 }
else if(blkassign[o]==15){
482 for (j = 0; j <num_nodes_per_elem[l]; j++){
483 connect[k++] = node_map_inv[kon[indexe+6+j]-1];
486 for (j = 0; j <num_nodes_per_elem[l]; j++){
489 connect[k++] = node_map_inv[kon[indexe+8+j]-1];
500 errr = ex_put_elem_block (exoid, l,
"SPHERE", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
503 errr = ex_put_elem_block (exoid, l,
"HEX", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
506 errr = ex_put_elem_block (exoid, l,
"HEX", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
509 errr = ex_put_elem_block (exoid, l,
"TRUSS", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
512 errr = ex_put_elem_block (exoid, l,
"QUAD", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
515 errr = ex_put_elem_block (exoid, l,
"HEX", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
518 errr = ex_put_elem_block (exoid, l,
"TRUSS", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
521 errr = ex_put_elem_block (exoid, l,
"TRUSS", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
524 errr = ex_put_elem_block (exoid, l,
"SHELL", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
527 errr = ex_put_elem_block (exoid, l,
"SHELL", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
530 errr = ex_put_elem_block (exoid, l,
"TETRA", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
533 errr = ex_put_elem_block (exoid, l,
"TETRA", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
536 errr = ex_put_elem_block (exoid, l,
"WEDGE", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
539 errr = ex_put_elem_block (exoid, l,
"HEX", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
542 errr = ex_put_elem_block (exoid, l,
"WEDGE", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
547 errr = ex_put_elem_block (exoid, l,
"TRIANGLE", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
554 errr = ex_put_elem_block (exoid, l,
"TRUSS", num_elem_in_blk, num_nodes_per_elem[l], num_attr);
560 if (num_elem_in_blk>0){
561 errr = ex_put_elem_conn (exoid, l, connect);
563 printf (
"ERROR in ex_put_elem_conn %i\n", errr);
569 errr = ex_put_elem_num_map (exoid, elem_map);
571 printf (
"ERROR in ex_put_elem_num_map %i\n", errr);
574 exosetfind(
set, nset, ialset, istartset, iendset,
575 &num_ns, &num_ss, &num_es, &num_fs, node_map_inv, exoid, (
int) 1, nk);
585 if(*nmethod==0){
return;}
595 exoid = ex_open (fneig,
602 float *nodal_var_vals;
609 errr = ex_inquire (exoid, EX_INQ_TIME, &num_time_steps, &fdum, &cdum);
610 errr = ex_get_time (exoid, num_time_steps, &timet);
611 if (num_time_steps>0){
612 printf (
"\t%i Time periods in exo file, most recent at time=%f\n", num_time_steps, timet);
614 printf (
"\t0 Time periods in exo file\n");
616 timet = (float) *time;
618 printf (
"\tWriting new time period %" ITGFORMAT " at time=%f\n", num_time_steps, *time);
619 errr = ex_put_time (exoid, num_time_steps, &timet);
620 if (errr) printf (
"Error storing time into exo file.\n");
624 char *var_names[100];
636 if((*nmethod==2)&&(((*mode/2)*2!=*mode)&&(*noddiam>=0))){ex_close(exoid);
return;}
639 if((*nmethod!=5)||(*mode==-1)){
640 if((
strcmp1(filab,
"U ")==0)&&(*ithermal!=2)){
643 }
else if(countbool==2){
644 var_names[countvars++]=
"Ux";
645 var_names[countvars++]=
"Uy";
646 var_names[countvars++]=
"Uz";
650 frdset(filab,
set,&iset,istartset,iendset,ialset,
651 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
654 exovector(v,&iset,ntrans,filab,&nkcoords,inum,m1,inotr,
655 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
656 exoid, num_time_steps,countvars,nout);
668 }
else if(countbool==2){
669 var_names[countvars++]=
"U-imag-x";
670 var_names[countvars++]=
"U-imag-y";
671 var_names[countvars++]=
"U-imag-z";
673 exovector(&v[*nk*mt],&iset,ntrans,filab,&nkcoords,inum,m1,inotr,
674 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
675 exoid,num_time_steps,countvars,nout);
684 if((*nmethod==5)&&(*mode==0)){
685 if((
strcmp1(filab,
"U ")==0)&&(*ithermal!=2)){
688 }
else if(countbool==2){
689 var_names[countvars++]=
"U-imag-x";
690 var_names[countvars++]=
"U-imag-y";
691 var_names[countvars++]=
"U-imag-z";
694 exovector(v,&iset,ntrans,filab,&nkcoords,inum,m1,inotr,
695 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
696 exoid,num_time_steps,countvars,nout);
703 if((
strcmp1(&filab[1740],
"V ")==0)&&(*ithermal!=2)){
706 }
else if(countbool==2){
707 var_names[countvars++]=
"Vx";
708 var_names[countvars++]=
"Vy";
709 var_names[countvars++]=
"Vz";
713 frdset(&filab[1740],
set,&iset,istartset,iendset,ialset,
714 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
717 exovector(veold,&iset,ntrans,&filab[1740],&nkcoords,inum,m1,inotr,
718 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
719 exoid,num_time_steps,countvars,nout);
726 if(
strcmp1(&filab[87],
"NT ")==0){
729 }
else if(countbool==2){
730 var_names[countvars++]=
"NT";
734 frdset(&filab[87],
set,&iset,istartset,iendset,ialset,
735 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
739 exoselect(t1,t1,&iset,&nkcoords,inum,istartset,iendset,
740 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
741 nfieldscalar,&iselect,exoid,num_time_steps,countvars,nout);
743 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
744 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
745 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
752 if((
strcmp1(&filab[3654],
"POT ")==0)&&(*ithermal==2)){
755 }
else if(countbool==2){
756 var_names[countvars++]=
"POT";
760 frdset(&filab[3654],
set,&iset,istartset,iendset,ialset,
761 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
764 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
765 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
766 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
767 printf (
"Warning: export POT to exo not tested.\n");
773 if((*nmethod!=5)||(*mode==-1)){
774 if((
strcmp1(&filab[174],
"S ")==0)&&(*ithermal!=2)){
777 }
else if(countbool==2){
780 var_names[countvars++]=
"Sxx";
781 var_names[countvars++]=
"Syy";
782 var_names[countvars++]=
"Szz";
783 var_names[countvars++]=
"Sxy";
784 var_names[countvars++]=
"Sxz";
785 var_names[countvars++]=
"Syz";
789 frdset(&filab[174],
set,&iset,istartset,iendset,ialset,
790 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
793 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
794 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
795 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
804 if((
strcmp1(&filab[174],
"S ")==0)&&(*ithermal!=2)){
807 }
else if(countbool==2){
810 var_names[countvars++]=
"S-imagxx";
811 var_names[countvars++]=
"S-imagyy";
812 var_names[countvars++]=
"S-imagzz";
813 var_names[countvars++]=
"S-imagxy";
814 var_names[countvars++]=
"S-imagzx";
815 var_names[countvars++]=
"S-imagyz";
817 exoselect(&stn[6**nk],stn,&iset,&nkcoords,inum,istartset,iendset,
818 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
819 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
827 if((*nmethod==5)&&(*mode==0)){
828 if((
strcmp1(&filab[174],
"S ")==0)&&(*ithermal!=2)){
831 }
else if(countbool==2){
834 var_names[countvars++]=
"S-imagxx";
835 var_names[countvars++]=
"S-imagyy";
836 var_names[countvars++]=
"S-imagzz";
837 var_names[countvars++]=
"S-imagxy";
838 var_names[countvars++]=
"S-imagzx";
839 var_names[countvars++]=
"S-imagyz";
843 frdset(&filab[174],
set,&iset,istartset,iendset,ialset,
844 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
847 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
848 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
849 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
857 if((
strcmp1(&filab[3741],
"EMFE")==0)&&(*ithermal!=2)){
860 }
else if(countbool==2){
861 var_names[countvars++]=
"EMF-Ex";
862 var_names[countvars++]=
"EMF-Ey";
863 var_names[countvars++]=
"EMF-Ez";
867 frdset(&filab[3741],
set,&iset,istartset,iendset,ialset,
868 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
871 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
872 ialset,ngraph,&ncompvector,ifieldvector,icompvector,
873 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
874 printf (
"Warning: export EMF-E to exo not tested.\n");
880 if((
strcmp1(&filab[3828],
"EMFB")==0)&&(*ithermal!=2)){
883 }
else if(countbool==2){
884 var_names[countvars++]=
"EMF-Bx";
885 var_names[countvars++]=
"EMF-By";
886 var_names[countvars++]=
"EMF-Bz";
890 frdset(&filab[3828],
set,&iset,istartset,iendset,ialset,
891 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
894 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
895 ialset,ngraph,&ncompvector,ifieldvector,icompvectorlast,
896 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
897 printf (
"Warning: export EMF-B to exo not tested.\n");
903 if((*nmethod!=5)||(*mode==-1)){
904 if((
strcmp1(&filab[261],
"E ")==0)&&(*ithermal!=2)){
907 }
else if(countbool==2){
910 var_names[countvars++]=
"Exx";
911 var_names[countvars++]=
"Eyy";
912 var_names[countvars++]=
"Ezz";
913 var_names[countvars++]=
"Exy";
914 var_names[countvars++]=
"Exz";
915 var_names[countvars++]=
"Eyz";
920 frdset(&filab[261],
set,&iset,istartset,iendset,ialset,
921 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
924 exoselect(een,een,&iset,&nkcoords,inum,istartset,iendset,
925 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
926 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
936 if(
strcmp1(&filab[261],
"E ")==0){
939 }
else if(countbool==2){
942 var_names[countvars++]=
"E-imagxx";
943 var_names[countvars++]=
"E-imagyy";
944 var_names[countvars++]=
"E-imagzz";
945 var_names[countvars++]=
"E-imagxy";
946 var_names[countvars++]=
"E-imagxz";
947 var_names[countvars++]=
"E-imagyz";
949 exoselect(&een[6**nk],een,&iset,&nkcoords,inum,istartset,iendset,
950 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
951 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
960 if((*nmethod==5)&&(*mode==0)){
961 if((
strcmp1(&filab[261],
"E ")==0)&&(*ithermal!=2)){
964 }
else if(countbool==2){
967 var_names[countvars++]=
"E-imagxx";
968 var_names[countvars++]=
"E-imagyy";
969 var_names[countvars++]=
"E-imagzz";
970 var_names[countvars++]=
"E-imagxy";
971 var_names[countvars++]=
"E-imagxz";
972 var_names[countvars++]=
"E-imagyz";
976 frdset(&filab[261],
set,&iset,istartset,iendset,ialset,
977 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
980 exoselect(een,een,&iset,&nkcoords,inum,istartset,iendset,
981 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
982 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
983 printf (
"Warning: export E-imag to exo not tested.\n");
990 if((*nmethod!=5)||(*mode==-1)){
991 if((
strcmp1(&filab[2697],
"ME ")==0)&&(*ithermal!=2)){
994 }
else if(countbool==2){
997 var_names[countvars++]=
"MExx";
998 var_names[countvars++]=
"MEyy";
999 var_names[countvars++]=
"MEzz";
1000 var_names[countvars++]=
"MExy";
1001 var_names[countvars++]=
"MExz";
1002 var_names[countvars++]=
"MEyz";
1005 frdset(&filab[2697],
set,&iset,istartset,iendset,ialset,
1006 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1008 exoselect(emn,emn,&iset,&nkcoords,inum,istartset,iendset,
1009 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1010 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1018 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1019 if((
strcmp1(&filab[2697],
"ME ")==0)&&(*ithermal!=2)){
1022 }
else if(countbool==2){
1025 var_names[countvars++]=
"ME-imagxx";
1026 var_names[countvars++]=
"ME-imagyy";
1027 var_names[countvars++]=
"ME-imagzz";
1028 var_names[countvars++]=
"ME-imagxy";
1029 var_names[countvars++]=
"ME-imagxz";
1030 var_names[countvars++]=
"ME-imagyz";
1032 exoselect(&emn[6**nk],een,&iset,&nkcoords,inum,istartset,iendset,
1033 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1034 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1041 if((*nmethod!=5)||(*mode==-1)){
1042 if((
strcmp1(&filab[348],
"RF ")==0)&&(*ithermal!=2)){
1045 }
else if(countbool==2){
1046 var_names[countvars++]=
"RFx";
1047 var_names[countvars++]=
"RFy";
1048 var_names[countvars++]=
"RFz";
1051 frdset(&filab[348],
set,&iset,istartset,iendset,ialset,
1052 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1054 if((iaxial==1)&&(
strcmp1(&filab[352],
"I")==0)){
for(i=0;i<*nk;i++){fn[1+i*mt]*=180.;fn[2+i*mt]*=180.;fn[3+i*mt]*=180.;}}
1055 exovector(fn,&iset,ntrans,&filab[348],&nkcoords,inum,m1,inotr,
1056 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
1057 exoid,num_time_steps,countvars,nout);
1058 if((iaxial==1)&&(
strcmp1(&filab[352],
"I")==0)){
for(i=0;i<*nk;i++){fn[1+i*mt]/=180.;fn[2+i*mt]/=180.;fn[3+i*mt]/=180.;}}
1066 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1067 if((
strcmp1(&filab[348],
"RF ")==0)&&(*ithermal!=2)){
1070 }
else if(countbool==2){
1071 var_names[countvars++]=
"RF-imagx";
1072 var_names[countvars++]=
"RF-imagy";
1073 var_names[countvars++]=
"RF-imagz";
1075 exovector(&fn[*nk*mt],&iset,ntrans,filab,&nkcoords,inum,m1,inotr,
1076 trab,co,istartset,iendset,ialset,mi,ngraph,f1,output,m3,
1077 exoid,num_time_steps,countvars,nout);
1084 if((
strcmp1(&filab[435],
"PEEQ")==0)&&(*ithermal!=2)){
1087 }
else if(countbool==2){
1088 var_names[countvars++]=
"PEEQ";
1091 frdset(&filab[435],
set,&iset,istartset,iendset,ialset,
1092 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1094 exoselect(epn,epn,&iset,&nkcoords,inum,istartset,iendset,
1095 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
1096 nfieldscalar,&iselect,exoid,num_time_steps,countvars,nout);
1097 printf (
"Warning: export PEEQ to exo not tested.\n");
1104 if((
strcmp1(&filab[522],
"ENER")==0)&&(*ithermal!=2)){
1107 }
else if(countbool==2){
1108 var_names[countvars++]=
"ENER";
1111 frdset(&filab[522],
set,&iset,istartset,iendset,ialset,
1112 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1114 exoselect(enern,enern,&iset,&nkcoords,inum,istartset,iendset,
1115 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
1116 nfieldscalar,&iselect,exoid,num_time_steps,countvars,nout);
1117 printf (
"Warning: export ENER to exo not tested.\n");
1124 if((
strcmp1(&filab[2175],
"CONT")==0)&&(*mortar!=1)&&(*ithermal!=2)&&(*nmethod!=2)){
1127 }
else if(countbool==2){
1128 var_names[countvars++]=
"COPEN";
1129 var_names[countvars++]=
"CSLIP1";
1130 var_names[countvars++]=
"CSLIP2";
1131 var_names[countvars++]=
"CPRESS";
1132 var_names[countvars++]=
"CSHEAR1";
1133 var_names[countvars++]=
"CSHEAR2";
1136 nodal_var_vals = (
float *) calloc (nout,
sizeof(
float));
1138 for(i=*ne-1;i>=0;i--){
1139 if((
strcmp1(&lakon[8*i+1],
"S")!=0)||(
strcmp1(&lakon[8*i+6],
"C")!=0))
1145 for(i=*ne-1;i>=0;i--){
1146 if((
strcmp1(&lakon[8*i+1],
"S")!=0)||(
strcmp1(&lakon[8*i+6],
"C")!=0))
1148 strcpy1(text,&lakon[8*i+7],1);
1150 nodes=node_map_inv[kon[ipkon[i]+nope-1]-1]-1;
1151 nodal_var_vals[
nodes]=stx[6*mi[0]*i+j];
1154 errr = ex_put_nodal_var (exoid, num_time_steps, 1+countvars++, nout, nodal_var_vals);
1155 if (errr) printf (
"ERROR storing contact data into exo file.\n");
1158 free(nodal_var_vals);
1159 printf (
"Warning: export CONT to exo not tested.\n");
1165 if((*nmethod!=5)||(*mode==-1)){
1166 if((
strcmp1(&filab[2175],
"CONT")==0)&&(*mortar==1)&&(*ithermal!=2)){
1169 }
else if(countbool==2){
1170 var_names[countvars++]=
"COPEN";
1171 var_names[countvars++]=
"CSLIP1";
1172 var_names[countvars++]=
"CSLIP2";
1173 var_names[countvars++]=
"CPRESS";
1174 var_names[countvars++]=
"CSHEAR1";
1175 var_names[countvars++]=
"CSHEAR2";
1179 frdset(&filab[2175],
set,&iset,istartset,iendset,ialset,
1180 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1183 exoselect(cdn,cdn,&iset,&nkcoords,inum,istartset,iendset,
1184 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1185 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1186 printf (
"Warning: export CONT to exo not tested.\n");
1195 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1196 if((
strcmp1(&filab[2175],
"CONT")==0)&&(*mortar==1)&&(*ithermal!=2)){
1199 }
else if(countbool==2){
1200 var_names[countvars++]=
"COPEN-Imag";
1201 var_names[countvars++]=
"CSLIP1-Imag";
1202 var_names[countvars++]=
"CSLIP2-Imag";
1203 var_names[countvars++]=
"CPRESS-Imag";
1204 var_names[countvars++]=
"CSHEAR1-Imag";
1205 var_names[countvars++]=
"CSHEAR2-Imag";
1208 exoselect(&cdn[6**nk],cdn,&iset,&nkcoords,inum,istartset,iendset,
1209 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1210 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1217 if((
strcmp1(&filab[2262],
"CELS")==0)&&(*ithermal!=2)){
1220 }
else if(countbool==2){
1221 var_names[countvars++]=
"CELS";
1223 for(i=*ne-1;i>=0;i--){
1224 if((
strcmp1(&lakon[8*i+1],
"S")!=0)||(
strcmp1(&lakon[8*i+6],
"C")!=0))
1229 nodal_var_vals = (
float *) calloc (nkcoords,
sizeof(
float));
1230 for(i=*ne-1;i>=0;i--){
1231 if((
strcmp1(&lakon[8*i+1],
"S")!=0)||(
strcmp1(&lakon[8*i+6],
"C")!=0))
1233 nope=atoi(&lakon[8*i+7])+1;
1234 nodes=node_map_inv[kon[ipkon[i]+nope-1]-1]-1;
1235 nodal_var_vals[
nodes]=ener[i*mi[0]];
1239 int errr = ex_put_nodal_var (exoid, num_time_steps, countvars, nout, nodal_var_vals);
1240 if (errr) printf (
"ERROR storing CELS data into exo file.\n");
1242 free(nodal_var_vals);
1247 if(
strcmp1(&filab[609],
"SDV ")==0){
1249 countvars+=*nstate_;
1250 }
else if(countbool==2){
1251 for(j=1;j<=*nstate_;j++){
1252 sprintf(var_names[countvars++],
"SDV%" ITGFORMAT,j);
1257 frdset(&filab[609],
set,&iset,istartset,iendset,ialset,
1258 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1261 for(i=0;i<*nstate_;i++){
1262 ifieldstate[i]=1;icompstate[i]=i;
1266 exoselect(xstaten,xstaten,&iset,&nkcoords,inum,istartset,iendset,
1267 ialset,ngraph,nstate_,ifieldstate,icompstate,
1268 nfield,&iselect,exoid,num_time_steps,countvars,nout);
1269 countvars+=*nstate_;
1279 if((
strcmp1(&filab[696],
"HFL ")==0)&&(*ithermal>1)){
1282 }
else if(countbool==2){
1283 var_names[countvars++]=
"HFLx";
1284 var_names[countvars++]=
"HFLy";
1285 var_names[countvars++]=
"HFLz";
1289 frdset(&filab[696],
set,&iset,istartset,iendset,ialset,
1290 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1293 exoselect(qfn,qfn,&iset,&nkcoords,inum,istartset,iendset,
1294 ialset,ngraph,&ncompvector,ifieldvector,icompvector,
1295 nfieldvector1,&iselect,exoid,num_time_steps,countvars,nout);
1303 if((
strcmp1(&filab[3567],
"ECD ")==0)&&(*ithermal==2)){
1306 }
else if(countbool==2){
1307 var_names[countvars++]=
"ECDx";
1308 var_names[countvars++]=
"ECDy";
1309 var_names[countvars++]=
"ECDz";
1313 frdset(&filab[3567],
set,&iset,istartset,iendset,ialset,
1314 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1317 exoselect(qfn,qfn,&iset,&nkcoords,inum,istartset,iendset,
1318 ialset,ngraph,&ncompvector,ifieldvector,icompvector,
1319 nfieldvector1,&iselect,exoid,num_time_steps,countvars,nout);
1320 printf (
"Warning: export ECD to exo not tested.\n");
1326 if((
strcmp1(&filab[783],
"RFL ")==0)&&(*ithermal>1)){
1329 }
else if(countbool==2){
1330 var_names[countvars++]=
"RFL";
1334 frdset(&filab[783],
set,&iset,istartset,iendset,ialset,
1335 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1337 exoselect(fn,fn,&iset,&nkcoords,inum,istartset,iendset,
1338 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
1339 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1345 if((*nmethod!=5)||(*mode==-1)){
1346 if((
strcmp1(&filab[1044],
"ZZS")==0)&&(*ithermal!=2)){
1349 }
else if(countbool==2){
1352 var_names[countvars++]=
"ZZSxx";
1353 var_names[countvars++]=
"ZZSyy";
1354 var_names[countvars++]=
"ZZSzz";
1355 var_names[countvars++]=
"ZZSxy";
1356 var_names[countvars++]=
"ZZSxz";
1357 var_names[countvars++]=
"ZZSyz";
1359 FORTRAN(
zienzhu,(co,nk,kon,ipkon,lakon,ne0,stn,ipneigh,neigh,
1364 frdset(&filab[1044],
set,&iset,istartset,iendset,ialset,
1365 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1368 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
1369 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1370 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1371 printf (
"Warning: export of ZZSTR to exo not tested.\n");
1381 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1382 if((
strcmp1(&filab[1044],
"ZZS")==0)&&(*ithermal!=2)){
1385 }
else if(countbool==2){
1388 var_names[countvars++]=
"ZZS-imagxx";
1389 var_names[countvars++]=
"ZZS-imagyy";
1390 var_names[countvars++]=
"ZZS-imagzz";
1391 var_names[countvars++]=
"ZZS-imagxy";
1392 var_names[countvars++]=
"ZZS-imagxz";
1393 var_names[countvars++]=
"ZZS-imagyz";
1396 FORTRAN(
zienzhu,(co,nk,kon,ipkon,lakon,ne0,stn,ipneigh,neigh,
1397 &stx[6*mi[0]**ne],&mi[0]));
1399 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
1400 ialset,ngraph,&ncomptensor,ifieldtensor,icomptensor,
1401 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1402 printf (
"Warning: export of ZZSTR imaginary to exo not tested.\n");
1409 if((*nmethod!=5)||(*mode==-1)){
1410 if((
strcmp1(&filab[1044],
"ERR")==0)&&(*ithermal!=2)){
1413 }
else if(countbool==2){
1414 var_names[countvars++]=
"PSTDERROR";
1415 var_names[countvars++]=
"VMSTDERROR";
1420 mi,ielmat,&nterms,inum,co,vold,&filab[1048]));
1424 frdset(&filab[1044],
set,&iset,istartset,iendset,ialset,
1425 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1429 ifield[0]=1;ifield[1]=1;
1430 icomp[0]=0;icomp[1]=1;
1432 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
1433 ialset,ngraph,&ncomp,ifield,icomp,
1434 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1443 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1444 if((
strcmp1(&filab[1044],
"ERR")==0)&&(*ithermal!=2)){
1447 }
else if(countbool==2){
1448 var_names[countvars++]=
"PSTD-imag-ERROR";
1449 var_names[countvars++]=
"VMSTD-imag-ERROR";
1453 mi,ielmat,&nterms,inum,co,vold,&filab[1048]));
1456 ifield[0]=1;ifield[1]=1;
1457 icomp[0]=0;icomp[1]=1;
1459 exoselect(stn,stn,&iset,&nkcoords,inum,istartset,iendset,
1460 ialset,ngraph,&ncomp,ifield,icomp,
1461 nfieldtensor,&iselect,exoid,num_time_steps,countvars,nout);
1469 if((*nmethod!=5)||(*mode==-1)){
1470 if((
strcmp1(&filab[2784],
"HER")==0)&&(*ithermal>1)){
1473 }
else if(countbool==2){
1474 var_names[countvars++]=
"HFLSTD";
1478 mi,ielmat,&nterms,inum,co,vold,&filab[2788]));
1481 frdset(&filab[2784],
set,&iset,istartset,iendset,ialset,
1482 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1489 exoselect(qfn,qfn,&iset,&nkcoords,inum,istartset,iendset,
1490 ialset,ngraph,&ncomp,ifield,icomp,
1491 nfieldvector1,&iselect,exoid,num_time_steps,countvars,nout);
1500 if((*noddiam>=0)||((*nmethod==5)&&(*mode==0))){
1501 if(
strcmp1(&filab[2784],
"HER")==0){
1504 }
else if(countbool==2){
1505 var_names[countvars++]=
"HFLSTD-IMG";
1509 mi,ielmat,&nterms,inum,co,vold,&filab[2788]));
1515 exoselect(qfn,qfn,&iset,&nkcoords,inum,istartset,iendset,
1516 ialset,ngraph,&ncomp,ifield,icomp,
1517 nfieldvector1,&iselect,exoid,num_time_steps,countvars,nout);
1525 if((
strcmp1(&filab[1131],
"TT ")==0)&&(*ithermal>1)){
1528 }
else if(countbool==2){
1529 var_names[countvars++]=
"TT";
1533 frdset(&filab[1131],
set,&iset,istartset,iendset,ialset,
1534 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1537 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1538 ialset,ngraph,&ncompscalar,ifieldscalar,icompscalar,
1539 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1540 printf (
"Warning: export of TT to exo not tested.\n");
1546 if((
strcmp1(&filab[1218],
"MF ")==0)&&(*ithermal>1)){
1549 }
else if(countbool==2){
1550 var_names[countvars++]=
"MF";
1554 frdset(&filab[1218],
set,&iset,istartset,iendset,ialset,
1555 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1559 if((iaxial==1)&&(
strcmp1(&filab[1222],
"I")==0)){
for(i=0;i<*nk;i++)v[1+i*mt]*=180.;}
1560 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1561 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1562 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1563 if((iaxial==1)&&(
strcmp1(&filab[1222],
"I")==0)){
for(i=0;i<*nk;i++)v[1+i*mt]/=180.;}
1569 if((
strcmp1(&filab[1305],
"PT ")==0)&&(*ithermal>1)){
1572 }
else if(countbool==2){
1573 var_names[countvars++]=
"PT";
1577 frdset(&filab[1305],
set,&iset,istartset,iendset,ialset,
1578 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1582 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1583 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1584 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1590 if((
strcmp1(&filab[1827],
"PS ")==0)&&(*ithermal>1)){
1593 }
else if(countbool==2){
1594 var_names[countvars++]=
"STPRESS PS";
1598 frdset(&filab[1827],
set,&iset,istartset,iendset,ialset,
1599 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1603 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1604 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1605 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1606 printf (
"Warning: export of PS to exo not tested.\n");
1612 if(
strcmp1(&filab[2349],
"PS ")==0){
1615 }
else if(countbool==2){
1616 var_names[countvars++]=
"DEPTH";
1620 frdset(&filab[2349],
set,&iset,istartset,iendset,ialset,
1621 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1625 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1626 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1627 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1628 printf (
"Warning: export of DEPTH to exo not tested.\n");
1634 if((
strcmp1(&filab[2436],
"HCRI")==0)&&(*ithermal>1)){
1637 }
else if(countbool==2){
1638 var_names[countvars++]=
"HCRIT";
1642 frdset(&filab[2436],
set,&iset,istartset,iendset,ialset,
1643 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1647 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1648 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1649 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1650 printf (
"Warning: export of HCRIT to exo not tested.\n");
1656 if((
strcmp1(&filab[1392],
"TS ")==0)&&(*ithermal>1)){
1659 }
else if(countbool==2){
1660 var_names[countvars++]=
"STTEMP";
1664 frdset(&filab[1392],
set,&iset,istartset,iendset,ialset,
1665 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1669 exoselect(v,v,&iset,&nkcoords,inum,istartset,iendset,
1670 ialset,ngraph,&ncompscalar,ifieldscalar,icomp,
1671 nfieldvector0,&iselect,exoid,num_time_steps,countvars,nout);
1672 printf (
"Warning: export of STTEMP to exo not tested.\n");
1680 if((*nmethod!=2)&&(*nmethod!=5)&&(*nmethod!=6)&&(*nmethod!=7)){
goto WRITENAMES;}
1681 if((*nmethod==5)&&(*mode==-1)){
goto WRITENAMES;}
1684 if((
strcmp1(&filab[870],
"PU ")==0)&&(*ithermal!=2)){
1687 }
else if(countbool==2){
1690 var_names[countvars++]=
"PDISP-MAGx";
1691 var_names[countvars++]=
"PDISP-MAGy";
1692 var_names[countvars++]=
"PDISP-MAGz";
1693 var_names[countvars++]=
"PDISP-PHAx";
1694 var_names[countvars++]=
"PDISP-PHAz";
1695 var_names[countvars++]=
"PDISP-PHAy";
1699 frdset(&filab[870],
set,&iset,istartset,iendset,ialset,
1700 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1703 exoselect(vr,vi,&iset,&nkcoords,inum,istartset,iendset,
1704 ialset,ngraph,&ncompvectph,ifieldvectph,icompvectph,
1705 nfieldvectph,&iselect,exoid,num_time_steps,countvars,nout);
1711 if((
strcmp1(&filab[957],
"PNT ")==0)&&(*ithermal>1)){
1714 }
else if(countbool==2){
1715 var_names[countvars++]=
"PNDTEMP MAG1";
1716 var_names[countvars++]=
"PNDTEMP PHA2";
1720 frdset(&filab[957],
set,&iset,istartset,iendset,ialset,
1721 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1724 exoselect(vr,vi,&iset,&nkcoords,inum,istartset,iendset,
1725 ialset,ngraph,&ncompscalph,ifieldscalph,icompscalph,
1726 nfieldscalph,&iselect,exoid,num_time_steps,countvars,nout);
1727 printf (
"Warning: export of PNDTEMP to exo not tested.\n");
1734 if((
strcmp1(&filab[1479],
"PHS ")==0)&&(*ithermal!=2)){
1737 }
else if(countbool==2){
1740 var_names[countvars++]=
"PSTRESS MAGXX";
1741 var_names[countvars++]=
"PSTRESS MAGYY";
1742 var_names[countvars++]=
"PSTRESS MAGZZ";
1743 var_names[countvars++]=
"PSTRESS MAGXY";
1744 var_names[countvars++]=
"PSTRESS MAGXZ";
1745 var_names[countvars++]=
"PSTRESS MAGYZ";
1746 var_names[countvars++]=
"PSTRESS PHAXX";
1747 var_names[countvars++]=
"PSTRESS PHAYY";
1748 var_names[countvars++]=
"PSTRESS PHAZZ";
1749 var_names[countvars++]=
"PSTRESS PHAXY";
1750 var_names[countvars++]=
"PSTRESS PHAXZ";
1751 var_names[countvars++]=
"PSTRESS PHAYZ";
1755 frdset(&filab[1479],
set,&iset,istartset,iendset,ialset,
1756 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1759 exoselect(stnr,stni,&iset,&nkcoords,inum,istartset,iendset,
1760 ialset,ngraph,&ncomptensph,ifieldtensph,icomptensph,
1761 nfieldtensph,&iselect,exoid,num_time_steps,countvars,nout);
1769 if((
strcmp1(&filab[3915],
"PCON")==0)&&(*ithermal!=2)&&(*mortar==1)){
1772 }
else if(countbool==2){
1775 var_names[countvars++]=
"MAGO ";
1776 var_names[countvars++]=
"MAGSL1";
1777 var_names[countvars++]=
"MAGSL2";
1778 var_names[countvars++]=
"MAGP ";
1779 var_names[countvars++]=
"MAGSH1";
1780 var_names[countvars++]=
"MAGSH2";
1781 var_names[countvars++]=
"PHAO ";
1782 var_names[countvars++]=
"PHASL1";
1783 var_names[countvars++]=
"PHASL2";
1784 var_names[countvars++]=
"PHAP ";
1785 var_names[countvars++]=
"PHASH1";
1786 var_names[countvars++]=
"PHASH2";
1790 frdset(&filab[3915],
set,&iset,istartset,iendset,ialset,
1791 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1794 exoselect(cdnr,cdni,&iset,&nkcoords,inum,istartset,iendset,
1795 ialset,ngraph,&ncomptensph,ifieldtensph,icomptensph,
1796 nfieldtensph,&iselect,exoid,num_time_steps,countvars,nout);
1798 printf (
"Warning: export PCON to exo not tested and likely has incorrect ordering.\n");
1803 if(
strcmp1(&filab[2610],
"PRF ")==0){
1806 }
else if(countbool==2){
1809 var_names[countvars++]=
"PFORC MAG1";
1810 var_names[countvars++]=
"PFORC MAG2";
1811 var_names[countvars++]=
"PFORC MAG3";
1812 var_names[countvars++]=
"PFORC PHA1";
1813 var_names[countvars++]=
"PFORC PHA3";
1814 var_names[countvars++]=
"PFORC PHA2";
1818 frdset(&filab[2610],
set,&iset,istartset,iendset,ialset,
1819 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1822 exoselect(fnr,fni,&iset,&nkcoords,inum,istartset,iendset,
1823 ialset,ngraph,&ncompvectph,ifieldvectph,icompvectph,
1824 nfieldvectph,&iselect,exoid,num_time_steps,countvars,nout);
1825 printf (
"Warning: export of PFORC to exo not tested.\n");
1831 if(*nmethod!=2){
goto WRITENAMES;}
1836 if((
strcmp1(&filab[1566],
"MAXU")==0)&&(*ithermal!=2)){
1839 }
else if(countbool==2){
1840 var_names[countvars++]=
"MDISP DX";
1841 var_names[countvars++]=
"MDISP DY";
1842 var_names[countvars++]=
"MDISP DZ";
1843 var_names[countvars++]=
"MDISP ANG";
1847 frdset(&filab[1566],
set,&iset,istartset,iendset,ialset,
1848 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1852 ifield[0]=1;icomp[0]=1;
1853 ifield[1]=1;icomp[1]=2;
1854 ifield[2]=1;icomp[2]=3;
1855 ifield[3]=1;icomp[3]=0;
1856 nfield[0]=4;nfield[1]=4;
1858 exoselect(vmax,vmax,&iset,&nkcoords,inum,istartset,iendset,
1859 ialset,ngraph,&ncomp,ifield,icomp,
1860 nfield,&iselect,exoid,num_time_steps,countvars,nout);
1861 printf (
"Warning: export of MDISP to exo not tested.\n");
1872 if((
strcmp1(&filab[1653],
"MAXS")==0)&&(*ithermal!=2)){
1875 }
else if(countbool==2){
1878 var_names[countvars++]=
"MSTRESS SXX";
1879 var_names[countvars++]=
"MSTRESS SYY";
1880 var_names[countvars++]=
"MSTRESS SZZ";
1881 var_names[countvars++]=
"MSTRESS SXY";
1882 var_names[countvars++]=
"MSTRESS SXZ";
1883 var_names[countvars++]=
"MSTRESS SYZ";
1884 var_names[countvars++]=
"MSTRESS MAG";
1888 frdset(&filab[1653],
set,&iset,istartset,iendset,ialset,
1889 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1893 ifield[0]=1;icomp[0]=1;
1894 ifield[1]=1;icomp[1]=2;
1895 ifield[2]=1;icomp[2]=3;
1896 ifield[3]=1;icomp[3]=4;
1897 ifield[4]=1;icomp[4]=6;
1898 ifield[5]=1;icomp[5]=5;
1899 ifield[6]=1;icomp[6]=0;
1900 nfield[0]=7;nfield[1]=7;
1902 exoselect(stnmax,stnmax,&iset,&nkcoords,inum,istartset,iendset,
1903 ialset,ngraph,&ncomp,ifield,icomp,
1904 nfield,&iselect,exoid,num_time_steps,countvars,nout);
1905 printf (
"Warning: export of MSTRESS to exo not tested.\n");
1916 if((
strcmp1(&filab[2523],
"MAXE")==0)&&(*ithermal!=2)){
1919 }
else if(countbool==2){
1922 var_names[countvars++]=
"MAXE EXX";
1923 var_names[countvars++]=
"MAXE EYY";
1924 var_names[countvars++]=
"MAXE EZZ";
1925 var_names[countvars++]=
"MAXE EXY";
1926 var_names[countvars++]=
"MAXE EXZ";
1927 var_names[countvars++]=
"MAXE EYZ";
1928 var_names[countvars++]=
"MAXE MAG";
1932 frdset(&filab[2523],
set,&iset,istartset,iendset,ialset,
1933 inum,&noutloc,&nout,nset,&noutmin,&noutplus,&iselect,
1937 ifield[0]=1;icomp[0]=1;
1938 ifield[1]=1;icomp[1]=2;
1939 ifield[2]=1;icomp[2]=3;
1940 ifield[3]=1;icomp[3]=4;
1941 ifield[4]=1;icomp[4]=6;
1942 ifield[5]=1;icomp[5]=5;
1943 ifield[6]=1;icomp[6]=0;
1944 nfield[0]=7;nfield[1]=7;
1946 exoselect(eenmax,eenmax,&iset,&nkcoords,inum,istartset,iendset,
1947 ialset,ngraph,&ncomp,ifield,icomp,
1948 nfield,&iselect,exoid,num_time_steps,countvars,nout);
1949 printf (
"Warning: export of MAXE to exo not tested.\n");
1956 errr = ex_put_var_param (exoid,
"n", countvars);
1961 for (ii=0; ii<countvars; ii++)
1963 var_names[ii] = (
char *) calloc ((MAX_STR_LENGTH+1),
sizeof(char));
1965 }
else if(countbool==2){
1966 errr = ex_put_var_names (exoid,
"n", countvars, var_names);
1968 printf (
"Unable to update variable names. Was output data requested?\n\n");
1969 printf (
" NOTE CalculiX Extras doesn't currently support\n");
1970 printf (
" changing output variables between steps.\n");
1971 printf (
" Requested output variables in this step are:\n");
1973 for (ii=0; ii<countvars; ii++){
1974 printf(
" %i %s\n", ii+1, var_names[ii]);
1991 free (node_map_inv);
#define ITGFORMAT
Definition: CalculiX.h:52
ITG strcmp2(const char *s1, const char *s2, ITG length)
Definition: strcmp2.c:24
ITG strcpy1(char *s1, const char *s2, ITG length)
Definition: strcpy1.c:24
void FORTRAN(actideacti,(char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, char *objectset, ITG *ipkon, ITG *ibject, ITG *ne))
ITG strcmp1(const char *s1, const char *s2)
Definition: strcmp1.c:24
void exoselect(double *field1, double *field2, ITG *iset, ITG *nkcoords, ITG *inum, ITG *istartset, ITG *iendset, ITG *ialset, ITG *ngraph, ITG *ncomp, ITG *ifield, ITG *icomp, ITG *nfield, ITG *iselect, ITG exoid, ITG time_step, int countvar, ITG nout)
Definition: exoselect.c:31
static double * f1
Definition: objectivemain_se.c:47
void exosetfind(char *set, ITG *nset, ITG *ialset, ITG *istartset, ITG *iendset, ITG *num_ns, ITG *num_ss, ITG *num_es, ITG *num_fs, ITG *node_map_inv, int exoid, int store, ITG *nk)
Definition: exosetfind.c:28
subroutine nodes(inpc, textpart, co, nk, nk_, set, istartset, iendset, ialset, nset, nset_, nalset, nalset_, istep, istat, n, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: nodes.f:22
subroutine zienzhu(co, nk, kon, ipkon, lakon, ne, stn, ipneigh, neigh, sti, mi)
Definition: zienzhu.f:21
void frdset(char *filabl, char *set, ITG *iset, ITG *istartset, ITG *iendset, ITG *ialset, ITG *inum, ITG *noutloc, ITG *nout, ITG *nset, ITG *noutmin, ITG *noutplus, ITG *iselect, ITG *ngraph)
Definition: frdset.c:24
#define ITG
Definition: CalculiX.h:51
void exovector(double *v, ITG *iset, ITG *ntrans, char *filabl, ITG *nkcoords, ITG *inum, char *m1, ITG *inotr, double *trab, double *co, ITG *istartset, ITG *iendset, ITG *ialset, ITG *mi, ITG *ngraph, FILE *f1, char *output, char *m3, int exoid, ITG time_step, int countvar, ITG nout)
Definition: exovector.c:28
subroutine errorestimator(yi, yn, ipkon, kon, lakon, nk, ne, mi, ielmat, nterms, inum, co, vold, cflag)
Definition: errorestimator.f:21