aboutsummaryrefslogtreecommitdiff
path: root/src/ParseVars.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ParseVars.c')
-rw-r--r--src/ParseVars.c208
1 files changed, 0 insertions, 208 deletions
diff --git a/src/ParseVars.c b/src/ParseVars.c
deleted file mode 100644
index 87143ba..0000000
--- a/src/ParseVars.c
+++ /dev/null
@@ -1,208 +0,0 @@
- /*@@
- @file GHExtension.c
- @date Tue 9th Feb 1999
- @author Gabrielle Allen
- @desc
- IOUtil GH extension stuff.
- @enddesc
- @history
- @endhistory
- @@*/
-
-/*#define DEBUG_IO*/
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "cctk.h"
-#include "util_String.h"
-#include "cctk_Parameters.h"
-
-#include "StreamedHDF5GH.h"
-
-
-static char *rcsid = "$Header$";
-
-
-/* ===============================================================
- utility routines used by other IO thorns
- ===============================================================*/
-
- /*@@
- @routine IOUtil_ParseVarsForOutput
- @date Sat March 6 1999
- @author Gabrielle Allen
- @desc
- Sets each flag in the do_output[] do_output to true
- if var[i] could be found in the list of variable names.
- var_list my also contain group names of variables as well as the
- special keyword "all" which indicates that output is requested
- on all variables.
- @enddesc
- @history
- @endhistory
- @var var_list
- @vdesc list of variables and/or group names
- @vtype const char *
- @vio in
- @endvar
- @var do_output
- @vdesc do_output of flags indicating output was requested for var[i]
- @vtype char []
- @vio out
- @endvar
-@@*/
-
-int ParseVarsForOutputH5stream (StreamedHDF5GH *h5GH, const char *var_list)
-{
- char *outname=NULL;
- char *before=NULL;
- char *after=NULL;
- char *splitstring;
- int first,groupnum,i,last,index,varnum;
- StreamGeo_t geo_tmp;
- int ierr=0;
-
- /* First initialise every variable to no output */
- for (i=0; i<CCTK_NumVars(); i++)
- {
- h5GH->do_output[i] = 0;
- }
-
- /* Initialize geometry structure with default */
-
- SetDefaultGeoH5stream(&geo_tmp);
-
- splitstring = (char *) var_list;
-
- /* split string at blanks */
- while(Util_SplitString(&before,&after,splitstring," ")==0) {
-
-#ifdef DEBUG_IO
- printf(" String is -%s-\n",splitstring);
- printf(" Split is -%s- and -%s-\n",before,after);
-#endif
-
- if (CCTK_Equals(before," ")) continue;
-
- if (strlen(before) > 0)
- {
- /* Extract geometry information */
- ierr=GeometryParserH5stream(before, &outname, &geo_tmp);
- if ((ierr<0)||(outname==NULL)) {
- CCTK_WARN(1,"GeometryParserH5stream failed.");
- return(-1);
- }
-
- /* Look for any special tokens */
- if (CCTK_Equals(outname,"all"))
- {
- int ilab;
- for (ilab=0;ilab<CCTK_NumVars();ilab++) {
- h5GH->geo_output[ilab]= geo_tmp;
- h5GH->do_output[ilab] = 1;
- }
- }
- else
- {
- /* See if this name is implementation::variable */
- varnum = CCTK_VarIndex(outname);
- if ( varnum < 0 )
- {
- /* See if this name is implementation::group */
- groupnum = CCTK_GroupIndex(outname);
- if (groupnum < 0)
- {
- char *msg;
- msg = (char *)malloc((100+strlen(outname))*sizeof(char));
- sprintf(msg,"Ignoring <%s> in IO string (invalid token)",outname);
- CCTK_WARN(2,msg);
- free(msg);
- }
- else
- {
- /* We have a group so now need all the variables in the group */
- first = CCTK_FirstVarIndexI(groupnum);
- last = first+CCTK_NumVarsInGroupI(groupnum)-1;
- for (index=first;index<=last;index++) {
- h5GH->geo_output[index]=geo_tmp;
- h5GH->do_output[index] =1;
- }
- }
- }
- else
- {
- h5GH->geo_output[varnum]= geo_tmp;
- h5GH->do_output[varnum] = 1;
- }
- }
- }
- if(before)
- {
- free(before);
- before = NULL;
- }
- if(outname)
- {
- free(outname);
- outname = NULL;
- }
- if(splitstring != var_list)
- {
- free(splitstring);
- }
-
- splitstring = after;
-
- }
-
- if (strlen(splitstring)>0) {
-
- /* Extract geometry information */
- ierr=GeometryParserH5stream(splitstring, &outname, &geo_tmp);
- if (ierr<0) printf("GeometryParser failed: >%s<\n",before);
-
- /* Special cases */
- if (CCTK_Equals(outname,"all")) {
- int ilab;
- for (ilab=0;ilab<CCTK_NumVars();ilab++) {
- h5GH->geo_output[ilab]=geo_tmp;
- h5GH->do_output [ilab]=1;
- }
- } else {
-
- varnum = CCTK_VarIndex(outname);
- if (varnum < 0) {
- groupnum = CCTK_GroupIndex(outname);
- if (groupnum < 0) {
- char *msg;
- msg = (char *)malloc((100+strlen(outname))*sizeof(char));
- sprintf(msg,"Ignoring %s in IO string (invalid token)",outname);
- CCTK_WARN(2,msg);
- free(msg);
- } else {
- /* We have a group so now need all the variables in the group */
- first = CCTK_FirstVarIndexI(groupnum);
- last = first+CCTK_NumVarsInGroupI(groupnum)-1;
- for (index=first;index<=last;index++) {
- h5GH->geo_output[index]=geo_tmp;
- h5GH->do_output[index] =1;
- }
- }
- }
- else {
- h5GH->geo_output[varnum]=geo_tmp;
- h5GH->do_output[varnum] =1;
- }
- }
- }
-
- if (before) free(before);
- if (after) free(after);
- if(splitstring != var_list)
- {
- free(splitstring);
- }
- return(0);
-}