Beispiel #1
0
/* check if steerable parameters have changed */
static void CheckSteerableParameters (asciiioGH *myGH)
{
  int i, num_vars, out_old, times_set;
  int verboselength;
  char *fullname, *msg;
  static int out1D_vars_lastset = -1;
  DECLARE_CCTK_PARAMETERS


  out_old = myGH->out1D_every;

  /* How often to output */
  myGH->out1D_every = out_every > 0 ? out_every : -1;
  if (out1D_every > 0)
  {
    myGH->out1D_every = out1D_every;
  }

  /* Report if frequency changed */
  if (myGH->out1D_every != out_old)
  {
    if (CCTK_Equals (newverbose, "standard") ||
        CCTK_Equals (newverbose, "full"))
    {
      CCTK_VInfo (CCTK_THORNSTRING, "IOASCII_1D: Output every %d iterations",
                  myGH->out1D_every);
    }
  }

  /* re-parse the 'out1D_vars' parameter if it was changed */
  times_set = CCTK_ParameterQueryTimesSet ("out1D_vars", CCTK_THORNSTRING);
  if (times_set != out1D_vars_lastset)
  {
    num_vars = CCTK_NumVars ();
    memset (myGH->do_out1D, 0, num_vars);
    CCTK_TraverseString (out1D_vars, SetOutputFlag, myGH->do_out1D,
                         CCTK_GROUP_OR_VAR);

    if (CCTK_Equals (newverbose, "standard") ||
        CCTK_Equals (newverbose, "full"))
    {

      /* Count the length of the string */
      verboselength = 0;
      for (i = 0; i < num_vars; i++)
      {
        if (myGH->do_out1D[i])
        {
          fullname = CCTK_FullName (i);
          verboselength += strlen(fullname)+1;
          free (fullname);
        }
      }
      verboselength += strlen("IOASCII_1D: Output requested for ");
      msg = (char *)malloc((verboselength+1)*sizeof(char));

      sprintf(msg,"IOASCII_1D: Output requested for ");
      for (i = 0; i < num_vars; i++)
      {
        if (myGH->do_out1D[i])
        {
          fullname = CCTK_FullName (i);
          sprintf (msg, "%s %s",msg,fullname);
          free (fullname);
        }
      }
      if (msg)
      {
        CCTK_INFO (msg);
        free (msg);
      }
    }

    /* Save the last setting of 'out1D_vars' parameter */
    out1D_vars_lastset = times_set;
  }

  USE_CCTK_PARAMETERS; }
Beispiel #2
0
/* check if steerable parameters have changed */
static void CheckSteerableParameters (iobasicGH *myGH)
{
  int i, num_vars, out_old;
  int times_set;
  char *fullname, *msg, *oldmsg;
  static int outScalar_vars_lastset = -1;
  DECLARE_CCTK_PARAMETERS


  /* How often to output */
  out_old = myGH->outScalar_every;
  myGH->outScalar_every = out_every > 0 ? out_every : -1;
  if (outScalar_every > 0)
  {
    myGH->outScalar_every = outScalar_every;
  }

  if (myGH->outScalar_every != out_old)
  {
    if (CCTK_Equals (newverbose, "standard") ||
        CCTK_Equals (newverbose, "full"))
    {
      CCTK_VInfo (CCTK_THORNSTRING, "Scalar: Output every %d iterations",
                  myGH->outScalar_every);
    }
  }

  /* re-parse the 'outScalar_vars' parameter if it was changed */
  times_set = CCTK_ParameterQueryTimesSet ("outScalar_vars", CCTK_THORNSTRING);
  if (times_set != outScalar_vars_lastset)
  {
    num_vars = CCTK_NumVars ();
    memset (myGH->do_outScalar, 0, num_vars);
    CCTK_TraverseString (outScalar_vars, SetOutputFlag, myGH->do_outScalar,
                         CCTK_GROUP_OR_VAR);

    if (myGH->outScalar_every &&
        (CCTK_Equals (newverbose, "standard") ||
         CCTK_Equals (newverbose, "full")))
    {
      msg = NULL;
      for (i = 0; i < num_vars; i++)
      {
        if (myGH->do_outScalar[i])
        {
          fullname = CCTK_FullName (i);
          if (! msg)
          {
            Util_asprintf (&msg, "Scalar: Output requested for %s", fullname);
          }
          else
          {
            oldmsg = msg;
            Util_asprintf (&msg, "%s %s", oldmsg, fullname);
            free (oldmsg);
          }
          free (fullname);
        }
      }
      if (msg)
      {
        CCTK_INFO (msg);
        free (msg);
      }
    }

    /* Save the last setting of 'outScalar_vars' parameter */
    outScalar_vars_lastset = times_set;
  }

  USE_CCTK_PARAMETERS; }