diff --git a/doc/FORMATS b/doc/FORMATS
new file mode 100644
index 0000000000000000000000000000000000000000..ef554c18cbc728137c0b9f10266bf192216e6697
--- /dev/null
+++ b/doc/FORMATS
@@ -0,0 +1,85 @@
+
+Gmsh Mesh File Format
+=====================
+
+   The 'msh' file format is the native output file format for
+   Gmsh. The file is divided in two sections (enclosed in $KEY and
+   $ENDKEY pairs): $NOD/$ENDNOD defines the nodes and $ELM/$ENDELM
+   defines the elements.
+
+   $NOD
+   number-of-nodes
+   node-number x-coord y-coord z-coord 
+   ...
+   $ENDNOD
+   $ELM
+   number-of-elements
+   elm-number elm-type elm-region unused number-of-nodes node-numbers
+   ...
+   $ENDELM
+
+   All the syntactic variables stand for integers except x-coord,
+   y-coord and z-coord which stand for floating point values.  The
+   elm-type value defines the geometrical type for the element:
+   
+   1  Line (2 nodes, 1 edge). 
+   2  Triangle (3 nodes, 3 edges). 
+   3  Quadrangle (4 nodes, 4 edges). 
+   4  Tetrahedron (4 nodes, 6 edges, 4 facets). 
+   5  Hexahedron (8 nodes, 12 edges, 6 facets). 
+   6  Prism (6 nodes, 9 edges, 5 facets). 
+   7  Pyramid (5 nodes, 8 edges, 5 facets). 
+   15 Point (1 node). 
+
+   The elm-region value is the number of the physical entity to which
+   the element belongs. 
+
+
+Parsed View Format
+==================
+
+   View "name" {
+     type of element (list of coordinates) {list of values} ;
+     ...
+   }	
+
+   12 base objects can be displayed:
+
+                       type of element   list of coordinates    list of values
+   --------------------------------------------------------------------------------
+   scalar point        SP                3                      1  * nb time steps
+   vector point        VP                3                      3  * nb time steps
+   tensor point        TP                3                      9  * nb time steps
+   scalar line         SL                6                      2  * nb time steps
+   vector line         VL                6                      6  * nb time steps
+   tensor line         TL                6                      18 * nb time steps
+   scalar triangle     ST                9                      3  * nb time steps
+   vector triangle     VT                9                      9  * nb time steps
+   tensor triangle     TT                9                      27 * nb time steps
+   scalar tetrahedron  SS                12                     4  * nb time steps
+   vector tetrahedron  VS                12                     12 * nb time steps
+   tensor tetrahedron  TS                12                     36 * nb time steps
+
+
+   The coordinates are given "by node", that is (x,y,z) for a point, (x1,y1,z1,x2,y2,z2)
+   for a line, (x1,y1,z1,x2,y2,z2,x3,y3,z3) for a triangle, ...
+ 
+   The values are given by timestep, by node and by component. That is, for a vector line,
+   {valxnode1time1,valynode1time1,valznode1time1, valxnode2time1,valynode2time1,valznode2time1,
+    valxnode1time2,valynode1time2,valznode1time2, valxnode2time2,valynode2time2,valznode2time2, ...}
+
+
+Ascii View Format
+=================
+
+
+Binary View Format
+==================
+
+    int one=1;	
+
+    fprintf(file, "$View /* %s */\n", name);
+    fprintf(file, "%s %g\n", name, version);
+    fprintf(file, "$EndView\n");
+    
+    fwrite(&One, sizeof(int), 1, PostStream);