aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@ebee0441-1374-4afa-a3b5-247f3ba15b9a>2001-08-10 23:34:20 +0000
committertradke <tradke@ebee0441-1374-4afa-a3b5-247f3ba15b9a>2001-08-10 23:34:20 +0000
commit6d4c27b426e4579136bbc8402b74dc566c656b3c (patch)
tree84e6edb05570f79d80ee604d52c810d0fd9a76c5
parentd677da6363292eb42307ac54148523bac95814bc (diff)
Use IOUtil_CreateDirectory() to create output directories.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGHIO/IOFlexIO/trunk@216 ebee0441-1374-4afa-a3b5-247f3ba15b9a
-rw-r--r--src/GHExtension.c67
-rw-r--r--src/Write3D.c14
2 files changed, 46 insertions, 35 deletions
diff --git a/src/GHExtension.c b/src/GHExtension.c
index b0a5cdc..fc319fe 100644
--- a/src/GHExtension.c
+++ b/src/GHExtension.c
@@ -20,6 +20,8 @@
#include "cctk.h"
#include "cctk_Parameters.h"
#include "CactusPUGH/PUGH/src/include/pugh.h"
+#include "CactusBase/IOUtil/src/ioGH.h"
+#include "CactusBase/IOUtil/src/ioutil_Utils.h"
#include "ioFlexGH.h"
static const char *rcsid = "$Header$";
@@ -116,11 +118,13 @@ int IOFlexIO_InitGH (cGH *GH)
{
DECLARE_CCTK_PARAMETERS
int i;
+ ioGH *ioUtilGH;
flexioGH *myGH;
- /* get the handle for IOFlexIO extensions */
- myGH = (flexioGH *) GH->extensions [CCTK_GHExtensionHandle ("IOFlexIO")];
+ /* get the handles for IOUtil and IOFlexIO extensions */
+ ioUtilGH = (ioGH *) CCTK_GHExtension (GH, "IO");
+ myGH = (flexioGH *) CCTK_GHExtension (GH, "IOFlexIO");
/* How often to output */
myGH->out2D_every = out_every > 0 ? out_every : -1;
@@ -155,39 +159,40 @@ int IOFlexIO_InitGH (cGH *GH)
}
/* Create the output directories */
- if (CCTK_MyProc (GH) == 0)
+ i = IOUtil_CreateDirectory (GH, myGH->outdir2D,
+ ! CCTK_Equals (out3D_mode, "onefile"),
+ ioUtilGH->ioproc);
+ if (i < 0)
{
- i = CCTK_CreateDirectory (0755, myGH->outdir2D);
- if (i < 0)
- {
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "IOFlexIO_InitGH: Problem creating IOFlexIO 2D output"
- " directory '%s'", myGH->outdir2D);
- }
- if (i > 0)
- {
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
- "IOFlexIO_InitGH: 2D IOFlexIO output directory '%s' "
- "already exists", myGH->outdir2D);
- }
- i = CCTK_CreateDirectory (0755, myGH->outdir3D);
- if (i < 0)
- {
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "IOFlexIO_InitGH: Problem creating IOFlexIO 3D output "
- "directory '%s'", myGH->outdir3D);
- }
- if (i > 0)
- {
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
- "IOFlexIO_InitGH: 3D IOFlexIO output directory '%s' "
- "already exists", myGH->outdir3D);
- }
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "IOFlexIO_InitGH: problem creating IOFlexIO 2D output"
+ " directory '%s'", myGH->outdir2D);
+ }
+ else if (i > 0 && CCTK_Equals (newverbose, "full"))
+ {
+ CCTK_VInfo (CCTK_THORNSTRING,
+ "IOFlexIO_InitGH: 2D IOFlexIO output directory '%s' "
+ "already exists", myGH->outdir2D);
+ }
+ i = IOUtil_CreateDirectory (GH, myGH->outdir3D,
+ ! CCTK_Equals (out3D_mode, "onefile"),
+ ioUtilGH->ioproc);
+ if (i < 0)
+ {
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "IOFlexIO_InitGH: Problem creating IOFlexIO 3D output"
+ " directory '%s'", myGH->outdir3D);
+ }
+ else if (i > 0 && CCTK_Equals (newverbose, "full"))
+ {
+ CCTK_VInfo (CCTK_THORNSTRING,
+ "IOFlexIO_InitGH: 3D IOFlexIO output directory '%s' "
+ "already exists", myGH->outdir3D);
}
- for (i=0; i<CCTK_NumVars(); i++)
+ for (i = CCTK_NumVars () - 1; i >= 0; i--)
{
- myGH->out2D_last [i] = myGH->out3D_last [i] = -1;
+ myGH->out2D_last[i] = myGH->out3D_last[i] = -1;
}
myGH->fileList_2D = myGH->fileList_3D = NULL;
diff --git a/src/Write3D.c b/src/Write3D.c
index 48c2472..dc48904 100644
--- a/src/Write3D.c
+++ b/src/Write3D.c
@@ -38,6 +38,7 @@
#include "cctk_Parameters.h"
#include "CactusPUGH/PUGH/src/include/pugh.h"
#include "CactusBase/IOUtil/src/ioGH.h"
+#include "CactusBase/IOUtil/src/ioutil_Utils.h"
#include "CactusBase/IOUtil/src/ioutil_CheckpointRecovery.h"
#include "ioFlexGH.h"
@@ -344,13 +345,19 @@ static IEEEfile_3D_t *IOFlexIO_Get3Dfile (cGH *GH, const char *alias,
strlen (alias) + 5);
sprintf (outputdir, "%s/%s_3d", myGH->outdir3D, alias);
- result = CCTK_CreateDirectory (0755, outputdir);
+ result = IOUtil_CreateDirectory (GH, outputdir,
+ ! CCTK_Equals (out3D_mode, "onefile"),
+ ioUtilGH->ioproc);
if (result < 0)
+ {
CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
"Problem creating 3D output directory '%s'", outputdir);
- if (result > 0)
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
+ }
+ else if (result > 0 && CCTK_Equals (newverbose, "full"))
+ {
+ CCTK_VInfo (CCTK_THORNSTRING,
"3D output directory '%s' already exists", outputdir);
+ }
free (outputdir);
}
@@ -403,5 +410,4 @@ static IEEEfile_3D_t *IOFlexIO_Get3Dfile (cGH *GH, const char *alias,
}
return (IEEEfile_3D);
-
}