aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2003-12-03 23:08:21 +0000
committertradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2003-12-03 23:08:21 +0000
commit1696043bc7d54405eff1a9206be3614033f612a4 (patch)
tree21688a880cd83113330d4a0d419108fccaa941e8
parent3af4dbc1bda0e5da9175bf7cf3eecd5b3dcd1894 (diff)
Only register 2D/3D IOASCII I/O methods if the maximum dimension of grid
variables is >= 2 or >= 3 resp. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOASCII/trunk@154 94b1c47f-dcfd-45ef-a468-0854c0e9e350
-rw-r--r--src/Startup.c48
1 files changed, 32 insertions, 16 deletions
diff --git a/src/Startup.c b/src/Startup.c
index 05d16a8..c05842c 100644
--- a/src/Startup.c
+++ b/src/Startup.c
@@ -135,7 +135,7 @@ void IOASCII_Startup (void)
@@*/
static void *IOASCII_SetupGH (tFleshConfig *config, int conv_level, cGH *GH)
{
- int i, numvars;
+ int i, maxdim, numvars;
asciiioGH *myGH;
DECLARE_CCTK_PARAMETERS
@@ -159,28 +159,44 @@ static void *IOASCII_SetupGH (tFleshConfig *config, int conv_level, cGH *GH)
CCTK_RegisterIOMethodTimeToOutput (i, IOASCII_TimeFor1D);
CCTK_RegisterIOMethodTriggerOutput (i, IOASCII_TriggerOutput1D);
- i = CCTK_RegisterIOMethod ("IOASCII_2D");
- CCTK_RegisterIOMethodOutputGH (i, IOASCII_Output2DGH);
- CCTK_RegisterIOMethodOutputVarAs (i, IOASCII_Output2DVarAs);
- CCTK_RegisterIOMethodTimeToOutput (i, IOASCII_TimeFor2D);
- CCTK_RegisterIOMethodTriggerOutput (i, IOASCII_TriggerOutput2D);
+ /* only register N-D IOASCII I/O methods
+ if at least N-dimensional grid variables are defined by thorns */
+ maxdim = CCTK_MaxDim ();
+ if (maxdim >= 2)
+ {
+ i = CCTK_RegisterIOMethod ("IOASCII_2D");
+ CCTK_RegisterIOMethodOutputGH (i, IOASCII_Output2DGH);
+ CCTK_RegisterIOMethodOutputVarAs (i, IOASCII_Output2DVarAs);
+ CCTK_RegisterIOMethodTimeToOutput (i, IOASCII_TimeFor2D);
+ CCTK_RegisterIOMethodTriggerOutput (i, IOASCII_TriggerOutput2D);
+ }
- i = CCTK_RegisterIOMethod ("IOASCII_3D");
- CCTK_RegisterIOMethodOutputGH (i, IOASCII_Output3DGH);
- CCTK_RegisterIOMethodOutputVarAs (i, IOASCII_Output3DVarAs);
- CCTK_RegisterIOMethodTimeToOutput (i, IOASCII_TimeFor3D);
- CCTK_RegisterIOMethodTriggerOutput (i, IOASCII_TriggerOutput3D);
+ if (maxdim >= 3)
+ {
+ i = CCTK_RegisterIOMethod ("IOASCII_3D");
+ CCTK_RegisterIOMethodOutputGH (i, IOASCII_Output3DGH);
+ CCTK_RegisterIOMethodOutputVarAs (i, IOASCII_Output3DVarAs);
+ CCTK_RegisterIOMethodTimeToOutput (i, IOASCII_TimeFor3D);
+ CCTK_RegisterIOMethodTriggerOutput (i, IOASCII_TriggerOutput3D);
+ }
if (! CCTK_Equals (verbose, "none"))
{
CCTK_INFO ("I/O Method 'IOASCII_1D' registered");
CCTK_INFO ("IOASCII_1D: Output of 1D lines of grid functions/arrays "
"to ASCII files");
- CCTK_INFO ("I/O Method 'IOASCII_2D' registered");
- CCTK_INFO ("IOASCII_2D: Output of 2D planes of grid functions/arrays "
- "to ASCII files");
- CCTK_INFO ("I/O Method 'IOASCII_3D' registered");
- CCTK_INFO ("IOASCII_3D: Output of 3D grid functions/arrays to ASCII files");
+ if (maxdim >= 2)
+ {
+ CCTK_INFO ("I/O Method 'IOASCII_2D' registered");
+ CCTK_INFO ("IOASCII_2D: Output of 2D planes of grid functions/arrays "
+ "to ASCII files");
+ }
+ if (maxdim >= 3)
+ {
+ CCTK_INFO ("I/O Method 'IOASCII_3D' registered");
+ CCTK_INFO ("IOASCII_3D: Output of 3D grid functions/arrays "
+ "to ASCII files");
+ }
}
numvars = CCTK_NumVars ();