diff options
Diffstat (limited to 'src/Output1D.c')
-rw-r--r-- | src/Output1D.c | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/src/Output1D.c b/src/Output1D.c deleted file mode 100644 index f601ef3..0000000 --- a/src/Output1D.c +++ /dev/null @@ -1,294 +0,0 @@ - /*@@ - @file Output1D.c - @date Tue Jan 9 1999 - @author Gabrielle Allen - @desc - Functions to deal 1D HDF5 output of variables - @enddesc - @history - @hauthor Thomas Radke @hdate 16 Mar 1999 - @hdesc Converted to Cactus 4.0 - @hendhistory - @@*/ - - - -#include <stdio.h> -#include <stdlib.h> - -#include "cctk.h" -#include "cctk_Parameters.h" -#include "ioHDF5GH.h" - - -/* function prototypes */ -int IOHDF5_TimeFor1D (cGH *GH, int index); -int IOHDF5_Output1DVarAs (cGH *GH, const char *var, const char *alias); -static void CheckSteerableParameters (ioHDF5GH *myGH); -static void SetOutputFlag (int index, const char *optstring, void *arg); - - -/*@@ - @routine IOHDF5_Output1DGH - @date Sat March 6 1999 - @author Gabrielle Allen - @desc - Loops over all variables and outputs them if necessary - @enddesc - @calledby CCTK_OutputGH ("IOHDF5_1D") - @history - - @endhistory - @var GH - @vdesc Pointer to CCTK GH - @vtype cGH - @vio in - @endvar -@@*/ - -int IOHDF5_Output1DGH (cGH *GH) -{ - DECLARE_CCTK_PARAMETERS - int i; - ioHDF5GH *myGH; - const char *name; - char *fullname; - int ierr=0; - - /* Get the GH extension for IOHDF5 */ - myGH = (ioHDF5GH *) GH->extensions [CCTK_GHExtensionHandle ("IOHDF5")]; - - CheckSteerableParameters (myGH); - - if (myGH->out1D_every <= 0) - return (0); - - /* Loop over all variables */ - for (i = 0; i < CCTK_NumVars (); i++) - { - - if (IOHDF5_TimeFor1D (GH, i)) - { - - name = CCTK_VarName (i); - fullname = CCTK_FullName (i); - - if (verbose) - CCTK_VInfo (CCTK_THORNSTRING, "IOHDF5_Output1DGH: fullname / name = " - "%s / %s", fullname, name); - - ierr=IOHDF5_Output1DVarAs (GH, fullname, name); - - free (fullname); - - /* Register variable as having 1D output this iteration */ - myGH->out1D_last [i] = GH->cctk_iteration; - } - } - if (verbose) - CCTK_INFO("IOHDF5_Output1DGH Done \n\n"); - - return (ierr); -} - - -/*@@ - @routine IOHDF5_Output1DVarAs - @date Sat March 6 1999 - @author Gabrielle Allen - @desc - unconditional output of a variable using the IOHDF5 1D output method - @enddesc - @calledby IOHDF5_Output1DGH, CCTK_OutputVarAsByMethod ("IOHDF5_1D") - @var GH - @vdesc Pointer to CCTK GH - @vtype cGH - @vio in - @vcomment - @endvar - @var fullname - @vdesc complete name of variable to output - @vtype const char * - @vio in - @vcomment - @endvar - @var alias - @vdesc alias name of variable to output (used to generate output filename) - @vtype const char * - @vio in - @vcomment - @endvar -@@*/ - -int IOHDF5_Output1DVarAs (cGH *GH, const char *fullname, const char *alias) -{ - DECLARE_CCTK_PARAMETERS - int index, ierr=0; - - index = CCTK_VarIndex (fullname); - - /* first, check if variable has storage assigned */ - if (! CCTK_QueryGroupStorageI (GH, CCTK_GroupIndexFromVarI (index))) - { - CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING, - "No IOHDF5 1D output for '%s' (no storage)", fullname); - return(-1); - } - - if (verbose) - CCTK_VInfo (CCTK_THORNSTRING, "IOHDF5_Output1DVarAs: fullname, alias, " - "index = (%s, %s, %d)", fullname, alias, index); - - /* Do the 1D output */ - ierr=IOHDF5_Write1D (GH, index, alias); - - return (ierr); -} - - -/*@@ - @routine IOHDF5_TimeFor1D - @date Sat March 6 1999 - @author Gabrielle Allen - @desc - Decides if it is time to output a variable using the IOHDF5 1D output - method - @enddesc - @calledby IOHDF5_Output1DGH - @history - - @endhistory - @var GH - @vdesc Pointer to CCTK GH - @vtype cGH - @vio in - @vcomment - @endvar - @var index - @vdesc index of variable - @vtype int - @vio in - @vcomment - @endvar -@@*/ - -int IOHDF5_TimeFor1D (cGH *GH, int index) -{ - ioHDF5GH *myGH; - - - /* Get the GH extension for IOHDF5 */ - myGH = (ioHDF5GH *) GH->extensions [CCTK_GHExtensionHandle ("IOHDF5")]; - - CheckSteerableParameters (myGH); - - /* Check if any output was requested */ - if(myGH->out1D_every <= 0) - return (0); - - /* Check this variable should be output */ - if (! (myGH->do_out1D [index] && GH->cctk_iteration % myGH->out1D_every == 0)) - return (0); - - /* Check variable not already output this iteration */ - if (myGH->out1D_last [index] == GH->cctk_iteration) - { - CCTK_WARN (2, "Already done 1D output in IOHDF5"); - return (0); - } - - return (1); -} - - -/*@@ - @routine IOHDF5_TriggerOutput1D - @date Sat March 6 1999 - @author Gabrielle Allen - @desc - Triggers the output a variable using the IOHDF5 1D output - method - @enddesc - @calledby CCTK scheduler - @var GH - @vdesc Pointer to CCTK GH - @vtype cGH - @vio in - @vcomment - @endvar - @var index - @vdesc index of variable to output - @vtype int - @vio in - @vcomment - @endvar -@@*/ - -int IOHDF5_TriggerOutput1D (cGH *GH, int index) -{ - DECLARE_CCTK_PARAMETERS - ioHDF5GH *myGH; - const char *varname; - int ierr=0; - - varname = CCTK_VarName (index); - - myGH = (ioHDF5GH *) GH->extensions [CCTK_GHExtensionHandle ("IOHDF5")]; - - if (verbose) - CCTK_VInfo (CCTK_THORNSTRING, "IOHDF5_TriggerOutput1D: varname, index = " - "(%s, %d)", varname, index); - - /* Do the 1D output */ - ierr=IOHDF5_Write1D (GH, index, varname); - - /* Register variable as having 1D output this iteration */ - myGH->out1D_last [index] = GH->cctk_iteration; - - return (ierr); -} - - -/**************************** local functions ******************************/ -static void CheckSteerableParameters (ioHDF5GH *myGH) -{ - DECLARE_CCTK_PARAMETERS - int out1D_vars_current_nset; - static int out1D_vars_lastset = -1; - - - /* How often to output */ - myGH->out1D_every = out_every > 0 ? out_every : -1; - if (out1D_every > 0) - myGH->out1D_every = out1D_every; - - /* re-parse the 'IOHDF5::out1D_vars' parameter if it was changed */ - out1D_vars_current_nset = CCTK_ParameterQueryTimesSet ("out1D_vars", - CCTK_THORNSTRING); - if (out1D_vars_current_nset != out1D_vars_lastset) - { - memset (myGH->do_out1D, 0, CCTK_NumVars ()); - CCTK_TraverseString (out1D_vars, SetOutputFlag, myGH->do_out1D, - CCTK_GROUP_OR_VAR); - - /* Save the last setting of 'out1D_vars' parameter */ - out1D_vars_lastset = out1D_vars_current_nset; - } -} - - -/* callback for CCTK_TraverseString() to set the output flag - for the given variable */ -static void SetOutputFlag (int index, const char *optstring, void *arg) -{ - char *flags = (char *) arg; - - - flags[index] = 1; - - if (optstring) - { - CCTK_VWarn (5, __LINE__, __FILE__, CCTK_THORNSTRING, - "Optional string '%s' in variable name ignored", optstring); - } -} |