diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Startup.c | 48 |
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 (); |