[cig-commits] [commit] rajesh-petsc-schur: replaced all occurences of the caps_per_proc iteration variable by CPPR in Full_parallel_related.c (6012baf)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Nov 5 19:05:14 PST 2014


Repository : https://github.com/geodynamics/citcoms

On branch  : rajesh-petsc-schur
Link       : https://github.com/geodynamics/citcoms/compare/464e1b32299b15819f93efd98d969cddb84dfe51...f97ae655a50bdbd6dac1923a3471ee4dae178fbd

>---------------------------------------------------------------

commit 6012baf50a757230ac8923f992400776d8d3e86b
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date:   Mon Sep 15 12:47:13 2014 -0700

    replaced all occurences of the caps_per_proc iteration variable by CPPR in Full_parallel_related.c


>---------------------------------------------------------------

6012baf50a757230ac8923f992400776d8d3e86b
 lib/Full_parallel_related.c | 442 ++++++++++++++++++++++----------------------
 1 file changed, 221 insertions(+), 221 deletions(-)

diff --git a/lib/Full_parallel_related.c b/lib/Full_parallel_related.c
index f5cc8b9..77704cc 100644
--- a/lib/Full_parallel_related.c
+++ b/lib/Full_parallel_related.c
@@ -72,7 +72,7 @@ void full_parallel_processor_setup(struct All_variables *E)
     parallel_process_termination();
     }
 
-  E->sphere.caps_per_proc = max(1,E->sphere.caps*E->parallel.nprocz/E->parallel.nproc);
+  E->sphere.caps_per_proc = CPPR;//max(1,E->sphere.caps*E->parallel.nprocz/E->parallel.nproc);
 
   if (E->sphere.caps_per_proc > 1) {
     if (E->parallel.me==0) fprintf(stderr,"!!!! # caps per proc > 1 is not supported.\n \n");
@@ -110,8 +110,8 @@ oordinate and F-B
   i = cases[E->sphere.caps_per_proc]; /* 1 for more than 12 processors */
 
   for (j=1;j<=E->sphere.caps_per_proc;j++)  {
-    temp = pid_surf*E->sphere.caps_per_proc + j-1; /* cap number (out of 12) */
-    E->sphere.capid[j] = incases1[i].links[temp]; /* id (1~12) of the current cap */
+    temp = pid_surf*E->sphere.caps_per_proc + CPPR-1; /* cap number (out of 12) */
+    E->sphere.capid[CPPR] = incases1[i].links[temp]; /* id (1~12) of the current cap */
     }
 
   /* determine which caps are linked with each of 12 caps  */
@@ -148,7 +148,7 @@ oordinate and F-B
   if (E->control.verbose) {
     fprintf(E->fp_out,"me=%d loc1=%d loc2=%d loc3=%d\n",me,E->parallel.me_loc[1],E->parallel.me_loc[2],E->parallel.me_loc[3]);
     for (j=1;j<=E->sphere.caps_per_proc;j++) {
-      fprintf(E->fp_out,"capid[%d]=%d \n",j,E->sphere.capid[j]);
+      fprintf(E->fp_out,"capid[%d]=%d \n",CPPR,E->sphere.capid[CPPR]);
     }
     for (m=0;m<E->sphere.caps;m++)
       for (j=0;j<E->parallel.nprocy;j++)
@@ -354,11 +354,11 @@ void full_parallel_domain_boundary_nodes(E)
       for(j=1;j<=noz;j++)
       for(k=1;k<=noy;k++)  {
         node = j + (k-1)*noz*nox;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] =  node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] =  node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
 
       lnode = 0;
@@ -366,11 +366,11 @@ void full_parallel_domain_boundary_nodes(E)
       for(j=1;j<=noz;j++)
       for(k=1;k<=noy;k++)      {
         node = (nox-1)*noz + j + (k-1)*noz*nox;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] =  node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] =  node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
 
 /* do XOY boundary elements */
@@ -379,22 +379,22 @@ void full_parallel_domain_boundary_nodes(E)
       for(k=1;k<=noy;k++)
       for(i=1;i<=nox;i++)   {
         node = (k-1)*nox*noz + (i-1)*noz + 1;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] = node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] = node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
       ii=6;                           /* top  */
       lnode=0;
       for(k=1;k<=noy;k++)
       for(i=1;i<=nox;i++)  {
         node = (k-1)*nox*noz + i*noz;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] = node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] = node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
 
 /* do XOZ boundary elements for 3D */
@@ -403,65 +403,65 @@ void full_parallel_domain_boundary_nodes(E)
       for(j=1;j<=noz;j++)
       for(i=1;i<=nox;i++)   {
         node = (i-1)*noz +j;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] = node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] = node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
       ii=4;                           /* rear */
       lnode=0;
       for(j=1;j<=noz;j++)
       for(i=1;i<=nox;i++)   {
         node = noz*nox*(noy-1) + (i-1)*noz +j;
-        E->parallel.NODE[lev][m][++lnode].bound[ii] = node;
-        E->NODE[lev][m][node] = E->NODE[lev][m][node] | OFFSIDE;
+        E->parallel.NODE[lev][CPPR][++lnode].bound[ii] = node;
+        E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | OFFSIDE;
         }
 
-      E->parallel.NUM_NNO[lev][m].bound[ii] = lnode;
+      E->parallel.NUM_NNO[lev][CPPR].bound[ii] = lnode;
 
       /* determine the overlapped nodes between caps or between proc */
 
       /* horizontal direction:
          all nodes at right (ix==nox) and front (iy==1) faces
          are skipped */
-      for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][m].bound[2];lnode++) {
-          node = E->parallel.NODE[lev][m][lnode].bound[2];
-          E->NODE[lev][m][node] = E->NODE[lev][m][node] | SKIP;
+      for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][CPPR].bound[2];lnode++) {
+          node = E->parallel.NODE[lev][CPPR][lnode].bound[2];
+          E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | SKIP;
       }
 
-      for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][m].bound[3];lnode++) {
-          node = E->parallel.NODE[lev][m][lnode].bound[3];
-          E->NODE[lev][m][node] = E->NODE[lev][m][node] | SKIP;
+      for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][CPPR].bound[3];lnode++) {
+          node = E->parallel.NODE[lev][CPPR][lnode].bound[3];
+          E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | SKIP;
       }
 
       /* nodes at N/S poles are skipped by all proc.
          add them back here */
 
       /* north pole is at the front left proc. of 1st cap */
-      if (E->sphere.capid[m] == 1 &&
+      if (E->sphere.capid[CPPR] == 1 &&
           E->parallel.me_loc[1] == 0 &&
           E->parallel.me_loc[2] == 0)
           for(j=1;j<=noz;j++) {
               node = j;
-              E->NODE[lev][m][node] = E->NODE[lev][m][node] & ~SKIP;
+              E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] & ~SKIP;
           }
 
       /* south pole is at the back right proc. of final cap */
-      if (E->sphere.capid[m] == E->sphere.caps &&
+      if (E->sphere.capid[CPPR] == E->sphere.caps &&
           E->parallel.me_loc[1] == E->parallel.nprocx-1 &&
           E->parallel.me_loc[2] == E->parallel.nprocy-1)
           for(j=1;j<=noz;j++) {
               node = j*nox*noy;
-              E->NODE[lev][m][node] = E->NODE[lev][m][node] & ~SKIP;
+              E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] & ~SKIP;
           }
 
       /* radial direction is easy:
          all top nodes except those at top processors are skipped */
       if (E->parallel.me_loc[3]!=E->parallel.nprocz-1 )
-          for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][m].bound[6];lnode++) {
-              node = E->parallel.NODE[lev][m][lnode].bound[6];
-              E->NODE[lev][m][node] = E->NODE[lev][m][node] | SKIP;
+          for (lnode=1;lnode<=E->parallel.NUM_NNO[lev][CPPR].bound[6];lnode++) {
+              node = E->parallel.NODE[lev][CPPR][lnode].bound[6];
+              E->NODE[lev][CPPR][node] = E->NODE[lev][CPPR][node] | SKIP;
           }
 
       }       /* end for m */
@@ -472,14 +472,14 @@ if (E->control.verbose) {
  fprintf(E->fp_out,"output_shared_nodes %d \n",E->parallel.me);
  for(lev=E->mesh.gridmax;lev>=E->mesh.gridmin;lev--)
    for (m=1;m<=E->sphere.caps_per_proc;m++)      {
-    fprintf(E->fp_out,"lev=%d  me=%d capid=%d m=%d \n",lev,E->parallel.me,E->sphere.capid[m],m);
+    fprintf(E->fp_out,"lev=%d  me=%d capid=%d m=%d \n",lev,E->parallel.me,E->sphere.capid[CPPR],CPPR);
     for (ii=1;ii<=6;ii++)
-      for (i=1;i<=E->parallel.NUM_NNO[lev][m].bound[ii];i++)
-        fprintf(E->fp_out,"ii=%d   %d %d \n",ii,i,E->parallel.NODE[lev][m][i].bound[ii]);
+      for (i=1;i<=E->parallel.NUM_NNO[lev][CPPR].bound[ii];i++)
+        fprintf(E->fp_out,"ii=%d   %d %d \n",ii,i,E->parallel.NODE[lev][CPPR][i].bound[ii]);
 
     lnode=0;
     for (node=1;node<=E->lmesh.NNO[lev];node++)
-      if((E->NODE[lev][m][node] & SKIP)) {
+      if((E->NODE[lev][CPPR][node] & SKIP)) {
         lnode++;
         fprintf(E->fp_out,"skip %d %d \n",lnode,node);
         }
@@ -530,7 +530,7 @@ void full_parallel_communication_routs_v(E)
     noy = E->lmesh.NOY[lev];
 
     for(m=1;m<=E->sphere.caps_per_proc;m++)    {
-      cap = E->sphere.capid[m] - 1;  /* which cap I am in (0~11) */
+      cap = E->sphere.capid[CPPR] - 1;  /* which cap I am in (0~11) */
 
       /* -X face */
       npass = ii = 1;
@@ -546,8 +546,8 @@ void full_parallel_communication_routs_v(E)
 	  target = E->parallel.loc2proc_map[temp][ly][0][lz];
 	}
 
-      E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-      face_eqn_node_to_pass(E,lev,m,npass,ii);
+      E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+      face_eqn_node_to_pass(E,lev,CPPR,npass,ii);
 
       /* +X face */
       npass = ii = 2;
@@ -562,8 +562,8 @@ void full_parallel_communication_routs_v(E)
 	  temp = (12+cap-3) % 12;
 	  target = E->parallel.loc2proc_map[temp][ly][nprocy-1][lz];
 	}
-      E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-      face_eqn_node_to_pass(E,lev,m,npass,ii);
+      E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+      face_eqn_node_to_pass(E,lev,CPPR,npass,ii);
 
       /* -Y face */
       npass = ii = 3;
@@ -579,8 +579,8 @@ void full_parallel_communication_routs_v(E)
 	  target = E->parallel.loc2proc_map[temp][0][lx][lz];
 	}
 
-      E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-      face_eqn_node_to_pass(E,lev,m,npass,ii);
+      E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+      face_eqn_node_to_pass(E,lev,CPPR,npass,ii);
 
       /* +Y face */
       npass = ii = 4;
@@ -596,8 +596,8 @@ void full_parallel_communication_routs_v(E)
 	  target = E->parallel.loc2proc_map[temp][nprocx-1][lx][lz];
 	}
 
-      E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-      face_eqn_node_to_pass(E,lev,m,npass,ii);
+      E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+      face_eqn_node_to_pass(E,lev,CPPR,npass,ii);
 
       /* do lines parallel to Z */
 
@@ -609,14 +609,14 @@ void full_parallel_communication_routs_v(E)
 	    target = E->parallel.loc2proc_map[temp][lx][ly][lz];
 	  }
 	  else if ((cap%3==0) && (lx==0))
-	    target = E->parallel.PROCESSOR[lev][m].pass[1] - nprocz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[1] - nprocz;
 	  else if ((cap%3==0) && (ly==0))
-	    target = E->parallel.PROCESSOR[lev][m].pass[3] - nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[3] - nprocxz;
 	  else
-	    target = E->parallel.PROCESSOR[lev][m].pass[1] - nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[1] - nprocxz;
 
-	  E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-	  line_eqn_node_to_pass(E,lev,m,npass,noz,1,1);
+	  E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+	  line_eqn_node_to_pass(E,lev,CPPR,npass,noz,1,1);
 	}
 
 	/* +X+Y line */
@@ -627,46 +627,46 @@ void full_parallel_communication_routs_v(E)
 	    target = E->parallel.loc2proc_map[temp][lx][ly][lz];
 	  }
 	  else if ((cap%3==2) && (lx==nprocx-1))
-	    target = E->parallel.PROCESSOR[lev][m].pass[2] + nprocz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[2] + nprocz;
 	  else if ((cap%3==2) && (ly==nprocy-1))
-	    target = E->parallel.PROCESSOR[lev][m].pass[4] + nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[4] + nprocxz;
 	  else
-	    target = E->parallel.PROCESSOR[lev][m].pass[2] + nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[2] + nprocxz;
 
-	  E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-	  line_eqn_node_to_pass(E,lev,m,npass,noz,(noy*nox-1)*noz+1,1);
+	  E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+	  line_eqn_node_to_pass(E,lev,CPPR,npass,noz,(noy*nox-1)*noz+1,1);
 	}
 
 	/* -X+Y line */
 	if (!( (cap%3==2 || cap%3==0) && (lx==0) && (ly==nprocy-1) )) {
 	  npass ++;
 	  if ((cap%3==2) && (ly==nprocy-1))
-	    target = E->parallel.PROCESSOR[lev][m].pass[4] - nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[4] - nprocxz;
 	  else if ((cap%3==0) && (lx==0))
-	    target = E->parallel.PROCESSOR[lev][m].pass[1] + nprocz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[1] + nprocz;
 	  else
-	    target = E->parallel.PROCESSOR[lev][m].pass[1] + nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[1] + nprocxz;
 
-	  E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-	  line_eqn_node_to_pass(E,lev,m,npass,noz,(noy-1)*nox*noz+1,1);
+	  E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+	  line_eqn_node_to_pass(E,lev,CPPR,npass,noz,(noy-1)*nox*noz+1,1);
 	}
 
 	/* +X-Y line */
 	if (!( (cap%3==2 || cap%3==0) && (lx==nprocx-1) && (ly==0) )) {
 	  npass ++;
 	  if ((cap%3==2) && (lx==nprocx-1))
-	    target = E->parallel.PROCESSOR[lev][m].pass[2] - nprocz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[2] - nprocz;
 	  else if ((cap%3==0) && (ly==0))
-	    target = E->parallel.PROCESSOR[lev][m].pass[3] + nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[3] + nprocxz;
 	  else
-	    target = E->parallel.PROCESSOR[lev][m].pass[2] - nprocxz;
+	    target = E->parallel.PROCESSOR[lev][CPPR].pass[2] - nprocxz;
 
-	  E->parallel.PROCESSOR[lev][m].pass[npass] = target;
-	  line_eqn_node_to_pass(E,lev,m,npass,noz,(nox-1)*noz+1,1);
+	  E->parallel.PROCESSOR[lev][CPPR].pass[npass] = target;
+	  line_eqn_node_to_pass(E,lev,CPPR,npass,noz,(nox-1)*noz+1,1);
 	}
 
 
-      E->parallel.TNUM_PASS[lev][m] = npass;
+      E->parallel.TNUM_PASS[lev][CPPR] = npass;
 
     }   /* end for m  */
   }   /* end for lev  */
@@ -690,20 +690,20 @@ void full_parallel_communication_routs_v(E)
 	E->parallel.NUM_NEQz[lev].pass[kkk] = 0;
 
 	for(m=1;m<=E->sphere.caps_per_proc;m++)    {
-	  cap = E->sphere.capid[m] - 1;  /* which cap I am in (0~11) */
+	  cap = E->sphere.capid[CPPR] - 1;  /* which cap I am in (0~11) */
 	  E->parallel.PROCESSORz[lev].pass[kkk] =
 	    E->parallel.loc2proc_map[cap][lx][ly][lz+((ii==5)?-1:1)];
 
 	  jj=0;  kk=0;
-	  for (k=1;k<=E->parallel.NUM_NNO[lev][m].bound[ii];k++)   {
-	    node = E->parallel.NODE[lev][m][k].bound[ii];
-	    E->parallel.EXCHANGE_NODE[lev][m][++kk].pass[kkkp] = node;
+	  for (k=1;k<=E->parallel.NUM_NNO[lev][CPPR].bound[ii];k++)   {
+	    node = E->parallel.NODE[lev][CPPR][k].bound[ii];
+	    E->parallel.EXCHANGE_NODE[lev][CPPR][++kk].pass[kkkp] = node;
 	    for(doff=1;doff<=dims;doff++)
-	      E->parallel.EXCHANGE_ID[lev][m][++jj].pass[kkkp] =
-		E->ID[lev][m][node].doff[doff];
+	      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[kkkp] =
+		E->ID[lev][CPPR][node].doff[doff];
 	  }
-	  E->parallel.NUM_NODE[lev][m].pass[kkkp] = kk;
-	  E->parallel.NUM_NEQ[lev][m].pass[kkkp] = jj;
+	  E->parallel.NUM_NODE[lev][CPPR].pass[kkkp] = kk;
+	  E->parallel.NUM_NEQ[lev][CPPR].pass[kkkp] = jj;
 	  E->parallel.NUM_NODEz[lev].pass[kkk] += kk;
 	  E->parallel.NUM_NEQz[lev].pass[kkk] += jj;
 	}
@@ -720,15 +720,15 @@ void full_parallel_communication_routs_v(E)
     for(lev=E->mesh.gridmax;lev>=E->mesh.gridmin;lev--) {
       fprintf(E->fp_out,"output_communication route surface for lev=%d \n",lev);
       for (m=1;m<=E->sphere.caps_per_proc;m++)  {
-	fprintf(E->fp_out,"  me= %d cap=%d pass  %d \n",E->parallel.me,E->sphere.capid[m],E->parallel.TNUM_PASS[lev][m]);
-	for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
-	  fprintf(E->fp_out,"proc %d and pass  %d to proc %d with %d eqn and %d node\n",E->parallel.me,k,E->parallel.PROCESSOR[lev][m].pass[k],E->parallel.NUM_NEQ[lev][m].pass[k],E->parallel.NUM_NODE[lev][m].pass[k]);
+	fprintf(E->fp_out,"  me= %d cap=%d pass  %d \n",E->parallel.me,E->sphere.capid[CPPR],E->parallel.TNUM_PASS[lev][CPPR]);
+	for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
+	  fprintf(E->fp_out,"proc %d and pass  %d to proc %d with %d eqn and %d node\n",E->parallel.me,k,E->parallel.PROCESSOR[lev][CPPR].pass[k],E->parallel.NUM_NEQ[lev][CPPR].pass[k],E->parallel.NUM_NODE[lev][CPPR].pass[k]);
 	  fprintf(E->fp_out,"Eqn:\n");  
-	  for (ii=1;ii<=E->parallel.NUM_NEQ[lev][m].pass[k];ii++)  
-	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_ID[lev][m][ii].pass[k]);  
+	  for (ii=1;ii<=E->parallel.NUM_NEQ[lev][CPPR].pass[k];ii++)  
+	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_ID[lev][CPPR][ii].pass[k]);  
 	  fprintf(E->fp_out,"Node:\n");  
-	  for (ii=1;ii<=E->parallel.NUM_NODE[lev][m].pass[k];ii++)  
-	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_NODE[lev][m][ii].pass[k]);  
+	  for (ii=1;ii<=E->parallel.NUM_NODE[lev][CPPR].pass[k];ii++)  
+	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_NODE[lev][CPPR][ii].pass[k]);  
 	}
       }
 
@@ -738,11 +738,11 @@ void full_parallel_communication_routs_v(E)
 	kkkp = k + E->sphere.max_connections;
 	fprintf(E->fp_out,"proc %d and pass  %d to proc %d\n",E->parallel.me,k,E->parallel.PROCESSORz[lev].pass[k]);
 	for (m=1;m<=E->sphere.caps_per_proc;m++)  {
-	  fprintf(E->fp_out,"cap=%d eqn=%d node=%d\n",E->sphere.capid[m],E->parallel.NUM_NEQ[lev][m].pass[kkkp],E->parallel.NUM_NODE[lev][m].pass[kkkp]);
-	  for (ii=1;ii<=E->parallel.NUM_NEQ[lev][m].pass[kkkp];ii++) 
-	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_ID[lev][m][ii].pass[kkkp]); 
-	  for (ii=1;ii<=E->parallel.NUM_NODE[lev][m].pass[kkkp];ii++) 
-	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_NODE[lev][m][ii].pass[kkkp]); 
+	  fprintf(E->fp_out,"cap=%d eqn=%d node=%d\n",E->sphere.capid[CPPR],E->parallel.NUM_NEQ[lev][CPPR].pass[kkkp],E->parallel.NUM_NODE[lev][CPPR].pass[kkkp]);
+	  for (ii=1;ii<=E->parallel.NUM_NEQ[lev][CPPR].pass[kkkp];ii++) 
+	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_ID[lev][CPPR][ii].pass[kkkp]); 
+	  for (ii=1;ii<=E->parallel.NUM_NODE[lev][CPPR].pass[kkkp];ii++) 
+	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_NODE[lev][CPPR][ii].pass[kkkp]); 
 	}
       }
     }
@@ -780,27 +780,27 @@ void full_parallel_communication_routs_s(E)
     noy = E->lmesh.NOY[lev];
 
     for(m=1;m<=E->sphere.caps_per_proc;m++)    {
-      j = E->sphere.capid[m];
+      j = E->sphere.capid[CPPR];
 
-      for (kkk=1;kkk<=E->parallel.TNUM_PASS[lev][m];kkk++) {
+      for (kkk=1;kkk<=E->parallel.TNUM_PASS[lev][CPPR];kkk++) {
         if (kkk<=4) {  /* first 4 communications are for XZ and YZ planes */
           ii = kkk;
-          E->parallel.NUM_sNODE[lev][m].pass[kkk] =
-                           E->parallel.NUM_NNO[lev][m].bound[ii]/noz;
+          E->parallel.NUM_sNODE[lev][CPPR].pass[kkk] =
+                           E->parallel.NUM_NNO[lev][CPPR].bound[ii]/noz;
 
-          for (k=1;k<=E->parallel.NUM_sNODE[lev][m].pass[kkk];k++)   {
+          for (k=1;k<=E->parallel.NUM_sNODE[lev][CPPR].pass[kkk];k++)   {
             lnode = k;
-            node = (E->parallel.NODE[lev][m][lnode].bound[ii]-1)/noz + 1;
-            E->parallel.EXCHANGE_sNODE[lev][m][k].pass[kkk] = node;
+            node = (E->parallel.NODE[lev][CPPR][lnode].bound[ii]-1)/noz + 1;
+            E->parallel.EXCHANGE_sNODE[lev][CPPR][k].pass[kkk] = node;
             }  /* end for node k */
           }      /* end for first 4 communications */
 
         else  {         /* the last FOUR communications are for lines */
-          E->parallel.NUM_sNODE[lev][m].pass[kkk]=1;
+          E->parallel.NUM_sNODE[lev][CPPR].pass[kkk]=1;
 
-          for (k=1;k<=E->parallel.NUM_sNODE[lev][m].pass[kkk];k++)   {
-            node = E->parallel.EXCHANGE_NODE[lev][m][k].pass[kkk]/noz + 1;
-            E->parallel.EXCHANGE_sNODE[lev][m][k].pass[kkk] = node;
+          for (k=1;k<=E->parallel.NUM_sNODE[lev][CPPR].pass[kkk];k++)   {
+            node = E->parallel.EXCHANGE_NODE[lev][CPPR][k].pass[kkk]/noz + 1;
+            E->parallel.EXCHANGE_sNODE[lev][CPPR][k].pass[kkk] = node;
             }  /* end for node k */
           }  /* end for the last FOUR communications */
 
@@ -813,12 +813,12 @@ void full_parallel_communication_routs_s(E)
     for(lev=E->mesh.gridmax;lev>=E->mesh.gridmin;lev--) {
       fprintf(E->fp_out,"output_communication route surface for lev=%d \n",lev);
       for (m=1;m<=E->sphere.caps_per_proc;m++)  {
-	fprintf(E->fp_out,"  me= %d cap=%d pass  %d \n",E->parallel.me,E->sphere.capid[m],E->parallel.TNUM_PASS[lev][m]);
-	for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++) {
-	  fprintf(E->fp_out,"proc %d and pass  %d to proc %d with %d node\n",E->parallel.me,k,E->parallel.PROCESSOR[lev][m].pass[k],E->parallel.NUM_sNODE[lev][m].pass[k]);
+	fprintf(E->fp_out,"  me= %d cap=%d pass  %d \n",E->parallel.me,E->sphere.capid[CPPR],E->parallel.TNUM_PASS[lev][CPPR]);
+	for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++) {
+	  fprintf(E->fp_out,"proc %d and pass  %d to proc %d with %d node\n",E->parallel.me,k,E->parallel.PROCESSOR[lev][CPPR].pass[k],E->parallel.NUM_sNODE[lev][CPPR].pass[k]);
 	  fprintf(E->fp_out,"Node:\n");
-	  for (ii=1;ii<=E->parallel.NUM_sNODE[lev][m].pass[k];ii++)
-	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_sNODE[lev][m][ii].pass[k]);
+	  for (ii=1;ii<=E->parallel.NUM_sNODE[lev][CPPR].pass[k];ii++)
+	    fprintf(E->fp_out,"%d %d\n",ii,E->parallel.EXCHANGE_sNODE[lev][CPPR][ii].pass[k]);
 	}
       }
 
@@ -841,17 +841,17 @@ static void face_eqn_node_to_pass(E,lev,m,npass,bd)
   int jj,kk,node,doff;
   const int dims=E->mesh.nsd;
 
-  E->parallel.NUM_NODE[lev][m].pass[npass] = E->parallel.NUM_NNO[lev][m].bound[bd];
+  E->parallel.NUM_NODE[lev][CPPR].pass[npass] = E->parallel.NUM_NNO[lev][CPPR].bound[bd];
 
   jj = 0;
-  for (kk=1;kk<=E->parallel.NUM_NODE[lev][m].pass[npass];kk++)   {
-    node = E->parallel.NODE[lev][m][kk].bound[bd];
-    E->parallel.EXCHANGE_NODE[lev][m][kk].pass[npass] = node;
+  for (kk=1;kk<=E->parallel.NUM_NODE[lev][CPPR].pass[npass];kk++)   {
+    node = E->parallel.NODE[lev][CPPR][kk].bound[bd];
+    E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[npass] = node;
     for(doff=1;doff<=dims;doff++)
-      E->parallel.EXCHANGE_ID[lev][m][++jj].pass[npass] = E->ID[lev][m][node].doff[doff];
+      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][CPPR][node].doff[doff];
   }
 
-  E->parallel.NUM_NEQ[lev][m].pass[npass] = jj;
+  E->parallel.NUM_NEQ[lev][CPPR].pass[npass] = jj;
 
   return;
 }
@@ -866,17 +866,17 @@ static void line_eqn_node_to_pass(E,lev,m,npass,num_node,offset,stride)
   int jj,kk,node,doff;
   const int dims=E->mesh.nsd;
 
-  E->parallel.NUM_NODE[lev][m].pass[npass] = num_node;
+  E->parallel.NUM_NODE[lev][CPPR].pass[npass] = num_node;
 
   jj=0;
-  for (kk=1;kk<=E->parallel.NUM_NODE[lev][m].pass[npass];kk++)   {
+  for (kk=1;kk<=E->parallel.NUM_NODE[lev][CPPR].pass[npass];kk++)   {
     node = (kk-1)*stride + offset;
-    E->parallel.EXCHANGE_NODE[lev][m][kk].pass[npass] = node;
+    E->parallel.EXCHANGE_NODE[lev][CPPR][kk].pass[npass] = node;
     for(doff=1;doff<=dims;doff++)
-      E->parallel.EXCHANGE_ID[lev][m][++jj].pass[npass] = E->ID[lev][m][node].doff[doff];
+      E->parallel.EXCHANGE_ID[lev][CPPR][++jj].pass[npass] = E->ID[lev][CPPR][node].doff[doff];
   }
 
-  E->parallel.NUM_NEQ[lev][m].pass[npass] = jj;
+  E->parallel.NUM_NEQ[lev][CPPR].pass[npass] = jj;
 
   return;
 }
@@ -917,8 +917,8 @@ void full_exchange_id_d(E, U, lev)
  MPI_Request request[100];
 
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
-     sizeofk = (1+E->parallel.NUM_NEQ[lev][m].pass[k])*sizeof(double);
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
+     sizeofk = (1+E->parallel.NUM_NEQ[lev][CPPR].pass[k])*sizeof(double);
      S[k]=(double *)malloc( sizeofk );
      R[k]=(double *)malloc( sizeofk );
    }
@@ -934,35 +934,35 @@ void full_exchange_id_d(E, U, lev)
 
   idb=0;
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)     {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)     {
 
-      for (j=1;j<=E->parallel.NUM_NEQ[lev][m].pass[k];j++) {
-        S[k][j-1] = U[m][ E->parallel.EXCHANGE_ID[lev][m][j].pass[k] ];
+      for (j=1;j<=E->parallel.NUM_NEQ[lev][CPPR].pass[k];j++) {
+        S[k][j-1] = U[CPPR][ E->parallel.EXCHANGE_ID[lev][CPPR][j].pass[k] ];
 	}
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k] != E->parallel.me &&
-	  E->parallel.PROCESSOR[lev][m].pass[k] != -1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k] != E->parallel.me &&
+	  E->parallel.PROCESSOR[lev][CPPR].pass[k] != -1) {
 	  idb ++;
-          MPI_Isend(S[k], E->parallel.NUM_NEQ[lev][m].pass[k], MPI_DOUBLE,
-		    E->parallel.PROCESSOR[lev][m].pass[k], 1,
+          MPI_Isend(S[k], E->parallel.NUM_NEQ[lev][CPPR].pass[k], MPI_DOUBLE,
+		    E->parallel.PROCESSOR[lev][CPPR].pass[k], 1,
 		    E->parallel.world, &request[idb-1]);
       }
     }           /* for k */
   }     /* for m */         /* finish sending */
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k] != E->parallel.me &&
-	  E->parallel.PROCESSOR[lev][m].pass[k] != -1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k] != E->parallel.me &&
+	  E->parallel.PROCESSOR[lev][CPPR].pass[k] != -1) {
          idb++;
-	 MPI_Irecv(R[k],E->parallel.NUM_NEQ[lev][m].pass[k], MPI_DOUBLE,
-		   E->parallel.PROCESSOR[lev][m].pass[k], 1,
+	 MPI_Irecv(R[k],E->parallel.NUM_NEQ[lev][CPPR].pass[k], MPI_DOUBLE,
+		   E->parallel.PROCESSOR[lev][CPPR].pass[k], 1,
 		   E->parallel.world, &request[idb-1]);
       }
       else {
-	for (j=1;j<=E->parallel.NUM_NEQ[lev][m].pass[k];j++)
-           U[m][ E->parallel.EXCHANGE_ID[lev][m][j].pass[k] ] += S[k][j-1];
+	for (j=1;j<=E->parallel.NUM_NEQ[lev][CPPR].pass[k];j++)
+           U[CPPR][ E->parallel.EXCHANGE_ID[lev][CPPR][j].pass[k] ] += S[k][j-1];
       }
     }      /* for k */
   }     /* for m */         /* finish receiving */
@@ -970,12 +970,12 @@ void full_exchange_id_d(E, U, lev)
   MPI_Waitall(idb,request,status);
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k] != E->parallel.me &&
-	  E->parallel.PROCESSOR[lev][m].pass[k] != -1) {
-	for (j=1;j<=E->parallel.NUM_NEQ[lev][m].pass[k];j++)
-	  U[m][ E->parallel.EXCHANGE_ID[lev][m][j].pass[k] ] += R[k][j-1];
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k] != E->parallel.me &&
+	  E->parallel.PROCESSOR[lev][CPPR].pass[k] != -1) {
+	for (j=1;j<=E->parallel.NUM_NEQ[lev][CPPR].pass[k];j++)
+	  U[CPPR][ E->parallel.EXCHANGE_ID[lev][CPPR][j].pass[k] ] += R[k][j-1];
       }
     }
   }
@@ -987,8 +987,8 @@ void full_exchange_id_d(E, U, lev)
     kk = k + E->sphere.max_connections;
 
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NEQ[lev][m].pass[kk];j++)
-        SV[jj++] = U[m][ E->parallel.EXCHANGE_ID[lev][m][j].pass[kk] ];
+      for (j=1;j<=E->parallel.NUM_NEQ[lev][CPPR].pass[kk];j++)
+        SV[jj++] = U[CPPR][ E->parallel.EXCHANGE_ID[lev][CPPR][j].pass[kk] ];
 
     MPI_Sendrecv(SV, E->parallel.NUM_NEQz[lev].pass[k], MPI_DOUBLE,
 		 E->parallel.PROCESSORz[lev].pass[k], 1,
@@ -998,12 +998,12 @@ void full_exchange_id_d(E, U, lev)
 
     jj = 0;
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NEQ[lev][m].pass[kk];j++)
-        U[m][ E->parallel.EXCHANGE_ID[lev][m][j].pass[kk] ] += RV[jj++];
+      for (j=1;j<=E->parallel.NUM_NEQ[lev][CPPR].pass[kk];j++)
+        U[CPPR][ E->parallel.EXCHANGE_ID[lev][CPPR][j].pass[kk] ] += RV[jj++];
   }
 
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
      free((void*) S[k]);
      free((void*) R[k]);
    }
@@ -1034,9 +1034,9 @@ static void exchange_node_d(E, U, lev)
 
  kk=0;
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
      ++kk;
-     sizeofk = (1+E->parallel.NUM_NODE[lev][m].pass[k])*sizeof(double);
+     sizeofk = (1+E->parallel.NUM_NODE[lev][CPPR].pass[k])*sizeof(double);
      S[kk]=(double *)malloc( sizeofk );
      R[kk]=(double *)malloc( sizeofk );
    }
@@ -1053,38 +1053,38 @@ static void exchange_node_d(E, U, lev)
 
   idb=0;
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)     {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)     {
       kk=k;
 
-      for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-        S[kk][j-1] = U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ];
+      for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[k];j++)
+        S[kk][j-1] = U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ];
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me) {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me) {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
          idb ++;
-        MPI_Isend(S[kk],E->parallel.NUM_NODE[lev][m].pass[k],MPI_DOUBLE,
-             E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+        MPI_Isend(S[kk],E->parallel.NUM_NODE[lev][CPPR].pass[k],MPI_DOUBLE,
+             E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
 	}
          }
       }           /* for k */
     }     /* for m */         /* finish sending */
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)  {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)  {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
          idb++;
-         MPI_Irecv(R[kk],E->parallel.NUM_NODE[lev][m].pass[k],MPI_DOUBLE,
-         E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+         MPI_Irecv(R[kk],E->parallel.NUM_NODE[lev][CPPR].pass[k],MPI_DOUBLE,
+         E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
          }
       }
 
       else   {
 	kk=k;
-         for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-           U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ] += S[kk][j-1];
+         for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[k];j++)
+           U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ] += S[kk][j-1];
          }
       }      /* for k */
     }     /* for m */         /* finish receiving */
@@ -1092,13 +1092,13 @@ static void exchange_node_d(E, U, lev)
   MPI_Waitall(idb,request,status);
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
-        for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-           U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ] += R[kk][j-1];
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
+        for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[k];j++)
+           U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ] += R[kk][j-1];
       }
     }
     }
@@ -1110,8 +1110,8 @@ static void exchange_node_d(E, U, lev)
     kk = k + E->sphere.max_connections;
 
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[kk];j++)
-        SV[jj++] = U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[kk] ];
+      for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[kk];j++)
+        SV[jj++] = U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[kk] ];
 
     MPI_Sendrecv(SV,E->parallel.NUM_NODEz[lev].pass[k],MPI_DOUBLE,
              E->parallel.PROCESSORz[lev].pass[k],1,
@@ -1120,13 +1120,13 @@ static void exchange_node_d(E, U, lev)
 
     jj = 0;
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[kk];j++)
-        U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[kk] ] += RV[jj++];
+      for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[kk];j++)
+        U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[kk] ] += RV[jj++];
     }
 
   kk = 0;
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
      kk++;
      free((void*) S[kk]);
      free((void*) R[kk]);
@@ -1159,9 +1159,9 @@ static void exchange_node_f(E, U, lev)
 
  kk=0;
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
      ++kk;
-     sizeofk = (1+E->parallel.NUM_NODE[lev][m].pass[k])*sizeof(float);
+     sizeofk = (1+E->parallel.NUM_NODE[lev][CPPR].pass[k])*sizeof(float);
      S[kk]=(float *)malloc( sizeofk );
      R[kk]=(float *)malloc( sizeofk );
    }
@@ -1178,38 +1178,38 @@ static void exchange_node_f(E, U, lev)
 
   idb=0;
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)     {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)     {
       kk=k;
 
       for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-        S[kk][j-1] = U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ];
+        S[kk][j-1] = U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ];
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me) {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me) {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
          idb ++;
-        MPI_Isend(S[kk],E->parallel.NUM_NODE[lev][m].pass[k],MPI_FLOAT,
-             E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+        MPI_Isend(S[kk],E->parallel.NUM_NODE[lev][CPPR].pass[k],MPI_FLOAT,
+             E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
 	}
          }
       }           /* for k */
     }     /* for m */         /* finish sending */
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)  {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)  {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
          idb++;
-         MPI_Irecv(R[kk],E->parallel.NUM_NODE[lev][m].pass[k],MPI_FLOAT,
-         E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+         MPI_Irecv(R[kk],E->parallel.NUM_NODE[lev][CPPR].pass[k],MPI_FLOAT,
+         E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
          }
       }
 
       else   {
 	kk=k;
-         for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-           U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ] += S[kk][j-1];
+         for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[k];j++)
+           U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ] += S[kk][j-1];
          }
       }      /* for k */
     }     /* for m */         /* finish receiving */
@@ -1217,13 +1217,13 @@ static void exchange_node_f(E, U, lev)
   MPI_Waitall(idb,request,status);
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
-        for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[k];j++)
-           U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[k] ] += R[kk][j-1];
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
+        for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[k];j++)
+           U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[k] ] += R[kk][j-1];
       }
     }
     }
@@ -1235,8 +1235,8 @@ static void exchange_node_f(E, U, lev)
     kk = k + E->sphere.max_connections;
 
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[kk];j++)
-        SV[jj++] = U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[kk] ];
+      for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[kk];j++)
+        SV[jj++] = U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[kk] ];
 
     MPI_Sendrecv(SV,E->parallel.NUM_NODEz[lev].pass[k],MPI_FLOAT,
              E->parallel.PROCESSORz[lev].pass[k],1,
@@ -1245,13 +1245,13 @@ static void exchange_node_f(E, U, lev)
 
     jj = 0;
     for(m=1;m<=E->sphere.caps_per_proc;m++)
-      for (j=1;j<=E->parallel.NUM_NODE[lev][m].pass[kk];j++)
-        U[m][ E->parallel.EXCHANGE_NODE[lev][m][j].pass[kk] ] += RV[jj++];
+      for (j=1;j<=E->parallel.NUM_NODE[lev][CPPR].pass[kk];j++)
+        U[CPPR][ E->parallel.EXCHANGE_NODE[lev][CPPR][j].pass[kk] ] += RV[jj++];
     }
 
   kk = 0;
  for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-   for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)  {
+   for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)  {
      kk++;
      free((void*) S[kk]);
      free((void*) R[kk]);
@@ -1280,9 +1280,9 @@ void full_exchange_snode_f(struct All_variables *E, float **U1,
 
    kk=0;
    for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-     for (k=1;k<=E->parallel.TNUM_PASS[E->mesh.levmax][m];k++)  {
+     for (k=1;k<=E->parallel.TNUM_PASS[E->mesh.levmax][CPPR];k++)  {
        ++kk;
-       sizeofk = (1+2*E->parallel.NUM_sNODE[E->mesh.levmax][m].pass[k])*sizeof(float);
+       sizeofk = (1+2*E->parallel.NUM_sNODE[E->mesh.levmax][CPPR].pass[k])*sizeof(float);
        S[kk]=(float *)malloc( sizeofk );
        R[kk]=(float *)malloc( sizeofk );
        }
@@ -1291,21 +1291,21 @@ void full_exchange_snode_f(struct All_variables *E, float **U1,
   idb=0;
   /* sending */
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)     {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)     {
       kk=k;
 
       /* pack */
-      for (j=1;j<=E->parallel.NUM_sNODE[lev][m].pass[k];j++)  {
-        S[kk][j-1] = U1[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ];
-        S[kk][j-1+E->parallel.NUM_sNODE[lev][m].pass[k]]
-                   = U2[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ];
+      for (j=1;j<=E->parallel.NUM_sNODE[lev][CPPR].pass[k];j++)  {
+        S[kk][j-1] = U1[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ];
+        S[kk][j-1+E->parallel.NUM_sNODE[lev][CPPR].pass[k]]
+                   = U2[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ];
         }
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me) {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me) {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
          idb ++;
-         MPI_Isend(S[kk],2*E->parallel.NUM_sNODE[lev][m].pass[k],MPI_FLOAT,
-             E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+         MPI_Isend(S[kk],2*E->parallel.NUM_sNODE[lev][CPPR].pass[k],MPI_FLOAT,
+             E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
          }
       }
       }           /* for k */
@@ -1313,24 +1313,24 @@ void full_exchange_snode_f(struct All_variables *E, float **U1,
 
   /* receiving */
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)  {
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)  {
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
 
          idb ++;
-         MPI_Irecv(R[kk],2*E->parallel.NUM_sNODE[lev][m].pass[k],MPI_FLOAT,
-           E->parallel.PROCESSOR[lev][m].pass[k],1,E->parallel.world,&request[idb-1]);
+         MPI_Irecv(R[kk],2*E->parallel.NUM_sNODE[lev][CPPR].pass[k],MPI_FLOAT,
+           E->parallel.PROCESSOR[lev][CPPR].pass[k],1,E->parallel.world,&request[idb-1]);
          }
       }
 
       else   {
 	kk=k;
-         for (j=1;j<=E->parallel.NUM_sNODE[lev][m].pass[k];j++)     {
-           U1[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ] += S[kk][j-1];
-           U2[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ] +=
-                               S[kk][j-1+E->parallel.NUM_sNODE[lev][m].pass[k]];
+         for (j=1;j<=E->parallel.NUM_sNODE[lev][CPPR].pass[k];j++)     {
+           U1[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ] += S[kk][j-1];
+           U2[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ] +=
+                               S[kk][j-1+E->parallel.NUM_sNODE[lev][CPPR].pass[k]];
            }
          }
       }      /* for k */
@@ -1339,16 +1339,16 @@ void full_exchange_snode_f(struct All_variables *E, float **U1,
   MPI_Waitall(idb,request,status);
 
   for (m=1;m<=E->sphere.caps_per_proc;m++)   {
-    for (k=1;k<=E->parallel.TNUM_PASS[lev][m];k++)   {
+    for (k=1;k<=E->parallel.TNUM_PASS[lev][CPPR];k++)   {
       kk=k;
 
       /* unpack */
-      if (E->parallel.PROCESSOR[lev][m].pass[k]!=E->parallel.me)
-	if (E->parallel.PROCESSOR[lev][m].pass[k]!=-1) {
-        for (j=1;j<=E->parallel.NUM_sNODE[lev][m].pass[k];j++)    {
-           U1[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ] += R[kk][j-1];
-           U2[m][ E->parallel.EXCHANGE_sNODE[lev][m][j].pass[k] ] +=
-                              R[kk][j-1+E->parallel.NUM_sNODE[lev][m].pass[k]];
+      if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=E->parallel.me)
+	if (E->parallel.PROCESSOR[lev][CPPR].pass[k]!=-1) {
+        for (j=1;j<=E->parallel.NUM_sNODE[lev][CPPR].pass[k];j++)    {
+           U1[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ] += R[kk][j-1];
+           U2[CPPR][ E->parallel.EXCHANGE_sNODE[lev][CPPR][j].pass[k] ] +=
+                              R[kk][j-1+E->parallel.NUM_sNODE[lev][CPPR].pass[k]];
            }
 	}
       }
@@ -1356,7 +1356,7 @@ void full_exchange_snode_f(struct All_variables *E, float **U1,
 
   kk=0;
   for (m=1;m<=E->sphere.caps_per_proc;m++)    {
-    for (k=1;k<=E->parallel.TNUM_PASS[E->mesh.levmax][m];k++)  {
+    for (k=1;k<=E->parallel.TNUM_PASS[E->mesh.levmax][CPPR];k++)  {
       ++kk;
       free((void*) S[kk]);
       free((void*) R[kk]);



More information about the CIG-COMMITS mailing list