20 #pragma warning( disable : 4786 )
32 #ifndef IS_BUILDING_MB
33 #define IS_BUILDING_MB
42 const double MOAB_PI = 3.1415926535897932384626433832795028841971693993751058209749445923;
44 const static std::string
outFilenames[5] = {
"outTempestCS.g",
"outTempestRLL.g",
"outTempestICO.g",
"outTempestICOD.g",
54 int main(
int argc,
char** argv )
64 MPI_Init( &argc, &argv );
75 NcError
error( NcError::verbose_nonfatal );
76 const int blockSize = 30;
79 std::cout <<
"Creating TempestRemap Cubed-Sphere Mesh ...\n";
81 int ierr = GenerateCSMesh( tempest_mesh, blockSize, outFilename,
"NetCDF4" );
85 const double sphere_area = tempest_mesh.CalculateFaceAreas(
false );
91 NcError
error( NcError::verbose_nonfatal );
92 const int blockSize = 30;
95 std::cout <<
"Creating TempestRemap Latitude-Longitude Mesh ...\n";
98 GenerateRLLMesh( tempest_mesh, blockSize * 2, blockSize, 0.0, 360.0, -90.0, 90.0,
false,
false,
true,
"",
"",
101 outFilename,
"NetCDF4",
106 const double sphere_area = tempest_mesh.CalculateFaceAreas(
false );
112 NcError
error( NcError::verbose_nonfatal );
113 const int blockSize = 30;
114 const bool computeDual =
false;
117 std::cout <<
"Creating TempestRemap Icosahedral Mesh ...\n";
119 int ierr = GenerateICOMesh( tempest_mesh, blockSize, computeDual, outFilename,
"NetCDF4" );
123 const double sphere_area = tempest_mesh.CalculateFaceAreas(
false );
129 NcError
error( NcError::verbose_nonfatal );
130 const int blockSize = 30;
131 const bool computeDual =
true;
134 std::cout <<
"Creating TempestRemap MPAS Mesh (dual of the Icosahedral) ...\n";
136 int ierr = GenerateICOMesh( tempest_mesh, blockSize, computeDual, outFilename,
"NetCDF4" );
140 const double sphere_area = tempest_mesh.CalculateFaceAreas(
false );
146 NcError
error( NcError::verbose_nonfatal );
151 const double inpArea = inpMesh.CalculateFaceAreas(
false );
154 for(
int isrc = 0; isrc < 4; ++isrc )
156 for(
int jsrc = 0; jsrc < 4; ++jsrc )
162 "NetCDF4",
"exact",
false,
false,
false,
false,
false );
165 const double ovArea = tempest_mesh.CalculateFaceAreas(
false );
173 NcError
error( NcError::verbose_nonfatal );
178 CHECK( NULL != mbCore );
212 const size_t tempest_nodes_src = srcTempest->nodes.size(), tempest_elems_src = srcTempest->faces.size();
213 const size_t tempest_nodes_tgt = tgtTempest->nodes.size(), tempest_elems_tgt = tgtTempest->faces.size();
214 CHECK_EQUAL( tempest_nodes_src, tempest_nodes_tgt );
215 CHECK_EQUAL( tempest_elems_src, tempest_elems_tgt );