]> SALOME platform Git repositories - modules/med.git/blob - src/MEDMEM/duplicateMEDMESH.cxx
Salome HOME
DCQ : Merge with Ecole Ete a6.
[modules/med.git] / src / MEDMEM / duplicateMEDMESH.cxx
1 using namespace std;
2 #include<string>
3 #include<deque>
4
5 #include "MEDMEM_Exception.hxx"
6 #include "MEDMEM_define.hxx"
7
8 #include "MEDMEM_Med.hxx"
9 #include "MEDMEM_Mesh.hxx"
10 #include "MEDMEM_Family.hxx"
11 #include "MEDMEM_Support.hxx"
12
13 #include "MEDMEM_GenDriver.hxx"
14 #include "MEDMEM_MedMedDriver.hxx"
15 #include "MEDMEM_MedMeshDriver.hxx"
16
17 using namespace MEDMEM;
18 int main (int argc, char ** argv) {
19   
20     string filenameIN = argv[1] ;
21     string filenameOUT = argv[2] ;
22     
23     MED * myMed = new MED() ;
24     MED_MED_RDONLY_DRIVER myMedDriver(filenameIN,myMed) ;
25
26   // we read all meshes in filenameIN 
27   try {
28     
29     //int read ; !! UNUSED VARIABLE !!
30     myMedDriver.open();
31     myMedDriver.readFileStruct();
32     myMedDriver.close();
33     
34     // read all mesh
35     MESSAGE("Read all meshes :") ;
36     int NumberOfMeshes = myMed->getNumberOfMeshes() ;
37     MESSAGE("Number of meshes : "<<NumberOfMeshes) ;
38     deque<string> MeshName = myMed->getMeshNames() ;
39     map<string,MESH*> _meshes ;
40     for (int i=0; i<NumberOfMeshes; i++) {
41       _meshes[MeshName[i]]=myMed->getMesh(MeshName[i]) ;
42       _meshes[MeshName[i]]->read();
43       MESSAGE("  - Mesh "<<i+1<<", named "<<MeshName[i]<<" read !");
44       MED_MESH_WRONLY_DRIVER myMeshDriver(filenameOUT,_meshes[MeshName[i]]);
45       MESSAGE("After declaration of MED_MESH_DRIVER");
46       myMeshDriver.setMeshName(MeshName[i]);
47       MESSAGE("After setMeshName");
48       myMeshDriver.open() ;
49       MESSAGE("After open");
50       myMeshDriver.write() ;
51       MESSAGE("After write");
52       myMeshDriver.close() ;
53       MESSAGE("After close");
54     }
55
56     // set support : support must be calculated with mesh information !!!
57     myMed->updateSupport() ;
58
59   } catch (MEDEXCEPTION& ex){
60     MESSAGE(ex.what()) ;
61   }
62 }