diff options
author | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2000-01-25 09:45:35 +0000 |
---|---|---|
committer | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2000-01-25 09:45:35 +0000 |
commit | 61da3a6c15e53532f849763e4fc7133f415b038e (patch) | |
tree | 8fbcbf7a9899355b6c18199949c7600aa95a0432 /src/main/Stagger.c | |
parent | bd1f9432a43ab2d1aad91a7323b41309be4cadd0 (diff) |
CCTK function name changes
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1292 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main/Stagger.c')
-rw-r--r-- | src/main/Stagger.c | 194 |
1 files changed, 181 insertions, 13 deletions
diff --git a/src/main/Stagger.c b/src/main/Stagger.c index 56f7c174..68286e3f 100644 --- a/src/main/Stagger.c +++ b/src/main/Stagger.c @@ -12,24 +12,74 @@ static int staggered = 0; -int CCTK_StaggeredGrids(void) { + /*@@ + @routine CCTK_StaggerVars + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTK_StaggerVars(void) +{ return(staggered); } -int CCTK_StaggerCodeGrpIdx(int gindex) { + + /*@@ + @routine + @date + @author + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTK_StaggerCodeGrpIdx(int gindex) +{ cGroup group; int sc; CCTK_GroupData(gindex, &group); sc = group.stagtype; return(sc); } - -void FMODIFIER FORTRAN_NAME(CCTK_StaggerCodeGrpIdx)(int *stagcode, int *gindex) + +void FMODIFIER FORTRAN_NAME(CCTK_StaggerCodeGrpIdx) + (int *stagcode, int *gindex) { *stagcode = CCTK_StaggerCodeGrpIdx(*gindex); } -int CCTK_StaggerCodeGrp(const char *gname) { + /*@@ + @routine + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTK_StaggerCodeGrp(const char *gname) +{ int gindex; gindex = CCTK_GroupIndex(gname); return(CCTK_StaggerCodeGrpIdx(gindex)); @@ -45,7 +95,23 @@ void FMODIFIER FORTRAN_NAME(CCTK_StaggerCodeGrp)(int *stagcode, ONE_FORTSTRING_A } -int CCTK_StaggerCodeName(const char *stype) { + /*@@ + @routine + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTK_StaggerCodeName(const char *stype) +{ int i,scode,base,dim,m; char *info; @@ -53,7 +119,8 @@ int CCTK_StaggerCodeName(const char *stype) { scode=0; dim =strlen(stype); - for (i=0;i<dim;i++) { + for (i=0;i<dim;i++) + { switch (stype[i]) { @@ -81,11 +148,28 @@ void FMODIFIER FORTRAN_NAME(CCTK_StaggerCodeName)(int *scode, ONE_FORTSTRING_ARG } -int CCTK_DirStaggerCodeVal(int dir, int sc) { + /*@@ + @routine + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTK_DirStaggerCodeVal(int dir, int sc) +{ int val,b,dsc; static int hash[4],hashed=0; - if (hashed==0) { + if (hashed==0) + { hash[0]= 1; hash[1]= 3; hash[2]= 9; @@ -93,10 +177,12 @@ int CCTK_DirStaggerCodeVal(int dir, int sc) { hashed = 1; } - for (b=3;b>=0;b--) { + for (b=3;b>=0;b--) + { val = (int)(sc / hash[b]); sc = sc % hash[b]; - if (dir==b) { + if (dir==b) + { dsc = val; break; } @@ -113,13 +199,31 @@ void FMODIFIER FORTRAN_NAME(CCTK_DirStaggerCodeVal) + /*@@ + @routine + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + int CCTK_DirStaggerCodeName(int dir, const char *stype) { int scode; char hs[7]="MMMMMM",*info; sprintf(hs,"%s",stype); - if (dir>strlen(hs)) CCTK_Warn(1,__LINE__,__FILE__,"Cactus","Not enough letters in stagger code"); + if (dir>strlen(hs)) + { + CCTK_Warn(1,__LINE__,__FILE__,"Cactus","Not enough letters in stagger code"); + } switch (hs[dir]) { @@ -142,7 +246,71 @@ void FMODIFIER FORTRAN_NAME(CCTK_DirStaggerCodeName) ONE_FORTSTRING_CREATE(sname); *ierr= 0; *dsc = CCTK_DirStaggerCodeName((*dir)-1,sname); - if ((*dsc)>=0) (*dsc)++; + if ((*dsc)>=0) + { + (*dsc)++; + } free(sname); } + /*@@ + @routine + @date + @author Gerd Lanfermann + @desc + + @enddesc + @calls + @calledby + @history + + @endhistory + +@@*/ + +int CCTKi_ParseStaggerString(int dim, + const char *imp, + const char *gname, + const char *stype) +{ + int i,m; + int base = 1; + int scode = 0; + char hs[7]="MMMMMM", *info; + + /* change possible SHORTCUTS into the official notation, allow for dim=6 */ + if (strcmp(stype,"NONE")==0) + { + strncpy(hs,"MMMMMM",dim); + } + else if (strcmp(stype,"CELL")==0) + { + strncpy(hs,"CCCCCC",dim); + } + else + { + sprintf(hs,"%s",stype); + } + + for (i=0;i<dim;i++) + { + switch (hs[i]) + { + case 'M':m=0; break; + case 'C':m=1; break; + case 'P':m=2; break; + default: + info = (char*)malloc (256*sizeof(char)); + sprintf(info, + "Unknown stagger type: >%s< for group: >%s::%s< \n", + stype,imp,gname); + CCTK_Warn(1,__LINE__,__FILE__,"Cactus",info); + free(info); + return(-1); + } + scode+= m*base; + base = 3 * base; + } + + return(scode); +} |