diff options
author | tradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350> | 2003-12-03 23:08:21 +0000 |
---|---|---|
committer | tradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350> | 2003-12-03 23:08:21 +0000 |
commit | 1696043bc7d54405eff1a9206be3614033f612a4 (patch) | |
tree | 21688a880cd83113330d4a0d419108fccaa941e8 /src/Startup.c | |
parent | 3af4dbc1bda0e5da9175bf7cf3eecd5b3dcd1894 (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
Diffstat (limited to 'src/Startup.c')
-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 (); |