aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodale <goodale@eff87b29-5268-4891-90a3-a07138403961>2002-01-18 01:49:42 +0000
committergoodale <goodale@eff87b29-5268-4891-90a3-a07138403961>2002-01-18 01:49:42 +0000
commit42b53f3d80be77d3ff67bdabfce7f8feec375bd0 (patch)
treef877b419ceccde6b60fb53c5b1d7798eaa73fd25
parentf00909055d4cc937dd9c97c9a6d1fee58497bda4 (diff)
Trap attempt to use IOJpeg when maxdim < 3.
Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusIO/IOJpeg/trunk@51 eff87b29-5268-4891-90a3-a07138403961
-rw-r--r--src/GHExtension.c34
-rw-r--r--src/Startup.c7
2 files changed, 26 insertions, 15 deletions
diff --git a/src/GHExtension.c b/src/GHExtension.c
index e88d18a..1b65a07 100644
--- a/src/GHExtension.c
+++ b/src/GHExtension.c
@@ -112,26 +112,30 @@ void IOJpeg_SliceCenterSetup(CCTK_ARGUMENTS)
int numvars;
IOJpegGeo_t geo_default;
IOJpegGH *myGH;
+ int extension_handle;
+ extension_handle = CCTK_GHExtensionHandle ("IOJpeg");
- myGH = (IOJpegGH *) cctkGH->extensions [CCTK_GHExtensionHandle ("IOJpeg")];
-
- numvars = CCTK_NumVars ();
-
- /* Loop over all slab dimension */
- for (idim = 0; idim < SLABSKEL_MAXDIM; idim++)
+ if(extension_handle >= 0)
{
- IOJpeg_DefaultGeo(cctkGH, idim, &geo_default);
+ myGH = (IOJpegGH *) cctkGH->extensions [extension_handle];
+
+ numvars = CCTK_NumVars ();
- /* Set the default HDF5 slab geometry for slab with dimension -idim-*/
- for (inum = 0; inum < numvars; inum++)
+ /* Loop over all slab dimension */
+ for (idim = 0; idim < SLABSKEL_MAXDIM; idim++)
{
- myGH->out_geo[inum][idim] = geo_default;
- myGH->out_geo[inum][idim].vdim = CCTK_GroupDimFromVarI (inum);
- }
+ IOJpeg_DefaultGeo(cctkGH, idim, &geo_default);
- /* allocate the flags array for every possible 2D hyperslab */
- myGH->advertised[idim] = (char *) calloc (numvars, 1);
- }
+ /* Set the default HDF5 slab geometry for slab with dimension -idim-*/
+ for (inum = 0; inum < numvars; inum++)
+ {
+ myGH->out_geo[inum][idim] = geo_default;
+ myGH->out_geo[inum][idim].vdim = CCTK_GroupDimFromVarI (inum);
+ }
+ /* allocate the flags array for every possible 2D hyperslab */
+ myGH->advertised[idim] = (char *) calloc (numvars, 1);
+ }
+ }
}
diff --git a/src/Startup.c b/src/Startup.c
index e5c19ae..6927697 100644
--- a/src/Startup.c
+++ b/src/Startup.c
@@ -29,6 +29,13 @@ void IOJpeg_Startup (void)
return;
}
+ if (CCTK_MaxDim() < 3)
+ {
+ CCTK_WARN (1, "IOJpeg: IOJpeg can only currently handle 3D GVs. "
+ "No IOJpeg IO methods will be enabled.");
+ return;
+ }
+
IO_GHExtension = CCTK_RegisterGHExtension ("IOJpeg");
CCTK_RegisterGHExtensionSetupGH (IO_GHExtension, IOJpeg_SetupGH);
CCTK_RegisterGHExtensionInitGH (IO_GHExtension, IOJpeg_InitGH);