[cig-commits] r11329 - in mc/3D/CitcomS/trunk: examples lib visual

tan2 at geodynamics.org tan2 at geodynamics.org
Wed Mar 5 13:04:21 PST 2008


Author: tan2
Date: 2008-03-05 13:04:21 -0800 (Wed, 05 Mar 2008)
New Revision: 11329

Modified:
   mc/3D/CitcomS/trunk/examples/Makefile.am
   mc/3D/CitcomS/trunk/lib/Full_sphere_related.c
   mc/3D/CitcomS/trunk/lib/Full_version_dependent.c
   mc/3D/CitcomS/trunk/lib/General_matrix_functions.c
   mc/3D/CitcomS/trunk/lib/Instructions.c
   mc/3D/CitcomS/trunk/lib/Obsolete.c
   mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c
   mc/3D/CitcomS/trunk/lib/Tracer_setup.c
   mc/3D/CitcomS/trunk/lib/global_defs.h
   mc/3D/CitcomS/trunk/visual/Makefile.am
Log:
Revert r11328

Modified: mc/3D/CitcomS/trunk/examples/Makefile.am
===================================================================
--- mc/3D/CitcomS/trunk/examples/Makefile.am	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/examples/Makefile.am	2008-03-05 21:04:21 UTC (rev 11329)
@@ -33,6 +33,65 @@
 	Cookbook4/coor.dat \
 	Cookbook5/cookbook5.cfg \
 	Cookbook5/coor.dat \
+	Cookbook5/ic/cookbook5.velo.0.0 \
+	Cookbook5/ic/cookbook5.velo.1.0 \
+	Cookbook5/velocity/bvel.dat0 \
+	Cookbook5/velocity/bvel.dat1 \
+	Cookbook5/velocity/bvel.dat10 \
+	Cookbook5/velocity/bvel.dat11 \
+	Cookbook5/velocity/bvel.dat12 \
+	Cookbook5/velocity/bvel.dat13 \
+	Cookbook5/velocity/bvel.dat14 \
+	Cookbook5/velocity/bvel.dat15 \
+	Cookbook5/velocity/bvel.dat16 \
+	Cookbook5/velocity/bvel.dat17 \
+	Cookbook5/velocity/bvel.dat18 \
+	Cookbook5/velocity/bvel.dat19 \
+	Cookbook5/velocity/bvel.dat2 \
+	Cookbook5/velocity/bvel.dat20 \
+	Cookbook5/velocity/bvel.dat21 \
+	Cookbook5/velocity/bvel.dat22 \
+	Cookbook5/velocity/bvel.dat23 \
+	Cookbook5/velocity/bvel.dat24 \
+	Cookbook5/velocity/bvel.dat25 \
+	Cookbook5/velocity/bvel.dat26 \
+	Cookbook5/velocity/bvel.dat27 \
+	Cookbook5/velocity/bvel.dat28 \
+	Cookbook5/velocity/bvel.dat29 \
+	Cookbook5/velocity/bvel.dat3 \
+	Cookbook5/velocity/bvel.dat30 \
+	Cookbook5/velocity/bvel.dat31 \
+	Cookbook5/velocity/bvel.dat32 \
+	Cookbook5/velocity/bvel.dat33 \
+	Cookbook5/velocity/bvel.dat34 \
+	Cookbook5/velocity/bvel.dat35 \
+	Cookbook5/velocity/bvel.dat36 \
+	Cookbook5/velocity/bvel.dat37 \
+	Cookbook5/velocity/bvel.dat38 \
+	Cookbook5/velocity/bvel.dat39 \
+	Cookbook5/velocity/bvel.dat4 \
+	Cookbook5/velocity/bvel.dat40 \
+	Cookbook5/velocity/bvel.dat41 \
+	Cookbook5/velocity/bvel.dat42 \
+	Cookbook5/velocity/bvel.dat43 \
+	Cookbook5/velocity/bvel.dat44 \
+	Cookbook5/velocity/bvel.dat45 \
+	Cookbook5/velocity/bvel.dat46 \
+	Cookbook5/velocity/bvel.dat47 \
+	Cookbook5/velocity/bvel.dat48 \
+	Cookbook5/velocity/bvel.dat49 \
+	Cookbook5/velocity/bvel.dat5 \
+	Cookbook5/velocity/bvel.dat50 \
+	Cookbook5/velocity/bvel.dat51 \
+	Cookbook5/velocity/bvel.dat52 \
+	Cookbook5/velocity/bvel.dat53 \
+	Cookbook5/velocity/bvel.dat54 \
+	Cookbook5/velocity/bvel.dat55 \
+	Cookbook5/velocity/bvel.dat56 \
+	Cookbook5/velocity/bvel.dat6 \
+	Cookbook5/velocity/bvel.dat7 \
+	Cookbook5/velocity/bvel.dat8 \
+	Cookbook5/velocity/bvel.dat9 \
 	Cookbook6/cookbook6.cfg \
 	Cookbook6/coord.dat \
 	Cookbook6/README \
@@ -40,11 +99,21 @@
 	Cookbook8/cookbook8.cfg \
 	Cookbook8/coord.dat \
     Cookbook9/cookbook9.cfg \
+    Cookbook9/ic/cntn.velo.0.0 \
+    Cookbook9/ic/cntn.velo.1.0 \
+    Cookbook9/ic/embd.velo.0.0 \
+    Cookbook9/ic/embd.velo.1.0 \
+    Cookbook9/velocity/bvel.dat0 \
+    Cookbook9/velocity/bvel.dat1 \
 	example0.cfg \
 	example1.cfg \
 	Full/input.sample \
 	Full/machine.sample \
+	Full/velbc/README \
+	Full/velbc/velbc_full.tar.gz \
 	Regional/input.sample \
-	Regional/machines.sample
+	Regional/machines.sample \
+	Regional/velbc/README \
+	Regional/velbc/velbc_regional.tar.gz
 
 ## end of Makefile.am

Modified: mc/3D/CitcomS/trunk/lib/Full_sphere_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_sphere_related.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Full_sphere_related.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -154,7 +154,7 @@
 
 void full_coord_of_cap(struct All_variables *E, int m, int icap)
 {
-  int i, j, k, lev, temp, elx, ely;
+  int i, j, k, lev, temp, elx, ely, nox, noy, noz;
   int node, snode, ns, step;
   int lelx, lely, lnox, lnoy;
   int lvnox, lvnoy, lvnoz;
@@ -232,6 +232,8 @@
      /* # of elements/nodes per cap */
      elx = E->lmesh.ELX[lev]*E->parallel.nprocx;
      ely = E->lmesh.ELY[lev]*E->parallel.nprocy;
+     nox = elx+1;
+     noy = ely+1;
 
      /* # of elements/nodes per processor */
      lelx = E->lmesh.ELX[lev];

Modified: mc/3D/CitcomS/trunk/lib/Full_version_dependent.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_version_dependent.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Full_version_dependent.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -176,6 +176,7 @@
   FILE *fp1;
 
   void full_coord_of_cap();
+  void rotate_mesh ();
   void compute_angle_surf_area ();
 
   rr = (double *)  malloc((E->mesh.noz+1)*sizeof(double));

Modified: mc/3D/CitcomS/trunk/lib/General_matrix_functions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/General_matrix_functions.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/General_matrix_functions.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -41,6 +41,148 @@
   {0, 1,-1, 1} };
 
 
+/*=====================================================================
+  Variable dimension matrix allocation  function from numerical recipes
+  Note: ANSII consistency requires some additional features !
+  =====================================================================  */
+
+double **dmatrix(nrl,nrh,ncl,nch)
+     int nrl,nrh,ncl,nch;
+{
+  int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
+  double **m;
+
+  /* allocate pointer to rows  */
+  m=(double **) malloc((nrow+1)* sizeof(double *));
+  m+=1;
+  m-= nrl;
+
+  /*  allocate rows and set the pointers accordingly   */
+  m[nrl] = (double *) malloc((nrow*ncol+1)* sizeof(double));
+  m[nrl] += 1;
+  m[nrl] -= ncl;
+
+  for(i=nrl+1;i<=nrh;i++)
+     m[i] = m[i-1] + ncol;
+
+  return(m);		}
+
+
+float **fmatrix(nrl,nrh,ncl,nch)
+     int nrl,nrh,ncl,nch;
+{
+  int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
+  float **m;
+
+  /* allocate pointer to rows  */
+  m=(float **) malloc((unsigned)((nrow+1)* sizeof(float *)));
+  m+=1;
+  m-= nrl;
+
+  /*  allocate rows and set the pointers accordingly   */
+  m[nrl] = (float *) malloc((unsigned)((nrow*ncol+1)* sizeof(float)));
+  m[nrl] += 1;
+  m[nrl] -= ncl;
+
+  for(i=nrl+1;i<=nrh;i++)
+     m[i] = m[i-1] + ncol;
+
+  return(m);		}
+
+
+void dfree_matrix(m,nrl,nrh,ncl,nch)
+     double **m;
+     int nrl,nrh,ncl,nch;
+{
+  int i;
+  for(i=nrh;i>=nrl;i--)
+    free((void *)(m[i] + ncl));
+  free((void *) (m+nrl));
+  return;
+}
+
+void ffree_matrix(m,nrl,nrh,ncl,nch)
+     float **m;
+     int nrl,nrh,ncl,nch;
+{
+  int i;
+  for(i=nrh;i>=nrl;i--)
+    free((void *)(m[i] + ncl));
+  free((void *) (m+nrl));
+  return;
+}
+
+/*=============================================================
+  Functions to allocate/remove space for variable sized vector.
+  =============================================================  */
+
+double *dvector(nl,nh)
+     int nl,nh;
+{
+  double *v;
+  v=(double *) malloc((unsigned) ( nh - nl +1)* sizeof(double));
+  return( v-nl );  }
+
+float *fvector(nl,nh)
+     int nl,nh;
+{
+  float *v;
+  v=(float *) malloc((unsigned) ( nh - nl +1)* sizeof(float));
+  return( v-nl );  }
+
+void dfree_vector(v,nl,nh)
+     double *v;
+     int nl,nh;
+{
+  free((char*) (v+nl));	}
+
+void ffree_vector(v,nl,nh)
+     float *v;
+     int nl,nh;
+{
+  free((char*) (v+nl));	}
+
+int *sivector(nl,nh)
+     int nl,nh;
+{
+  int *v;
+  v=(int*) malloc((unsigned)(nh-nl +1) * sizeof(int));
+  return (v-nl);
+}
+
+void sifree_vector(v,nl,nh)
+     int *v;
+     int nl,nh;
+{ free((char *) (v+nl));    }
+
+
+
+void dvcopy(E,A,B,a,b)
+     struct All_variables *E;
+     double **A,**B;
+     int a,b;
+
+{   int i,m;
+
+  for (m=1;m<=E->sphere.caps_per_proc;m++)
+    for(i=a;i<=b;i++)
+      A[m][i] = B[m][i];
+
+    return; }
+
+void vcopy(A,B,a,b)
+     float *A,*B;
+     int a,b;
+
+{   int i;
+
+    for(i=a;i<=b;i++)
+      A[i] = B[i];
+
+    return; }
+
+
+
 /*  ===========================================================
     Iterative solver also using multigrid  ........
     ===========================================================  */
@@ -753,13 +895,36 @@
 
 }
 
+void print_elt_k(E,a)
+     struct All_variables *E;
+     double a[24*24];
 
+{ int l,ll,n;
+
+  printf("elt k is ...\n");
+
+
+  n = loc_mat_size[E->mesh.nsd];
+
+  for(l=0;l<n;l++)
+    { fprintf(stderr,"\n");fflush(stderr);
+      for(ll=0;ll<n;ll++)
+	{ fprintf(stderr,"%s%.3e ",a[ll*n+l] >= 0.0 ? "+" : "",a[ll*n+l]);
+	  fflush(stderr);
+	}
+    }
+  fprintf(stderr,"\n"); fflush(stderr);
+
+  return; }
+
+
 double cofactor(A,i,j,n)
      double A[4][4];
      int i,j,n;
 
 { int k,l,p,q;
   double determinant();
+  double **dmatrix();
 
   double B[4][4]; /* because of recursive behaviour of det/cofac, need to use
 			       new copy of B at each 'n' level of this routine */
@@ -831,6 +996,76 @@
 }
 
 
+ float area_of_4node(x1,y1,x2,y2,x3,y3,x4,y4)
+ float x1,y1,x2,y2,x3,y3,x4,y4;
+
+ {
+ float area;
+
+ area = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
+      + fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));
+
+ return area;
+ }
+
+/* =====================================*/
+ double sphere_h(l,m,t,f,ic)
+ int l,m,ic;
+ double t,f;
+ {
+
+ double plgndr_a(),sphere_hamonics;
+
+ sphere_hamonics = 0.0;
+ if (ic==0)
+    sphere_hamonics = cos(m*f)*plgndr_a(l,m,t);
+ else if (m)
+    sphere_hamonics = sin(m*f)*plgndr_a(l,m,t);
+
+ return sphere_hamonics;
+ }
+
+/* =====================================*/
+ double plgndr_a(l,m,t)
+ int l,m;
+ double t;
+ {
+
+  int i,ll;
+  double x,fact,pll,pmm,pmmp1,somx2,plgndr;
+  const double two=2.0;
+  const double one=1.0;
+
+  x = cos(t);
+  pmm=one;
+  if(m>0) {
+    somx2=sqrt((one-x)*(one+x));
+    fact = one;
+    for (i=1;i<=m;i++)   {
+      pmm = -pmm*fact*somx2;
+      fact = fact + two;
+      }
+    }
+
+  if (l==m)
+     plgndr = pmm;
+  else  {
+     pmmp1 = x*(2*m+1)*pmm;
+     if(l==m+1)
+       plgndr = pmmp1;
+     else   {
+       for (ll=m+2;ll<=l;ll++)  {
+         pll = (x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m);
+         pmm = pmmp1;
+         pmmp1 = pll;
+         }
+       plgndr = pll;
+       }
+     }
+
+ return plgndr;
+ }
+
 /* =====================================
  =====================================*/
  double modified_plgndr_a(l,m,t)
@@ -884,3 +1119,47 @@
  return plgndr;
  }
 
+ /* ===================================  */
+  double sqrt_multis(jj,ii)
+  int ii,jj;
+ {
+  int i;
+  double sqrt_multisa;
+
+  sqrt_multisa = 1.0;
+  if(jj>ii)
+    for (i=jj;i>ii;i--)
+      sqrt_multisa *= 1.0/sqrt((double)i);
+
+  return sqrt_multisa;
+  }
+
+ /* ===================================  */
+  double multis(ii)
+  int ii;
+ {
+  int i;
+  double multisa;
+
+  multisa = 1.0;
+  if (ii)
+    for (i=2;i<=ii;i++)
+      multisa *= (double)i;
+
+  return multisa;
+  }
+
+
+ /* ===================================  */
+ int int_multis(ii)
+ int ii;
+ {
+ int i,multisa;
+
+ multisa = 1;
+ if (ii)
+   for (i=2;i<=ii;i++)
+     multisa *= i;
+
+ return multisa;
+ }

Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -636,6 +636,7 @@
   E->P[j]        = (double *) malloc((npno+1)*sizeof(double));
   E->T[j]        = (double *) malloc((nno+1)*sizeof(double));
   E->NP[j]       = (float *) malloc((nno+1)*sizeof(float));
+  E->edot[j]     = (float *) malloc((nno+1)*sizeof(float));
   E->buoyancy[j] = (double *) malloc((nno+1)*sizeof(double));
 
   E->gstress[j] = (float *) malloc((6*nno+1)*sizeof(float));
@@ -644,6 +645,8 @@
   for(i=1;i<=E->mesh.nsd;i++)
       E->sphere.cap[j].TB[i] = (float *)  malloc((nno+1)*sizeof(float));
 
+  E->age[j]      = (float *)malloc((nsf+2)*sizeof(float));
+
   E->slice.tpg[j]      = (float *)malloc((nsf+2)*sizeof(float));
   E->slice.tpgb[j]     = (float *)malloc((nsf+2)*sizeof(float));
   E->slice.divg[j]     = (float *)malloc((nsf+2)*sizeof(float));
@@ -744,7 +747,13 @@
     nxyz = elx*ely;
     E->CC[i][j] =(struct CC *)  malloc((1)*sizeof(struct CC));
     E->CCX[i][j]=(struct CCX *)  malloc((1)*sizeof(struct CCX));
+    /* Test */
+    E->ELEMENT[i][j] = (unsigned int *) malloc ((nel+1)*sizeof(unsigned int));
 
+    for (k=1;k<=nel;k++)
+       E->ELEMENT[i][j][k] = 0;
+    /*ccccc*/
+
     E->elt_del[i][j] = (struct EG *) malloc((nel+1)*sizeof(struct EG));
 
     if(E->control.inv_gruneisen != 0)
@@ -840,7 +849,19 @@
     for(i=0;i<E->lmesh.neq;i++)
       E->U[j][i] = E->temp[j][i] = E->temp1[j][i] = 0.0;
 
+    if(E->control.tracer == 1)  {
+      for(i=1;i<=E->mesh.nsd;i++)     {
+        E->GV[j][i]=(float*) malloc(((E->lmesh.nno+1)*E->parallel.nproc+1)*sizeof(float));
+        E->GV1[j][i]=(float*) malloc(((E->lmesh.nno+1)*E->parallel.nproc+1)*sizeof(float));
+        E->V[j][i]=(float*) malloc((E->lmesh.nno+1)*sizeof(float));
 
+        for(k=0;k<(E->lmesh.nno+1)*E->parallel.nproc;k++)   {
+          E->GV[j][i][k]=0.0;
+          E->GV1[j][i][k]=0.0;
+        }
+      }
+    }
+
     for(k=1;k<=E->mesh.nsd;k++)
       for(i=1;i<=E->lmesh.nnov;i++)
         E->sphere.cap[j].VB[k][i] = 0.0;
@@ -1026,6 +1047,7 @@
   E->cc[j] = E->CC[E->mesh.levmax][j];
   E->ccx[j] = E->CCX[E->mesh.levmax][j];
   E->Mass[j] = E->MASS[E->mesh.levmax][j];
+  E->element[j] = E->ELEMENT[E->mesh.levmax][j];
   E->gDA[j] = E->GDA[E->mesh.levmax][j];
   E->gNX[j] = E->GNX[E->mesh.levmax][j];
 

Modified: mc/3D/CitcomS/trunk/lib/Obsolete.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Obsolete.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Obsolete.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -1125,287 +1125,6 @@
 /*  From General_matrix_functions.c                            */
 /* =========================================================== */
 
-/*=====================================================================
-  Variable dimension matrix allocation  function from numerical recipes
-  Note: ANSII consistency requires some additional features !
-  =====================================================================  */
-
-double **dmatrix(nrl,nrh,ncl,nch)
-     int nrl,nrh,ncl,nch;
-{
-  int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
-  double **m;
-
-  /* allocate pointer to rows  */
-  m=(double **) malloc((nrow+1)* sizeof(double *));
-  m+=1;
-  m-= nrl;
-
-  /*  allocate rows and set the pointers accordingly   */
-  m[nrl] = (double *) malloc((nrow*ncol+1)* sizeof(double));
-  m[nrl] += 1;
-  m[nrl] -= ncl;
-
-  for(i=nrl+1;i<=nrh;i++)
-     m[i] = m[i-1] + ncol;
-
-  return(m);		}
-
-
-float **fmatrix(nrl,nrh,ncl,nch)
-     int nrl,nrh,ncl,nch;
-{
-  int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
-  float **m;
-
-  /* allocate pointer to rows  */
-  m=(float **) malloc((unsigned)((nrow+1)* sizeof(float *)));
-  m+=1;
-  m-= nrl;
-
-  /*  allocate rows and set the pointers accordingly   */
-  m[nrl] = (float *) malloc((unsigned)((nrow*ncol+1)* sizeof(float)));
-  m[nrl] += 1;
-  m[nrl] -= ncl;
-
-  for(i=nrl+1;i<=nrh;i++)
-     m[i] = m[i-1] + ncol;
-
-  return(m);		}
-
-
-void dfree_matrix(m,nrl,nrh,ncl,nch)
-     double **m;
-     int nrl,nrh,ncl,nch;
-{
-  int i;
-  for(i=nrh;i>=nrl;i--)
-    free((void *)(m[i] + ncl));
-  free((void *) (m+nrl));
-  return;
-}
-
-void ffree_matrix(m,nrl,nrh,ncl,nch)
-     float **m;
-     int nrl,nrh,ncl,nch;
-{
-  int i;
-  for(i=nrh;i>=nrl;i--)
-    free((void *)(m[i] + ncl));
-  free((void *) (m+nrl));
-  return;
-}
-
-/*=============================================================
-  Functions to allocate/remove space for variable sized vector.
-  =============================================================  */
-
-double *dvector(nl,nh)
-     int nl,nh;
-{
-  double *v;
-  v=(double *) malloc((unsigned) ( nh - nl +1)* sizeof(double));
-  return( v-nl );  }
-
-float *fvector(nl,nh)
-     int nl,nh;
-{
-  float *v;
-  v=(float *) malloc((unsigned) ( nh - nl +1)* sizeof(float));
-  return( v-nl );  }
-
-void dfree_vector(v,nl,nh)
-     double *v;
-     int nl,nh;
-{
-  free((char*) (v+nl));	}
-
-void ffree_vector(v,nl,nh)
-     float *v;
-     int nl,nh;
-{
-  free((char*) (v+nl));	}
-
-int *sivector(nl,nh)
-     int nl,nh;
-{
-  int *v;
-  v=(int*) malloc((unsigned)(nh-nl +1) * sizeof(int));
-  return (v-nl);
-}
-
-void sifree_vector(v,nl,nh)
-     int *v;
-     int nl,nh;
-{ free((char *) (v+nl));    }
-
-
-
-void dvcopy(E,A,B,a,b)
-     struct All_variables *E;
-     double **A,**B;
-     int a,b;
-
-{   int i,m;
-
-  for (m=1;m<=E->sphere.caps_per_proc;m++)
-    for(i=a;i<=b;i++)
-      A[m][i] = B[m][i];
-
-    return; }
-
-void vcopy(A,B,a,b)
-     float *A,*B;
-     int a,b;
-
-{   int i;
-
-    for(i=a;i<=b;i++)
-      A[i] = B[i];
-
-    return; }
-
-
-
-/* =====================================*/
- double sphere_h(l,m,t,f,ic)
- int l,m,ic;
- double t,f;
- {
-
- double plgndr_a(),sphere_hamonics;
-
- sphere_hamonics = 0.0;
- if (ic==0)
-    sphere_hamonics = cos(m*f)*plgndr_a(l,m,t);
- else if (m)
-    sphere_hamonics = sin(m*f)*plgndr_a(l,m,t);
-
- return sphere_hamonics;
- }
-
-/* =====================================*/
- double plgndr_a(l,m,t)
- int l,m;
- double t;
- {
-
-  int i,ll;
-  double x,fact,pll,pmm,pmmp1,somx2,plgndr;
-  const double two=2.0;
-  const double one=1.0;
-
-  x = cos(t);
-  pmm=one;
-  if(m>0) {
-    somx2=sqrt((one-x)*(one+x));
-    fact = one;
-    for (i=1;i<=m;i++)   {
-      pmm = -pmm*fact*somx2;
-      fact = fact + two;
-      }
-    }
-
-  if (l==m)
-     plgndr = pmm;
-  else  {
-     pmmp1 = x*(2*m+1)*pmm;
-     if(l==m+1)
-       plgndr = pmmp1;
-     else   {
-       for (ll=m+2;ll<=l;ll++)  {
-         pll = (x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m);
-         pmm = pmmp1;
-         pmmp1 = pll;
-         }
-       plgndr = pll;
-       }
-     }
-
- return plgndr;
- }
-
- float area_of_4node(x1,y1,x2,y2,x3,y3,x4,y4)
- float x1,y1,x2,y2,x3,y3,x4,y4;
-
- {
- float area;
-
- area = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
-      + fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));
-
- return area;
- }
-
-void print_elt_k(E,a)
-     struct All_variables *E;
-     double a[24*24];
-
-{ int l,ll,n;
-
-  printf("elt k is ...\n");
-
-
-  n = loc_mat_size[E->mesh.nsd];
-
-  for(l=0;l<n;l++)
-    { fprintf(stderr,"\n");fflush(stderr);
-      for(ll=0;ll<n;ll++)
-	{ fprintf(stderr,"%s%.3e ",a[ll*n+l] >= 0.0 ? "+" : "",a[ll*n+l]);
-	  fflush(stderr);
-	}
-    }
-  fprintf(stderr,"\n"); fflush(stderr);
-
-  return; }
-
-
- /* ===================================  */
-  double sqrt_multis(jj,ii)
-  int ii,jj;
- {
-  int i;
-  double sqrt_multisa;
-
-  sqrt_multisa = 1.0;
-  if(jj>ii)
-    for (i=jj;i>ii;i--)
-      sqrt_multisa *= 1.0/sqrt((double)i);
-
-  return sqrt_multisa;
-  }
-
- /* ===================================  */
-  double multis(ii)
-  int ii;
- {
-  int i;
-  double multisa;
-
-  multisa = 1.0;
-  if (ii)
-    for (i=2;i<=ii;i++)
-      multisa *= (double)i;
-
-  return multisa;
-  }
-
-
- /* ===================================  */
- int int_multis(ii)
- int ii;
- {
- int i,multisa;
-
- multisa = 1;
- if (ii)
-   for (i=2;i<=ii;i++)
-     multisa *= i;
-
- return multisa;
- }
-
-
 void jacobi(E,d0,F,Ad,acc,cycles,level,guess)
      struct All_variables *E;
      double **d0;

Modified: mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -149,6 +149,7 @@
   FILE *fp1;
 
   void regional_coord_of_cap();
+  void rotate_mesh ();
   void compute_angle_surf_area ();
   void parallel_process_termination();
   void myerror();

Modified: mc/3D/CitcomS/trunk/lib/Tracer_setup.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Tracer_setup.c	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Tracer_setup.c	2008-03-05 21:04:21 UTC (rev 11329)
@@ -272,18 +272,16 @@
     E->trace.istat_elements_checked=0;
     E->trace.istat1=0;
 
-    /* write timing information every 20 steps */
-    if ((E->monitor.solution_cycles % 20) == 0) {
-        fprintf(E->trace.fpt, "STEP %d\n", E->monitor.solution_cycles);
+    fprintf(E->trace.fpt, "STEP %d\n", E->monitor.solution_cycles);
 
-        fprintf(E->trace.fpt, "Advecting tracers takes %f seconds.\n",
-                E->trace.advection_time - E->trace.find_tracers_time);
-        fprintf(E->trace.fpt, "Finding element takes %f seconds.\n",
-                E->trace.find_tracers_time - E->trace.lost_souls_time);
-        fprintf(E->trace.fpt, "Exchanging lost tracers takes %f seconds.\n",
-                E->trace.lost_souls_time);
-    }
+    fprintf(E->trace.fpt, "Tracer advecting takes %f seconds.\n",
+            E->trace.advection_time);
+    fprintf(E->trace.fpt, "|--Tracer finding takes %f seconds.\n",
+            E->trace.find_tracers_time);
+    fprintf(E->trace.fpt, "  |--Tracer exchanging takes %f seconds.\n",
+            E->trace.lost_souls_time);
 
+
     if(E->control.verbose){
       fprintf(E->trace.fpt,"Number of times for all element search  %d\n",E->trace.istat1);
 
@@ -316,9 +314,9 @@
 
         }
       }
-      fflush(E->trace.fpt);
     }
 
+    fflush(E->trace.fpt);
     return;
 }
 

Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h	2008-03-05 21:04:21 UTC (rev 11329)
@@ -725,6 +725,8 @@
 
     higher_precision *Eqn_k1[MAX_LEVELS][NCS],*Eqn_k2[MAX_LEVELS][NCS],*Eqn_k3[MAX_LEVELS][NCS];
     int *Node_map [MAX_LEVELS][NCS];
+    int *Node_eqn [MAX_LEVELS][NCS];
+    int *Node_k_id[MAX_LEVELS][NCS];
 
     double *BI[MAX_LEVELS][NCS],*BPI[MAX_LEVELS][NCS];
 
@@ -733,17 +735,18 @@
     double *heating_visc[NCS];
     double *heating_latent[NCS];
 
-    double *P[NCS],*F[NCS],*U[NCS];
+    double *P[NCS],*F[NCS],*H[NCS],*S[NCS],*U[NCS];
     double *T[NCS],*Tdot[NCS],*buoyancy[NCS];
     double *u1[NCS];
     double *temp[NCS],*temp1[NCS];
-    float *NP[NCS],*Mass[NCS];
+    float *NP[NCS],*edot[NCS],*Mass[NCS];
     float *MASS[MAX_LEVELS][NCS];
     double *TMass[NCS];
     double *SX[MAX_LEVELS][NCS][4],*X[MAX_LEVELS][NCS][4];
     double *sx[NCS][4],*x[NCS][4];
     double *surf_det[NCS][5];
     double *SinCos[MAX_LEVELS][NCS][4];
+    float *V[NCS][4],*GV[NCS][4],*GV1[NCS][4];
 
     float *stress[NCS];
     float *gstress[NCS];
@@ -758,9 +761,11 @@
     int *surf_element[NCS],*surf_node[NCS];
     int *mat[NCS];
     float *VIP[NCS];
-    unsigned int *NODE[MAX_LEVELS][NCS];
-    unsigned int *node[NCS];
+    unsigned int *ELEMENT[MAX_LEVELS][NCS],*NODE[MAX_LEVELS][NCS];
+    unsigned int *element[NCS],*node[NCS];
+    unsigned int *eqn[NCS],*EQN[MAX_LEVELS][NCS];
 
+    float *age[NCS];	/* nodal weightings */
     float *age_t;
 
     struct Shape_function_dx *GNX[MAX_LEVELS][NCS];

Modified: mc/3D/CitcomS/trunk/visual/Makefile.am
===================================================================
--- mc/3D/CitcomS/trunk/visual/Makefile.am	2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/visual/Makefile.am	2008-03-05 21:04:21 UTC (rev 11329)
@@ -55,6 +55,50 @@
 	zslice.py
 
 nobase_dist_visual_DATA = \
+	Mayavi2/citcoms_plugins/__init__.py \
+	Mayavi2/citcoms_plugins/plugins/__init__.py \
+	Mayavi2/citcoms_plugins/plugins/CitcomS_hdf_file_reader.py \
+	Mayavi2/citcoms_plugins/plugins/CitcomSHDFUgrid.py \
+	Mayavi2/citcoms_plugins/plugins/OpenCitcomSFILES.py \
+	Mayavi2/citcoms_plugins/plugins/filter/CitcomSFilterActions.py \
+	Mayavi2/citcoms_plugins/plugins/filter/__init__.py \
+	Mayavi2/citcoms_plugins/plugins/filter/CitcomSshowSurface.py \
+	Mayavi2/citcoms_plugins/plugins/filter/CitcomSSphere.py \
+	Mayavi2/citcoms_plugins/plugins/filter/CitcomsCapFilter.py \
+	Mayavi2/citcoms_plugins/plugins/filter/CitcomsReduceFilter.py \
+	Mayavi2/citcoms_plugins/utils.py \
+	Mayavi2/citcoms_plugins/custom_ui.py \
+	Mayavi2/citcoms_plugins/README \
+	Mayavi2/README \
+	Mayavi2/mayavi_custom_ui.py \
+	samples/cookbook1.h5 \
+	samples/cookbook1.100.h5 \
+	samples/fulltest.cap00.100 \
+	samples/fulltest.cap00.100.general \
+	samples/fulltest.cap01.100 \
+	samples/fulltest.cap01.100.general \
+	samples/fulltest.cap02.100 \
+	samples/fulltest.cap02.100.general \
+	samples/fulltest.cap03.100 \
+	samples/fulltest.cap03.100.general \
+	samples/fulltest.cap04.100 \
+	samples/fulltest.cap04.100.general \
+	samples/fulltest.cap05.100 \
+	samples/fulltest.cap05.100.general \
+	samples/fulltest.cap06.100 \
+	samples/fulltest.cap06.100.general \
+	samples/fulltest.cap07.100 \
+	samples/fulltest.cap07.100.general \
+	samples/fulltest.cap08.100 \
+	samples/fulltest.cap08.100.general \
+	samples/fulltest.cap09.100 \
+	samples/fulltest.cap09.100.general \
+	samples/fulltest.cap10.100 \
+	samples/fulltest.cap10.100.general \
+	samples/fulltest.cap11.100 \
+	samples/fulltest.cap11.100.general \
+	samples/regtest.cap00.100 \
+	samples/regtest.cap00.100.general \
 	visFull.cfg \
 	visRegional.cfg \
 	visRegionalSurface.cfg



More information about the cig-commits mailing list