moab-dev
Threads by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
April 2014
- 6 participants
- 50 discussions
commit/MOAB: danwu: Minor updates for unit test write_nc.
by commits-noreply@bitbucket.org 30 Apr '14
by commits-noreply@bitbucket.org 30 Apr '14
30 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/54bc99a5bafa/
Changeset: 54bc99a5bafa
Branch: master
User: danwu
Date: 2014-05-01 00:47:53
Summary: Minor updates for unit test write_nc.
Affected #: 1 file
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index 2dc8e9a..3332d4b 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -36,7 +36,6 @@ static const char example_mpas[] = "/io/mpasx1.642.t.2.nc";
// CAM-EUL
void test_eul_read_write_T();
void test_eul_check_T();
-void test_eul_read_write_append();
// CAM-FV
void test_fv_read_write_T();
@@ -50,6 +49,16 @@ void test_homme_check_T();
void test_mpas_read_write_vars();
void test_mpas_check_vars();
+// Test append option
+void test_eul_read_write_append();
+void test_eul_check_append();
+
+#ifdef USE_MPI
+// Test mesh with ghosted entities
+void test_eul_read_write_ghosting();
+void test_eul_check_ghosting();
+#endif
+
void get_eul_read_options(std::string& opts);
void get_fv_read_options(std::string& opts);
void get_homme_read_options(std::string& opts);
@@ -69,14 +78,24 @@ int main(int argc, char* argv[])
result += RUN_TEST(test_eul_read_write_T);
result += RUN_TEST(test_eul_check_T);
- result += RUN_TEST(test_eul_read_write_append);
+
result += RUN_TEST(test_fv_read_write_T);
result += RUN_TEST(test_fv_check_T);
+
result += RUN_TEST(test_homme_read_write_T);
result += RUN_TEST(test_homme_check_T);
+
result += RUN_TEST(test_mpas_read_write_vars);
result += RUN_TEST(test_mpas_check_vars);
+ result += RUN_TEST(test_eul_read_write_append);
+ result += RUN_TEST(test_eul_check_append);
+
+#ifdef USE_MPI
+ result += RUN_TEST(test_eul_read_write_ghosting);
+ result += RUN_TEST(test_eul_check_ghosting);
+#endif
+
#ifdef USE_MPI
fail = MPI_Finalize();
if (fail)
@@ -111,19 +130,10 @@ void test_eul_read_write_T()
ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
CHECK_ERR(rval);
-#ifdef USE_MPI
- read_opts = "PARALLEL=READ_PART;PARTITION;PARALLEL_RESOLVE_SHARED_ENTS;PARALLEL_GHOSTS=2.0.1;PARTITION_METHOD=SQIJ;VARIABLE=";
- rval = mb.load_file(example_eul, &set, read_opts.c_str());
- CHECK_ERR(rval);
-
- read_opts = "PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=SQIJ;VARIABLE=T,gw;NOMESH";
- rval = mb.load_file(example_eul, &set, read_opts.c_str());
- CHECK_ERR(rval);
-#else
+ // Load non-set variable T, set variable gw, and the mesh
read_opts += ";DEBUG_IO=0;VARIABLE=T,gw";
rval = mb.load_file(example_eul, &set, read_opts.c_str());
CHECK_ERR(rval);
-#endif
// Write variables T and gw
std::string write_opts;
@@ -246,75 +256,6 @@ void test_eul_check_T()
}
}
-// We read and write variables T and U; U after we write T, so we append
-// we will also write gw, just to test the file after writing
-void test_eul_read_write_append()
-{
- int procs = 1;
-#ifdef USE_MPI
- MPI_Comm_size(MPI_COMM_WORLD, &procs);
-#endif
-
-// We will not test NC writer in parallel without pnetcdf support
-#ifndef PNETCDF_FILE
- if (procs > 1)
- return;
-#endif
-
- Core moab;
- Interface& mb = moab;
-
- std::string read_opts;
- get_eul_read_options(read_opts);
-
- EntityHandle set;
- ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
- CHECK_ERR(rval);
-
- // Load non-set variable T, set variable gw, and the mesh
- read_opts += ";DEBUG_IO=0;VARIABLE=T,U,V,gw";
- rval = mb.load_file(example_eul, &set, read_opts.c_str());
- CHECK_ERR(rval);
-
- // Write variables T and gw
- std::string write_opts;
- write_opts = std::string(";;VARIABLE=T,gw;DEBUG_IO=0");
-#ifdef USE_MPI
- // Use parallel options
- write_opts += std::string(";PARALLEL=WRITE_PART");
-#endif
- if (procs > 1)
- rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts.c_str(), &set, 1);
- else
- rval = mb.write_file("test_eul_TU.nc", 0, write_opts.c_str(), &set, 1);
- CHECK_ERR(rval);
- // append to the file variable U
- std::string write_opts2;
- write_opts2 = std::string(";;VARIABLE=U;DEBUG_IO=0;APPEND");
-#ifdef USE_MPI
- // Use parallel options
- write_opts2 += std::string(";PARALLEL=WRITE_PART");
-#endif
- if (procs > 1)
- rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts2.c_str(), &set, 1);
- else
- rval = mb.write_file("test_eul_TU.nc", 0, write_opts2.c_str(), &set, 1);
- CHECK_ERR(rval);
-
- // append to the file variable V, renamed to VNEWNAME
- std::string write_opts3;
- write_opts3 = std::string(";;VARIABLE=V;RENAME=VNEWNAME;DEBUG_IO=0;APPEND");
-#ifdef USE_MPI
- // Use parallel options
- write_opts3 += std::string(";PARALLEL=WRITE_PART");
-#endif
- if (procs > 1)
- rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts3.c_str(), &set, 1);
- else
- rval = mb.write_file("test_eul_TU.nc", 0, write_opts3.c_str(), &set, 1);
- CHECK_ERR(rval);
-}
-
// We also write coordinate variables slat and slon to the output file, so that
// it can be recognized by NC reader later in test_fv_check_T()
void test_fv_read_write_T()
@@ -715,6 +656,125 @@ void test_mpas_check_vars()
}
}
+// We read and write variables T and U; U after we write T, so we append
+// we will also write gw, just to test the file after writing
+void test_eul_read_write_append()
+{
+ int procs = 1;
+#ifdef USE_MPI
+ MPI_Comm_size(MPI_COMM_WORLD, &procs);
+#endif
+
+// We will not test NC writer in parallel without pnetcdf support
+#ifndef PNETCDF_FILE
+ if (procs > 1)
+ return;
+#endif
+
+ Core moab;
+ Interface& mb = moab;
+
+ std::string read_opts;
+ get_eul_read_options(read_opts);
+
+ EntityHandle set;
+ ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
+ CHECK_ERR(rval);
+
+ // Load non-set variables T, U, V, and the mesh
+ read_opts += ";DEBUG_IO=0;VARIABLE=T,U,V";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
+
+ // Write variable T
+ std::string write_opts;
+ write_opts = std::string(";;VARIABLE=T;DEBUG_IO=0");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_append.nc", 0, write_opts.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_append.nc", 0, write_opts.c_str(), &set, 1);
+ CHECK_ERR(rval);
+
+ // Append to the file variable U
+ std::string write_opts2;
+ write_opts2 = std::string(";;VARIABLE=U;DEBUG_IO=0;APPEND");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts2 += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_append.nc", 0, write_opts2.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_append.nc", 0, write_opts2.c_str(), &set, 1);
+ CHECK_ERR(rval);
+
+ // Append to the file variable V, renamed to VNEWNAME
+ std::string write_opts3;
+ write_opts3 = std::string(";;VARIABLE=V;RENAME=VNEWNAME;DEBUG_IO=0;APPEND");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts3 += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_append.nc", 0, write_opts3.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_append.nc", 0, write_opts3.c_str(), &set, 1);
+ CHECK_ERR(rval);
+}
+
+void test_eul_check_append()
+{
+ // TBD
+}
+
+#ifdef USE_MPI
+// NC writer should filter entities that are not owned, e.g. ghosted elements
+void test_eul_read_write_ghosting()
+{
+ int procs = 1;
+ MPI_Comm_size(MPI_COMM_WORLD, &procs);
+
+// We will not test NC writer in parallel without pnetcdf support
+#ifndef PNETCDF_FILE
+ if (procs > 1)
+ return;
+#endif
+
+ Core moab;
+ Interface& mb = moab;
+
+ EntityHandle set;
+ ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
+ CHECK_ERR(rval);
+
+ std::string read_opts = "PARALLEL=READ_PART;PARTITION;PARALLEL_RESOLVE_SHARED_ENTS;PARALLEL_GHOSTS=2.0.1;PARTITION_METHOD=SQIJ;VARIABLE=";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
+
+ read_opts = "PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=SQIJ;VARIABLE=T;NOMESH";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
+
+ // Write variable T
+ std::string write_opts;
+ write_opts = std::string(";;PARALLEL=WRITE_PART;VARIABLE=T;DEBUG_IO=0");
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_ghosting.nc", 0, write_opts.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_ghosting.nc", 0, write_opts.c_str(), &set, 1);
+ CHECK_ERR(rval);
+}
+
+void test_eul_check_ghosting()
+{
+ // TBD
+}
+#endif
+
void get_eul_read_options(std::string& opts)
{
#ifdef USE_MPI
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/MOAB: iulian07: append error when build with netcdf only
by commits-noreply@bitbucket.org 30 Apr '14
by commits-noreply@bitbucket.org 30 Apr '14
30 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/fae72f00a208/
Changeset: fae72f00a208
Branch: master
User: iulian07
Date: 2014-04-30 23:39:40
Summary: append error when build with netcdf only
wrong open mode
Affected #: 2 files
diff --git a/src/io/NCWriteHelper.cpp b/src/io/NCWriteHelper.cpp
index 995bf3f..58d95c2 100644
--- a/src/io/NCWriteHelper.cpp
+++ b/src/io/NCWriteHelper.cpp
@@ -224,7 +224,11 @@ ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names, std::vec
// if append mode, make sure we are in define mode; a simple open will not allow creation of new variables
if (append)
- NCFUNC(redef)(_fileId);
+ {
+ int errcode = NCFUNC(redef)(_fileId);
+ if (errcode != NC_NOERR)
+ ERRORR(MB_FAILURE, "Can't open file in redefine mode");
+ }
// First initialize all coordinates, then fill VarData for actual variables (and dimensions)
// Check that for used coordinates we have found the tags
for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
diff --git a/src/io/WriteNC.cpp b/src/io/WriteNC.cpp
index d4d79dd..0ec1aa8 100644
--- a/src/io/WriteNC.cpp
+++ b/src/io/WriteNC.cpp
@@ -95,15 +95,15 @@ ErrorCode WriteNC::write_file(const char* file_name,
if (append)
{
-#ifdef PNETCDF_FILE
int omode = NC_WRITE;
+#ifdef PNETCDF_FILE
if (isParallel)
success = NCFUNC(open)(myPcomm->proc_config().proc_comm(), file_name, omode, MPI_INFO_NULL, &fileId);
else
success = NCFUNC(open)(MPI_COMM_SELF, file_name, omode, MPI_INFO_NULL, &fileId);
#else
- // This is a regular netcdf file
- success = NCFUNC(open)(file_name, overwrite ? NC_CLOBBER : NC_NOCLOBBER, &fileId);
+ // This is a regular netcdf file, open in write mode
+ success = NCFUNC(open)(file_name, omode, &fileId);
#endif
ERRORS(success, "Failed to open file for appending.");
}
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
See <https://jenkins-ci.mcs.anl.gov/job/moab_serial/282/changes>
Changes:
[iulian] filter out not owned entities, for writing
------------------------------------------
[...truncated 568 lines...]
mv -f .deps/testc_cbind.Tpo .deps/testc_cbind.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o testc_cbind testc_cbind.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o testc_cbind testc_cbind.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I./.. -I../../src -I../../src -I../../itaps -I../../test -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT MOAB_iMesh_unit_tests.o -MD -MP -MF .deps/MOAB_iMesh_unit_tests.Tpo -c -o MOAB_iMesh_unit_tests.o MOAB_iMesh_unit_tests.cpp
mv -f .deps/MOAB_iMesh_unit_tests.Tpo .deps/MOAB_iMesh_unit_tests.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o MOAB_iMesh_unit_tests MOAB_iMesh_unit_tests.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o MOAB_iMesh_unit_tests MOAB_iMesh_unit_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I./.. -I../../src -I../../src -I../../itaps -I../../test -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT MOAB_iMesh_extensions_tests.o -MD -MP -MF .deps/MOAB_iMesh_extensions_tests.Tpo -c -o MOAB_iMesh_extensions_tests.o MOAB_iMesh_extensions_tests.cpp
mv -f .deps/MOAB_iMesh_extensions_tests.Tpo .deps/MOAB_iMesh_extensions_tests.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o MOAB_iMesh_extensions_tests MOAB_iMesh_extensions_tests.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o MOAB_iMesh_extensions_tests MOAB_iMesh_extensions_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=FC --mode=link gfortran -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ScdMeshF90 ScdMeshF90.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: gfortran -O2 -fcray-pointer -o ScdMeshF90 ScdMeshF90.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=F77 --mode=link f77 -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ScdMeshF77 ScdMeshF77.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: f77 -O2 -fcray-pointer -o ScdMeshF77 ScdMeshF77.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=FC --mode=link gfortran -O2 -fcray-pointer -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o FindAdjacencyF90 FindAdjacencyF90.o libiMesh.la ../../src/libMOAB.la -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm
libtool: link: gfortran -O2 -fcray-pointer -o FindAdjacencyF90 FindAdjacencyF90.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libiMesh.a <https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/src/.libs/libMOAB.a> ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lstdc++ -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make check-TESTS
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[5]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
PASS: testc_cbind
PASS: MOAB_iMesh_unit_tests
PASS: MOAB_iMesh_extensions_tests
PASS: ScdMeshF90
PASS: ScdMeshF77
PASS: FindAdjacencyF90
==================
All 6 tests passed
==================
make[5]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps/imesh'>
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/itaps'>
Making check in tools
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in .
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in dagmc
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make test_geom pt_vol_test ray_fire_test
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_geom test_geom.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_geom test_geom.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o pt_vol_test pt_vol_test.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o pt_vol_test pt_vol_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ray_fire_test ray_fire_test.o libdagmc.la ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o ray_fire_test ray_fire_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ./.libs/libdagmc.a ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make check-TESTS
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
PASS: test_geom
=============
1 test passed
=============
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools/dagmc'>
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/tools'>
Making check in test
make[1]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making check in .
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make range_test moab_test homxform_test scdseq_test scd_test_partn test_adj seq_man_test geom_util_test xform_test obb_test adaptive_kd_tree_tests bsp_tree_test file_options_test kd_tree_test var_len_test var_len_test_no_template tag_test mesh_set_test mbcn_test bsp_tree_poly_test reorder_test test_prog_opt coords_connect_iterate elem_eval_test spatial_locator_test test_boundbox mbfacet_test gttool_test cropvol_test mergemesh_test mbground_test lloyd_smoother_test kd_tree_tool kd_tree_time
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o range_test range_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o range_test range_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o moab_test moab_test-MBTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o moab_test moab_test-MBTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o homxform_test homxform_test-HomXform.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o homxform_test homxform_test-HomXform.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o scdseq_test scdseq_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o scdseq_test scdseq_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o scd_test_partn scd_test_partn.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o scd_test_partn scd_test_partn.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_adj test_adj.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_adj test_adj.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o seq_man_test TestTypeSequenceManager.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o seq_man_test TestTypeSequenceManager.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o geom_util_test GeomUtilTests.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o geom_util_test GeomUtilTests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o xform_test xform_test-AffineXform.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o xform_test xform_test-AffineXform.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o obb_test OBBTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o obb_test OBBTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o adaptive_kd_tree_tests adaptive_kd_tree_tests.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o adaptive_kd_tree_tests adaptive_kd_tree_tests.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o bsp_tree_test bsp_tree_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o bsp_tree_test bsp_tree_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: `file_options_test' is up to date.
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o kd_tree_test kd_tree_test-kd_tree_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o kd_tree_test kd_tree_test-kd_tree_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o var_len_test VarLenTagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o var_len_test VarLenTagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o var_len_test_no_template var_len_test_no_template-VarLenTagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o var_len_test_no_template var_len_test_no_template-VarLenTagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o tag_test TagTest.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o tag_test TagTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mesh_set_test Test_MBMeshSet.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mesh_set_test Test_MBMeshSet.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I.. -I../src/moab -I../src/parallel -I../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DIS_BUILDING_MB -DSRCDIR=. -DMESHDIR=../MeshFiles/unittest -I../src -I../src -I../src/LocalDiscretization -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT CN.o -MD -MP -MF .deps/CN.Tpo -c -o CN.o `test -f '../src/CN.cpp' || echo './'`../src/CN.cpp
mv -f .deps/CN.Tpo .deps/CN.Po
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mbcn_test CN.o mbcn_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mbcn_test CN.o mbcn_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o bsp_tree_poly_test bsp_tree_poly_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o bsp_tree_poly_test bsp_tree_poly_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o reorder_test reorder_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o reorder_test reorder_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_prog_opt test_prog_opt-test_prog_opt.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_prog_opt test_prog_opt-test_prog_opt.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o coords_connect_iterate coords_connect_iterate-coords_connect_iterate.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o coords_connect_iterate coords_connect_iterate-coords_connect_iterate.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o elem_eval_test elem_eval_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o elem_eval_test elem_eval_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o spatial_locator_test spatial_locator_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o spatial_locator_test spatial_locator_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o test_boundbox test_boundbox.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o test_boundbox test_boundbox.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mbfacet_test mbfacet_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mbfacet_test mbfacet_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o gttool_test gttool_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o gttool_test gttool_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o cropvol_test crop_vol_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o cropvol_test crop_vol_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mergemesh_test mergemesh_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mergemesh_test mergemesh_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o mbground_test mbground_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o mbground_test mbground_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o lloyd_smoother_test lloyd_smoother_test.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o lloyd_smoother_test lloyd_smoother_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o kd_tree_tool kd_tree_tool.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o kd_tree_tool kd_tree_tool.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o kd_tree_time kd_tree_time.o ../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o kd_tree_time kd_tree_time.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make check-TESTS
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
PASS: range_test
PASS: moab_test
PASS: homxform_test
PASS: scdseq_test
PASS: scd_test_partn
PASS: test_adj
PASS: seq_man_test
PASS: geom_util_test
PASS: xform_test
PASS: obb_test
PASS: adaptive_kd_tree_tests
PASS: bsp_tree_test
PASS: file_options_test
PASS: kd_tree_test
PASS: var_len_test
PASS: var_len_test_no_template
PASS: tag_test
PASS: mesh_set_test
PASS: mbcn_test
PASS: bsp_tree_poly_test
PASS: reorder_test
PASS: test_prog_opt
PASS: coords_connect_iterate
PASS: elem_eval_test
PASS: spatial_locator_test
PASS: test_boundbox
PASS: mbfacet_test
PASS: gttool_test
PASS: cropvol_test
PASS: mergemesh_test
PASS: mbground_test
PASS: lloyd_smoother_test
===================
All 32 tests passed
===================
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
Making check in io
make[2]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make readutil_test tqdcfr vtk_test cub_file_test exodus_test gmsh_test nastran_test read_nc read_ucd_nc read_mpas_nc write_nc ideas_test stl_test smf_test
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o readutil_test readutil_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o readutil_test readutil_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -DTEST_TQDCFR -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o tqdcfr tqdcfr-Tqdcfr.o ../../src/libMOAB.la -lm
libtool: link: g++ -DTEST_TQDCFR -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o tqdcfr tqdcfr-Tqdcfr.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o vtk_test VtkTest.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o vtk_test VtkTest.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o cub_file_test cub_file_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o cub_file_test cub_file_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o exodus_test exodus_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o exodus_test exodus_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o gmsh_test gmsh_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o gmsh_test gmsh_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o nastran_test nastran_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o nastran_test nastran_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o read_nc read_nc.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o read_nc read_nc.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o read_ucd_nc read_ucd_nc.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o read_ucd_nc read_ucd_nc.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o read_mpas_nc read_mpas_nc.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o read_mpas_nc read_mpas_nc.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/moab -I../../src/parallel -I../../src -I/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/include -I/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -isystem /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/include -DTEMPLATE_SPECIALIZATION -DTEMPLATE_FUNC_SPECIALIZATION -DHAVE_VSNPRINTF -D_FILE_OFFSET_BITS=64 -DHDF5_FILE -DNETCDF_FILE -DSRCDIR=. -DMESHDIR=../../MeshFiles/unittest -I. -I.. -I./.. -I../../src -I../../src -I../../src/io -I../../src/parallel -DUNORDERED_MAP_NS=std::tr1 -DHAVE_UNORDERED_MAP=tr1/unordered_map -DHAVE_UNORDERED_SET=tr1/unordered_set -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -MT write_nc.o -MD -MP -MF .deps/write_nc.Tpo -c -o write_nc.o write_nc.cpp
mv -f .deps/write_nc.Tpo .deps/write_nc.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o write_nc write_nc.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o write_nc write_nc.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o ideas_test ideas_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o ideas_test ideas_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o stl_test stl_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o stl_test stl_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -lnetcdf -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -lhdf5_hl -lhdf5 -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -lz -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -o smf_test smf_test.o ../../src/libMOAB.la -lm
libtool: link: g++ -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG -o smf_test smf_test.o -L/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc/lib -L/home/fathom/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/hdf5/hdf5-1.8.3/serial/gcc -L/homes/sharp/3rdparty/zlib/zlib-1.2.3/gcc/lib -L/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -L/home/fathom/3rdparty/zlib/zlib-1.2.4/gcc -L/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib ../../src/.libs/libMOAB.a /home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib/libnetcdf.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5_hl.so /homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib/libhdf5.so /homes/sharp/3rdparty/szip/szip-2.1/gcc/lib/libsz.so -lz -lm -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib -Wl,-rpath -Wl,/home/fathom/3rdparty/netcdf/netcdf-4.0.1/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/hdf5/hdf5-1.8.3/serial/gcc/lib -Wl,-rpath -Wl,/homes/sharp/3rdparty/szip/szip-2.1/gcc/lib
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make check-TESTS
make[3]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make[4]: Entering directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
PASS: readutil_test
PASS: tqdcfr
PASS: vtk_test
PASS: cub_file_test
PASS: exodus_test
PASS: gmsh_test
PASS: nastran_test
PASS: read_nc
PASS: read_ucd_nc
PASS: read_mpas_nc
FAIL: write_nc
PASS: ideas_test
PASS: stl_test
PASS: smf_test
==========================
1 of 14 tests failed
See test/io/test-suite.log
==========================
make[4]: *** [test-suite.log] Error 1
make[4]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make[3]: *** [check-TESTS] Error 2
make[3]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test/io'>
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `<https://jenkins-ci.mcs.anl.gov/job/moab_serial/ws/test'>
make: *** [check-recursive] Error 1
Build step 'Execute shell' marked build as failure
1
1
commit/MOAB: danwu: Updated unit test write_nc for serial MOAB, which failed with "PARALLEL option not valid, this instance compiled for serial execution".
by commits-noreply@bitbucket.org 30 Apr '14
by commits-noreply@bitbucket.org 30 Apr '14
30 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/967a5ee16b1b/
Changeset: 967a5ee16b1b
Branch: master
User: danwu
Date: 2014-04-30 22:40:13
Summary: Updated unit test write_nc for serial MOAB, which failed with "PARALLEL option not valid, this instance compiled for serial execution".
Affected #: 1 file
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index 54d16d5..2dc8e9a 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -111,13 +111,20 @@ void test_eul_read_write_T()
ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
CHECK_ERR(rval);
+#ifdef USE_MPI
read_opts = "PARALLEL=READ_PART;PARTITION;PARALLEL_RESOLVE_SHARED_ENTS;PARALLEL_GHOSTS=2.0.1;PARTITION_METHOD=SQIJ;VARIABLE=";
rval = mb.load_file(example_eul, &set, read_opts.c_str());
CHECK_ERR(rval);
- read_opts = "PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=SQIJ;VARIABLE=T,gw;NOMESH;";
+ read_opts = "PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=SQIJ;VARIABLE=T,gw;NOMESH";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
+#else
+ read_opts += ";DEBUG_IO=0;VARIABLE=T,gw";
rval = mb.load_file(example_eul, &set, read_opts.c_str());
CHECK_ERR(rval);
+#endif
+
// Write variables T and gw
std::string write_opts;
write_opts = std::string(";;VARIABLE=T,gw;DEBUG_IO=0");
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/MOAB: iulian07: filter out not owned entities, for writing
by commits-noreply@bitbucket.org 30 Apr '14
by commits-noreply@bitbucket.org 30 Apr '14
30 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/912e5d377ff3/
Changeset: 912e5d377ff3
Branch: master
User: iulian07
Date: 2014-04-30 21:17:09
Summary: filter out not owned entities, for writing
modify the test also, as Jayesh
needs cleanup
Affected #: 2 files
diff --git a/src/io/NCWriteHelper.cpp b/src/io/NCWriteHelper.cpp
index 9072e38..995bf3f 100644
--- a/src/io/NCWriteHelper.cpp
+++ b/src/io/NCWriteHelper.cpp
@@ -12,6 +12,7 @@
#include "NCWriteMPAS.hpp"
#include "moab/WriteUtilIface.hpp"
+#include "MBTagConventions.hpp"
#include <sstream>
@@ -540,8 +541,18 @@ ErrorCode ScdNCWriteHelper::write_values(std::vector<std::string>& var_names)
switch (variableData.entLoc) {
case WriteNC::ENTLOCFACE:
// Faces
+ {
rval = mbImpl->get_entities_by_dimension(_fileSet, 2, ents);
ERRORR(rval, "Can't get entities for faces.");
+#ifdef USE_MPI
+ bool &isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ rval = myPcomm->filter_pstatus(ents, PSTATUS_NOT_OWNED, PSTATUS_NOT);
+ ERRORR(rval, "Can't get filter for owned entities");
+ }
+#endif
+ }
break;
default:
ERRORR(MB_FAILURE, "Not implemented yet.");
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index 7f9df60..54d16d5 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -111,11 +111,13 @@ void test_eul_read_write_T()
ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
CHECK_ERR(rval);
- // Load non-set variable T, set variable gw, and the mesh
- read_opts += ";DEBUG_IO=0;VARIABLE=T,gw";
+ read_opts = "PARALLEL=READ_PART;PARTITION;PARALLEL_RESOLVE_SHARED_ENTS;PARALLEL_GHOSTS=2.0.1;PARTITION_METHOD=SQIJ;VARIABLE=";
rval = mb.load_file(example_eul, &set, read_opts.c_str());
CHECK_ERR(rval);
+ read_opts = "PARALLEL=READ_PART;PARTITION;PARTITION_METHOD=SQIJ;VARIABLE=T,gw;NOMESH;";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
// Write variables T and gw
std::string write_opts;
write_opts = std::string(";;VARIABLE=T,gw;DEBUG_IO=0");
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in MOAB:
https://bitbucket.org/fathomteam/moab/commits/091ff53b306d/
Changeset: 091ff53b306d
Branch: None
User: iulian07
Date: 2014-04-30 00:33:12
Summary: introduce RENAME option
option to rename a variable, requested by Jayesh
Some users might want to save a variable with a different name
only the initialization is modified; keep a list of desired names, which is
parallel to the variable names;
the test exercises the append option at the same time
Affected #: 5 files
diff --git a/src/io/NCWriteHelper.cpp b/src/io/NCWriteHelper.cpp
index 923fe02..9072e38 100644
--- a/src/io/NCWriteHelper.cpp
+++ b/src/io/NCWriteHelper.cpp
@@ -209,7 +209,7 @@ ErrorCode NCWriteHelper::collect_variable_data(std::vector<std::string>& var_nam
return MB_SUCCESS;
}
-ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names, bool append)
+ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names, std::vector<std::string>& desired_names, bool append)
{
std::vector<std::string>& dimNames = _writeNC->dimNames;
std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
@@ -334,13 +334,14 @@ ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names, bool app
}
// Define the variable now:
- int errCode = NCFUNC(def_var)(_fileId, var_names[i].c_str(), variableData.varDataType,
+ int errCode = NCFUNC(def_var)(_fileId, desired_names[i].c_str(), variableData.varDataType,
(int)variableData.varDims.size(), &(variableData.varDims[0]),
&variableData.varId);
if ( errCode != NC_NOERR)
ERRORR(MB_FAILURE, "Failed to create coordinate variable.");
- dbgOut.tprintf(2, " for variable %s variable id is %d \n", var_names[i].c_str(), variableData.varId);
+ dbgOut.tprintf(2, " for variable %s with desired name %s variable id is %d \n", var_names[i].c_str(),
+ desired_names[i].c_str(), variableData.varId);
// Now define the variable, with all dimensions
}
diff --git a/src/io/NCWriteHelper.hpp b/src/io/NCWriteHelper.hpp
index ed2443a..25a3120 100644
--- a/src/io/NCWriteHelper.hpp
+++ b/src/io/NCWriteHelper.hpp
@@ -34,7 +34,7 @@ public:
//! Initialize file: this is where all defines are done
//! The VarData dimension ids are filled up after define
- ErrorCode init_file(std::vector<std::string>& var_names, bool _append);
+ ErrorCode init_file(std::vector<std::string>& var_names, std::vector<std::string>& desired_names, bool _append);
protected:
template <typename T> void jik_to_kji(size_t ni, size_t nj, size_t nk, T* dest, T* source)
diff --git a/src/io/WriteNC.cpp b/src/io/WriteNC.cpp
index 98f4e3b..d4d79dd 100644
--- a/src/io/WriteNC.cpp
+++ b/src/io/WriteNC.cpp
@@ -62,6 +62,7 @@ ErrorCode WriteNC::write_file(const char* file_name,
ErrorCode rval;
// See if opts has variable(s) specified
std::vector<std::string> var_names;
+ std::vector<std::string> desired_names;
std::vector<int> tstep_nums;
std::vector<double> tstep_vals;
@@ -75,7 +76,7 @@ ErrorCode WriteNC::write_file(const char* file_name,
if (num_set != 1)
ERRORR(MB_FAILURE, "We should write only one set, the file set used to read data into.");
- rval = parse_options(options, var_names, tstep_nums, tstep_vals);
+ rval = parse_options(options, var_names, desired_names, tstep_nums, tstep_vals);
ERRORR(rval, "Trouble parsing option string.");
// Important to create some data that will be used to write the file; dimensions, variables, etc
@@ -135,7 +136,7 @@ ErrorCode WriteNC::write_file(const char* file_name,
rval = myHelper->collect_variable_data(var_names);
ERRORR(rval, "Trouble collecting variable data.");
- rval = myHelper->init_file(var_names, append);
+ rval = myHelper->init_file(var_names, desired_names, append);
ERRORR(rval, "Failed to initialize file.");
rval = myHelper->write_values(var_names);
@@ -147,7 +148,8 @@ ErrorCode WriteNC::write_file(const char* file_name,
return MB_SUCCESS;
}
-ErrorCode WriteNC::parse_options(const FileOptions& opts, std::vector<std::string>& var_names, std::vector<int>& tstep_nums,
+ErrorCode WriteNC::parse_options(const FileOptions& opts, std::vector<std::string>& var_names,
+ std::vector<std::string>& desired_names, std::vector<int>& tstep_nums,
std::vector<double>& tstep_vals)
{
int tmpval;
@@ -161,6 +163,20 @@ ErrorCode WriteNC::parse_options(const FileOptions& opts, std::vector<std::strin
noVars = true;
else
noVars = false;
+
+
+ rval = opts.get_strs_option("RENAME", desired_names);
+ if (MB_ENTITY_NOT_FOUND == rval)
+ {
+ if(!noVars)
+ {
+ desired_names.resize(var_names.size());
+ std::copy(var_names.begin(), var_names.end(), desired_names.begin());
+ }
+ }
+ // either way
+ assert(desired_names.size() == var_names.size());
+
opts.get_ints_option("TIMESTEP", tstep_nums);
opts.get_reals_option("TIMEVAL", tstep_vals);
rval = opts.get_null_option("NOMESH");
diff --git a/src/io/WriteNC.hpp b/src/io/WriteNC.hpp
index 5827680..60c295e 100644
--- a/src/io/WriteNC.hpp
+++ b/src/io/WriteNC.hpp
@@ -153,6 +153,7 @@ private:
ErrorCode parse_options(const FileOptions& opts,
std::vector<std::string>& var_names,
+ std::vector<std::string>& desired_names,
std::vector<int>& tstep_nums,
std::vector<double>& tstep_vals);
/*
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index f48e4c6..7fe2e82 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -261,7 +261,7 @@ void test_eul_read_write_append()
CHECK_ERR(rval);
// Load non-set variable T, set variable gw, and the mesh
- read_opts += ";DEBUG_IO=0;VARIABLE=T,U,gw";
+ read_opts += ";DEBUG_IO=0;VARIABLE=T,U,V,gw";
rval = mb.load_file(example_eul, &set, read_opts.c_str());
CHECK_ERR(rval);
@@ -289,6 +289,19 @@ void test_eul_read_write_append()
else
rval = mb.write_file("test_eul_TU.nc", 0, write_opts2.c_str(), &set, 1);
CHECK_ERR(rval);
+
+ // append to the file variable V, renamed to VNEWNAME
+ std::string write_opts3;
+ write_opts3 = std::string(";;VARIABLE=V;RENAME=VNEWNAME;DEBUG_IO=0;APPEND");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts3 += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts3.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_TU.nc", 0, write_opts3.c_str(), &set, 1);
+ CHECK_ERR(rval);
}
// We also write coordinate variables slat and slon to the output file, so that
https://bitbucket.org/fathomteam/moab/commits/3bac343d8274/
Changeset: 3bac343d8274
Branch: master
User: iulian07
Date: 2014-04-30 00:40:14
Summary: Merge branch 'master' of https://bitbucket.org/fathomteam/moab
Affected #: 3 files
diff --git a/src/io/NCWriteMPAS.cpp b/src/io/NCWriteMPAS.cpp
index 72dc35f..8058726 100644
--- a/src/io/NCWriteMPAS.cpp
+++ b/src/io/NCWriteMPAS.cpp
@@ -6,6 +6,7 @@
#include "NCWriteMPAS.hpp"
#include "moab/WriteUtilIface.hpp"
+#include "MBTagConventions.hpp"
#define ERRORR(rval, str) \
if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
@@ -22,12 +23,401 @@ NCWriteMPAS::~NCWriteMPAS()
ErrorCode NCWriteMPAS::collect_mesh_info()
{
- return MB_NOT_IMPLEMENTED;
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+ Tag& mGlobalIdTag = _writeNC->mGlobalIdTag;
+
+ ErrorCode rval;
+
+ // Look for time dimension
+ std::vector<std::string>::iterator vecIt;
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "Time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'Time' or 'time' dimension.");
+ }
+ nTimeSteps = dimLens[tDim];
+
+ // Get number of levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevels")) != dimNames.end())
+ levDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'nVertLevels' dimension.");
+ }
+ nLevels = dimLens[levDim];
+
+ Range local_verts;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 0, local_verts);
+ ERRORR(rval, "Trouble getting local vertices in current file set.");
+ assert(!local_verts.empty());
+
+ // Depends on whether NO_EDGES read option is set or not
+ Range local_edges;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 1, local_edges);
+ ERRORR(rval, "Trouble getting local edges in current file set.");
+ noEdges = local_edges.empty();
+
+ Range local_cells;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 2, local_cells);
+ ERRORR(rval, "Trouble getting local cells in current file set.");
+ assert(!local_cells.empty());
+
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ int rank = myPcomm->proc_config().proc_rank();
+ int procs = myPcomm->proc_config().proc_size();
+ if (procs > 1) {
+ rval = myPcomm->filter_pstatus(local_verts, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localVertsOwned);
+ ERRORR(rval, "Trouble getting owned vertices in set.");
+ // Assume that PARALLEL_RESOLVE_SHARED_ENTS option is set
+ // We should avoid writing in parallel with overlapped data
+ if (procs - 1 == rank)
+ assert("PARALLEL_RESOLVE_SHARED_ENTS option is set" && localVertsOwned.size() < local_verts.size());
+
+ if (!noEdges) {
+ rval = myPcomm->filter_pstatus(local_edges, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localEdgesOwned);
+ ERRORR(rval, "Trouble getting owned edges in set.");
+ }
+
+ rval = myPcomm->filter_pstatus(local_cells, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localCellsOwned);
+ ERRORR(rval, "Trouble getting owned cells in set.");
+ }
+ else {
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+ }
+ }
+ else {
+ // Not running in parallel, but still with MPI
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+ }
+#else
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+#endif
+
+ std::vector<int> gids(localVertsOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localVertsOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local vertices.");
+
+ // Restore localGidVerts
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidVertsOwned));
+ nLocalVerticesOwned = localGidVertsOwned.size();
+
+ gids.resize(localEdgesOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localEdgesOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local edges.");
+
+ // Restore localGidEdges
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidEdgesOwned));
+ nLocalEdgesOwned = localGidEdgesOwned.size();
+
+ gids.resize(localCellsOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localCellsOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local cells.");
+
+ // Restore localGidCells
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidCellsOwned));
+ nLocalCellsOwned = localGidCellsOwned.size();
+
+ return MB_SUCCESS;
}
-ErrorCode NCWriteMPAS::write_values(std::vector<std::string>& /* var_names */)
+ErrorCode NCWriteMPAS::collect_variable_data(std::vector<std::string>& var_names)
{
- return MB_NOT_IMPLEMENTED;
+ NCWriteHelper::collect_variable_data(var_names);
+
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+
+ // Dimension numbers for other optional levels
+ std::vector<unsigned int> opt_lev_dims;
+
+ unsigned int lev_idx;
+ std::vector<std::string>::iterator vecIt;
+
+ // Get number of vertex levels P1
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevelsP1")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ // Get number of vertex levels P2
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevelsP2")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ // Get number of soil levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nSoilLevels")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::string varname = var_names[i];
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(varname);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one variable.");
+
+ WriteNC::VarData& currentVarData = vit->second;
+ std::vector<int>& varDims = currentVarData.varDims;
+
+ // If nVertLevels dimension is not found, try other optional levels such as nVertLevelsP1
+ if (std::find(varDims.begin(), varDims.end(), levDim) == varDims.end()) {
+ for (unsigned int j = 0; j < opt_lev_dims.size(); j++) {
+ if (std::find(varDims.begin(), varDims.end(), opt_lev_dims[j]) != varDims.end()) {
+ currentVarData.numLev = dimLens[opt_lev_dims[j]];
+ break;
+ }
+ }
+ }
+
+ if (currentVarData.has_tsteps) {
+ // Support non-set variables with 3 dimensions like (Time, nCells, nVertLevels), or
+ // 2 dimensions like (Time, nCells)
+ assert(3 == currentVarData.varDims.size() || 2 == currentVarData.varDims.size());
+
+ // Time should be the first dimension
+ assert(tDim == currentVarData.varDims[0]);
+
+ // Set up writeStarts and writeCounts
+ currentVarData.writeStarts.resize(3);
+ currentVarData.writeCounts.resize(3);
+
+ // First: Time
+ currentVarData.writeStarts[0] = 0; // This value is timestep dependent, will be set later
+ currentVarData.writeCounts[0] = 1;
+
+ // Next: nVertices / nCells / nEdges
+ switch (currentVarData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ // Start from the first localGidVerts
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidVertsOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalVerticesOwned;
+ break;
+ case WriteNC::ENTLOCFACE:
+ // Faces
+ // Start from the first localGidCells
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidCellsOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalCellsOwned;
+ break;
+ case WriteNC::ENTLOCEDGE:
+ // Edges
+ // Start from the first localGidEdges
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidEdgesOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalEdgesOwned;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for MPAS non-set variable.");
+ }
+
+ // Finally: nVertLevels or other optional levels, it is possible that there
+ // is no level dimension for this non-set variable
+ currentVarData.writeStarts[2] = 0;
+ currentVarData.writeCounts[2] = currentVarData.numLev;
+ }
+
+ // Get variable size
+ currentVarData.sz = 1;
+ for (std::size_t idx = 0; idx != currentVarData.writeCounts.size(); idx++)
+ currentVarData.sz *= currentVarData.writeCounts[idx];
+ }
+
+ return MB_SUCCESS;
+}
+
+ErrorCode NCWriteMPAS::write_values(std::vector<std::string>& var_names)
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ int success;
+ Range* pLocalEntsOwned = NULL;
+ Range* pLocalGidEntsOwned = NULL;
+
+ // Now look at requested var_names; if they have time, we will have a list, and write one at a time
+ // For each variable tag in the indexed lists, write a time step data
+ // Assume the first dimension is time (need to check); if not, just write regularly
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(var_names[i]);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find variable requested.");
+
+ WriteNC::VarData& variableData = vit->second;
+ int numTimeSteps = (int)variableData.varTags.size();
+ if (variableData.has_tsteps) {
+ // Time should be the first dimension
+ assert(tDim == variableData.varDims[0]);
+
+ // Assume this variable is on vertices for the time being
+ switch (variableData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ pLocalEntsOwned = &localVertsOwned;
+ pLocalGidEntsOwned = &localGidVertsOwned;
+ break;
+ case WriteNC::ENTLOCEDGE:
+ // Edges
+ pLocalEntsOwned = &localEdgesOwned;
+ pLocalGidEntsOwned = &localGidEdgesOwned;
+ break;
+ case WriteNC::ENTLOCFACE:
+ // Cells
+ pLocalEntsOwned = &localCellsOwned;
+ pLocalGidEntsOwned = &localGidCellsOwned;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for MPAS non-set variable.");
+ }
+
+ // A typical variable has 3 dimensions as (Time, nCells, nVertLevels)
+ // FIXME: Should use tstep_nums (from writing options) later
+ for (int j = 0; j < numTimeSteps; j++) {
+ // We will write one time step, and count will be one; start will be different
+ // Use tag_get_data instead of tag_iterate to get values, as localEntsOwned
+ // might not be contiguous.
+ variableData.writeStarts[0] = j; // This is time, again
+ std::vector<double> tag_data(pLocalEntsOwned->size() * variableData.numLev);
+ ErrorCode rval = mbImpl->tag_get_data(variableData.varTags[j], *pLocalEntsOwned, &tag_data[0]);
+ ERRORR(rval, "Trouble getting tag data on owned vertices.");
+
+#ifdef PNETCDF_FILE
+ size_t nb_writes = pLocalGidEntsOwned->psize();
+ std::vector<int> requests(nb_writes), statuss(nb_writes);
+ size_t idxReq = 0;
+#endif
+
+ // Now write from memory directly
+ switch (variableData.varDataType) {
+ case NC_DOUBLE: {
+ size_t indexInDoubleArray = 0;
+ size_t ic = 0;
+ for (Range::pair_iterator pair_iter = pLocalGidEntsOwned->pair_begin();
+ pair_iter != pLocalGidEntsOwned->pair_end(); ++pair_iter, ic++) {
+ EntityHandle starth = pair_iter->first;
+ EntityHandle endh = pair_iter->second;
+ variableData.writeStarts[1] = (NCDF_SIZE)(starth - 1);
+ variableData.writeCounts[1] = (NCDF_SIZE)(endh - starth + 1);
+
+ // Do a partial write, in each subrange
+#ifdef PNETCDF_FILE
+ // Wait outside this loop
+ success = NCFUNCREQP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tag_data[indexInDoubleArray]), &requests[idxReq++]);
+#else
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tag_data[indexInDoubleArray]));
+#endif
+ ERRORS(success, "Failed to read double data in loop");
+ // We need to increment the index in double array for the
+ // next subrange
+ indexInDoubleArray += (endh - starth + 1) * variableData.numLev;
+ }
+ assert(ic == pLocalGidEntsOwned->psize());
+#ifdef PNETCDF_FILE
+ success = ncmpi_wait_all(_fileId, requests.size(), &requests[0], &statuss[0]);
+ ERRORS(success, "Failed on wait_all.");
+#endif
+ break;
+ }
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ } // if (variableData.has_tsteps)
+ else {
+ switch (variableData.varDataType) {
+ case NC_DOUBLE:
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId, &variableData.writeStarts[0],
+ &variableData.writeCounts[0], (double*)(variableData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+ // Write coordinates used by requested var_names
+ // Use independent I/O mode put, since this write is only for the root processor
+ // CAUTION: if the NetCDF ID is from a previous call to ncmpi_create rather than ncmpi_open,
+ // all processors need to call ncmpi_begin_indep_data(). If only the root processor does so,
+ // ncmpi_begin_indep_data() call will be blocked forever :(
+#ifdef PNETCDF_FILE
+ // Enter independent I/O mode
+ success = NCFUNC(begin_indep_data)(_fileId);
+ ERRORS(success, "Failed to begin independent I/O mode.");
+#endif
+
+ int rank = 0;
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ rank = myPcomm->proc_config().proc_rank();
+ }
+#endif
+ if (0 == rank) {
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ // Skip dummy coordinate variables (e.g. ncol)
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+
+ switch (varCoordData.varDataType) {
+ case NC_DOUBLE:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_double)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (double*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ case NC_INT:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_int)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (int*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write int data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+#ifdef PNETCDF_FILE
+ // End independent I/O mode
+ success = NCFUNC(end_indep_data)(_fileId);
+ ERRORS(success, "Failed to end independent I/O mode.");
+#endif
+
+ return MB_SUCCESS;
}
} /* namespace moab */
diff --git a/src/io/NCWriteMPAS.hpp b/src/io/NCWriteMPAS.hpp
index 702984f..89842f3 100644
--- a/src/io/NCWriteMPAS.hpp
+++ b/src/io/NCWriteMPAS.hpp
@@ -17,7 +17,7 @@ class NCWriteMPAS: public UcdNCWriteHelper
{
public:
NCWriteMPAS(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
-: UcdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+: UcdNCWriteHelper(writeNC, fileId, opts, fileSet), noEdges(false) {}
virtual ~NCWriteMPAS();
@@ -26,7 +26,13 @@ private:
virtual ErrorCode collect_mesh_info();
//! Collect data for specified variables
+ virtual ErrorCode collect_variable_data(std::vector<std::string>& var_names);
+
+ //! Implementation of NCWriteHelper::write_values()
virtual ErrorCode write_values(std::vector<std::string>& var_names);
+
+private:
+ bool noEdges;
};
} // namespace moab
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index 7fe2e82..7f9df60 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -71,10 +71,11 @@ int main(int argc, char* argv[])
result += RUN_TEST(test_eul_check_T);
result += RUN_TEST(test_eul_read_write_append);
result += RUN_TEST(test_fv_read_write_T);
+ result += RUN_TEST(test_fv_check_T);
result += RUN_TEST(test_homme_read_write_T);
result += RUN_TEST(test_homme_check_T);
- // result += RUN_TEST(test_mpas_read_write_vars);
- // result += RUN_TEST(test_mpas_check_vars);
+ result += RUN_TEST(test_mpas_read_write_vars);
+ result += RUN_TEST(test_mpas_check_vars);
#ifdef USE_MPI
fail = MPI_Finalize();
@@ -235,6 +236,7 @@ void test_eul_check_T()
}
}
}
+
// We read and write variables T and U; U after we write T, so we append
// we will also write gw, just to test the file after writing
void test_eul_read_write_append()
@@ -466,7 +468,7 @@ void test_homme_read_write_T()
CHECK_ERR(rval);
// Write variables T, lat and lon
- std::string write_opts = ";;VARIABLE=T,lat,lon;DEBUG_IO=0;";
+ std::string write_opts = ";;VARIABLE=T,lat,lon;DEBUG_IO=0";
#ifdef USE_MPI
// Use parallel options
write_opts += std::string(";PARALLEL=WRITE_PART");
@@ -626,7 +628,7 @@ void test_mpas_read_write_vars()
CHECK_ERR(rval);
// Write variables u, ke and vorticity (no mesh information)
- std::string write_opts = ";;VARIABLE=u,ke,vorticity;DEBUG_IO=0;";
+ std::string write_opts = ";;VARIABLE=u,ke,vorticity;DEBUG_IO=0";
#ifdef USE_MPI
// Use parallel options
write_opts += std::string(";PARALLEL=WRITE_PART");
@@ -662,9 +664,9 @@ void test_mpas_check_vars()
std::string filename;
if (procs > 1)
- filename = "test_mpas_vars.nc";
- else
filename = "test_par_mpas_vars.nc";
+ else
+ filename = "test_mpas_vars.nc";
#ifdef PNETCDF_FILE
success = NCFUNC(open)(MPI_COMM_SELF, filename.c_str(), NC_NOWRITE, MPI_INFO_NULL, &ncid);
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/MOAB: danwu: Updated NC writer and its unit test. Serial and parallel write should work now for MPAS.
by commits-noreply@bitbucket.org 29 Apr '14
by commits-noreply@bitbucket.org 29 Apr '14
29 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/735eb40d80f7/
Changeset: 735eb40d80f7
Branch: master
User: danwu
Date: 2014-04-30 00:05:41
Summary: Updated NC writer and its unit test. Serial and parallel write should work now for MPAS.
Affected #: 3 files
diff --git a/src/io/NCWriteMPAS.cpp b/src/io/NCWriteMPAS.cpp
index 72dc35f..8058726 100644
--- a/src/io/NCWriteMPAS.cpp
+++ b/src/io/NCWriteMPAS.cpp
@@ -6,6 +6,7 @@
#include "NCWriteMPAS.hpp"
#include "moab/WriteUtilIface.hpp"
+#include "MBTagConventions.hpp"
#define ERRORR(rval, str) \
if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
@@ -22,12 +23,401 @@ NCWriteMPAS::~NCWriteMPAS()
ErrorCode NCWriteMPAS::collect_mesh_info()
{
- return MB_NOT_IMPLEMENTED;
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+ Tag& mGlobalIdTag = _writeNC->mGlobalIdTag;
+
+ ErrorCode rval;
+
+ // Look for time dimension
+ std::vector<std::string>::iterator vecIt;
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "Time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'Time' or 'time' dimension.");
+ }
+ nTimeSteps = dimLens[tDim];
+
+ // Get number of levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevels")) != dimNames.end())
+ levDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'nVertLevels' dimension.");
+ }
+ nLevels = dimLens[levDim];
+
+ Range local_verts;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 0, local_verts);
+ ERRORR(rval, "Trouble getting local vertices in current file set.");
+ assert(!local_verts.empty());
+
+ // Depends on whether NO_EDGES read option is set or not
+ Range local_edges;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 1, local_edges);
+ ERRORR(rval, "Trouble getting local edges in current file set.");
+ noEdges = local_edges.empty();
+
+ Range local_cells;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 2, local_cells);
+ ERRORR(rval, "Trouble getting local cells in current file set.");
+ assert(!local_cells.empty());
+
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ int rank = myPcomm->proc_config().proc_rank();
+ int procs = myPcomm->proc_config().proc_size();
+ if (procs > 1) {
+ rval = myPcomm->filter_pstatus(local_verts, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localVertsOwned);
+ ERRORR(rval, "Trouble getting owned vertices in set.");
+ // Assume that PARALLEL_RESOLVE_SHARED_ENTS option is set
+ // We should avoid writing in parallel with overlapped data
+ if (procs - 1 == rank)
+ assert("PARALLEL_RESOLVE_SHARED_ENTS option is set" && localVertsOwned.size() < local_verts.size());
+
+ if (!noEdges) {
+ rval = myPcomm->filter_pstatus(local_edges, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localEdgesOwned);
+ ERRORR(rval, "Trouble getting owned edges in set.");
+ }
+
+ rval = myPcomm->filter_pstatus(local_cells, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localCellsOwned);
+ ERRORR(rval, "Trouble getting owned cells in set.");
+ }
+ else {
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+ }
+ }
+ else {
+ // Not running in parallel, but still with MPI
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+ }
+#else
+ localVertsOwned = local_verts;
+ localEdgesOwned = local_edges;
+ localCellsOwned = local_cells;
+#endif
+
+ std::vector<int> gids(localVertsOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localVertsOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local vertices.");
+
+ // Restore localGidVerts
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidVertsOwned));
+ nLocalVerticesOwned = localGidVertsOwned.size();
+
+ gids.resize(localEdgesOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localEdgesOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local edges.");
+
+ // Restore localGidEdges
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidEdgesOwned));
+ nLocalEdgesOwned = localGidEdgesOwned.size();
+
+ gids.resize(localCellsOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localCellsOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local cells.");
+
+ // Restore localGidCells
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidCellsOwned));
+ nLocalCellsOwned = localGidCellsOwned.size();
+
+ return MB_SUCCESS;
}
-ErrorCode NCWriteMPAS::write_values(std::vector<std::string>& /* var_names */)
+ErrorCode NCWriteMPAS::collect_variable_data(std::vector<std::string>& var_names)
{
- return MB_NOT_IMPLEMENTED;
+ NCWriteHelper::collect_variable_data(var_names);
+
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+
+ // Dimension numbers for other optional levels
+ std::vector<unsigned int> opt_lev_dims;
+
+ unsigned int lev_idx;
+ std::vector<std::string>::iterator vecIt;
+
+ // Get number of vertex levels P1
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevelsP1")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ // Get number of vertex levels P2
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nVertLevelsP2")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ // Get number of soil levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "nSoilLevels")) != dimNames.end()) {
+ lev_idx = vecIt - dimNames.begin();
+ opt_lev_dims.push_back(lev_idx);
+ }
+
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::string varname = var_names[i];
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(varname);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one variable.");
+
+ WriteNC::VarData& currentVarData = vit->second;
+ std::vector<int>& varDims = currentVarData.varDims;
+
+ // If nVertLevels dimension is not found, try other optional levels such as nVertLevelsP1
+ if (std::find(varDims.begin(), varDims.end(), levDim) == varDims.end()) {
+ for (unsigned int j = 0; j < opt_lev_dims.size(); j++) {
+ if (std::find(varDims.begin(), varDims.end(), opt_lev_dims[j]) != varDims.end()) {
+ currentVarData.numLev = dimLens[opt_lev_dims[j]];
+ break;
+ }
+ }
+ }
+
+ if (currentVarData.has_tsteps) {
+ // Support non-set variables with 3 dimensions like (Time, nCells, nVertLevels), or
+ // 2 dimensions like (Time, nCells)
+ assert(3 == currentVarData.varDims.size() || 2 == currentVarData.varDims.size());
+
+ // Time should be the first dimension
+ assert(tDim == currentVarData.varDims[0]);
+
+ // Set up writeStarts and writeCounts
+ currentVarData.writeStarts.resize(3);
+ currentVarData.writeCounts.resize(3);
+
+ // First: Time
+ currentVarData.writeStarts[0] = 0; // This value is timestep dependent, will be set later
+ currentVarData.writeCounts[0] = 1;
+
+ // Next: nVertices / nCells / nEdges
+ switch (currentVarData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ // Start from the first localGidVerts
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidVertsOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalVerticesOwned;
+ break;
+ case WriteNC::ENTLOCFACE:
+ // Faces
+ // Start from the first localGidCells
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidCellsOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalCellsOwned;
+ break;
+ case WriteNC::ENTLOCEDGE:
+ // Edges
+ // Start from the first localGidEdges
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[1] = localGidEdgesOwned[0] - 1;
+ currentVarData.writeCounts[1] = nLocalEdgesOwned;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for MPAS non-set variable.");
+ }
+
+ // Finally: nVertLevels or other optional levels, it is possible that there
+ // is no level dimension for this non-set variable
+ currentVarData.writeStarts[2] = 0;
+ currentVarData.writeCounts[2] = currentVarData.numLev;
+ }
+
+ // Get variable size
+ currentVarData.sz = 1;
+ for (std::size_t idx = 0; idx != currentVarData.writeCounts.size(); idx++)
+ currentVarData.sz *= currentVarData.writeCounts[idx];
+ }
+
+ return MB_SUCCESS;
+}
+
+ErrorCode NCWriteMPAS::write_values(std::vector<std::string>& var_names)
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ int success;
+ Range* pLocalEntsOwned = NULL;
+ Range* pLocalGidEntsOwned = NULL;
+
+ // Now look at requested var_names; if they have time, we will have a list, and write one at a time
+ // For each variable tag in the indexed lists, write a time step data
+ // Assume the first dimension is time (need to check); if not, just write regularly
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(var_names[i]);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find variable requested.");
+
+ WriteNC::VarData& variableData = vit->second;
+ int numTimeSteps = (int)variableData.varTags.size();
+ if (variableData.has_tsteps) {
+ // Time should be the first dimension
+ assert(tDim == variableData.varDims[0]);
+
+ // Assume this variable is on vertices for the time being
+ switch (variableData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ pLocalEntsOwned = &localVertsOwned;
+ pLocalGidEntsOwned = &localGidVertsOwned;
+ break;
+ case WriteNC::ENTLOCEDGE:
+ // Edges
+ pLocalEntsOwned = &localEdgesOwned;
+ pLocalGidEntsOwned = &localGidEdgesOwned;
+ break;
+ case WriteNC::ENTLOCFACE:
+ // Cells
+ pLocalEntsOwned = &localCellsOwned;
+ pLocalGidEntsOwned = &localGidCellsOwned;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for MPAS non-set variable.");
+ }
+
+ // A typical variable has 3 dimensions as (Time, nCells, nVertLevels)
+ // FIXME: Should use tstep_nums (from writing options) later
+ for (int j = 0; j < numTimeSteps; j++) {
+ // We will write one time step, and count will be one; start will be different
+ // Use tag_get_data instead of tag_iterate to get values, as localEntsOwned
+ // might not be contiguous.
+ variableData.writeStarts[0] = j; // This is time, again
+ std::vector<double> tag_data(pLocalEntsOwned->size() * variableData.numLev);
+ ErrorCode rval = mbImpl->tag_get_data(variableData.varTags[j], *pLocalEntsOwned, &tag_data[0]);
+ ERRORR(rval, "Trouble getting tag data on owned vertices.");
+
+#ifdef PNETCDF_FILE
+ size_t nb_writes = pLocalGidEntsOwned->psize();
+ std::vector<int> requests(nb_writes), statuss(nb_writes);
+ size_t idxReq = 0;
+#endif
+
+ // Now write from memory directly
+ switch (variableData.varDataType) {
+ case NC_DOUBLE: {
+ size_t indexInDoubleArray = 0;
+ size_t ic = 0;
+ for (Range::pair_iterator pair_iter = pLocalGidEntsOwned->pair_begin();
+ pair_iter != pLocalGidEntsOwned->pair_end(); ++pair_iter, ic++) {
+ EntityHandle starth = pair_iter->first;
+ EntityHandle endh = pair_iter->second;
+ variableData.writeStarts[1] = (NCDF_SIZE)(starth - 1);
+ variableData.writeCounts[1] = (NCDF_SIZE)(endh - starth + 1);
+
+ // Do a partial write, in each subrange
+#ifdef PNETCDF_FILE
+ // Wait outside this loop
+ success = NCFUNCREQP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tag_data[indexInDoubleArray]), &requests[idxReq++]);
+#else
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tag_data[indexInDoubleArray]));
+#endif
+ ERRORS(success, "Failed to read double data in loop");
+ // We need to increment the index in double array for the
+ // next subrange
+ indexInDoubleArray += (endh - starth + 1) * variableData.numLev;
+ }
+ assert(ic == pLocalGidEntsOwned->psize());
+#ifdef PNETCDF_FILE
+ success = ncmpi_wait_all(_fileId, requests.size(), &requests[0], &statuss[0]);
+ ERRORS(success, "Failed on wait_all.");
+#endif
+ break;
+ }
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ } // if (variableData.has_tsteps)
+ else {
+ switch (variableData.varDataType) {
+ case NC_DOUBLE:
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId, &variableData.writeStarts[0],
+ &variableData.writeCounts[0], (double*)(variableData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+ // Write coordinates used by requested var_names
+ // Use independent I/O mode put, since this write is only for the root processor
+ // CAUTION: if the NetCDF ID is from a previous call to ncmpi_create rather than ncmpi_open,
+ // all processors need to call ncmpi_begin_indep_data(). If only the root processor does so,
+ // ncmpi_begin_indep_data() call will be blocked forever :(
+#ifdef PNETCDF_FILE
+ // Enter independent I/O mode
+ success = NCFUNC(begin_indep_data)(_fileId);
+ ERRORS(success, "Failed to begin independent I/O mode.");
+#endif
+
+ int rank = 0;
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ rank = myPcomm->proc_config().proc_rank();
+ }
+#endif
+ if (0 == rank) {
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ // Skip dummy coordinate variables (e.g. ncol)
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+
+ switch (varCoordData.varDataType) {
+ case NC_DOUBLE:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_double)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (double*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ case NC_INT:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_int)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (int*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write int data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+#ifdef PNETCDF_FILE
+ // End independent I/O mode
+ success = NCFUNC(end_indep_data)(_fileId);
+ ERRORS(success, "Failed to end independent I/O mode.");
+#endif
+
+ return MB_SUCCESS;
}
} /* namespace moab */
diff --git a/src/io/NCWriteMPAS.hpp b/src/io/NCWriteMPAS.hpp
index 702984f..89842f3 100644
--- a/src/io/NCWriteMPAS.hpp
+++ b/src/io/NCWriteMPAS.hpp
@@ -17,7 +17,7 @@ class NCWriteMPAS: public UcdNCWriteHelper
{
public:
NCWriteMPAS(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
-: UcdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+: UcdNCWriteHelper(writeNC, fileId, opts, fileSet), noEdges(false) {}
virtual ~NCWriteMPAS();
@@ -26,7 +26,13 @@ private:
virtual ErrorCode collect_mesh_info();
//! Collect data for specified variables
+ virtual ErrorCode collect_variable_data(std::vector<std::string>& var_names);
+
+ //! Implementation of NCWriteHelper::write_values()
virtual ErrorCode write_values(std::vector<std::string>& var_names);
+
+private:
+ bool noEdges;
};
} // namespace moab
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index f48e4c6..740ec5f 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -71,10 +71,11 @@ int main(int argc, char* argv[])
result += RUN_TEST(test_eul_check_T);
result += RUN_TEST(test_eul_read_write_append);
result += RUN_TEST(test_fv_read_write_T);
+ result += RUN_TEST(test_fv_check_T);
result += RUN_TEST(test_homme_read_write_T);
result += RUN_TEST(test_homme_check_T);
- // result += RUN_TEST(test_mpas_read_write_vars);
- // result += RUN_TEST(test_mpas_check_vars);
+ result += RUN_TEST(test_mpas_read_write_vars);
+ result += RUN_TEST(test_mpas_check_vars);
#ifdef USE_MPI
fail = MPI_Finalize();
@@ -235,6 +236,7 @@ void test_eul_check_T()
}
}
}
+
// We read and write variables T and U; U after we write T, so we append
// we will also write gw, just to test the file after writing
void test_eul_read_write_append()
@@ -453,7 +455,7 @@ void test_homme_read_write_T()
CHECK_ERR(rval);
// Write variables T, lat and lon
- std::string write_opts = ";;VARIABLE=T,lat,lon;DEBUG_IO=0;";
+ std::string write_opts = ";;VARIABLE=T,lat,lon;DEBUG_IO=0";
#ifdef USE_MPI
// Use parallel options
write_opts += std::string(";PARALLEL=WRITE_PART");
@@ -613,7 +615,7 @@ void test_mpas_read_write_vars()
CHECK_ERR(rval);
// Write variables u, ke and vorticity (no mesh information)
- std::string write_opts = ";;VARIABLE=u,ke,vorticity;DEBUG_IO=0;";
+ std::string write_opts = ";;VARIABLE=u,ke,vorticity;DEBUG_IO=0";
#ifdef USE_MPI
// Use parallel options
write_opts += std::string(";PARALLEL=WRITE_PART");
@@ -649,9 +651,9 @@ void test_mpas_check_vars()
std::string filename;
if (procs > 1)
- filename = "test_mpas_vars.nc";
- else
filename = "test_par_mpas_vars.nc";
+ else
+ filename = "test_mpas_vars.nc";
#ifdef PNETCDF_FILE
success = NCFUNC(open)(MPI_COMM_SELF, filename.c_str(), NC_NOWRITE, MPI_INFO_NULL, &ncid);
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
29 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/f48ec38dbf3e/
Changeset: f48ec38dbf3e
Branch: master
User: iulian07
Date: 2014-04-29 23:32:58
Summary: first pass at append option
small test now for euler only
maybe it should be tested for more formats
assumes that if a dimension is already defined, there should be
a variable with the same name (coordinate)
Affected #: 5 files
diff --git a/src/io/NCWriteHelper.cpp b/src/io/NCWriteHelper.cpp
index 4f95ef8..923fe02 100644
--- a/src/io/NCWriteHelper.cpp
+++ b/src/io/NCWriteHelper.cpp
@@ -209,7 +209,7 @@ ErrorCode NCWriteHelper::collect_variable_data(std::vector<std::string>& var_nam
return MB_SUCCESS;
}
-ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names)
+ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names, bool append)
{
std::vector<std::string>& dimNames = _writeNC->dimNames;
std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
@@ -221,6 +221,9 @@ ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names)
int tDim_in_dimNames = tDim;
int levDim_in_dimNames = levDim;
+ // if append mode, make sure we are in define mode; a simple open will not allow creation of new variables
+ if (append)
+ NCFUNC(redef)(_fileId);
// First initialize all coordinates, then fill VarData for actual variables (and dimensions)
// Check that for used coordinates we have found the tags
for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
@@ -234,6 +237,40 @@ ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names)
WriteNC::VarData& varCoordData = vit->second;
varCoordData.varDims.resize(1);
+ // if not append, create it for sure
+ // if append, we might already have it, including the tag / variable with the same name
+ /*
+ * int ncmpi_inq_dimid(int ncid, const char *name, int *idp);
+ */
+ if (append)
+ {
+ int dimId;
+ if (NCFUNC(inq_dimid)(_fileId, coordName.c_str(), &dimId) == NC_NOERR)
+ // if not found, create it later
+ {
+ varCoordData.varDims[0] = dimId;
+ // check that the coordinate is a variable too
+ // Skip dummy coordinate variables (e.g. ncol)
+ dbgOut.tprintf(2, " file already has coordName %s dim id is %d \n", coordName.c_str(), (int)varCoordData.varDims[0]);
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+ // inquire for a variable with the same name
+
+ int varId;
+ if (NCFUNC(inq_varid)(_fileId, coordName.c_str(), &varId) != NC_NOERR)
+ ERRORR(MB_FAILURE, "we do not have a variable with the same name.");
+ // we should also check that this variable has one dimension, and it is dimId
+ varCoordData.varId = varId;
+ dbgOut.tprintf(2, " file already has coordinate %s and varId is %d \n", coordName.c_str(), varId);
+ // Update tDim and levDim to actual dimension id
+ if (coordName == dimNames[tDim_in_dimNames])
+ tDim = varCoordData.varDims[0];
+ else if (coordName == dimNames[levDim_in_dimNames])
+ levDim = varCoordData.varDims[0];
+ continue; // maybe more checks are needed here
+ }
+
+ }
/* int nc_def_dim (int ncid, const char *name, size_t len, int *dimidp);
* example: status = nc_def_dim(fileId, "lat", 18L, &latid);
*/
@@ -297,9 +334,10 @@ ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names)
}
// Define the variable now:
- if (NCFUNC(def_var)(_fileId, var_names[i].c_str(), variableData.varDataType,
+ int errCode = NCFUNC(def_var)(_fileId, var_names[i].c_str(), variableData.varDataType,
(int)variableData.varDims.size(), &(variableData.varDims[0]),
- &variableData.varId) != NC_NOERR)
+ &variableData.varId);
+ if ( errCode != NC_NOERR)
ERRORR(MB_FAILURE, "Failed to create coordinate variable.");
dbgOut.tprintf(2, " for variable %s variable id is %d \n", var_names[i].c_str(), variableData.varId);
diff --git a/src/io/NCWriteHelper.hpp b/src/io/NCWriteHelper.hpp
index b05fe12..ed2443a 100644
--- a/src/io/NCWriteHelper.hpp
+++ b/src/io/NCWriteHelper.hpp
@@ -34,7 +34,7 @@ public:
//! Initialize file: this is where all defines are done
//! The VarData dimension ids are filled up after define
- ErrorCode init_file(std::vector<std::string>& var_names);
+ ErrorCode init_file(std::vector<std::string>& var_names, bool _append);
protected:
template <typename T> void jik_to_kji(size_t ni, size_t nj, size_t nk, T* dest, T* source)
@@ -50,7 +50,7 @@ protected:
//! Allow NCWriteHelper to directly access members of WriteNC
WriteNC* _writeNC;
- //! Cache some information from ReadNC
+ //! Cache some information from WriteNC
int _fileId;
const FileOptions& _opts;
EntityHandle _fileSet;
diff --git a/src/io/WriteNC.cpp b/src/io/WriteNC.cpp
index e665e26..98f4e3b 100644
--- a/src/io/WriteNC.cpp
+++ b/src/io/WriteNC.cpp
@@ -33,7 +33,7 @@ WriteNC::WriteNC(Interface* impl) :
#ifdef USE_MPI
myPcomm(NULL),
#endif
- noMesh(false), noVars(false),
+ noMesh(false), noVars(false), append(false),
mGlobalIdTag(0), isParallel(false),
myHelper(NULL)
{
@@ -84,23 +84,42 @@ ErrorCode WriteNC::write_file(const char* file_name,
rval = process_conventional_tags(*file_set);
ERRORR(rval, "Trouble processing conventional tags.");
- // Create the file ; assume we will overwrite always, for the time being
- dbgOut.tprintf(1, "creating file %s\n", file_name);
+ // Create or append the file
+ if (append)
+ dbgOut.tprintf(1, "opening file %s for appending \n", file_name);
+ else
+ dbgOut.tprintf(1, "creating file %s\n", file_name);
fileName = file_name;
int success;
+ if (append)
+ {
#ifdef PNETCDF_FILE
- int cmode = overwrite ? NC_CLOBBER : NC_NOCLOBBER;
- if (isParallel)
- success = NCFUNC(create)(myPcomm->proc_config().proc_comm(), file_name, cmode, MPI_INFO_NULL, &fileId);
- else
- success = NCFUNC(create)(MPI_COMM_SELF, file_name, cmode, MPI_INFO_NULL, &fileId);
+ int omode = NC_WRITE;
+ if (isParallel)
+ success = NCFUNC(open)(myPcomm->proc_config().proc_comm(), file_name, omode, MPI_INFO_NULL, &fileId);
+ else
+ success = NCFUNC(open)(MPI_COMM_SELF, file_name, omode, MPI_INFO_NULL, &fileId);
#else
- // This is a regular netcdf file
- success = NCFUNC(create)(file_name, overwrite ? NC_CLOBBER : NC_NOCLOBBER, &fileId);
+ // This is a regular netcdf file
+ success = NCFUNC(open)(file_name, overwrite ? NC_CLOBBER : NC_NOCLOBBER, &fileId);
#endif
- ERRORS(success, "Failed to create file.");
-
+ ERRORS(success, "Failed to open file for appending.");
+ }
+ else // case when the file is new, will be overwritten, most likely
+ {
+#ifdef PNETCDF_FILE
+ int cmode = overwrite ? NC_CLOBBER : NC_NOCLOBBER;
+ if (isParallel)
+ success = NCFUNC(create)(myPcomm->proc_config().proc_comm(), file_name, cmode, MPI_INFO_NULL, &fileId);
+ else
+ success = NCFUNC(create)(MPI_COMM_SELF, file_name, cmode, MPI_INFO_NULL, &fileId);
+#else
+ // This is a regular netcdf file
+ success = NCFUNC(create)(file_name, overwrite ? NC_CLOBBER : NC_NOCLOBBER, &fileId);
+#endif
+ ERRORS(success, "Failed to create file.");
+ }
if (NULL != myHelper)
delete myHelper;
@@ -116,7 +135,7 @@ ErrorCode WriteNC::write_file(const char* file_name,
rval = myHelper->collect_variable_data(var_names);
ERRORR(rval, "Trouble collecting variable data.");
- rval = myHelper->init_file(var_names);
+ rval = myHelper->init_file(var_names, append);
ERRORR(rval, "Failed to initialize file.");
rval = myHelper->write_values(var_names);
@@ -148,6 +167,10 @@ ErrorCode WriteNC::parse_options(const FileOptions& opts, std::vector<std::strin
if (MB_SUCCESS == rval)
noMesh = true;
+ rval = opts.get_null_option("APPEND");
+ if (MB_SUCCESS == rval)
+ append = true;
+
if (2 <= dbgOut.get_verbosity()) {
if (!var_names.empty()) {
std::cerr << "Variables requested: ";
diff --git a/src/io/WriteNC.hpp b/src/io/WriteNC.hpp
index 1c5d78e..5827680 100644
--- a/src/io/WriteNC.hpp
+++ b/src/io/WriteNC.hpp
@@ -185,6 +185,7 @@ private:
//! Write options
bool noMesh;
bool noVars;
+ bool append;
//! Cached tags for writing. This will be important for ordering the data, in parallel
Tag mGlobalIdTag;
diff --git a/test/io/write_nc.cpp b/test/io/write_nc.cpp
index 2d9bdae..f48e4c6 100644
--- a/test/io/write_nc.cpp
+++ b/test/io/write_nc.cpp
@@ -36,6 +36,7 @@ static const char example_mpas[] = "/io/mpasx1.642.t.2.nc";
// CAM-EUL
void test_eul_read_write_T();
void test_eul_check_T();
+void test_eul_read_write_append();
// CAM-FV
void test_fv_read_write_T();
@@ -68,12 +69,12 @@ int main(int argc, char* argv[])
result += RUN_TEST(test_eul_read_write_T);
result += RUN_TEST(test_eul_check_T);
+ result += RUN_TEST(test_eul_read_write_append);
result += RUN_TEST(test_fv_read_write_T);
- result += RUN_TEST(test_fv_check_T);
result += RUN_TEST(test_homme_read_write_T);
result += RUN_TEST(test_homme_check_T);
- //result += RUN_TEST(test_mpas_read_write_vars);
- //result += RUN_TEST(test_mpas_check_vars);
+ // result += RUN_TEST(test_mpas_read_write_vars);
+ // result += RUN_TEST(test_mpas_check_vars);
#ifdef USE_MPI
fail = MPI_Finalize();
@@ -234,6 +235,61 @@ void test_eul_check_T()
}
}
}
+// We read and write variables T and U; U after we write T, so we append
+// we will also write gw, just to test the file after writing
+void test_eul_read_write_append()
+{
+ int procs = 1;
+#ifdef USE_MPI
+ MPI_Comm_size(MPI_COMM_WORLD, &procs);
+#endif
+
+// We will not test NC writer in parallel without pnetcdf support
+#ifndef PNETCDF_FILE
+ if (procs > 1)
+ return;
+#endif
+
+ Core moab;
+ Interface& mb = moab;
+
+ std::string read_opts;
+ get_eul_read_options(read_opts);
+
+ EntityHandle set;
+ ErrorCode rval = mb.create_meshset(MESHSET_SET, set);
+ CHECK_ERR(rval);
+
+ // Load non-set variable T, set variable gw, and the mesh
+ read_opts += ";DEBUG_IO=0;VARIABLE=T,U,gw";
+ rval = mb.load_file(example_eul, &set, read_opts.c_str());
+ CHECK_ERR(rval);
+
+ // Write variables T and gw
+ std::string write_opts;
+ write_opts = std::string(";;VARIABLE=T,gw;DEBUG_IO=0");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_TU.nc", 0, write_opts.c_str(), &set, 1);
+ CHECK_ERR(rval);
+ // append to the file variable U
+ std::string write_opts2;
+ write_opts2 = std::string(";;VARIABLE=U;DEBUG_IO=0;APPEND");
+#ifdef USE_MPI
+ // Use parallel options
+ write_opts2 += std::string(";PARALLEL=WRITE_PART");
+#endif
+ if (procs > 1)
+ rval = mb.write_file("test_par_eul_TU.nc", 0, write_opts2.c_str(), &set, 1);
+ else
+ rval = mb.write_file("test_eul_TU.nc", 0, write_opts2.c_str(), &set, 1);
+ CHECK_ERR(rval);
+}
// We also write coordinate variables slat and slon to the output file, so that
// it can be recognized by NC reader later in test_fv_check_T()
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
28 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/7e36def04100/
Changeset: 7e36def04100
Branch: master
User: danwu
Date: 2014-04-29 00:02:09
Summary: Merged ncwriter into master
Affected #: 20 files
diff --git a/.gitignore b/.gitignore
index ba9fe1e..d686ffa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -155,6 +155,7 @@ test/io/*.g
test/io/gmsh_test
test/io/ideas_test
test/io/nastran_test
+test/io/*.nc
test/io/read_cgm_basic_test
test/io/read_cgm_connectivity_test
test/io/read_cgm_group_test
@@ -168,6 +169,7 @@ test/io/smf_test
test/io/stl_test
test/io/tqdcfr
test/io/vtk_test
+test/io/write_nc
test/kd_tree_test
test/kd_tree_time
test/kd_tree_tool
@@ -187,6 +189,7 @@ test/parallel/*.h5m
test/parallel/mbparallelcomm_test
test/parallel/mhdf_parallel
test/parallel/mpastrvpart
+test/parallel/*.nc
test/parallel/par_coupler_test
test/parallel/par_intx_sph
test/parallel/parallel_hdf5_test
@@ -206,6 +209,7 @@ test/parallel/structured3
test/parallel/uber_parallel_test
test/parallel/ucdtrvpart
test/parallel/*.vtk
+test/parallel/write_nc_par
test/perf/adj_time
test/perf/perf
test/perf/perftool
diff --git a/src/ReaderWriterSet.cpp b/src/ReaderWriterSet.cpp
index 5015a7f..1f254b0 100644
--- a/src/ReaderWriterSet.cpp
+++ b/src/ReaderWriterSet.cpp
@@ -48,6 +48,7 @@
#ifdef NETCDF_FILE
# include "ReadNCDF.hpp"
# include "WriteNCDF.hpp"
+# include "WriteNC.hpp"
# include "WriteSLAC.hpp"
# include "ReadNC.hpp"
# include "ReadGCRM.hpp"
@@ -105,7 +106,7 @@ ReaderWriterSet::ReaderWriterSet( Core* mdb, Error* handler )
const char* exo_sufxs[] = { "exo", "exoII", "exo2", "g", "gen", NULL };
register_factory( ReadNCDF::factory, WriteNCDF::factory, "Exodus II", exo_sufxs, "EXODUS" );
register_factory( ReadGCRM::factory, NULL, "GCRM NC", "nc", "GCRM" );
- register_factory( ReadNC::factory, NULL, "Climate NC", "nc", "NC" );
+ register_factory( ReadNC::factory, WriteNC::factory, "Climate NC", "nc", "NC" );
#endif
#ifdef CGNS_FILE
diff --git a/src/io/Makefile.am b/src/io/Makefile.am
index 09fe3d3..1269523 100644
--- a/src/io/Makefile.am
+++ b/src/io/Makefile.am
@@ -17,11 +17,17 @@ if NETCDF_FILE
WriteNCDF.cpp WriteNCDF.hpp \
WriteSLAC.cpp WriteSLAC.hpp \
ReadNC.cpp ReadNC.hpp \
+ WriteNC.cpp WriteNC.hpp \
NCHelper.cpp NCHelper.hpp \
NCHelperEuler.cpp NCHelperEuler.hpp \
NCHelperFV.cpp NCHelperFV.hpp \
NCHelperHOMME.cpp NCHelperHOMME.hpp \
NCHelperMPAS.cpp NCHelperMPAS.hpp \
+ NCWriteHelper.cpp NCWriteHelper.hpp \
+ NCWriteEuler.cpp NCWriteEuler.hpp \
+ NCWriteFV.cpp NCWriteFV.hpp \
+ NCWriteHOMME.cpp NCWriteHOMME.hpp \
+ NCWriteMPAS.cpp NCWriteMPAS.hpp \
ReadGCRM.cpp ReadGCRM.hpp
else
MOAB_NETCDF_SRCS =
@@ -30,11 +36,17 @@ endif
if PNETCDF_FILE
if !NETCDF_FILE
MOAB_NETCDF_SRCS += ReadNC.cpp ReadNC.hpp \
+ WriteNC.cpp WriteNC.hpp \
NCHelper.cpp NCHelper.hpp \
NCHelperEuler.cpp NCHelperEuler.hpp \
NCHelperFV.cpp NCHelperFV.hpp \
NCHelperHOMME.cpp NCHelperHOMME.hpp \
NCHelperMPAS.cpp NCHelperMPAS.hpp \
+ NCWriteHelper.cpp NCWriteHelper.hpp \
+ NCWriteEuler.cpp NCWriteEuler.hpp \
+ NCWriteFV.cpp NCWriteFV.hpp \
+ NCWriteHOMME.cpp NCWriteHOMME.hpp \
+ NCWriteMPAS.cpp NCWriteMPAS.hpp \
ReadGCRM.cpp ReadGCRM.hpp
endif
endif
diff --git a/src/io/NCHelper.cpp b/src/io/NCHelper.cpp
index 9ef1332..0e970d9 100644
--- a/src/io/NCHelper.cpp
+++ b/src/io/NCHelper.cpp
@@ -192,16 +192,16 @@ ErrorCode NCHelper::create_conventional_tags(const std::vector<int>& tstep_nums)
unsigned int varDimSz = varInfo[mapIter->first].varDims.size();
if (varDimSz == 0)
continue;
- varInfo[mapIter->first].varTags.resize(varDimSz, 0);
+ std::vector<Tag> varDimTags(varDimSz);
for (unsigned int i = 0; i != varDimSz; i++) {
Tag tmptag = 0;
std::string tmptagname = dimNames[varInfo[mapIter->first].varDims[i]];
mbImpl->tag_get_handle(tmptagname.c_str(), 0, MB_TYPE_OPAQUE, tmptag, MB_TAG_ANY);
- varInfo[mapIter->first].varTags[i] = tmptag;
+ varDimTags[i] = tmptag;
}
rval = mbImpl->tag_get_handle(tag_name.c_str(), varDimSz, MB_TYPE_HANDLE, varNamesDimsTag, MB_TAG_SPARSE | MB_TAG_CREAT);
ERRORR(rval, "Trouble creating __<var_name>_DIMS tag.");
- rval = mbImpl->tag_set_data(varNamesDimsTag, &_fileSet, 1, &(varInfo[mapIter->first].varTags[0]));
+ rval = mbImpl->tag_set_data(varNamesDimsTag, &_fileSet, 1, &(varDimTags[0]));
ERRORR(rval, "Trouble setting data for __<var_name>_DIMS tag.");
if (MB_SUCCESS == rval)
dbgOut.tprintf(2, "Tag created for variable %s\n", tag_name.c_str());
@@ -252,21 +252,37 @@ ErrorCode NCHelper::create_conventional_tags(const std::vector<int>& tstep_nums)
Tag varAttTag = 0;
rval = mbImpl->tag_get_handle(tag_name.c_str(), 0, MB_TYPE_OPAQUE, varAttTag, MB_TAG_CREAT | MB_TAG_SPARSE | MB_TAG_VARLEN);
ERRORR(rval, "Trouble creating __<var_name>_ATTRIBS tag.");
+
std::string varAttVal;
std::vector<int> varAttLen;
- rval = create_attrib_string(mapIter->second.varAtts, varAttVal, varAttLen);
- ERRORR(rval, "Trouble creating attribute strings.");
+ if (mapIter->second.numAtts < 1) {
+ if (dummyVarNames.find(mapIter->first) != dummyVarNames.end()) {
+ // This variable is a dummy dimension variable
+ varAttVal = "DUMMY_VAR";
+ }
+ else {
+ // This variable has no attributes
+ varAttVal = "NO_ATTRIBS";
+ }
+ }
+ else {
+ rval = create_attrib_string(mapIter->second.varAtts, varAttVal, varAttLen);
+ ERRORR(rval, "Trouble creating attribute string.");
+ }
const void* varAttPtr = varAttVal.c_str();
int varAttSz = varAttVal.size();
+ if (0 == varAttSz)
+ varAttSz = 1;
rval = mbImpl->tag_set_by_ptr(varAttTag, &_fileSet, 1, &varAttPtr, &varAttSz);
ERRORR(rval, "Trouble setting data for __<var_name>_ATTRIBS tag.");
if (MB_SUCCESS == rval)
dbgOut.tprintf(2, "Tag created for variable %s\n", tag_name.c_str());
- if (varAttLen.size() == 0)
- varAttLen.push_back(0);
+
ssTagName << "_LEN";
tag_name = ssTagName.str();
Tag varAttLenTag = 0;
+ if (0 == varAttLen.size())
+ varAttLen.push_back(0);
rval = mbImpl->tag_get_handle(tag_name.c_str(), varAttLen.size(), MB_TYPE_INTEGER, varAttLenTag, MB_TAG_SPARSE | MB_TAG_CREAT);
ERRORR(rval, "Trouble creating __<var_name>_ATTRIBS_LEN tag.");
rval = mbImpl->tag_set_data(varAttLenTag, &_fileSet, 1, &varAttLen[0]);
@@ -324,6 +340,11 @@ ErrorCode NCHelper::read_variable_setup(std::vector<std::string>& var_names, std
dummyVarNames.find(vd.varName) != dummyVarNames.end())
continue;
+ // Dimension variables were read before creating conventional tags
+ std::vector<std::string>& dimNames = _readNC->dimNames;
+ if (std::find(dimNames.begin(), dimNames.end(), vd.varName) != dimNames.end())
+ continue;
+
if (vd.entLoc == ReadNC::ENTLOCSET)
vsetdatas.push_back(vd);
else
diff --git a/src/io/NCWriteEuler.cpp b/src/io/NCWriteEuler.cpp
new file mode 100644
index 0000000..4b3f1ff
--- /dev/null
+++ b/src/io/NCWriteEuler.cpp
@@ -0,0 +1,23 @@
+/*
+ * NCWriteEuler.cpp
+ *
+ * Created on: Mar 28, 2014
+ */
+
+#include "NCWriteEuler.hpp"
+#include "moab/WriteUtilIface.hpp"
+
+#define ERRORR(rval, str) \
+ if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
+
+#define ERRORS(err, str) \
+ if (err) { _writeNC->mWriteIface->report_error("%s", str); return MB_FAILURE; }
+
+namespace moab {
+
+NCWriteEuler::~NCWriteEuler()
+{
+ // TODO Auto-generated destructor stub
+}
+
+} /* namespace moab */
diff --git a/src/io/NCWriteEuler.hpp b/src/io/NCWriteEuler.hpp
new file mode 100644
index 0000000..2cb6486
--- /dev/null
+++ b/src/io/NCWriteEuler.hpp
@@ -0,0 +1,27 @@
+/*
+ * NCWriteEuler.hpp
+ *
+ * nc write helper for euler type data (CAM)
+ * Created on: Mar 28, 2014
+ *
+ */
+
+#ifndef NCWRITEEULER_HPP_
+#define NCWRITEEULER_HPP_
+
+#include "NCWriteHelper.hpp"
+
+namespace moab {
+
+class NCWriteEuler: public ScdNCWriteHelper
+{
+public:
+ NCWriteEuler(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: ScdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+
+ virtual ~NCWriteEuler();
+};
+
+} // namespace moab
+
+#endif
diff --git a/src/io/NCWriteFV.cpp b/src/io/NCWriteFV.cpp
new file mode 100644
index 0000000..8de489f
--- /dev/null
+++ b/src/io/NCWriteFV.cpp
@@ -0,0 +1,23 @@
+/*
+ * NCWriteFV.cpp
+ *
+ * Created on: April 9, 2014
+ */
+
+#include "NCWriteFV.hpp"
+#include "moab/WriteUtilIface.hpp"
+
+#define ERRORR(rval, str) \
+ if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
+
+#define ERRORS(err, str) \
+ if (err) { _writeNC->mWriteIface->report_error("%s", str); return MB_FAILURE; }
+
+namespace moab {
+
+NCWriteFV::~NCWriteFV()
+{
+ // TODO Auto-generated destructor stub
+}
+
+} /* namespace moab */
diff --git a/src/io/NCWriteFV.hpp b/src/io/NCWriteFV.hpp
new file mode 100644
index 0000000..d3286fc
--- /dev/null
+++ b/src/io/NCWriteFV.hpp
@@ -0,0 +1,27 @@
+/*
+ * NCWriteFV.hpp
+ *
+ * nc write helper for FV type data (CAM)
+ * Created on: April 9, 2014
+ *
+ */
+
+#ifndef NCWRITEFV_HPP_
+#define NCWRITEFV_HPP_
+
+#include "NCWriteHelper.hpp"
+
+namespace moab {
+
+class NCWriteFV: public ScdNCWriteHelper
+{
+public:
+ NCWriteFV(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: ScdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+
+ virtual ~NCWriteFV();
+};
+
+} // namespace moab
+
+#endif // NCWRITEFV_HPP_
diff --git a/src/io/NCWriteHOMME.cpp b/src/io/NCWriteHOMME.cpp
new file mode 100644
index 0000000..9320f62
--- /dev/null
+++ b/src/io/NCWriteHOMME.cpp
@@ -0,0 +1,316 @@
+/*
+ * NCWriteHOMME.cpp
+ *
+ * Created on: April 9, 2014
+ */
+
+#include "NCWriteHOMME.hpp"
+#include "moab/WriteUtilIface.hpp"
+#include "MBTagConventions.hpp"
+
+#define ERRORR(rval, str) \
+ if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
+
+#define ERRORS(err, str) \
+ if (err) { _writeNC->mWriteIface->report_error("%s", str); return MB_FAILURE; }
+
+namespace moab {
+
+NCWriteHOMME::~NCWriteHOMME()
+{
+ // TODO Auto-generated destructor stub
+}
+
+ErrorCode NCWriteHOMME::collect_mesh_info()
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+ Tag& mGlobalIdTag = _writeNC->mGlobalIdTag;
+
+ ErrorCode rval;
+
+ // Look for time dimension
+ std::vector<std::string>::iterator vecIt;
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'time' dimension.");
+ }
+ nTimeSteps = dimLens[tDim];
+
+ // Get number of levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "lev")) != dimNames.end())
+ levDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'lev' dimension.");
+ }
+ nLevels = dimLens[levDim];
+
+ Range local_verts;
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 0, local_verts);
+ ERRORR(rval, "Trouble getting local vertices in current file set.");
+ assert(!local_verts.empty());
+
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ int rank = myPcomm->proc_config().proc_rank();
+ int procs = myPcomm->proc_config().proc_size();
+ if (procs > 1) {
+ rval = myPcomm->filter_pstatus(local_verts, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &localVertsOwned);
+ ERRORR(rval, "Trouble getting owned vertices in set.");
+ // Assume that PARALLEL_RESOLVE_SHARED_ENTS option is set
+ // We should avoid writing in parallel with overlapped data
+ if (rank > 0)
+ assert("PARALLEL_RESOLVE_SHARED_ENTS option is set" && localVertsOwned.size() < local_verts.size());
+ }
+ else
+ localVertsOwned = local_verts;
+ }
+ else
+ localVertsOwned = local_verts; // Not running in parallel, but still with MPI
+#else
+ localVertsOwned = local_verts;
+#endif
+
+ std::vector<int> gids(localVertsOwned.size());
+ rval = mbImpl->tag_get_data(mGlobalIdTag, localVertsOwned, &gids[0]);
+ ERRORR(rval, "Trouble getting global IDs on local vertices.");
+
+ // Restore localGidVerts
+ std::copy(gids.rbegin(), gids.rend(), range_inserter(localGidVertsOwned));
+ nLocalVerticesOwned = localGidVertsOwned.size();
+
+ return MB_SUCCESS;
+}
+
+ErrorCode NCWriteHOMME::collect_variable_data(std::vector<std::string>& var_names)
+{
+ NCWriteHelper::collect_variable_data(var_names);
+
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::string varname = var_names[i];
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(varname);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one variable.");
+
+ WriteNC::VarData& currentVarData = vit->second;
+ if (currentVarData.has_tsteps) {
+ // Support non-set variables with 3 dimensions like (time, lev, ncol)
+ assert(3 == currentVarData.varDims.size());
+
+ // Time should be the first dimension
+ assert(tDim == currentVarData.varDims[0]);
+
+ // Set up writeStarts and writeCounts
+ currentVarData.writeStarts.resize(3);
+ currentVarData.writeCounts.resize(3);
+
+ // First: time
+ currentVarData.writeStarts[0] = 0; // This value is timestep dependent, will be set later
+ currentVarData.writeCounts[0] = 1;
+
+ // Next: lev
+ currentVarData.writeStarts[1] = 0;
+ currentVarData.writeCounts[1] = currentVarData.numLev;
+
+ // Finally: ncol
+ switch (currentVarData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ // Start from the first localGidVerts
+ // Actually, this will be reset later for writing
+ currentVarData.writeStarts[2] = localGidVertsOwned[0] - 1;
+ currentVarData.writeCounts[2] = nLocalVerticesOwned;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for HOMME non-set variable.");
+ }
+ }
+
+ // Get variable size
+ currentVarData.sz = 1;
+ for (std::size_t idx = 0; idx != currentVarData.writeCounts.size(); idx++)
+ currentVarData.sz *= currentVarData.writeCounts[idx];
+ }
+
+ return MB_SUCCESS;
+}
+
+ErrorCode NCWriteHOMME::write_values(std::vector<std::string>& var_names)
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ int success;
+
+ // Now look at requested var_names; if they have time, we will have a list, and write one at a time
+ // Need to transpose from lev dimension
+ // For each variable tag in the indexed lists, write a time step data
+ // Assume the first dimension is time (need to check); if not, just write regularly
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(var_names[i]);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find variable requested.");
+
+ WriteNC::VarData& variableData = vit->second;
+ int numTimeSteps = (int)variableData.varTags.size();
+ if (variableData.has_tsteps) {
+ // Time should be the first dimension
+ assert(tDim == variableData.varDims[0]);
+
+ // Assume this variable is on vertices for the time being
+ switch (variableData.entLoc) {
+ case WriteNC::ENTLOCVERT:
+ // Vertices
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unexpected entity location type for HOMME non-set variable.");
+ }
+
+ // A typical variable has 3 dimensions as (time, lev, ncol)
+ // At each timestep, we need to transpose tag format (ncol, lev) back
+ // to NC format (lev, ncol) for writing
+ // FIXME: Should use tstep_nums (from writing options) later
+ for (int j = 0; j < numTimeSteps; j++) {
+ // We will write one time step, and count will be one; start will be different
+ // Use tag_get_data instead of tag_iterate to get values, as localVertsOwned
+ // might not be contiguous. We should also transpose for level so that means
+ // deep copy for transpose
+ variableData.writeStarts[0] = j; // This is time, again
+ std::vector<double> tag_data(nLocalVerticesOwned * variableData.numLev);
+ ErrorCode rval = mbImpl->tag_get_data(variableData.varTags[j], localVertsOwned, &tag_data[0]);
+ ERRORR(rval, "Trouble getting tag data on owned vertices.");
+
+#ifdef PNETCDF_FILE
+ size_t nb_writes = localGidVertsOwned.psize();
+ std::vector<int> requests(nb_writes), statuss(nb_writes);
+ size_t idxReq = 0;
+#endif
+
+ // Now write from memory directly
+ switch (variableData.varDataType) {
+ case NC_DOUBLE: {
+ std::vector<double> tmpdoubledata(nLocalVerticesOwned * variableData.numLev);
+ // Transpose (ncol, lev) back to (lev, ncol)
+ jik_to_kji(nLocalVerticesOwned, 1, variableData.numLev, &tmpdoubledata[0], &tag_data[0]);
+
+ size_t indexInDoubleArray = 0;
+ size_t ic = 0;
+ for (Range::pair_iterator pair_iter = localGidVertsOwned.pair_begin();
+ pair_iter != localGidVertsOwned.pair_end(); ++pair_iter, ic++) {
+ EntityHandle starth = pair_iter->first;
+ EntityHandle endh = pair_iter->second;
+ variableData.writeStarts[2] = (NCDF_SIZE)(starth - 1);
+ variableData.writeCounts[2] = (NCDF_SIZE)(endh - starth + 1);
+
+ // Do a partial write, in each subrange
+#ifdef PNETCDF_FILE
+ // Wait outside this loop
+ success = NCFUNCREQP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tmpdoubledata[indexInDoubleArray]), &requests[idxReq++]);
+#else
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId,
+ &(variableData.writeStarts[0]), &(variableData.writeCounts[0]),
+ &(tmpdoubledata[indexInDoubleArray]));
+#endif
+ ERRORS(success, "Failed to read double data in loop");
+ // We need to increment the index in double array for the
+ // next subrange
+ indexInDoubleArray += (endh - starth + 1) * variableData.numLev;
+ }
+ assert(ic == localGidVertsOwned.psize());
+#ifdef PNETCDF_FILE
+ success = ncmpi_wait_all(_fileId, requests.size(), &requests[0], &statuss[0]);
+ ERRORS(success, "Failed on wait_all.");
+#endif
+ break;
+ }
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ } // if (variableData.has_tsteps)
+ else {
+ switch (variableData.varDataType) {
+ case NC_DOUBLE:
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId, &variableData.writeStarts[0],
+ &variableData.writeCounts[0], (double*)(variableData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+ // Write coordinates used by requested var_names
+ // Use independent I/O mode put, since this write is only for the root processor
+ // CAUTION: if the NetCDF ID is from a previous call to ncmpi_create rather than ncmpi_open,
+ // all processors need to call ncmpi_begin_indep_data(). If only the root processor does so,
+ // ncmpi_begin_indep_data() call will be blocked forever :(
+#ifdef PNETCDF_FILE
+ // Enter independent I/O mode
+ success = NCFUNC(begin_indep_data)(_fileId);
+ ERRORS(success, "Failed to begin independent I/O mode.");
+#endif
+
+ int rank = 0;
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ rank = myPcomm->proc_config().proc_rank();
+ }
+#endif
+ if (0 == rank) {
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ // Skip dummy coordinate variables (e.g. ncol)
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+
+ switch (varCoordData.varDataType) {
+ case NC_DOUBLE:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_double)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (double*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ case NC_INT:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_int)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (int*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write int data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+#ifdef PNETCDF_FILE
+ // End independent I/O mode
+ success = NCFUNC(end_indep_data)(_fileId);
+ ERRORS(success, "Failed to end independent I/O mode.");
+#endif
+
+ return MB_SUCCESS;
+}
+
+} /* namespace moab */
diff --git a/src/io/NCWriteHOMME.hpp b/src/io/NCWriteHOMME.hpp
new file mode 100644
index 0000000..7bb99d9
--- /dev/null
+++ b/src/io/NCWriteHOMME.hpp
@@ -0,0 +1,37 @@
+/*
+ * NCWriteHOMME.hpp
+ *
+ * nc write helper for HOMME type data (CAM)
+ * Created on: April 9, 2014
+ *
+ */
+
+#ifndef NCWRITEHOMME_HPP_
+#define NCWRITEHOMME_HPP_
+
+#include "NCWriteHelper.hpp"
+
+namespace moab {
+
+class NCWriteHOMME: public UcdNCWriteHelper
+{
+public:
+ NCWriteHOMME(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: UcdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+
+ virtual ~NCWriteHOMME();
+
+private:
+ //! Implementation of NCWriteHelper::collect_mesh_info()
+ virtual ErrorCode collect_mesh_info();
+
+ //! Collect data for specified variables
+ virtual ErrorCode collect_variable_data(std::vector<std::string>& var_names);
+
+ //! Implementation of NCWriteHelper::write_values()
+ virtual ErrorCode write_values(std::vector<std::string>& var_names);
+};
+
+} // namespace moab
+
+#endif
diff --git a/src/io/NCWriteHelper.cpp b/src/io/NCWriteHelper.cpp
new file mode 100644
index 0000000..4f95ef8
--- /dev/null
+++ b/src/io/NCWriteHelper.cpp
@@ -0,0 +1,622 @@
+/*
+ * NCWriteHelper.cpp
+ *
+ * Created on: Mar 28, 2014
+ * Author: iulian
+ */
+
+#include "NCWriteHelper.hpp"
+#include "NCWriteEuler.hpp"
+#include "NCWriteFV.hpp"
+#include "NCWriteHOMME.hpp"
+#include "NCWriteMPAS.hpp"
+
+#include "moab/WriteUtilIface.hpp"
+
+#include <sstream>
+
+#define ERRORR(rval, str) \
+ if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
+
+#define ERRORS(err, str) \
+ if (err) { _writeNC->mWriteIface->report_error("%s", str); return MB_FAILURE; }
+
+namespace moab {
+
+//! Get appropriate helper instance for WriteNC class; based on some info in the file set
+NCWriteHelper* NCWriteHelper::get_nc_helper(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+{
+ std::string& grid_type = writeNC->grid_type;
+ if (grid_type == "CAM_EUL")
+ return new (std::nothrow) NCWriteEuler(writeNC, fileId, opts, fileSet);
+ else if (grid_type == "CAM_FV")
+ return new (std::nothrow) NCWriteFV(writeNC, fileId, opts, fileSet);
+ else if (grid_type == "CAM_SE")
+ return new (std::nothrow) NCWriteHOMME(writeNC, fileId, opts, fileSet);
+ else if (grid_type == "MPAS")
+ return new (std::nothrow) NCWriteMPAS(writeNC, fileId, opts, fileSet);
+
+ // Unknown NetCDF grid
+ return NULL;
+}
+
+ErrorCode NCWriteHelper::collect_variable_data(std::vector<std::string>& var_names)
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+ DebugOutput& dbgOut = _writeNC->dbgOut;
+
+ ErrorCode rval;
+
+ usedCoordinates.clear();
+
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::string varname = var_names[i];
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(varname);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one variable.");
+
+ WriteNC::VarData& currentVarData = vit->second;
+
+ currentVarData.has_tsteps = false;
+ if ((std::find(currentVarData.varDims.begin(), currentVarData.varDims.end(), tDim) != currentVarData.varDims.end())
+ && (currentVarData.varDims.size() > 1)) // So it is not time itself
+ currentVarData.has_tsteps = true;
+
+ currentVarData.numLev = 1;
+ if ((std::find(currentVarData.varDims.begin(), currentVarData.varDims.end(), levDim) != currentVarData.varDims.end()))
+ currentVarData.numLev = nLevels;
+
+ dbgOut.tprintf(2, " for variable %s varDims.size %d \n", varname.c_str(), (int)currentVarData.varDims.size());
+ for (size_t j = 0; j < currentVarData.varDims.size(); j++) {
+ std::string dimName = dimNames[currentVarData.varDims[j]];
+ vit = varInfo.find(dimName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ usedCoordinates.insert(dimName); // Collect those used, we will need to write them to the file
+ dbgOut.tprintf(2, " for variable %s need dimension %s with length %d\n", varname.c_str(), dimName.c_str(), dimLens[currentVarData.varDims[j]]);
+ }
+
+ // Process coordinate variables later
+ if (usedCoordinates.find(varname) != usedCoordinates.end())
+ continue;
+
+ // Process non-set variables with time steps
+ if (currentVarData.has_tsteps) {
+ int index = 0;
+ // FIXME: Should use tstep_nums (from writing options) later
+ while (true) {
+ Tag indexedTag = 0;
+ std::stringstream ssTagNameWithIndex;
+ ssTagNameWithIndex << varname << index;
+ rval = mbImpl->tag_get_handle(ssTagNameWithIndex.str().c_str(), indexedTag);
+ if (MB_SUCCESS != rval)
+ break;
+ dbgOut.tprintf(2, " found indexed tag %d with name %s\n", index, ssTagNameWithIndex.str().c_str());
+ currentVarData.varTags.push_back(indexedTag);
+ index++; // We should get out of the loop at some point
+
+ // The type of the tag is fixed though
+ DataType type;
+ rval = mbImpl->tag_get_data_type(indexedTag, type);
+ ERRORR(rval, "Can't get tag type.");
+
+ currentVarData.varDataType = NC_DOUBLE;
+ if (MB_TYPE_INTEGER == type)
+ currentVarData.varDataType = NC_INT;
+ }
+ }
+ // Process set variables that are not coordinate variables
+ else {
+ // Get the tag with varname
+ Tag tag = 0;
+ rval = mbImpl->tag_get_handle(varname.c_str(), tag);
+ ERRORR(rval, "Can't find one tag.");
+ currentVarData.varTags.push_back(tag); // Really, only one for these
+ const void* data;
+ int size;
+ rval = mbImpl->tag_get_by_ptr(tag, &_fileSet, 1, &data, &size);
+ ERRORR(rval, "Can't get tag values.");
+
+ // Find the type of tag, and use it
+ DataType type;
+ rval = mbImpl->tag_get_data_type(tag, type);
+ ERRORR(rval, "Can't get tag type.");
+
+ currentVarData.varDataType = NC_DOUBLE;
+ if (MB_TYPE_INTEGER == type)
+ currentVarData.varDataType = NC_INT;
+
+ assert(0 == currentVarData.memoryHogs.size()); // Nothing so far
+ currentVarData.memoryHogs.push_back((void*)data);
+
+ if (currentVarData.varDims.empty()) {
+ // Scalar variable
+ currentVarData.writeStarts.push_back(0);
+ currentVarData.writeCounts.push_back(1);
+ }
+ else {
+ assert(1 == currentVarData.varDims.size());
+ currentVarData.writeStarts.push_back(0);
+ currentVarData.writeCounts.push_back(dimLens[currentVarData.varDims[0]]);
+ }
+ }
+ }
+
+ // Process coordinate variables
+ // Check that for used coordinates we have found the tags
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+ Tag coordTag = 0;
+ rval = mbImpl->tag_get_handle(coordName.c_str(), coordTag);
+ ERRORR(rval, "Can't find one tag.");
+ varCoordData.varTags.push_back(coordTag); // Really, only one for these
+
+ const void* data;
+ int sizeCoordinate;
+ rval = mbImpl->tag_get_by_ptr(coordTag, &_fileSet, 1, &data, &sizeCoordinate);
+ ERRORR(rval, "Can't get coordinate values.");
+ dbgOut.tprintf(2, " found coordinate tag with name %s and length %d\n", coordName.c_str(),
+ sizeCoordinate);
+
+ // Get dimension length (the only dimension of this coordinate variable, with the same name)
+ assert(1 == varCoordData.varDims.size());
+ int coordDimLen = dimLens[varCoordData.varDims[0]];
+
+ if (dummyVarNames.find(coordName) != dummyVarNames.end()) {
+ // For a dummy coordinate variable, the tag size is always 1
+ // The number of coordinates should be set to dimension length, instead of 1
+ assert(1 == sizeCoordinate);
+ sizeCoordinate = coordDimLen;
+ }
+ else {
+ // The number of coordinates should be exactly the same as dimension length
+ assert(sizeCoordinate == coordDimLen);
+ }
+
+ // This is the length
+ varCoordData.sz = sizeCoordinate;
+ varCoordData.writeStarts.resize(1);
+ varCoordData.writeStarts[0] = 0;
+ varCoordData.writeCounts.resize(1);
+ varCoordData.writeCounts[0] = sizeCoordinate;
+
+ // Find the type of tag, and use it
+ DataType type;
+ rval = mbImpl->tag_get_data_type(coordTag, type);
+ ERRORR(rval, "Can't get tag type.");
+
+ varCoordData.varDataType = NC_DOUBLE;
+ if (MB_TYPE_INTEGER == type)
+ varCoordData.varDataType = NC_INT;
+
+ assert(0 == varCoordData.memoryHogs.size()); // Nothing so far
+ varCoordData.memoryHogs.push_back((void*)data);
+ }
+
+ return MB_SUCCESS;
+}
+
+ErrorCode NCWriteHelper::init_file(std::vector<std::string>& var_names)
+{
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+ std::map<std::string, WriteNC::AttData>& globalAtts = _writeNC->globalAtts;
+ DebugOutput& dbgOut = _writeNC->dbgOut;
+
+ int tDim_in_dimNames = tDim;
+ int levDim_in_dimNames = levDim;
+
+ // First initialize all coordinates, then fill VarData for actual variables (and dimensions)
+ // Check that for used coordinates we have found the tags
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+ varCoordData.varDims.resize(1);
+
+ /* int nc_def_dim (int ncid, const char *name, size_t len, int *dimidp);
+ * example: status = nc_def_dim(fileId, "lat", 18L, &latid);
+ */
+
+ // Actually define a dimension
+ if (NCFUNC(def_dim)(_fileId, coordName.c_str(), (size_t)varCoordData.sz,
+ &varCoordData.varDims[0]) != NC_NOERR)
+ ERRORR(MB_FAILURE, "Failed to generate dimension.");
+
+ dbgOut.tprintf(2, " for coordName %s dim id is %d \n", coordName.c_str(), (int)varCoordData.varDims[0]);
+
+ // Update tDim and levDim to actual dimension id
+ if (coordName == dimNames[tDim_in_dimNames])
+ tDim = varCoordData.varDims[0];
+ else if (coordName == dimNames[levDim_in_dimNames])
+ levDim = varCoordData.varDims[0];
+
+ // Create a variable with the same name, and its only dimension the one we just defined
+ /*
+ * int nc_def_var (int ncid, const char *name, nc_type xtype,
+ int ndims, const int dimids[], int *varidp);
+ example: http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c/nc_005fdef_005fva…
+ */
+
+ // Skip dummy coordinate variables (e.g. ncol)
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+
+ // Define a coordinate variable
+ if (NCFUNC(def_var)(_fileId, coordName.c_str(), varCoordData.varDataType,
+ 1, &(varCoordData.varDims[0]), &varCoordData.varId) != NC_NOERR)
+ ERRORR(MB_FAILURE, "Failed to create coordinate variable.");
+
+ dbgOut.tprintf(2, " for coordName %s variable id is %d \n", coordName.c_str(), varCoordData.varId);
+ }
+
+ // Now look at requested variables, and update from the index in dimNames to the actual dimension id
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(var_names[i]);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find variable requested.");
+
+ // Skip coordinate variables
+ if (usedCoordinates.find(var_names[i]) != usedCoordinates.end())
+ continue;
+
+ WriteNC::VarData& variableData = vit->second;
+ int numDims = (int)variableData.varDims.size();
+ // The index is for dimNames; we need to find out the actual dimension id (from above)
+ for (int j = 0; j < numDims; j++) {
+ std::string dimName = dimNames[variableData.varDims[j]];
+ std::map<std::string, WriteNC::VarData>::iterator vit2 = varInfo.find(dimName);
+ if (vit2 == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find coordinate variable requested.");
+
+ WriteNC::VarData& coordData = vit2->second;
+ // Index in dimNames to actual dimension id
+ variableData.varDims[j] = coordData.varDims[0]; // This one, being a coordinate, is the only one
+ dbgOut.tprintf(2, " dimension with index %d name %s has ID %d \n",
+ j, dimName.c_str(), variableData.varDims[j]);
+ }
+
+ // Define the variable now:
+ if (NCFUNC(def_var)(_fileId, var_names[i].c_str(), variableData.varDataType,
+ (int)variableData.varDims.size(), &(variableData.varDims[0]),
+ &variableData.varId) != NC_NOERR)
+ ERRORR(MB_FAILURE, "Failed to create coordinate variable.");
+
+ dbgOut.tprintf(2, " for variable %s variable id is %d \n", var_names[i].c_str(), variableData.varId);
+ // Now define the variable, with all dimensions
+ }
+
+ // Define global attributes (exactly copied from the original file for the time being)
+ // Should we modify some of them (e.g. revision_Id) later?
+ std::map<std::string, WriteNC::AttData>::iterator attIt;
+ for (attIt = globalAtts.begin(); attIt != globalAtts.end(); ++attIt) {
+ const std::string& attName = attIt->first;
+ WriteNC::AttData& attData = attIt->second;
+ NCDF_SIZE& attLen = attData.attLen;
+ nc_type& attDataType = attData.attDataType;
+ const std::string& attValue = attData.attValue;
+
+ switch (attDataType) {
+ case NC_BYTE:
+ case NC_CHAR:
+ if (NC_NOERR != NCFUNC(put_att_text)(_fileId, NC_GLOBAL, attName.c_str(), attLen, attValue.c_str()))
+ ERRORR(MB_FAILURE, "Failed to define text type attribute.");
+ break;
+ case NC_DOUBLE:
+ if (NC_NOERR != NCFUNC(put_att_double)(_fileId, NC_GLOBAL, attName.c_str(), NC_DOUBLE, 1, (double*)attValue.c_str()))
+ ERRORR(MB_FAILURE, "Failed to define double type attribute.");
+ break;
+ case NC_FLOAT:
+ if (NC_NOERR != NCFUNC(put_att_float)(_fileId, NC_GLOBAL, attName.c_str(), NC_FLOAT, 1, (float*)attValue.c_str()))
+ ERRORR(MB_FAILURE, "Failed to define float type attribute.");
+ break;
+ case NC_INT:
+ if (NC_NOERR != NCFUNC(put_att_int)(_fileId, NC_GLOBAL, attName.c_str(), NC_INT, 1, (int*)attValue.c_str()))
+ ERRORR(MB_FAILURE, "Failed to define int type attribute.");
+ break;
+ case NC_SHORT:
+ if (NC_NOERR != NCFUNC(put_att_short)(_fileId, NC_GLOBAL, attName.c_str(), NC_SHORT, 1, (short*)attValue.c_str()))
+ ERRORR(MB_FAILURE, "Failed to define short type attribute.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Unknown attribute data type.");
+ }
+ }
+
+ // Take it out of define mode
+ if (NC_NOERR != NCFUNC(enddef)(_fileId))
+ ERRORR(MB_FAILURE, "Failed to close define mode.");
+
+ return MB_SUCCESS;
+}
+
+ErrorCode ScdNCWriteHelper::collect_mesh_info()
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::vector<std::string>& dimNames = _writeNC->dimNames;
+ std::vector<int>& dimLens = _writeNC->dimLens;
+
+ ErrorCode rval;
+
+ // Look for time dimension
+ std::vector<std::string>::iterator vecIt;
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "time")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "t")) != dimNames.end())
+ tDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'time' or 't' dimension.");
+ }
+ nTimeSteps = dimLens[tDim];
+
+ // Get number of levels
+ if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "lev")) != dimNames.end())
+ levDim = vecIt - dimNames.begin();
+ else if ((vecIt = std::find(dimNames.begin(), dimNames.end(), "ilev")) != dimNames.end())
+ levDim = vecIt - dimNames.begin();
+ else {
+ ERRORR(MB_FAILURE, "Couldn't find 'lev' or 'ilev' dimension.");
+ }
+ nLevels = dimLens[levDim];
+
+ // __<dim_name>_LOC_MINMAX (for slon, slat, lon and lat)
+ Tag convTag = 0;
+ rval = mbImpl->tag_get_handle("__slon_LOC_MINMAX", 0, MB_TYPE_INTEGER, convTag, MB_TAG_ANY);
+ ERRORR(rval, "Trouble getting conventional tag __slon_LOC_MINMAX.");
+ int val[2];
+ rval = mbImpl->tag_get_data(convTag, &_fileSet, 1, val);
+ ERRORR(rval, "Trouble getting values for conventional tag __slon_LOC_MINMAX.");
+ lDims[0] = val[0];
+ lDims[3] = val[1];
+
+ rval = mbImpl->tag_get_handle("__slat_LOC_MINMAX", 0, MB_TYPE_INTEGER, convTag, MB_TAG_ANY);
+ ERRORR(rval, "Trouble getting conventional tag __slat_LOC_MINMAX.");
+ rval = mbImpl->tag_get_data(convTag, &_fileSet, 1, val);
+ ERRORR(rval, "Trouble getting values for conventional tag __slat_LOC_MINMAX.");
+ lDims[1] = val[0];
+ lDims[4] = val[1];
+
+ rval = mbImpl->tag_get_handle("__lon_LOC_MINMAX", 0, MB_TYPE_INTEGER, convTag, MB_TAG_ANY);
+ ERRORR(rval, "Trouble getting conventional tag __lon_LOC_MINMAX.");
+ rval = mbImpl->tag_get_data(convTag, &_fileSet, 1, val);
+ ERRORR(rval, "Trouble getting values for conventional tag __lon_LOC_MINMAX.");
+ lCDims[0] = val[0];
+ lCDims[3] = val[1];
+
+ rval = mbImpl->tag_get_handle("__lat_LOC_MINMAX", 0, MB_TYPE_INTEGER, convTag, MB_TAG_ANY);
+ ERRORR(rval, "Trouble getting conventional tag __lat_LOC_MINMAX.");
+ rval = mbImpl->tag_get_data(convTag, &_fileSet, 1, val);
+ ERRORR(rval, "Trouble getting values for conventional tag __lat_LOC_MINMAX.");
+ lCDims[1] = val[0];
+ lCDims[4] = val[1];
+
+ return MB_SUCCESS;
+}
+
+ErrorCode ScdNCWriteHelper::collect_variable_data(std::vector<std::string>& var_names)
+{
+ NCWriteHelper::collect_variable_data(var_names);
+
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::string varname = var_names[i];
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(varname);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one variable.");
+
+ WriteNC::VarData& currentVarData = vit->second;
+ if (currentVarData.has_tsteps) {
+ // Support non-set variables with 4 dimensions like (time, lev, lat, lon)
+ assert(4 == currentVarData.varDims.size());
+
+ // Time should be the first dimension
+ assert(tDim == currentVarData.varDims[0]);
+
+ // Set up writeStarts and writeCounts
+ currentVarData.writeStarts.resize(4);
+ currentVarData.writeCounts.resize(4);
+
+ // First: time
+ currentVarData.writeStarts[0] = 0; // This value is timestep dependent, will be set later
+ currentVarData.writeCounts[0] = 1;
+
+ // Next: lev
+ currentVarData.writeStarts[1] = 0;
+ currentVarData.writeCounts[1] = currentVarData.numLev;
+
+ // Finally: lat (or slat) and lon (or slon)
+ switch (currentVarData.entLoc) {
+ case WriteNC::ENTLOCFACE:
+ // Faces
+ currentVarData.writeStarts[2] = lCDims[1];
+ currentVarData.writeCounts[2] = lCDims[4] - lCDims[1] + 1;
+ currentVarData.writeStarts[3] = lCDims[0];
+ currentVarData.writeCounts[3] = lCDims[3] - lCDims[0] + 1;
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+
+ // Get variable size
+ currentVarData.sz = 1;
+ for (std::size_t idx = 0; idx != currentVarData.writeCounts.size(); idx++)
+ currentVarData.sz *= currentVarData.writeCounts[idx];
+ }
+
+ return MB_SUCCESS;
+}
+
+ErrorCode ScdNCWriteHelper::write_values(std::vector<std::string>& var_names)
+{
+ Interface*& mbImpl = _writeNC->mbImpl;
+ std::set<std::string>& usedCoordinates = _writeNC->usedCoordinates;
+ std::set<std::string>& dummyVarNames = _writeNC->dummyVarNames;
+ std::map<std::string, WriteNC::VarData>& varInfo = _writeNC->varInfo;
+
+ ErrorCode rval;
+ int success;
+
+ // Now look at requested var_names; if they have time, we will have a list, and write one at a time
+ // If not, just write regularly
+ // For parallel write, we assume that the data ranges do not overlap across processors (this is true
+ // for Euler and FV variables on quads)
+ // While overlapped writing might still work, we should better not take that risk
+ // Use collective I/O mode put (synchronous write) for the time being, we can try nonblocking put
+ // (request aggregation) later
+ for (size_t i = 0; i < var_names.size(); i++) {
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(var_names[i]);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find variable requested.");
+
+ WriteNC::VarData& variableData = vit->second;
+ int numTimeSteps = (int)variableData.varTags.size();
+ if (variableData.has_tsteps) {
+ // Time should be the first dimension
+ assert(tDim == variableData.varDims[0]);
+
+ // Get entities of this variable
+ Range ents;
+ switch (variableData.entLoc) {
+ case WriteNC::ENTLOCFACE:
+ // Faces
+ rval = mbImpl->get_entities_by_dimension(_fileSet, 2, ents);
+ ERRORR(rval, "Can't get entities for faces.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+
+ // A typical variable has 4 dimensions as (time, lev, lat, lon)
+ // At each timestep, we need to transpose tag format (lat, lon, lev) back
+ // to NC format (lev, lat, lon) for writing
+ size_t ni = variableData.writeCounts[3]; // lon
+ size_t nj = variableData.writeCounts[2]; // lat
+ size_t nk = variableData.writeCounts[1]; // lev
+
+ variableData.writeCounts[0] = 1; // We will write one time step
+ // FIXME: Should use tstep_nums (from writing options) later
+ for (int j = 0; j < numTimeSteps; j++) {
+ // We will write one time step, and count will be one; start will be different
+ // We will write values directly from tag_iterate, but we should also transpose for level
+ // so that means deep copy for transpose
+ variableData.writeStarts[0] = j; // This is time, again
+ int count;
+ void* dataptr;
+ rval = mbImpl->tag_iterate(variableData.varTags[j], ents.begin(), ents.end(), count, dataptr);
+ assert(count == (int)ents.size());
+
+ // Now write from memory directly
+ switch (variableData.varDataType) {
+ case NC_DOUBLE: {
+ std::vector<double> tmpdoubledata(ni*nj*nk);
+ // Transpose (lat, lon, lev) back to (lev, lat, lon)
+ jik_to_kji(ni, nj, nk, &tmpdoubledata[0], (double*)(dataptr));
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId,
+ &variableData.writeStarts[0], &variableData.writeCounts[0],
+ &tmpdoubledata[0]);
+ ERRORS(success, "Failed to write double data.");
+ break;
+ }
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+ else {
+ switch (variableData.varDataType) {
+ case NC_DOUBLE:
+ success = NCFUNCAP(_vara_double)(_fileId, variableData.varId, &variableData.writeStarts[0],
+ &variableData.writeCounts[0], (double*)(variableData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+ // Write coordinates used by requested var_names
+ // Use independent I/O mode put, since this write is only for the root processor
+ // CAUTION: if the NetCDF ID is from a previous call to ncmpi_create rather than ncmpi_open,
+ // all processors need to call ncmpi_begin_indep_data(). If only the root processor does so,
+ // ncmpi_begin_indep_data() call will be blocked forever :(
+#ifdef PNETCDF_FILE
+ // Enter independent I/O mode
+ success = NCFUNC(begin_indep_data)(_fileId);
+ ERRORS(success, "Failed to begin independent I/O mode.");
+#endif
+
+ int rank = 0;
+#ifdef USE_MPI
+ bool& isParallel = _writeNC->isParallel;
+ if (isParallel) {
+ ParallelComm*& myPcomm = _writeNC->myPcomm;
+ rank = myPcomm->proc_config().proc_rank();
+ }
+#endif
+ if (0 == rank) {
+ for (std::set<std::string>::iterator setIt = usedCoordinates.begin();
+ setIt != usedCoordinates.end(); ++setIt) {
+ const std::string& coordName = *setIt;
+
+ // Skip dummy coordinate variables (if any)
+ if (dummyVarNames.find(coordName) != dummyVarNames.end())
+ continue;
+
+ std::map<std::string, WriteNC::VarData>::iterator vit = varInfo.find(coordName);
+ if (vit == varInfo.end())
+ ERRORR(MB_FAILURE, "Can't find one coordinate variable.");
+
+ WriteNC::VarData& varCoordData = vit->second;
+
+ switch (varCoordData.varDataType) {
+ case NC_DOUBLE:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_double)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (double*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write double data.");
+ break;
+ case NC_INT:
+ // Independent I/O mode put
+ success = NCFUNCP(_vara_int)(_fileId, varCoordData.varId, &varCoordData.writeStarts[0],
+ &varCoordData.writeCounts[0], (int*)(varCoordData.memoryHogs[0]));
+ ERRORS(success, "Failed to write int data.");
+ break;
+ default:
+ ERRORR(MB_FAILURE, "Not implemented yet.");
+ }
+ }
+ }
+
+#ifdef PNETCDF_FILE
+ // End independent I/O mode
+ success = NCFUNC(end_indep_data)(_fileId);
+ ERRORS(success, "Failed to end independent I/O mode.");
+#endif
+
+ return MB_SUCCESS;
+}
+
+} /* namespace moab */
diff --git a/src/io/NCWriteHelper.hpp b/src/io/NCWriteHelper.hpp
new file mode 100644
index 0000000..b05fe12
--- /dev/null
+++ b/src/io/NCWriteHelper.hpp
@@ -0,0 +1,125 @@
+/*
+ * NCWriteHelper.hpp
+ *
+ * Purpose : Climate NC writer file helper; abstract, will be implemented for each type
+ *
+ * Created on: Mar 28, 2014
+ */
+
+#ifndef NCWRITEHELPER_HPP_
+#define NCWRITEHELPER_HPP_
+#include "WriteNC.hpp"
+
+namespace moab {
+
+class NCWriteHelper
+{
+public:
+ NCWriteHelper(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: _writeNC(writeNC), _fileId(fileId), _opts(opts), _fileSet(fileSet),
+ nTimeSteps(0), nLevels(1), tDim(-1), levDim(-1) {}
+ virtual ~NCWriteHelper() {};
+
+ //! Get appropriate helper instance for WriteNC class based on some info in the file set
+ static NCWriteHelper* get_nc_helper(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet);
+
+ //! Collect necessary info about local mesh
+ virtual ErrorCode collect_mesh_info() = 0;
+
+ //! Collect data for specified variables
+ virtual ErrorCode collect_variable_data(std::vector<std::string>& var_names);
+
+ //! Take the info from VarData and write first the coordinates, then the actual variables
+ virtual ErrorCode write_values(std::vector<std::string>& var_names) = 0;
+
+ //! Initialize file: this is where all defines are done
+ //! The VarData dimension ids are filled up after define
+ ErrorCode init_file(std::vector<std::string>& var_names);
+
+protected:
+ template <typename T> void jik_to_kji(size_t ni, size_t nj, size_t nk, T* dest, T* source)
+ {
+ size_t nik = ni * nk, nij = ni * nj;
+ for (std::size_t k = 0; k != nk; k++)
+ for (std::size_t j = 0; j != nj; j++)
+ for (std::size_t i = 0; i != ni; i++)
+ dest[k*nij + j*ni + i] = source[j*nik + i*nk + k];
+ }
+
+protected:
+ //! Allow NCWriteHelper to directly access members of WriteNC
+ WriteNC* _writeNC;
+
+ //! Cache some information from ReadNC
+ int _fileId;
+ const FileOptions& _opts;
+ EntityHandle _fileSet;
+
+ //! Dimensions of time and level
+ int nTimeSteps, nLevels;
+
+ //! Dimension numbers for time and level
+ int tDim, levDim;
+};
+
+//! Child helper class for scd mesh, e.g. CAM_EL or CAM_FV
+class ScdNCWriteHelper : public NCWriteHelper
+{
+public:
+ ScdNCWriteHelper(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: NCWriteHelper(writeNC, fileId, opts, fileSet)
+ {
+ for (unsigned int i = 0; i < 6; i++) {
+ lDims[i] = -1;
+ lCDims[i] = -1;
+ }
+ }
+ virtual ~ScdNCWriteHelper() {}
+
+private:
+ //! Implementation of NCWriteHelper::collect_mesh_info()
+ virtual ErrorCode collect_mesh_info();
+
+ //! Collect data for specified variables
+ virtual ErrorCode collect_variable_data(std::vector<std::string>& var_names);
+
+ //! Implementation of NCWriteHelper::write_values()
+ virtual ErrorCode write_values(std::vector<std::string>& var_names);
+
+protected:
+ //! Dimensions of my local part of grid
+ int lDims[6];
+
+ //! Center dimensions of my local part of grid
+ int lCDims[6];
+};
+
+//! Child helper class for ucd mesh, e.g. CAM_SE (HOMME) or MPAS
+class UcdNCWriteHelper : public NCWriteHelper
+{
+public:
+ UcdNCWriteHelper(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: NCWriteHelper(writeNC, fileId, opts, fileSet),
+ nLocalCellsOwned(0), nLocalEdgesOwned(0), nLocalVerticesOwned(0),
+ cDim(-1), eDim(-1), vDim(-1) {}
+ virtual ~UcdNCWriteHelper() {}
+
+protected:
+ //! Dimensions of my local owned part of grid
+ int nLocalCellsOwned;
+ int nLocalEdgesOwned;
+ int nLocalVerticesOwned;
+
+ //! Dimension numbers for nCells, nEdges and nVertices
+ int cDim, eDim, vDim;
+
+ //! Local owned cells, edges and vertices
+ Range localCellsOwned, localEdgesOwned, localVertsOwned;
+
+ //! Local global ID for owned cells, edges and vertices
+ Range localGidCellsOwned, localGidEdgesOwned, localGidVertsOwned;
+};
+
+} // namespace moab
+
+#endif
diff --git a/src/io/NCWriteMPAS.cpp b/src/io/NCWriteMPAS.cpp
new file mode 100644
index 0000000..72dc35f
--- /dev/null
+++ b/src/io/NCWriteMPAS.cpp
@@ -0,0 +1,33 @@
+/*
+ * NCWriteMPAS.cpp
+ *
+ * Created on: April 9, 2014
+ */
+
+#include "NCWriteMPAS.hpp"
+#include "moab/WriteUtilIface.hpp"
+
+#define ERRORR(rval, str) \
+ if (MB_SUCCESS != rval) { _writeNC->mWriteIface->report_error("%s", str); return rval; }
+
+#define ERRORS(err, str) \
+ if (err) { _writeNC->mWriteIface->report_error("%s", str); return MB_FAILURE; }
+
+namespace moab {
+
+NCWriteMPAS::~NCWriteMPAS()
+{
+ // TODO Auto-generated destructor stub
+}
+
+ErrorCode NCWriteMPAS::collect_mesh_info()
+{
+ return MB_NOT_IMPLEMENTED;
+}
+
+ErrorCode NCWriteMPAS::write_values(std::vector<std::string>& /* var_names */)
+{
+ return MB_NOT_IMPLEMENTED;
+}
+
+} /* namespace moab */
diff --git a/src/io/NCWriteMPAS.hpp b/src/io/NCWriteMPAS.hpp
new file mode 100644
index 0000000..702984f
--- /dev/null
+++ b/src/io/NCWriteMPAS.hpp
@@ -0,0 +1,34 @@
+/*
+ * NCWriteMPAS.hpp
+ *
+ * nc write helper for MPAS type data (CAM)
+ * Created on: April 9, 2014
+ *
+ */
+
+#ifndef NCWRITEMPAS_HPP_
+#define NCWRITEMPAS_HPP_
+
+#include "NCWriteHelper.hpp"
+
+namespace moab {
+
+class NCWriteMPAS: public UcdNCWriteHelper
+{
+public:
+ NCWriteMPAS(WriteNC* writeNC, int fileId, const FileOptions& opts, EntityHandle fileSet)
+: UcdNCWriteHelper(writeNC, fileId, opts, fileSet) {}
+
+ virtual ~NCWriteMPAS();
+
+private:
+ //! Implementation of NCWriteHelper::collect_mesh_info()
+ virtual ErrorCode collect_mesh_info();
+
+ //! Collect data for specified variables
+ virtual ErrorCode write_values(std::vector<std::string>& var_names);
+};
+
+} // namespace moab
+
+#endif
diff --git a/src/io/ReadNC.cpp b/src/io/ReadNC.cpp
index a0e02b4..0a41cfa 100644
--- a/src/io/ReadNC.cpp
+++ b/src/io/ReadNC.cpp
@@ -118,6 +118,28 @@ ErrorCode ReadNC::load_file(const char* file_name, const EntityHandle* file_set,
ERRORR(rval, "Trouble checking mesh from last read.\n");
}
+ // Create some conventional tags, e.g. __NUM_DIMS
+ // Keep a flag on the file set to prevent conventional tags from being created again on a second read
+ Tag convTagsCreated = 0;
+ int def_val = 0;
+ rval = mbImpl->tag_get_handle("__CONV_TAGS_CREATED", 1, MB_TYPE_INTEGER, convTagsCreated,
+ MB_TAG_SPARSE | MB_TAG_CREAT, &def_val);
+ ERRORR(rval, "Trouble getting _CONV_TAGS_CREATED tag.");
+ int create_conv_tags_flag = 0;
+ rval = mbImpl->tag_get_data(convTagsCreated, &tmp_set, 1, &create_conv_tags_flag);
+ if (0 == create_conv_tags_flag) {
+ // Read dimension variables to create tags like __<var_name>_DIMS
+ rval = myHelper->read_variables(dimNames, tstep_nums);
+ ERRORR(rval, "Trouble reading dimension variables.");
+
+ rval = myHelper->create_conventional_tags(tstep_nums);
+ ERRORR(rval, "Trouble creating NC conventional tags.");
+
+ create_conv_tags_flag = 1;
+ rval = mbImpl->tag_set_data(convTagsCreated, &tmp_set, 1, &create_conv_tags_flag);
+ ERRORR(rval, "Trouble setting data for _CONV_TAGS_CREATED tag.");
+ }
+
// Create mesh vertex/edge/face sequences
Range faces;
if (!noMesh) {
@@ -125,26 +147,10 @@ ErrorCode ReadNC::load_file(const char* file_name, const EntityHandle* file_set,
ERRORR(rval, "Trouble creating mesh.");
}
- // Read variables onto grid
+ // Read specified variables onto grid
if (!noVars) {
rval = myHelper->read_variables(var_names, tstep_nums);
- if (MB_FAILURE == rval)
- return rval;
- }
- else {
- // Read dimension variables by default (the dimensions that are also variables)
- std::vector<std::string> dim_var_names;
- for (unsigned int i = 0; i < dimNames.size(); i++) {
- std::map<std::string, VarData>::iterator mit = varInfo.find(dimNames[i]);
- if (mit != varInfo.end())
- dim_var_names.push_back(dimNames[i]);
- }
-
- if (!dim_var_names.empty()) {
- rval = myHelper->read_variables(dim_var_names, tstep_nums);
- if (MB_FAILURE == rval)
- return rval;
- }
+ ERRORR(rval, "Trouble reading specified variables.");
}
#ifdef USE_MPI
@@ -175,12 +181,6 @@ ErrorCode ReadNC::load_file(const char* file_name, const EntityHandle* file_set,
}
#endif
- // Create NC conventional tags when loading header info only
- if (noMesh && noVars) {
- rval = myHelper->create_conventional_tags(tstep_nums);
- ERRORR(rval, "Trouble creating NC conventional tags.");
- }
-
mbImpl->release_interface(scdi);
scdi = NULL;
This diff is so big that we needed to truncate the remainder.
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
28 Apr '14
1 new commit in MOAB:
https://bitbucket.org/fathomteam/moab/commits/5ffa5b78d70f/
Changeset: 5ffa5b78d70f
Branch: ncwriter
User: danwu
Date: 2014-04-28 19:45:45
Summary: Merged master into ncwriter
Affected #: 10 files
diff --git a/src/LocalDiscretization/SpectralQuad.cpp b/src/LocalDiscretization/SpectralQuad.cpp
index d7355e6..7b581cb 100644
--- a/src/LocalDiscretization/SpectralQuad.cpp
+++ b/src/LocalDiscretization/SpectralQuad.cpp
@@ -109,7 +109,10 @@ bool SpectralQuad::reverseEvalFcn(const double *posn, const double *verts, const
double dist = opt_findpt_2(&_data, (const double **)_xyz, x_star, r, &c);
// if it did not converge, get out with throw...
if (dist > 0.9e+30)
- throw Map::EvaluationError();
+ {
+ std::vector<CartVect> dummy;
+ throw Map::EvaluationError(CartVect(x_star), dummy);
+ }
//c tells us if we landed inside the element or exactly on a face, edge, or node
// also, dist shows the distance to the computed point.
//copy parametric coords back
diff --git a/src/io/mhdf/include/mhdf.h b/src/io/mhdf/include/mhdf.h
index db36d63..b602bdf 100644
--- a/src/io/mhdf/include/mhdf.h
+++ b/src/io/mhdf/include/mhdf.h
@@ -67,7 +67,7 @@ extern "C" {
* named \c max_id . This attribute, if present, should contain the
* value of the largest entity ID used internally to the file. It can
* be used to verify that the code reading the file is using an integer
- * type of sufficient size to accomodate the entity IDs.
+ * type of sufficient size to accommodate the entity IDs.
*
* The \c tstt group contains four sub-groups, a datatype object, and a
* dataset object. The four sub-groups are: \c nodes, \c elements,
@@ -101,12 +101,12 @@ extern "C" {
*
* The \c coordinates
* DataSet contains the coordinates of all vertices in the mesh.
- * The DataSet should contain floating point values and have a dimenions
+ * The DataSet should contain floating point values and have a dimensions
* \f$ n \times d \f$, where \c n is the number of vertices and \c d
* is the number of coordinate values for each vertex.
*
- * The \c coodinates DataSet must have an integer attribute named \c start_id .
- * The vertices are then defined to have IDs begining with this value
+ * The \c coordinates DataSet must have an integer attribute named \c start_id .
+ * The vertices are then defined to have IDs beginning with this value
* and increasing sequentially in the order that they are defined in the
* \c coordinates table.
*
@@ -128,7 +128,7 @@ extern "C" {
* optional subgroup named \c tags. The \c tags subgroup is described in the
* \ref Dense "section on dense tag storage".
*
- * The \c connectivty DataSet is an \f$ n \times m \f$ array of integer
+ * The \c connectivity DataSet is an \f$ n \times m \f$ array of integer
* values. The DataSet contains one row for each of the \c n contained
* elements, where the connectivity of each element contains \c m IDs. For
* all element types supported by MOAB, with the exception of polyhedra,
@@ -146,14 +146,14 @@ extern "C" {
* The \c sets group contains the definitions of any entity sets stored
* in the file. It contains 1 to 4 DataSets and the optional \c tags
* subgroup. The \c contents, \c parents, and \c children data sets
- * are one dimensional arrays containing the concatenation of of the
+ * are one dimensional arrays containing the concatenation of the
* corresponding lists for all of the sets represented in the file.
*
* The \c lists DataSet is a \f$ n \times 4 \f$ table, having one
* row of four integer values for each set. The first three values
* for each set are the indices into the \c contents, \c children,
* and \c parents DataSets, respectively, at which the \em last value
- * for the set is stored. The contents, child, and parent lists for
+ * for set is stored. The contents, child, and parent lists for
* sets are stored in the corresponding datasets in the same order as
* the sets are listed in the \c lists DataSet, such that the index of
* the first value in one of those tables is one greater than the
@@ -168,7 +168,7 @@ extern "C" {
* stored at position 0 of the \c parents DataSet and the second at position
* 1.
*
- * The fourth colum of the \c lists DataSet is a series of bit flags
+ * The fourth column of the \c lists DataSet is a series of bit flags
* defining some properties of the sets. The four bit values currently
* defined are:
* - 0x1 owner
@@ -180,7 +180,7 @@ extern "C" {
* data set, that the contents list for the corresponding set is stored
* using a single range compression. Rather than storing the IDs of the
* contained entities individually, each ID \c i is followed by a count
- * \c n indicating that the set contains the cotiguous range of IDs
+ * \c n indicating that the set contains the contiguous range of IDs
* \f$ [i, i+n-1] \f$.
*
* The three least significant bits specify intended properties of the
@@ -208,16 +208,16 @@ extern "C" {
* may also be stored in the "dense" format as described in the
* \ref Dense "section on dense tag storage".
*
- * Each sub-group of the \c tags group contains the defintion for
+ * Each sub-group of the \c tags group contains the definition for
* a single tag. The name of each sub-group is the name of the
* corresponding tag. Non-printable characters, characters
* prohibited in group names in the HDF5 file format, and the
* backslash ('\') character are encoded
* in the name string by a backslash ('\') character followed by
- * the ASCII value of the character expressed as a pair of hexidecimal
+ * the ASCII value of the character expressed as a pair of hexadecimal
* digits. Thus the backslash character would be represented as \c \5C .
* Each tag group should also contain a comment which contains the
- * unenconded tag name.
+ * unencoded tag name.
*
* The tag sub-group may have any or all of the following four attributes:
* \c default, \c global, \c is_handle, and \c variable_length.
diff --git a/src/moab/BoundBox.hpp b/src/moab/BoundBox.hpp
index c74707a..3f1f07f 100644
--- a/src/moab/BoundBox.hpp
+++ b/src/moab/BoundBox.hpp
@@ -14,6 +14,15 @@ namespace moab {
BoundBox(const CartVect &min, const CartVect &max) :
bMin(min), bMax(max) {}
BoundBox(const double *corners);
+ // constructor used in element maps
+ BoundBox(std::vector<CartVect> points): bMin(DBL_MAX), bMax(-DBL_MAX)
+ {
+ for (size_t i=0; i<points.size(); i++)
+ {
+ update_min( points[i].array() );
+ update_max( points[i].array() );
+ }
+ }
~BoundBox() {}
bool contains_point(const double *point, const double tol = 0.0) const;
diff --git a/test/dagmc/dagmc_pointinvol_test.cpp b/test/dagmc/dagmc_pointinvol_test.cpp
index 47ee7c1..a859b65 100644
--- a/test/dagmc/dagmc_pointinvol_test.cpp
+++ b/test/dagmc/dagmc_pointinvol_test.cpp
@@ -26,7 +26,6 @@ static const char input_file[] = STRINGIFY(MESHDIR) "/dagmc/test_geom.h5m";
static const char input_file[] = STRINGIFY(MESHDIR) "/dagmc/test_geom.h5m";
#endif
-
void dagmc_setup_test()
{
ErrorCode rval = DAG->load_file(input_file); // open the Dag file
@@ -34,250 +33,247 @@ void dagmc_setup_test()
rval = DAG->init_OBBTree();
CHECK_ERR(rval);
+ /*
int num_vols = DAG->num_entities(3);
EntityHandle vol;
- for ( int i = 0 ; i < num_vols ; i++ )
- {
- vol = DAG->entity_by_index(3,i);
- }
+ for (int i = 0; i < num_vols; i++)
+ vol = DAG->entity_by_index(3, i);
+ */
//EntityHandle volume = 12682136550675316765;
- //CHECK_EQUAL(volume,vol);
+ //CHECK_EQUAL(volume, vol);
}
void dagmc_point_in()
{
int result = 0;
- int expected_result=1;
- double xyz[3]={0.0,0.0,0.0};
- int vol_idx=1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- ErrorCode rval = DAG->point_in_volume(vol_h,xyz,result);
+ int expected_result = 1;
+ double xyz[3] = {0.0, 0.0, 0.0};
+ int vol_idx = 1;
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ ErrorCode rval = DAG->point_in_volume(vol_h, xyz, result);
CHECK_ERR(rval);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
-int dagmc_point_in_vol_dir(double origin[3],double dir[3],int vol_idx)
+int dagmc_point_in_vol_dir(double origin[3], double dir[3], int vol_idx)
{
int result = 0;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
double xyz[3];
double next_surf_dist;
EntityHandle next_surf;
// normalise the vector
- double dir_norm = (dir[0]*dir[0])+(dir[1]*dir[1])+(dir[2]*dir[2]);
+ double dir_norm = (dir[0]*dir[0]) + (dir[1]*dir[1]) + (dir[2]*dir[2]);
- dir[0]=dir[0]/sqrt(dir_norm);
- dir[1]=dir[1]/sqrt(dir_norm);
- dir[2]=dir[2]/sqrt(dir_norm);
+ dir[0] = dir[0] / sqrt(dir_norm);
+ dir[1] = dir[1] / sqrt(dir_norm);
+ dir[2] = dir[2] / sqrt(dir_norm);
- ErrorCode rval = DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist);
-
- xyz[0]=origin[0]+(next_surf_dist*dir[0]);
- xyz[1]=origin[1]+(next_surf_dist*dir[1]);
- xyz[2]=origin[2]+(next_surf_dist*dir[2]);
+ ErrorCode rval = DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist);
+
+ xyz[0] = origin[0] + (next_surf_dist*dir[0]);
+ xyz[1] = origin[1] + (next_surf_dist*dir[1]);
+ xyz[2] = origin[2] + (next_surf_dist*dir[2]);
std::cout << xyz[0] << " " << xyz[1] << " " << xyz[2] << std::endl;
- rval = DAG->point_in_volume(vol_h,xyz,result,dir);
+ rval = DAG->point_in_volume(vol_h, xyz, result, dir);
CHECK_ERR(rval);
return result;
}
void dagmc_point_in_vol_1()
{
- double dir[3]={ -1.0,0.0,0.0};
- double origin[3]={0.0,0.0,0.0};
- int vol_idx=1;
- int expected_result=1;
-
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
- CHECK_EQUAL(expected_result,result);
+ double dir[3] = {-1.0, 0.0, 0.0};
+ double origin[3] = {0.0, 0.0, 0.0};
+ int vol_idx = 1;
+ int expected_result = 1;
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_in_vol_2()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 1.0,0.0,0.0};
- double origin[3]={0.0,0.0,0.0};
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {1.0, 0.0, 0.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_in_vol_3()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 0.0,-1.0,0.0};
- double origin[3]={0.0,0.0,0.0};
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {0.0, -1.0, 0.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_in_vol_4()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 0.0,1.0,0.0};
- double origin[3]={0.0,0.0,0.0};
-
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {0.0, 1.0, 0.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- CHECK_EQUAL(expected_result,result);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_in_vol_5()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 0.0,0.0,-1.0};
- double origin[3]={0.0,0.0,0.0};
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {0.0, 0.0, -1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_in_vol_6()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 0.0,0.0,1.0};
- double origin[3]={0.0,0.0,0.0};
-
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {0.0, 0.0, 1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- CHECK_EQUAL(expected_result,result);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_1()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ 1.0,1.0,1.0};
- double origin[3]={0.0,0.0,0.0};
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {1.0, 1.0, 1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_2()
{
- int expected_result=1;
- int vol_idx=1;
- double dir[3]={ -1.0,1.0,1.0};
- double origin[3]={0.0,0.0,0.0};
+ int expected_result = 1;
+ int vol_idx = 1;
+ double dir[3] = {-1.0, 1.0, 1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_3()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ 1.0,1.0,-1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {1.0, 1.0, -1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_4()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ -1.0,1.0,-1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {-1.0, 1.0, -1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_5()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ 1.0,-1.0,1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {1.0, -1.0, 1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_6()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ -1.0,-1.0,1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {-1.0, -1.0, 1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_7()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ 1.0,-1.0,-1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {1.0, -1.0, -1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
void dagmc_point_on_corner_8()
{
int expected_result = 1;
- int vol_idx=1;
- double dir[3]={ -1.0,-1.0,-1.0};
- double origin[3]={0.0,0.0,0.0};
+ int vol_idx = 1;
+ double dir[3] = {-1.0, -1.0, -1.0};
+ double origin[3] = {0.0, 0.0, 0.0};
- int result = dagmc_point_in_vol_dir(origin,dir,vol_idx);
+ int result = dagmc_point_in_vol_dir(origin, dir, vol_idx);
- CHECK_EQUAL(expected_result,result);
+ CHECK_EQUAL(expected_result, result);
}
int main(int /* argc */, char** /* argv */)
{
int result = 0;
- result += RUN_TEST( dagmc_setup_test ); // setup problem
- result += RUN_TEST( dagmc_point_in ); // point in centre
+ result += RUN_TEST(dagmc_setup_test); // setup problem
+ result += RUN_TEST(dagmc_point_in); // point in centre
// rays fired along cardinal directions
- result += RUN_TEST( dagmc_point_in_vol_1); // point in centre
- result += RUN_TEST( dagmc_point_in_vol_2); // point in centre
- result += RUN_TEST( dagmc_point_in_vol_3); // point in centre
- result += RUN_TEST( dagmc_point_in_vol_4); // point in centre
- result += RUN_TEST( dagmc_point_in_vol_5); // point in centre
- result += RUN_TEST( dagmc_point_in_vol_6); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_1); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_2); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_3); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_4); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_5); // point in centre
+ result += RUN_TEST(dagmc_point_in_vol_6); // point in centre
// rays fired at nodes
- result += RUN_TEST( dagmc_point_on_corner_1);
- result += RUN_TEST( dagmc_point_on_corner_2);
- result += RUN_TEST( dagmc_point_on_corner_3);
- result += RUN_TEST( dagmc_point_on_corner_4);
-
- // result += RUN_TEST( dagmc_point_in({0.0,0.0,5.0}); // point in centre
- // result += RUN_TEST( dagmc_point_in({0.0,0.0,-5.0}); // point in centre
- // result += RUN_TEST( dagmc_point_in({0.0,5.0,0.0}); // point in centre
- // result += RUN_TEST( dagmc_point_in({0.0,-5.0,0.0}); // point in centre
- // result += RUN_TEST( dagmc_point_in({5.0,0.0,0.0}); // point in centre
- // result += RUN_TEST( dagmc_point_in({-5.0,0.0,0.0}); // point in centre
+ result += RUN_TEST(dagmc_point_on_corner_1);
+ result += RUN_TEST(dagmc_point_on_corner_2);
+ result += RUN_TEST(dagmc_point_on_corner_3);
+ result += RUN_TEST(dagmc_point_on_corner_4);
+
+ //result += RUN_TEST(dagmc_point_in({0.0, 0.0, 5.0}); // point in centre
+ //result += RUN_TEST(dagmc_point_in({0.0, 0.0, -5.0}); // point in centre
+ //result += RUN_TEST(dagmc_point_in({0.0, 5.0, 0.0}); // point in centre
+ //result += RUN_TEST(dagmc_point_in({0.0, -5.0, 0.0}); // point in centre
+ //result += RUN_TEST(dagmc_point_in({5.0, 0.0, 0.0}); // point in centre
+ //result += RUN_TEST(dagmc_point_in({-5.0, 0.0, 0.0}); // point in centre
return result;
}
diff --git a/test/dagmc/dagmc_rayfire_test.cpp b/test/dagmc/dagmc_rayfire_test.cpp
index 57aa625..ba5f309 100644
--- a/test/dagmc/dagmc_rayfire_test.cpp
+++ b/test/dagmc/dagmc_rayfire_test.cpp
@@ -35,80 +35,80 @@ void dagmc_setup_test()
rval = DAG->init_OBBTree();
CHECK_ERR(rval);
+ /*
int num_vols = DAG->num_entities(3);
EntityHandle vol_h;
- for ( int i = 0 ; i < num_vols ; i++ )
- {
- vol_h = DAG->entity_by_index(3,i);
- }
+ for (int i = 0; i < num_vols; i++)
+ vol_h = DAG->entity_by_index(3, i);
+ */
// EntityHandle volume = 12682136550675316765;
- // CHECK_EQUAL(volume,vol);
+ // CHECK_EQUAL(volume, vol);
}
void dagmc_origin_face_rayfire()
{
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={-1.0,0.0,0.0};
- double origin[3]={0.0,0.0,0.0};
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {-1.0, 0.0, 0.0};
+ double origin[3] = {0.0, 0.0, 0.0};
double next_surf_dist;
EntityHandle next_surf;
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist);
- double expected_next_surf_dist=5.0;
- CHECK_REAL_EQUAL(expected_next_surf_dist,next_surf_dist,eps);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist);
+ double expected_next_surf_dist = 5.0;
+ CHECK_REAL_EQUAL(expected_next_surf_dist, next_surf_dist, eps);
}
void dagmc_outside_face_rayfire()
{
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={1.0,0.0,0.0}; // ray along x direction
- double origin[3]={-10.0,0.0,0.0}; // origin at -10 0 0
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {1.0, 0.0, 0.0}; // ray along x direction
+ double origin[3] = {-10.0, 0.0, 0.0}; // origin at -10 0 0
double next_surf_dist;
EntityHandle next_surf;
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist);
std::cout << next_surf_dist << std::endl;
- double expected_next_surf_dist=15.0;
- CHECK_REAL_EQUAL(expected_next_surf_dist,next_surf_dist,eps);
+ double expected_next_surf_dist = 15.0;
+ CHECK_REAL_EQUAL(expected_next_surf_dist, next_surf_dist, eps);
}
void dagmc_outside_face_rayfire_orient_exit()
{
DagMC::RayHistory history;
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={1.0,0.0,0.0}; // ray along x direction
- double origin[3]={-10.0,0.0,0.0}; // origin at -10 0 0
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {1.0, 0.0, 0.0}; // ray along x direction
+ double origin[3] = {-10.0, 0.0, 0.0}; // origin at -10 0 0
double next_surf_dist;
EntityHandle next_surf;
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1);
std::cout << next_surf_dist << std::endl;
- double expected_next_surf_dist=15.0;
- CHECK_REAL_EQUAL(expected_next_surf_dist,next_surf_dist,eps);
+ double expected_next_surf_dist = 15.0;
+ CHECK_REAL_EQUAL(expected_next_surf_dist, next_surf_dist, eps);
}
void dagmc_outside_face_rayfire_orient_entrance()
{
DagMC::RayHistory history;
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={1.0,0.0,0.0}; // ray along x direction
- double origin[3]={-10.0,0.0,0.0}; // origin at -10 0 0
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {1.0, 0.0, 0.0}; // ray along x direction
+ double origin[3] = {-10.0, 0.0, 0.0}; // origin at -10 0 0
double next_surf_dist;
EntityHandle next_surf;
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist,&history,0.0,-1);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist, &history, 0.0, -1);
std::cout << next_surf_dist << std::endl;
- double expected_next_surf_dist=5.0;
- CHECK_REAL_EQUAL(expected_next_surf_dist,next_surf_dist,eps);
+ double expected_next_surf_dist = 5.0;
+ CHECK_REAL_EQUAL(expected_next_surf_dist, next_surf_dist, eps);
}
void dagmc_outside_face_rayfire_history_fail()
{
DagMC::RayHistory history;
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={1.0,0.0,0.0}; // ray along x direction
- double origin[3]={-10.0,0.0,0.0}; // origin at -10 0 0
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {1.0, 0.0, 0.0}; // ray along x direction
+ double origin[3] = {-10.0, 0.0, 0.0}; // origin at -10 0 0
double xyz[3];
double next_surf_dist;
EntityHandle next_surf;
@@ -119,62 +119,60 @@ void dagmc_outside_face_rayfire_history_fail()
// needs two ray_fires to cross, this is expected and ok
// first ray fire with history
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1);
// second ray fire with history
- DAG->ray_fire(vol_h,xyz,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1);
// this fire should hit graveyard, i.e. next_surf = 0
- DAG->ray_fire(vol_h,xyz,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1);
// using history with this geom, there should be no next surface, i.e. 0
EntityHandle ZERO = 0;
- CHECK_EQUAL(ZERO ,next_surf);
+ CHECK_EQUAL(ZERO, next_surf);
}
void dagmc_outside_face_rayfire_history()
{
DagMC::RayHistory history;
int vol_idx = 1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- double dir[3]={1.0,0.0,0.0}; // ray along x direction
- double origin[3]={-10.0,0.0,0.0}; // origin at -10 0 0
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ double dir[3] = {1.0, 0.0, 0.0}; // ray along x direction
+ double origin[3] = {-10.0, 0.0, 0.0}; // origin at -10 0 0
double xyz[3];
double next_surf_dist;
EntityHandle next_surf;
history.reset();
// first ray fire with history
- DAG->ray_fire(vol_h,origin,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1);
std::cout << next_surf << " " << history.size() << std::endl;
// second ray fire with history
- xyz[0]=origin[0]+(next_surf_dist*dir[0]);
- xyz[1]=origin[1]+(next_surf_dist*dir[1]);
- xyz[2]=origin[2]+(next_surf_dist*dir[2]);
+ xyz[0] = origin[0] + (next_surf_dist*dir[0]);
+ xyz[1] = origin[1] + (next_surf_dist*dir[1]);
+ xyz[2] = origin[2] + (next_surf_dist*dir[2]);
// ray fired execacyl
- DAG->ray_fire(vol_h,xyz,dir,next_surf,next_surf_dist,&history,0,1);
-
- DAG->ray_fire(vol_h,xyz,dir,next_surf,next_surf_dist,&history,0,1);
+ DAG->ray_fire(vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1);
+ DAG->ray_fire(vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1);
// using history with this geom, there should be no next surface, i.e. 0
EntityHandle ZERO = 0;
- CHECK_EQUAL(ZERO ,next_surf);
+ CHECK_EQUAL(ZERO, next_surf);
}
-
int main(int /* argc */, char** /* argv */)
{
int result = 0;
- result += RUN_TEST( dagmc_setup_test ); // setup problem
+ result += RUN_TEST(dagmc_setup_test); // setup problem
// rays fired along cardinal directions
- result += RUN_TEST( dagmc_origin_face_rayfire ); // point in centre
- result += RUN_TEST( dagmc_outside_face_rayfire );
- result += RUN_TEST( dagmc_outside_face_rayfire_orient_exit ); // fire ray from point outside volume looking for exit intersections
- result += RUN_TEST( dagmc_outside_face_rayfire_orient_entrance ); // fire ray from point outside volume looking for entrance intersection
- result += RUN_TEST( dagmc_outside_face_rayfire_history_fail ); // fire ray from point outside geometry using ray history
- result += RUN_TEST( dagmc_outside_face_rayfire_history ); // fire ray from point outside geometry using ray history
+ result += RUN_TEST(dagmc_origin_face_rayfire); // point in centre
+ result += RUN_TEST(dagmc_outside_face_rayfire);
+ result += RUN_TEST(dagmc_outside_face_rayfire_orient_exit); // fire ray from point outside volume looking for exit intersections
+ result += RUN_TEST(dagmc_outside_face_rayfire_orient_entrance); // fire ray from point outside volume looking for entrance intersection
+ result += RUN_TEST(dagmc_outside_face_rayfire_history_fail); // fire ray from point outside geometry using ray history
+ result += RUN_TEST(dagmc_outside_face_rayfire_history); // fire ray from point outside geometry using ray history
return result;
}
diff --git a/test/dagmc/dagmc_simple_test.cpp b/test/dagmc/dagmc_simple_test.cpp
index bf253f6..b2a44eb 100644
--- a/test/dagmc/dagmc_simple_test.cpp
+++ b/test/dagmc/dagmc_simple_test.cpp
@@ -26,7 +26,6 @@ static const char input_file[] = STRINGIFY(MESHDIR) "/dagmc/test_geom.h5m";
static const char input_file[] = STRINGIFY(MESHDIR) "/dagmc/test_geom.h5m";
#endif
-
void dagmc_load_file()
{
ErrorCode rval = DAG->load_file(input_file); // open the Dag file
@@ -41,97 +40,101 @@ void dagmc_build_obb()
void dagmc_num_vols()
{
- int expect_num_vols=2;
+ int expect_num_vols = 2;
int num_vols = DAG->num_entities(3);
- CHECK_EQUAL(expect_num_vols,num_vols);
+ CHECK_EQUAL(expect_num_vols, num_vols);
}
void dagmc_entity_handle()
{
- int num_vols = DAG->num_entities(3);
+ /*
+ int num_vols = DAG->num_entities(3);
EntityHandle vol_h;
- for ( int i = 0 ; i < num_vols ; i++ )
- {
- vol_h = DAG->entity_by_index(3,i);
- }
+ for (int i = 0; i < num_vols; i++)
+ vol_h = DAG->entity_by_index(3, i);
+ */
//EntityHandle expect_vol_h = 12682136550675316765;
- //CHECK_EQUAL(expect_vol_h,vol_h);
+ //CHECK_EQUAL(expect_vol_h, vol_h);
}
void dagmc_point_in()
{
int result = 0;
- int expect_result=1;
- int vol_idx=1;
- double xyz[3]={0.0,0.0,0.0};
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- ErrorCode rval = DAG->point_in_volume(vol_h,xyz,result);
- CHECK_EQUAL(expect_result,result);
+ int expect_result = 1;
+ int vol_idx = 1;
+ double xyz[3] = {0.0, 0.0, 0.0};
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ ErrorCode rval = DAG->point_in_volume(vol_h, xyz, result);
+ CHECK_ERR(rval);
+ CHECK_EQUAL(expect_result, result);
}
void dagmc_rayfire()
{
const double eps = 1e-6; // epsilon for test, faceting tol?
- int vol_idx=1;
+ int vol_idx = 1;
// note model is cube of side 10, centred at 0,0,0, so ray fire along
// any unit direction should be exactly 5.0
- double xyz[3]={0.0,0.0,0.0};
- double dir[3]={0.0,0.0,1.0};
+ double xyz[3] = {0.0, 0.0, 0.0};
+ double dir[3] = {0.0, 0.0, 1.0};
EntityHandle next_surf;
double next_surf_dist;
- double expect_next_surf_dist=5.0;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
+ double expect_next_surf_dist = 5.0;
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
- ErrorCode rval = DAG->ray_fire(vol_h,xyz,dir,next_surf,next_surf_dist);
- CHECK_REAL_EQUAL(expect_next_surf_dist,next_surf_dist,eps);
+ ErrorCode rval = DAG->ray_fire(vol_h, xyz, dir, next_surf, next_surf_dist);
+ CHECK_ERR(rval);
+ CHECK_REAL_EQUAL(expect_next_surf_dist, next_surf_dist, eps);
}
void dagmc_closest_to()
{
const double eps = 1e-6; // epsilon for test, faceting tol?
- int vol_idx=1;
+ int vol_idx = 1;
// note model is cube of side 10, centred at 0,0,0, so ray fire along
// any unit direction should be exactly 5.0
- double xyz[3]={-6.0,0.0,0.0};
+ double xyz[3] = {-6.0, 0.0, 0.0};
double distance; // distance from point to nearest surface
- double expect_distance=1.0;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
+ double expect_distance = 1.0;
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
- ErrorCode rval = DAG->closest_to_location(vol_h,xyz,distance);
+ ErrorCode rval = DAG->closest_to_location(vol_h, xyz, distance);
+ CHECK_ERR(rval);
// distance should be 1.0 cm
- CHECK_REAL_EQUAL(expect_distance,distance,eps);
+ CHECK_REAL_EQUAL(expect_distance, distance, eps);
}
void dagmc_test_boundary()
{
- int vol_idx=1;
- EntityHandle vol_h = DAG->entity_by_index(3,vol_idx);
- int surf_idx=1;
- EntityHandle surf_h = DAG->entity_by_index(2,surf_idx);
+ int vol_idx = 1;
+ EntityHandle vol_h = DAG->entity_by_index(3, vol_idx);
+ int surf_idx = 1;
+ EntityHandle surf_h = DAG->entity_by_index(2, surf_idx);
- double xyz[3]={0.0,0.0,5.0};
- double dir[3]={0.0,0.0,1.0};
+ double xyz[3] = {0.0, 0.0, 5.0};
+ double dir[3] = {0.0, 0.0, 1.0};
int result;
- int expect_result=0;
+ int expect_result = 0;
- ErrorCode rval = DAG->test_volume_boundary(vol_h,surf_h,xyz,dir,result);
+ ErrorCode rval = DAG->test_volume_boundary(vol_h, surf_h, xyz, dir, result);
+ CHECK_ERR(rval);
// check ray leaving volume
- CHECK_EQUAL(expect_result,result);
+ CHECK_EQUAL(expect_result, result);
}
int main(int /* argc */, char** /* argv */)
{
int result = 0;
- result += RUN_TEST( dagmc_load_file ); // test ray fire
- result += RUN_TEST( dagmc_build_obb ); // build the obb
- result += RUN_TEST( dagmc_num_vols ); // make sure the num of vols correct
- // result += RUN_TEST( dagmc_entity_handle); // check the entity handle correct
- result += RUN_TEST( dagmc_point_in); // check entity by point
- result += RUN_TEST( dagmc_rayfire ) ; // ensure ray fire distance is correct
- result += RUN_TEST( dagmc_closest_to ); // check the distance to surface nearest point
- result += RUN_TEST( dagmc_test_boundary ); // check particle entering leaving
+ result += RUN_TEST(dagmc_load_file); // test ray fire
+ result += RUN_TEST(dagmc_build_obb); // build the obb
+ result += RUN_TEST(dagmc_num_vols); // make sure the num of vols correct
+ // result += RUN_TEST(dagmc_entity_handle); // check the entity handle correct
+ result += RUN_TEST(dagmc_point_in); // check entity by point
+ result += RUN_TEST(dagmc_rayfire); // ensure ray fire distance is correct
+ result += RUN_TEST(dagmc_closest_to); // check the distance to surface nearest point
+ result += RUN_TEST(dagmc_test_boundary); // check particle entering leaving
return result;
}
diff --git a/tools/mbcoupler/Coupler.cpp b/tools/mbcoupler/Coupler.cpp
index afee8af..fbfd8fb 100644
--- a/tools/mbcoupler/Coupler.cpp
+++ b/tools/mbcoupler/Coupler.cpp
@@ -446,7 +446,12 @@ ErrorCode Coupler::locate_points(double *xyz, int num_points,
for (int i = 0; i < num_points; i++)
{
if (tl_tmp->vi_rd[3*i+1] == -1)
+ {
missing_pts++;
+#ifndef NDEBUG
+ printf(" %f %f %f\n", xyz[3*i], xyz[3*i+1], xyz[3*i+2] );
+#endif
+ }
else
if (tl_tmp->vi_rd[3*i]==(int)my_rank)
local_pts++;
@@ -668,7 +673,11 @@ ErrorCode Coupler::nat_param(double xyz[3],
if (epsilon) {
std::vector<double> dists;
std::vector<EntityHandle> leaves;
- result = myTree->distance_search(xyz, epsilon, leaves, 1.0e-10, 1.0e-6, &dists, NULL, &localRoot);
+ // two tolerances
+ result = myTree->distance_search(xyz, epsilon, leaves,
+ /*iter_tol*/ epsilon,
+ /*inside_tol*/ 10*epsilon,
+ &dists, NULL, &localRoot);
if (leaves.empty())
// not found returns success here, with empty list, just like case with no epsilon
return MB_SUCCESS;
@@ -758,38 +767,53 @@ ErrorCode Coupler::nat_param(double xyz[3],
std::cout << "Problems getting coordinates of vertices\n";
return result;
}
-
+ CartVect pos(xyz);
if (etype == MBHEX) {
if (8==num_connect)
{
Element::LinearHex hexmap(coords_vert);
- tmp_nat_coords = hexmap.ievaluate(CartVect(xyz), epsilon);
- bool inside = hexmap.inside_nat_space(tmp_nat_coords, epsilon);
- if (!inside)
+ if (!hexmap.inside_box( pos, epsilon))
+ continue;
+ try {
+ tmp_nat_coords = hexmap.ievaluate(pos, epsilon);
+ bool inside = hexmap.inside_nat_space(tmp_nat_coords, epsilon);
+ if (!inside) continue;
+ }
+ catch (Element::Map::EvaluationError) {
continue;
+ }
}
else if (27==num_connect)
{
Element::QuadraticHex hexmap(coords_vert);
- tmp_nat_coords = hexmap.ievaluate(CartVect(xyz), epsilon);
- bool inside = hexmap.inside_nat_space(tmp_nat_coords, epsilon);
- if (!inside)
- continue;
+ if (!hexmap.inside_box( pos, epsilon))
+ continue;
+ try {
+ tmp_nat_coords = hexmap.ievaluate(pos, epsilon);
+ bool inside = hexmap.inside_nat_space(tmp_nat_coords, epsilon);
+ if (!inside) continue;
+ }
+ catch (Element::Map::EvaluationError) {
+ continue;
+ }
}
else // TODO this case not treated yet, no interpolation
continue;
}
else if (etype == MBTET){
Element::LinearTet tetmap(coords_vert);
- tmp_nat_coords = tetmap.ievaluate(CartVect(xyz));
+ // this is just a linear solve; unless degenerate, will not except
+ tmp_nat_coords = tetmap.ievaluate(pos);
bool inside = tetmap.inside_nat_space(tmp_nat_coords, epsilon);
if (!inside)
continue;
}
else if (etype == MBQUAD){
Element::LinearQuad quadmap(coords_vert);
+ if (!quadmap.inside_box( pos, epsilon))
+ continue;
try {
- tmp_nat_coords = quadmap.ievaluate(CartVect(xyz), epsilon);
+ tmp_nat_coords = quadmap.ievaluate(pos, epsilon);
bool inside = quadmap.inside_nat_space(tmp_nat_coords, epsilon);
if (!inside) continue;
}
diff --git a/tools/mbcoupler/ElemUtil.cpp b/tools/mbcoupler/ElemUtil.cpp
index cfc36e0..ee338c0 100644
--- a/tools/mbcoupler/ElemUtil.cpp
+++ b/tools/mbcoupler/ElemUtil.cpp
@@ -3,6 +3,7 @@
#include <assert.h>
#include "ElemUtil.hpp"
+#include "moab/BoundBox.hpp"
namespace moab {
namespace ElemUtil {
@@ -433,6 +434,15 @@ namespace Element {
this->vertex = v;
}
+ bool Map::inside_box(const CartVect & xi, double & tol) const
+ {
+ // bail out early, before doing an expensive NR iteration
+ // compute box
+ BoundBox box(this->vertex);
+ return box.contains_point(xi.array(), tol);
+
+ }
+
//
CartVect Map::ievaluate(const CartVect& x, double tol, const CartVect& x0) const {
// TODO: should differentiate between epsilons used for
@@ -448,12 +458,12 @@ namespace Element {
int iters=0;
while (delta % delta > error_tol_sqr) {
if(++iters>10)
- throw Map::EvaluationError();
+ throw Map::EvaluationError(x, vertex);
J = jacobian(xi);
det = J.determinant();
if (det < std::numeric_limits<double>::epsilon())
- throw Map::EvaluationError();
+ throw Map::EvaluationError(x, vertex);
xi -= J.inverse(1.0/det) * delta;
delta = evaluate( xi ) - x;
}
@@ -896,7 +906,10 @@ namespace Element {
real dist = opt_findpt_3(&_data, (const real **)_xyz, x_star, r, &c);
// if it did not converge, get out with throw...
if (dist > 0.9e+30)
- throw Map::EvaluationError();
+ {
+ std::vector<CartVect> dummy;
+ throw Map::EvaluationError(xyz, dummy);
+ }
//c tells us if we landed inside the element or exactly on a face, edge, or node
// also, dist shows the distance to the computed point.
//copy parametric coords back
@@ -1184,7 +1197,11 @@ namespace Element {
real dist = opt_findpt_2(&_data, (const real **)_xyz, x_star, r, &c);
// if it did not converge, get out with throw...
if (dist > 0.9e+30)
- throw Map::EvaluationError();
+ {
+ std::vector<CartVect> dummy;
+ throw Map::EvaluationError(xyz, dummy);
+ }
+
//c tells us if we landed inside the element or exactly on a face, edge, or node
// also, dist shows the distance to the computed point.
//copy parametric coords back
diff --git a/tools/mbcoupler/ElemUtil.hpp b/tools/mbcoupler/ElemUtil.hpp
index 219323b..b2a743a 100644
--- a/tools/mbcoupler/ElemUtil.hpp
+++ b/tools/mbcoupler/ElemUtil.hpp
@@ -103,10 +103,22 @@ namespace ElemUtil {
/**\brief Set vertices. */
virtual void set_vertices(const std::vector<CartVect>& v);
+ // will look at the box formed by vertex coordinates, and before doing any NR, bail out if necessary
+ virtual bool inside_box(const CartVect & xi, double & tol) const;
+
/* Exception thrown when an evaluation fails (e.g., ievaluate fails to converge). */
class EvaluationError {
public:
- EvaluationError(){};
+ EvaluationError(const CartVect & x, const std::vector<CartVect> & verts): p(x), vertices(verts){
+#ifndef NDEBUG
+ std::cout << "p:" << p << "\n vertices.size() " <<vertices.size() << "\n";
+ for (size_t i=0; i<vertices.size(); i++)
+ std::cout << vertices[i] << "\n";
+#endif
+ };
+ private:
+ CartVect p;
+ std::vector<CartVect> vertices;
};// class EvaluationError
/* Exception thrown when a bad argument is encountered. */
diff --git a/tools/mbcoupler/ElementTest.cpp b/tools/mbcoupler/ElementTest.cpp
index 4f37602..ca6e9e2 100644
--- a/tools/mbcoupler/ElementTest.cpp
+++ b/tools/mbcoupler/ElementTest.cpp
@@ -24,7 +24,58 @@ void test_tet() {
}// test_tet()
void test_hex() {
- moab::Element::LinearHex hex;
+ double positions[] =
+ {
+ 236.80706050970281, -139.55422526228017, 193.27999999999997,
+ 236.47511729348639, -141.33020962638582, 193.27999999999997,
+ 237.8457938295229, -142.57076074835663, 193.27999999999997,
+ 239.12702305519684, -139.96608933577852, 193.27999999999997,
+ 236.80841321361444, -139.55341321335499, 202.654,
+ 236.47655014713746, -141.32980272396816, 202.654,
+ 237.8477913707564, -142.57047282187165, 202.654,
+ 239.12865103844533, -139.96531051891105, 202.654
+ };
+ CartVect x(235.96518686964933, -142.43503000077749, 188.19999999999987);
+ std::vector<CartVect> vertices;
+ for (int i=0; i<8; i++)
+ vertices.push_back(CartVect(positions+3*i));
+
+ moab::Element::LinearHex hex(vertices);
+ double tol(0.0001);
+ if (hex.inside_box(x, tol))
+ {
+ CartVect nat_par = hex.ievaluate(x, 0.0001);
+ std::cout <<nat_par <<"\n";
+ }
+
+ double positions2[] =
+ { 49.890500000000024, -20.376134375374882, 312.72000000000003,
+ 52.015875000000044, -19.149048546996006, 312.72000000000003,
+ 48.430375821458099, -18.548796774572125, 312.72000000000003,
+ 47.717616239031223, -21.191360829777231, 312.72000000000003,
+ 49.890500000000024, -20.376134375374882, 322.88,
+ 52.015875000000044, -19.149048546996006, 322.88,
+ 48.429930354643275, -18.52828610485021, 322.88,
+ 47.720552036968819, -21.167591146685712, 322.88};
+
+ CartVect x2(51.469000000000015, -20.145482942833631, 317.80000000000001);
+
+ vertices.clear();
+ for (int i=0; i<8; i++)
+ vertices.push_back(CartVect(positions2+3*i));
+ moab::Element::LinearHex hex2(vertices);
+ if (hex2.inside_box(x2, tol))
+ {
+ try {
+ CartVect nat_par = hex.ievaluate(x, 0.0001);
+ std::cout <<nat_par <<"\n";
+ }
+ catch (Element::Map::EvaluationError) {
+ // nothing
+ }
+}
+
+
}// test_hex()
#include "moab/Core.hpp"
#include "moab/Range.hpp"
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0