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