diff --git a/cmake_modules/GenPkgConfig.cmake b/cmake_modules/GenPkgConfig.cmake
index 153627b49a1de4e92b8ca60d24ebc051857a97dd..98f1340840bb998c03a44f6be0d92b191a034cc5 100644
--- a/cmake_modules/GenPkgConfig.cmake
+++ b/cmake_modules/GenPkgConfig.cmake
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/compute/CMakeLists.txt b/compute/CMakeLists.txt
index efada065d0c7bde35a821c17744bc259aecdb754..e4ebc3691cf2e2642a2ed87e85dda0d2d2383f5a 100644
--- a/compute/CMakeLists.txt
+++ b/compute/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
@@ -59,7 +59,6 @@ set(CHAMELEON_CONTROL
     ../control/tile.c
     ../control/chameleon_f77.c
     ../control/chameleon_mf77.c
-    #    ../control/chameleonwinthread.c
     map.c
     pmap.c
    )
diff --git a/compute/pzbuild.c b/compute/pzbuild.c
index 417d429bd78d9864544e144eabc5e1e2c62c178d..b3ae556fa30b11c350b9792ef90a1a64254c00f5 100644
--- a/compute/pzbuild.c
+++ b/compute/pzbuild.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgebrd_ge2gb.c b/compute/pzgebrd_ge2gb.c
index bf2d24139246ea080825fc3ed55442d40504240d..04c6adf7e5518d48b1fbc93ed9378af2c8bfbb39 100644
--- a/compute/pzgebrd_ge2gb.c
+++ b/compute/pzgebrd_ge2gb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c
index 55e16627424850f10510d91a56296b0422bd6326..93cfdf6627d058224a6fd326550a8d2833e5c381 100644
--- a/compute/pzgelqf.c
+++ b/compute/pzgelqf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgemm.c b/compute/pzgemm.c
index 24cb787fc85697fa8b09c514f078b10785522173..b342ec2652a5af85ba9ec0993fed8af7ea2a5769 100644
--- a/compute/pzgemm.c
+++ b/compute/pzgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c
index 7c38e4773c99b8214d8b82776f63604061851890..5df72c8ca68a4f81a9c353600eb2edc7a1a63dae 100644
--- a/compute/pzgeqrf.c
+++ b/compute/pzgeqrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c
index 472e77e7e96654023aaba277cda5d30e28543feb..cab40dd421eff0d8e427f388afc494bdacb0536e 100644
--- a/compute/pzgeqrfrh.c
+++ b/compute/pzgeqrfrh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c
index 1053772a11cb20216bdd66897aba3006cbb93726..7781a8dc1f82b47ac8e75b07257464bc900c5101 100644
--- a/compute/pzgetrf_incpiv.c
+++ b/compute/pzgetrf_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c
index aef3d87b4ab3d80ad2ade2a7efd869172fa2d9f9..cfd279f43e13a412ad3d2d2287b34c587e58dc66 100644
--- a/compute/pzgetrf_nopiv.c
+++ b/compute/pzgetrf_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzhemm.c b/compute/pzhemm.c
index 418199cb9e0a2a0fecc939b7c5b507c626bb0b46..0f9614c97d40e605cf67d21297801bde2cc63331 100644
--- a/compute/pzhemm.c
+++ b/compute/pzhemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzher2k.c b/compute/pzher2k.c
index 3654a8b9efbb3f4af6982591228bdea14a64b178..ce5625577dbd4787bd6162f70bfa526047b74a13 100644
--- a/compute/pzher2k.c
+++ b/compute/pzher2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzherk.c b/compute/pzherk.c
index 8aa5a694bee275ab09a84244e7846b2f551a7110..b3728d65ee80bec8a97a7cfb783bd1ccbc9e6bc5 100644
--- a/compute/pzherk.c
+++ b/compute/pzherk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c
index 2ed482692e36ac69dec366958af4f0244c4755cb..999e1034d06904c0fad59f9f29f5056deb1165f0 100644
--- a/compute/pzhetrd_he2hb.c
+++ b/compute/pzhetrd_he2hb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlacpy.c b/compute/pzlacpy.c
index 29fe90bc5506e3c7c3e89be552d88b23fd3edbc3..b6e87b3d8e5ec5c15a71ab940d467dc7556f6291 100644
--- a/compute/pzlacpy.c
+++ b/compute/pzlacpy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlag2c.c b/compute/pzlag2c.c
index 194c50afa5be2549a3d64d6c096f5120d1f6b7cf..9f195234f8307c6ab5f206429533ee66b2ed6df8 100644
--- a/compute/pzlag2c.c
+++ b/compute/pzlag2c.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlange.c b/compute/pzlange.c
index 94200a379d9facdb2b13f1715512d4e640dc420b..b03d27f0c0b5b5b0f1356d455f0bc00a3bce7995 100644
--- a/compute/pzlange.c
+++ b/compute/pzlange.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlansy.c b/compute/pzlansy.c
index 1df96420f3ecf199123a4b54643145b5a314a408..c9cfc11ab3af2b7797ffc4447b243f2ba7af01e2 100644
--- a/compute/pzlansy.c
+++ b/compute/pzlansy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlaset.c b/compute/pzlaset.c
index f0a5f88a8d97f2b1f65a4a9d3e2c7976b4d34c2d..519457c3adbf513c458d2ac34c208a2e4374dcf8 100644
--- a/compute/pzlaset.c
+++ b/compute/pzlaset.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlaset2.c b/compute/pzlaset2.c
index 80a836a78fe61fe563241a429653ead9d2b09b6b..e921755b7a7bd8b0ba53ad768a497392b7a7d179 100644
--- a/compute/pzlaset2.c
+++ b/compute/pzlaset2.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzlauum.c b/compute/pzlauum.c
index 89ea4b72d7c2fa8ff1e0007bb06024e702164850..46b1015148e47e2115502f2b238fd344ce2134cc 100644
--- a/compute/pzlauum.c
+++ b/compute/pzlauum.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzplghe.c b/compute/pzplghe.c
index d569c1045c4073000d8470eadfa6461a96c89dad..f11a331cb2a30b2d6112619e09147e07a7ce4d7e 100644
--- a/compute/pzplghe.c
+++ b/compute/pzplghe.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c
index 3c249177693cc314dcfc109e1a5d9bef5613ac82..f2c4dde7c2cf584b776ddbd46355731b28413fbe 100644
--- a/compute/pzplgsy.c
+++ b/compute/pzplgsy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c
index 68f2fb72563c53fc64bec1e5e68bb7477222b307..9995c25b6244dca896adeb150027b8f8edb4e0b7 100644
--- a/compute/pzplrnt.c
+++ b/compute/pzplrnt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c
index 35a506b99e7bc59acdf3040b6e61606161da47ad..5de5889a79142776689b623c0bfe3b59373474b3 100644
--- a/compute/pzpotrf.c
+++ b/compute/pzpotrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzpotrimm.c b/compute/pzpotrimm.c
index 4b7861b7cc1c72cff8909c14921bed77427f13dc..62cc4ba288d0b67afad5d44b10cf1691e78370fd 100644
--- a/compute/pzpotrimm.c
+++ b/compute/pzpotrimm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzsymm.c b/compute/pzsymm.c
index c534665f5bb51acdbf6120fbc284a6cdb26fb3cb..3b6d3e530bfc53a0e9588fa9c0ce8e22745db6e2 100644
--- a/compute/pzsymm.c
+++ b/compute/pzsymm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzsyr2k.c b/compute/pzsyr2k.c
index 22a8ededb10bc382da57477b3dd439f6808f3b0a..a8d5f9e41b095cfc7d11f24a1f991a3c32359126 100644
--- a/compute/pzsyr2k.c
+++ b/compute/pzsyr2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzsyrk.c b/compute/pzsyrk.c
index 8dd954a3dbe983ea1a983de7b6f5235cf2837ae0..899eca248186106496c9f0d2b4af8c1365433920 100644
--- a/compute/pzsyrk.c
+++ b/compute/pzsyrk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzsytrf.c b/compute/pzsytrf.c
index 96456c11bc2995838bb825c68a68bb9304ce3b88..5946292bc3decd1ab373369380ec9ff432d56ba9 100644
--- a/compute/pzsytrf.c
+++ b/compute/pzsytrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztile2band.c b/compute/pztile2band.c
index 2dbe93eeaf18d061c08279a66a9831805931766b..1859a6c071fcb9bc8897904f580cd8274a951fe8 100644
--- a/compute/pztile2band.c
+++ b/compute/pztile2band.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztradd.c b/compute/pztradd.c
index cb5528562f5a13874d6aacc5457a95674a2695d4..62e59d99bef7cf79892cd72f1ffae5d1ae546334 100644
--- a/compute/pztradd.c
+++ b/compute/pztradd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztrmm.c b/compute/pztrmm.c
index 3f9e136d4b75b3c878fe35d98a92488956130214..c208bf60ebab1419f664d5680f91000a8d5ccc24 100644
--- a/compute/pztrmm.c
+++ b/compute/pztrmm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztrsm.c b/compute/pztrsm.c
index dccac48893fdc3273c124fcc78a31aab031c5e2d..ce87925c9e80e45bcc795100dca747705c3a18c7 100644
--- a/compute/pztrsm.c
+++ b/compute/pztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztrsmpl.c b/compute/pztrsmpl.c
index c2a7601d6f6677c7082b66432f813a14dc5fb26a..a9e96ff537925b37c6bab65785fb2e7179a30ef1 100644
--- a/compute/pztrsmpl.c
+++ b/compute/pztrsmpl.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pztrtri.c b/compute/pztrtri.c
index 062808bbcdb8d79275334127b3b02ee16fb63694..3d48095c075b66ef3fba4bec866ab97834bf611d 100644
--- a/compute/pztrtri.c
+++ b/compute/pztrtri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunglq.c b/compute/pzunglq.c
index 17dc51b0a719b8bf628743b8f09d978e05a800c6..a757d48c2ded8452d0d1878a846b23ac11e7910c 100644
--- a/compute/pzunglq.c
+++ b/compute/pzunglq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c
index 7e8d35051d8514ff79d68cac5e6c4d03ef429d66..4a82007a5e74aa6f75bc2168af32645c8e3a8081 100644
--- a/compute/pzunglq_param.c
+++ b/compute/pzunglq_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c
index e1d94006617ca35a9372701fd52151e4d9751617..4cde3dc1435ac25cf2cc754840b0f226091a7789 100644
--- a/compute/pzunglqrh.c
+++ b/compute/pzunglqrh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzungqr.c b/compute/pzungqr.c
index b4aca1d4a2c2f58cfa3fd4416fc3cfee2f564a72..26fae8b61e8f6da1ec89e3692ee9c59d7c01ead5 100644
--- a/compute/pzungqr.c
+++ b/compute/pzungqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c
index beaa6a8c626b3637090bef97fbebdf0906d29910..0bf5b2826b8f29746d414010695fb9165ef631c2 100644
--- a/compute/pzungqr_param.c
+++ b/compute/pzungqr_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c
index 40c182370a4890eac0a5ab12efd79e9fe014460f..78f21852549a040eacf4260202668a57db2ab490 100644
--- a/compute/pzungqrrh.c
+++ b/compute/pzungqrrh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c
index 74b583011aba123c2e17e809844387f34b982cfc..90bd59861e024fb5973aca50773c7585bcbb62c5 100644
--- a/compute/pzunmlq.c
+++ b/compute/pzunmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c
index d818c192cd724e8e06d39e518e5bffcefe4433f0..82cbe0c0466f6c5055f9736aeb684f48b6887026 100644
--- a/compute/pzunmlq_param.c
+++ b/compute/pzunmlq_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c
index ad8ebfc5cec51012ea4cc7260464627dd7ee8721..19f411ac401e9cecbcf16db366ea5a36863ad888 100644
--- a/compute/pzunmlqrh.c
+++ b/compute/pzunmlqrh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c
index a06e0e13e41eefcd571719845b1369be3d375762..9c36a463f1544d0e595d0424a3ad93324c178667 100644
--- a/compute/pzunmqr.c
+++ b/compute/pzunmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c
index 584829e255eada9a11e8d3d8059850c5c6849d06..27e8cb1927d0e79d5e4f763c76e22b7baef67d69 100644
--- a/compute/pzunmqr_param.c
+++ b/compute/pzunmqr_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c
index 767630ae6349375da2695f42333c0a2e2559dee5..ab51157ba6dcb61b30bf23fe750d6877fb7a837a 100644
--- a/compute/pzunmqrrh.c
+++ b/compute/pzunmqrrh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zbuild.c b/compute/zbuild.c
index ae792fe48176797bfe2aa99f162b96b3da6663ba..22f2676df7c3ec145eb454e4b44fabe07c86e1db 100644
--- a/compute/zbuild.c
+++ b/compute/zbuild.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  * @brief Chameleon zbuild wrappers
diff --git a/compute/zgeadd.c b/compute/zgeadd.c
index 65dec44d82efbe8f4d9c411c8aeceae41fc27cd5..cc14238e9b9b5868a8efe5d6adf297ca6ce21176 100644
--- a/compute/zgeadd.c
+++ b/compute/zgeadd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgelqf.c b/compute/zgelqf.c
index f64b4ee0ca8a4d0d0cad5f32fb527a48420d83f2..388fb71483bda011dd0aadfc102c29b828b739c1 100644
--- a/compute/zgelqf.c
+++ b/compute/zgelqf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index 031f2f921c1e52bda0e15b664a37df4f57771180..2330cad7862ff14a5d611656fa5e01af978afcf1 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index d2795a97e71d2e471059186491f4ff6493505f10..93db15cf40479feee90c75b7ffc41c2cc1d75636 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -1,10 +1,10 @@
 /**
  *
- * @File zgelqs.c
+ * @file zgelqs.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index b24d70740a12989054a4ccb1f61f16a44518b975..11f08cc57362e09583cd5ea264a9e9e113777810 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgels.c b/compute/zgels.c
index bf620d79d333bd0ea5a66c68f74ea5be6f6df0d4..7118f3e58cfbb6e52eefba84c762adad905feb03 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index 9ee807f0c47f93fa6667a6fd94d1884acfaad53b..b6beda80844970c34823516ccf8ddfe68c26cb44 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgemm.c b/compute/zgemm.c
index 9f13d6a44ace996bf409a5710e3ce768f79dcaf1..8d7cfba196d5e40338bc0760d5e1167cbaaa480e 100644
--- a/compute/zgemm.c
+++ b/compute/zgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c
index ed7f122f66f88e1471059c890cf6878b2057e877..8e0d642ed787504dc3e22d8cbdf38399d86bc931 100644
--- a/compute/zgeqrf.c
+++ b/compute/zgeqrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c
index 5915c3c9fbea12eef035d256e04c7921efa72675..20a24cfe94aa1ec50b2054c6ff4acd054a01dc29 100644
--- a/compute/zgeqrf_param.c
+++ b/compute/zgeqrf_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index bfbf1355356484e7f23589d6c47a9651ec67d0ad..f38b05dbc5e9425d4271fe1a2d66d5dcbb439db8 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index a26d4d55086828f22e73c5e52825994f576b583f..79a6280f63f7b13e8cfd44377d9461cea19e741b 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c
index 7494b34cf20778c0ab2bec59cb3f5a45252d7f73..0e0d330f86ee53bf2bbf5a6ceff678c9b2ab6985 100644
--- a/compute/zgesv_incpiv.c
+++ b/compute/zgesv_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c
index 78d7706561d93c0ce828f7909336ff45d845afc9..7dbf73caabdf784a30cdca8628235525ff7a4b5a 100644
--- a/compute/zgesv_nopiv.c
+++ b/compute/zgesv_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index 0fef6eb2b48151bbe0788235e3eac2b7e51abae9..05f72f68c58839e99ae0fe2581602d82473c2771 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c
index 0a68aa4028bf714c0e1feecafc8f05702e90a5c3..92f3a6ddc2509089ff5cde9b7aebd1a135662090 100644
--- a/compute/zgetrf_incpiv.c
+++ b/compute/zgetrf_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c
index bcb7d27cc525d1bb94dc4a4a1733f2bc2fd4a25a..f99d3d9e14cb1fbc75cd51bc579011ea0516ebeb 100644
--- a/compute/zgetrf_nopiv.c
+++ b/compute/zgetrf_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c
index b9abc9cdff7d4770347479aef828228113269fb1..f0cf32cb5195efd4b9409ff39dc9d7953c6ea7c1 100644
--- a/compute/zgetrs_incpiv.c
+++ b/compute/zgetrs_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c
index f38fb1025e806f920c9f658191a7a15f758f218f..fb8ac0722c3e2026689d09cc70abb1cdc4488eeb 100644
--- a/compute/zgetrs_nopiv.c
+++ b/compute/zgetrs_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zheevd.c b/compute/zheevd.c
index a51f63fced4e7ff1003765fa575ffa7a657a8c34..a640fe54f9634b1da661a313f0fee0f3b8520eea 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zhemm.c b/compute/zhemm.c
index 55c1332f44df4076960b02256f755bd3b1ce2d5a..fd968b42d8cb8069db027fb448e6ab938fcad41e 100644
--- a/compute/zhemm.c
+++ b/compute/zhemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zher2k.c b/compute/zher2k.c
index 6baf15273ca7afebf430fa66d3c519bf775bb785..216de17a5501bcedbc327c89f45dc46eee803c3c 100644
--- a/compute/zher2k.c
+++ b/compute/zher2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zherk.c b/compute/zherk.c
index c6ab8ee0f7ef400f9341813b2456bbda04b76e21..13e59ce4ca1d7b8e0d1dccfd2eb2a93eeb0598d8 100644
--- a/compute/zherk.c
+++ b/compute/zherk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index 96ff06b673b2d35b1ad01cf9a96d91e9c0919506..39deedc70ac1cd6dd467af5499ca421104e521d2 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlacpy.c b/compute/zlacpy.c
index b9feabf067f52de7b3361a4e527c4a21ee2d9538..7bd1696375142e99fbc9e0ab282fddcba63b39db 100644
--- a/compute/zlacpy.c
+++ b/compute/zlacpy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlange.c b/compute/zlange.c
index e807b403f7d8f544657d3524c16337107ef7062c..cb8ff14bf9b74a53ee17bb54d386302b125aeeb6 100644
--- a/compute/zlange.c
+++ b/compute/zlange.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlanhe.c b/compute/zlanhe.c
index 4eff40c2907f80ab7278519a532c5394c317f68e..e2dad154ce1362a68acc633a3f8d9ae682748855 100644
--- a/compute/zlanhe.c
+++ b/compute/zlanhe.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlansy.c b/compute/zlansy.c
index 53b4e088d417f345a089c35b3904cbc86e50dd65..dc9b1236e34d55b0b3ccae8ea3f7cbf19ec2e9c8 100644
--- a/compute/zlansy.c
+++ b/compute/zlansy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlantr.c b/compute/zlantr.c
index 82a372e48dab76e541522f7b5607e487bb79f718..6721a9b9f722346c8d137349360d4f76fb3a141c 100644
--- a/compute/zlantr.c
+++ b/compute/zlantr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlaset.c b/compute/zlaset.c
index 3a489215d37899b8bd8c295cc114fa3ec0b81bfb..2b03272b7499713ffa3e4a5bfb39f825fb818387 100644
--- a/compute/zlaset.c
+++ b/compute/zlaset.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zlauum.c b/compute/zlauum.c
index 2c239471537046fa5f2514d7132ece17c7cc595e..9907d0b08e91b7e53bbc51dcd98b0e7b1ec4f042 100644
--- a/compute/zlauum.c
+++ b/compute/zlauum.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zplghe.c b/compute/zplghe.c
index 95e0b8359eb37cdcfb994b37fa1ad785b68c0d98..3fd07d51100f262c74bf4f886a5015e0ce41ab0b 100644
--- a/compute/zplghe.c
+++ b/compute/zplghe.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zplgsy.c b/compute/zplgsy.c
index 4c5d38d5f40367b8bcfe08a628a1e609aaef2c7e..809e2a224489c7b3c7f613eb769e310f03b6682f 100644
--- a/compute/zplgsy.c
+++ b/compute/zplgsy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zplrnt.c b/compute/zplrnt.c
index 43e47a7a20bbee03bd942f7472699fe56bfed6f5..3e15ea36a04665199694ec993ddcb95feab5003c 100644
--- a/compute/zplrnt.c
+++ b/compute/zplrnt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zposv.c b/compute/zposv.c
index e09fad9fb03cc96e9679768d11d8d7825cb9b3d7..9defa1edcd3ebb700034611bb72ca03edb2f3973 100644
--- a/compute/zposv.c
+++ b/compute/zposv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zpotrf.c b/compute/zpotrf.c
index 7ce17be82fee5d44d9e8a2495fe4b86d23f3f095..bb84853375351a679a23519f2d6624f9fb434139 100644
--- a/compute/zpotrf.c
+++ b/compute/zpotrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zpotri.c b/compute/zpotri.c
index 11c02ea4ee9a5d4c482f0b8c702c37ffe698dcce..d903bda64a2f1188ea6e83f8a68b90676e6db7e8 100644
--- a/compute/zpotri.c
+++ b/compute/zpotri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c
index db73bdf2dc1994462996578097c39a44cc102c4e..0f3d8146ebbd28882bfe7722aee8c5b80bd05bb3 100644
--- a/compute/zpotrimm.c
+++ b/compute/zpotrimm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zpotrs.c b/compute/zpotrs.c
index 0db1d651eff56c38bf1bc0436abd70df9806d89e..3e242d114c0701a73d321e21da6d4fd20d0fda8e 100644
--- a/compute/zpotrs.c
+++ b/compute/zpotrs.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsymm.c b/compute/zsymm.c
index 6a694d61afde0cd169682b9023567f7431f2a3f0..4a64f907ed3df914ec54976ad7c5ed418e034fb3 100644
--- a/compute/zsymm.c
+++ b/compute/zsymm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c
index 7b1daed5e4aa944a27a01eac51e08823c37d8996..9ef35214280cefa021a263699a7a851272a7f8be 100644
--- a/compute/zsyr2k.c
+++ b/compute/zsyr2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsyrk.c b/compute/zsyrk.c
index 403f8acd7471a06d83217af71458f7af205ae275..e1c6db98671b0b7919c34cea3bddb6c8a088bb38 100644
--- a/compute/zsyrk.c
+++ b/compute/zsyrk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsysv.c b/compute/zsysv.c
index f82d714e3c67a20c9a7ab75c9cdaf7592f0fdf8a..5b40d66e5f272b524dd80567afda064408b51fe6 100644
--- a/compute/zsysv.c
+++ b/compute/zsysv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsytrf.c b/compute/zsytrf.c
index 95fb044b2e6aa44364b67538bcaaa5d96f11252e..508f93a9aae8998f848c233aa945020f3aa9dd27 100644
--- a/compute/zsytrf.c
+++ b/compute/zsytrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zsytrs.c b/compute/zsytrs.c
index 26ad14b348f3d5bc7f1105598ef08468c70506bd..90256661b285ce9c880934f41d71fd02afbb4968 100644
--- a/compute/zsytrs.c
+++ b/compute/zsytrs.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztile.c b/compute/ztile.c
index 1a09b2bcaa0682547d79f8896dd71ee776f310bb..8214c4c6141373c443c0a25d979fca976084752c 100644
--- a/compute/ztile.c
+++ b/compute/ztile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztradd.c b/compute/ztradd.c
index a08ef1e3df91069f98f0e0338307d8939d98166a..f5f2d82172781483fb423282e6974dfb7611b25a 100644
--- a/compute/ztradd.c
+++ b/compute/ztradd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztrmm.c b/compute/ztrmm.c
index 0c800da6a93cb86683f4a7ff879cff2509f44671..96ef0f7e3bcc393d796e0dc7bbe852b3365df85a 100644
--- a/compute/ztrmm.c
+++ b/compute/ztrmm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztrsm.c b/compute/ztrsm.c
index 770713b01fac00b923891c07b76cb0931be98012..abcdf8e9eb89aeeef8270ed779bdbdb85d311585 100644
--- a/compute/ztrsm.c
+++ b/compute/ztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c
index 50d2c556dec2c6294befcf913fb35016cbcc010c..dd7859cf82554b3a9a8cf508f2dda6aecf076ef1 100644
--- a/compute/ztrsmpl.c
+++ b/compute/ztrsmpl.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/ztrtri.c b/compute/ztrtri.c
index 9cc1dff61b851fef00101eb18ce1e1eb1cff1afe..cb19dffa9c01b4fd3fb2297a4f03dff0aaaa2a39 100644
--- a/compute/ztrtri.c
+++ b/compute/ztrtri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunglq.c b/compute/zunglq.c
index 6b851c40fe07fc56cdf74539d0a225e71a202ff1..1851f381a1ac51b1522a6c5ea567caeab6a1add5 100644
--- a/compute/zunglq.c
+++ b/compute/zunglq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c
index 5b2856c241681e86448cdb8093a692546065b4b3..a0571b4fa48ce53fccf6f1d6313ebd3b44873d1e 100644
--- a/compute/zunglq_param.c
+++ b/compute/zunglq_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zungqr.c b/compute/zungqr.c
index afbb19dbc81e571ab421ca88800f3ae434b7f5a0..4f15a5a1695b97adf7f1fde0a34aef0750af10b0 100644
--- a/compute/zungqr.c
+++ b/compute/zungqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c
index fa2bcc46db1bca49c72defe44101f332a386b9a4..faf5f6db9633b0d5065c6e29f4bcc047f55f3fe7 100644
--- a/compute/zungqr_param.c
+++ b/compute/zungqr_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunmlq.c b/compute/zunmlq.c
index 50763f9f572030ed801f3b05f78ae4307900b638..896c5d47d34c32cf494e9b84a409eca7b155933b 100644
--- a/compute/zunmlq.c
+++ b/compute/zunmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c
index 623a54ee9f5f8e49a24514ec0857c1ec987aedb1..6ca36dff3e1872eca47a27111914dcbe465f77fa 100644
--- a/compute/zunmlq_param.c
+++ b/compute/zunmlq_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunmqr.c b/compute/zunmqr.c
index 5f20272584e13f37031aad737186b5747371969f..0ddbaa8537774f8640e46dab2b3b8badad3fbb0a 100644
--- a/compute/zunmqr.c
+++ b/compute/zunmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c
index 78d59cc037adf0fcb826240bfa2ef53faf8fc82f..a8e6cc5920f972eb3d12a8e5804b9a521606e23b 100644
--- a/compute/zunmqr_param.c
+++ b/compute/zunmqr_param.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/CMakeLists.txt b/control/CMakeLists.txt
index 567ffa31af192184151421627bbbcc2e098de47a..afd170cdc7ec4895f9ac80ab949326a551ef8928 100644
--- a/control/CMakeLists.txt
+++ b/control/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
@@ -48,7 +48,6 @@ set(CHAMELEON_HDRS
     gkkleader.h
     global.h
     chameleon_f77.h
-    chameleonwinthread.h
     workspace.h
     )
 
diff --git a/control/async.c b/control/async.c
index 927f03ad458daef9a7c3106bdba65480fa01da04..5e65c2b092ef64edb8819099cd261986a09a7fd6 100644
--- a/control/async.c
+++ b/control/async.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/async.h b/control/async.h
index f35e5f7c9f0af3fe1ecaf23ec58b9648d0bf586b..4b866c2e8fbef65b6efb373fdbd568f262f88dcc 100644
--- a/control/async.h
+++ b/control/async.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2010-11-15
  *
  */
-#ifndef _CHAMELEON_ASYNC_H_
-#define _CHAMELEON_ASYNC_H_
+#ifndef _chameleon_async_h_
+#define _chameleon_async_h_
 
 #include "chameleon/struct.h"
 
@@ -38,4 +38,4 @@ int chameleon_sequence_wait    (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t *s
 }
 #endif
 
-#endif
+#endif /* _chameleon_async_h_ */
diff --git a/control/auxiliary.c b/control/auxiliary.c
index 55e05b2650e63f335dec9fde7e6ac838f9d3f596..032dc06846ead2ffbbc4139d50470ba3536c27ba 100644
--- a/control/auxiliary.c
+++ b/control/auxiliary.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/auxiliary.h b/control/auxiliary.h
index 28a585857a211b5a798132a80e91e8d84fc424b0..057a34688c2ec5546f75a506fe5872ee261bdae3 100644
--- a/control/auxiliary.h
+++ b/control/auxiliary.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -19,8 +19,8 @@
  * @date 2010-11-15
  *
  */
-#ifndef _CHAMELEON_AUXILIARY_H_
-#define _CHAMELEON_AUXILIARY_H_
+#ifndef _chameleon_auxiliary_h_
+#define _chameleon_auxiliary_h_
 
 #include "chameleon/struct.h"
 #include "chameleon/tasks.h"
@@ -49,4 +49,4 @@ int  CHAMELEON_My_Mpi_Rank  (void);
 }
 #endif
 
-#endif
+#endif /* _chameleon_auxiliary_h_ */
diff --git a/control/chameleon_f77.c b/control/chameleon_f77.c
index e5c5c96b163b4ec531e7bf547268a3bbe6d8b4b8..961eb3b29fd579baf98e42d68583d40f56e41017 100644
--- a/control/chameleon_f77.c
+++ b/control/chameleon_f77.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/chameleon_f77.h b/control/chameleon_f77.h
index df10423275ac1722744f1b9f019de42341167a4c..2e8b02a572b94ef707319a10b19c0de976f509b2 100644
--- a/control/chameleon_f77.h
+++ b/control/chameleon_f77.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2017-05-03
  *
  */
-#ifndef _CHAMELEON_F77_H_
-#define _CHAMELEON_F77_H_
+#ifndef _chameleon_f77_h_
+#define _chameleon_f77_h_
 
 #include "chameleon/mangling.h"
 
@@ -46,4 +46,4 @@
 #define CHAMELEON_LAPACK_TO_TILE CHAMELEON_GLOBAL(chameleon_lapack_to_tile, CHAMELEON_LAPACK_TO_TILE)
 #define CHAMELEON_TILE_TO_LAPACK CHAMELEON_GLOBAL(chameleon_tile_to_lapack, CHAMELEON_TILE_TO_LAPACK)
 
-#endif
+#endif /* _chameleon_f77_h_ */
diff --git a/control/chameleon_f90.f90 b/control/chameleon_f90.f90
index 8b63fc04dac5606a5371fd08cf644f247fa356a3..cc4c76cab1db06e5f77730f83713fd33d5ffffdf 100644
--- a/control/chameleon_f90.f90
+++ b/control/chameleon_f90.f90
@@ -1,5 +1,18 @@
 !!!
 !
+! @file chameleon_f90.f90
+!
+!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
+!  CHAMELEON is a software package provided by Univ. of Tennessee,
+!  Univ. of California Berkeley and Univ. of Colorado Denver
+!
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Numerical Algorithm Group
+! @date 2011-09-15
+!
 ! -- Inria
 ! -- (C) Copyright 2012
 !
@@ -34,7 +47,6 @@
 ! knowledge of the CeCILL-B license and that you accept its terms.
 !
 !!!
-
 !
 ! Copyright © 2011 The Numerical Algorithms Group Ltd. All rights reserved.
 !
@@ -63,17 +75,6 @@
 ! negligence or otherwise) arising in any way out of the use of this
 ! software, even if advised of the possibility of such damage.
 !
-!
-!
-!  CHAMELEON fortran 90 interface
-!  CHAMELEON is a software package provided by Univ. of Tennessee,
-!  Univ. of California Berkeley and Univ. of Colorado Denver
-!
-! @version 1.0.0
-! @author Numerical Algorithm Group
-! @date 2011-09-15
-! @precisions normal z -> c d s
-!
 module chameleon
 
       use chameleon_s
diff --git a/control/chameleon_mf77.c b/control/chameleon_mf77.c
index d1dd61cde83fb10f14c1f8cd0e568000e253c616..ccff4701b500e832f5de7b570c131c3d04d94f0c 100644
--- a/control/chameleon_mf77.c
+++ b/control/chameleon_mf77.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/chameleon_zcf90.F90 b/control/chameleon_zcf90.F90
index dc36329f3cacbb32ab07719f0e52a0463bb7f3fb..7ae88ff1592e0ff84d155788b917191b64c4c620 100644
--- a/control/chameleon_zcf90.F90
+++ b/control/chameleon_zcf90.F90
@@ -1,5 +1,22 @@
 !!!
 !
+! @file chameleon_zcf90.F90
+!
+!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
+!  CHAMELEON is a software package provided by Univ. of Tennessee,
+!  Univ. of California Berkeley and Univ. of Colorado Denver
+!
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Numerical Algorithm Group
+! @author Mathieu Faverge
+! @author Emmanuel Agullo
+! @author Cedric Castagnede
+! @date 2011-09-15
+! @precisions mixed zc -> ds
+!
 ! -- Inria
 ! -- (C) Copyright 2012
 !
@@ -64,19 +81,6 @@
 !     software, even if advised of the possibility of such damage.
 !
 !
-!
-!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
-!  CHAMELEON is a software package provided by Univ. of Tennessee,
-!  Univ. of California Berkeley and Univ. of Colorado Denver
-!
-! @version 1.0.0
-! @author Numerical Algorithms Group
-! @author Mathieu Faverge
-! @author Emmanuel Agullo
-! @author Cedric Castagnede
-! @date 2011-12-15
-! @precisions mixed zc -> ds
-!
 module chameleon_zc
 
       interface
diff --git a/control/chameleon_zf77.c b/control/chameleon_zf77.c
index 9464c0cd12f0925977329d33ef166a197c2c4763..1b6366307054caaf0430092e2d4ed425a7f4c37e 100644
--- a/control/chameleon_zf77.c
+++ b/control/chameleon_zf77.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/chameleon_zf90.F90 b/control/chameleon_zf90.F90
index 21bfb621474ab8ed76a00cba539f8056c506c2b6..a02c51d766f5195064c9182121f1225524f25b84 100644
--- a/control/chameleon_zf90.F90
+++ b/control/chameleon_zf90.F90
@@ -1,24 +1,41 @@
 !!!
 !
+! @file chameleon_zf90.F90
+!
+!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
+!  CHAMELEON is a software package provided by Univ. of Tennessee,
+!  Univ. of California Berkeley and Univ. of Colorado Denver
+!
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Numerical Algorithm Group
+! @author Mathieu Faverge
+! @author Emmanuel Agullo
+! @author Cedric Castagnede
+! @date 2011-09-15
+! @precisions normal z -> c d s
+!
 ! -- Inria
 ! -- (C) Copyright 2012
 !
 ! This software is a computer program whose purpose is to process
 ! Matrices Over Runtime Systems @ Exascale (MORSE). More information
 ! can be found on the following website: http://www.inria.fr/en/teams/morse.
-! 
+!
 ! This software is governed by the CeCILL-B license under French law and
-! abiding by the rules of distribution of free software.  You can  use, 
+! abiding by the rules of distribution of free software.  You can  use,
 ! modify and/ or redistribute the software under the terms of the CeCILL-B
 ! license as circulated by CEA, CNRS and INRIA at the following URL
-! "http://www.cecill.info". 
-! 
+! "http://www.cecill.info".
+!
 ! As a counterpart to the access to the source code and  rights to copy,
 ! modify and redistribute granted by the license, users are provided only
 ! with a limited warranty  and the software's author,  the holder of the
 ! economic rights,  and the successive licensors  have only  limited
-! liability. 
-! 
+! liability.
+!
 ! In this respect, the user's attention is drawn to the risks associated
 ! with loading,  using,  modifying and/or developing or reproducing the
 ! software by the user in light of its specific status of free software,
@@ -26,18 +43,17 @@
 ! therefore means  that it is reserved for developers  and  experienced
 ! professionals having in-depth computer knowledge. Users are therefore
 ! encouraged to load and test the software's suitability as regards their
-! requirements in conditions enabling the security of their systems and/or 
-! data to be ensured and,  more generally, to use and operate it in the 
-! same conditions as regards security. 
-! 
+! requirements in conditions enabling the security of their systems and/or
+! data to be ensured and,  more generally, to use and operate it in the
+! same conditions as regards security.
+!
 ! The fact that you are presently reading this means that you have had
 ! knowledge of the CeCILL-B license and that you accept its terms.
 !
 !!!
-
 !
 !     Copyright © 2011 The Numerical Algorithms Group Ltd. All rights reserved.
-!   
+!
 !     Redistribution and use in source and binary forms, with or without
 !     modification, are permitted provided that the following conditions are
 !     met:
@@ -50,7 +66,7 @@
 !     - Neither the name of the copyright holders nor the names of its
 !       contributors may be used to endorse or promote products derived from
 !       this software without specific prior written permission.
-!     
+!
 !     This software is provided by the copyright holders and contributors "as
 !     is" and any express or implied warranties, including, but not limited
 !     to, the implied warranties of merchantability and fitness for a
@@ -64,5418 +80,5405 @@
 !     software, even if advised of the possibility of such damage.
 !
 !
-!
-!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
-!  CHAMELEON is a software package provided by Univ. of Tennessee,
-!  Univ. of California Berkeley and Univ. of Colorado Denver
-!
-! @version 1.0.0
-! @author Numerical Algorithms Group
-! @author Mathieu Faverge
-! @author Emmanuel Agullo
-! @author Cedric Castagnede
-! @date 2011-12-15
-! @precisions normal z -> c d s
-!
 #define PRECISION_z
 
 module chameleon_z
-    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-    !  FORTRAN API - math functions (simple interface)
-    !
-      interface
-         function CHAMELEON_zLapack_to_Tile_c(Af77,LDA,A) &
+  !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  !  FORTRAN API - math functions (simple interface)
+  !
+  interface
+     function CHAMELEON_zLapack_to_Tile_c(Af77,LDA,A) &
           & bind(c, name='CHAMELEON_zLapack_to_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zLapack_to_Tile_c
-            type(c_ptr), value :: Af77
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: A
-          end function CHAMELEON_zLapack_to_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zTile_to_Lapack_c(A,Af77,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zLapack_to_Tile_c
+       type(c_ptr), value :: Af77
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: A
+     end function CHAMELEON_zLapack_to_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zTile_to_Lapack_c(A,Af77,LDA) &
           & bind(c, name='CHAMELEON_zTile_to_Lapack')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zTile_to_Lapack_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: Af77
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zTile_to_Lapack_c
-      end interface
-
-      interface
-         function CHAMELEON_zgebrd_c(M,N,A,LDA,D,E,descT) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zTile_to_Lapack_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: Af77
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zTile_to_Lapack_c
+  end interface
+
+  interface
+     function CHAMELEON_zgebrd_c(M,N,A,LDA,D,E,descT) &
           & bind(c, name='CHAMELEON_zgebrd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgebrd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: descT
-          end function CHAMELEON_zgebrd_c
-      end interface
-
-      interface
-         function CHAMELEON_zgecfi_c(m,n,A,fin,imb,inb,fout,omb,onb) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgebrd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: descT
+     end function CHAMELEON_zgebrd_c
+  end interface
+
+  interface
+     function CHAMELEON_zgecfi_c(m,n,A,fin,imb,inb,fout,omb,onb) &
           & bind(c, name='CHAMELEON_zgecfi')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgecfi_c
-            integer(kind=c_int), value :: m
-            integer(kind=c_int), value :: n
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: fin
-            integer(kind=c_int), value :: imb
-            integer(kind=c_int), value :: inb
-            integer(kind=c_int), value :: fout
-            integer(kind=c_int), value :: omb
-            integer(kind=c_int), value :: onb
-          end function CHAMELEON_zgecfi_c
-      end interface
-
-      interface
-         function CHAMELEON_zgecfi_Async_c(m,n,A,f_in,imb,inb,f_out,omb,onb,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgecfi_c
+       integer(kind=c_int), value :: m
+       integer(kind=c_int), value :: n
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: fin
+       integer(kind=c_int), value :: imb
+       integer(kind=c_int), value :: inb
+       integer(kind=c_int), value :: fout
+       integer(kind=c_int), value :: omb
+       integer(kind=c_int), value :: onb
+     end function CHAMELEON_zgecfi_c
+  end interface
+
+  interface
+     function CHAMELEON_zgecfi_Async_c(m,n,A,f_in,imb,inb,f_out,omb,onb,sequence,request) &
           & bind(c, name='CHAMELEON_zgecfi_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgecfi_Async_c
-            integer(kind=c_int), value :: m
-            integer(kind=c_int), value :: n
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: f_in
-            integer(kind=c_int), value :: imb
-            integer(kind=c_int), value :: inb
-            integer(kind=c_int), value :: f_out
-            integer(kind=c_int), value :: omb
-            integer(kind=c_int), value :: onb
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgecfi_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqf_c(M,N,A,LDA,descT) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgecfi_Async_c
+       integer(kind=c_int), value :: m
+       integer(kind=c_int), value :: n
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: f_in
+       integer(kind=c_int), value :: imb
+       integer(kind=c_int), value :: inb
+       integer(kind=c_int), value :: f_out
+       integer(kind=c_int), value :: omb
+       integer(kind=c_int), value :: onb
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgecfi_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqf_c(M,N,A,LDA,descT) &
           & bind(c, name='CHAMELEON_zgelqf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqf_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-          end function CHAMELEON_zgelqf_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqs_c(M,N,NRHS,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqf_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+     end function CHAMELEON_zgelqf_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqs_c(M,N,NRHS,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zgelqs')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqs_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgelqs_c
-      end interface
-
-      interface
-         function CHAMELEON_zgels_c(trans,M,N,NRHS,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqs_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgelqs_c
+  end interface
+
+  interface
+     function CHAMELEON_zgels_c(trans,M,N,NRHS,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zgels')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgels_c
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgels_c
-      end interface
-
-      interface
-         function CHAMELEON_zgemm_c(transA,transB,M,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgels_c
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgels_c
+  end interface
+
+  interface
+     function CHAMELEON_zgemm_c(transA,transB,M,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zgemm')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgemm_c
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: transB
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zgemm_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrf_c(M,N,A,LDA,descT) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgemm_c
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: transB
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zgemm_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrf_c(M,N,A,LDA,descT) &
           & bind(c, name='CHAMELEON_zgeqrf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrf_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-          end function CHAMELEON_zgeqrf_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrs_c(M,N,NRHS,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrf_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+     end function CHAMELEON_zgeqrf_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrs_c(M,N,NRHS,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zgeqrs')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrs_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgeqrs_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_c(N,NRHS,A,LDA,IPIV,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrs_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgeqrs_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_c(N,NRHS,A,LDA,IPIV,B,LDB) &
           & bind(c, name='CHAMELEON_zgesv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_c
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgesv_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_incpiv_c(N,NRHS,A,LDA,descL,IPIV,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_c
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgesv_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_incpiv_c(N,NRHS,A,LDA,descL,IPIV,B,LDB) &
           & bind(c, name='CHAMELEON_zgesv_incpiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_c
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descL
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgesv_incpiv_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesvd_c(jobu,jobvt,M,N,A,LDA,S,U,LDU,VT,LDVT,descT) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_c
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descL
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgesv_incpiv_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesvd_c(jobu,jobvt,M,N,A,LDA,S,U,LDU,VT,LDVT,descT) &
           & bind(c, name='CHAMELEON_zgesvd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesvd_c
-            integer(kind=c_int), value :: jobu
-            integer(kind=c_int), value :: jobvt
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: S
-            type(c_ptr), value :: U
-            integer(kind=c_int), value :: LDU
-            type(c_ptr), value :: VT
-            integer(kind=c_int), value :: LDVT
-            type(c_ptr), value :: descT
-          end function CHAMELEON_zgesvd_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetmi_c(m,n,A,fin,mb,nb) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesvd_c
+       integer(kind=c_int), value :: jobu
+       integer(kind=c_int), value :: jobvt
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: S
+       type(c_ptr), value :: U
+       integer(kind=c_int), value :: LDU
+       type(c_ptr), value :: VT
+       integer(kind=c_int), value :: LDVT
+       type(c_ptr), value :: descT
+     end function CHAMELEON_zgesvd_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetmi_c(m,n,A,fin,mb,nb) &
           & bind(c, name='CHAMELEON_zgetmi')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetmi_c
-            integer(kind=c_int), value :: m
-            integer(kind=c_int), value :: n
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: fin
-            integer(kind=c_int), value :: mb
-            integer(kind=c_int), value :: nb
-          end function CHAMELEON_zgetmi_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetmi_Async_c(m,n,A,f_in,mb,inb,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetmi_c
+       integer(kind=c_int), value :: m
+       integer(kind=c_int), value :: n
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: fin
+       integer(kind=c_int), value :: mb
+       integer(kind=c_int), value :: nb
+     end function CHAMELEON_zgetmi_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetmi_Async_c(m,n,A,f_in,mb,inb,sequence,request) &
           & bind(c, name='CHAMELEON_zgetmi_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetmi_Async_c
-            integer(kind=c_int), value :: m
-            integer(kind=c_int), value :: n
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: f_in
-            integer(kind=c_int), value :: mb
-            integer(kind=c_int), value :: inb
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetmi_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_c(M,N,A,LDA,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetmi_Async_c
+       integer(kind=c_int), value :: m
+       integer(kind=c_int), value :: n
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: f_in
+       integer(kind=c_int), value :: mb
+       integer(kind=c_int), value :: inb
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetmi_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_c(M,N,A,LDA,IPIV) &
           & bind(c, name='CHAMELEON_zgetrf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetrf_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_incpiv_c(M,N,A,LDA,descL,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetrf_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_incpiv_c(M,N,A,LDA,descL,IPIV) &
           & bind(c, name='CHAMELEON_zgetrf_incpiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descL
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetrf_incpiv_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_nopiv_c(M,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descL
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetrf_incpiv_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_nopiv_c(M,N,A,LDA) &
           & bind(c, name='CHAMELEON_zgetrf_nopiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zgetrf_nopiv_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetri_c(N,A,LDA,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zgetrf_nopiv_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetri_c(N,A,LDA,IPIV) &
           & bind(c, name='CHAMELEON_zgetri')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetri_c
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetri_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_c(trans,N,NRHS,A,LDA,IPIV,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetri_c
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetri_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_c(trans,N,NRHS,A,LDA,IPIV,B,LDB) &
           & bind(c, name='CHAMELEON_zgetrs')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_c
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgetrs_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_incpiv_c(trans,N,NRHS,A,LDA,descL,IPIV,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_c
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgetrs_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_incpiv_c(trans,N,NRHS,A,LDA,descL,IPIV,B,LDB) &
           & bind(c, name='CHAMELEON_zgetrs_incpiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_c
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descL
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zgetrs_incpiv_c
-      end interface
-
-      interface
-         function CHAMELEON_zheev_c(jobz,uplo,N,A,LDA,W,descT,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_c
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descL
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zgetrs_incpiv_c
+  end interface
+
+  interface
+     function CHAMELEON_zheev_c(jobz,uplo,N,A,LDA,W,descT,Q,LDQ) &
           & bind(c, name='CHAMELEON_zheev')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheev_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: W
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zheev_c
-      end interface
-
-      interface
-         function CHAMELEON_zheevd_c(jobz,uplo,N,A,LDA,W,descT,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheev_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: W
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zheev_c
+  end interface
+
+  interface
+     function CHAMELEON_zheevd_c(jobz,uplo,N,A,LDA,W,descT,Q,LDQ) &
           & bind(c, name='CHAMELEON_zheevd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheevd_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: W
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zheevd_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegst_c(itype,uplo,N,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheevd_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: W
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zheevd_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegst_c(itype,uplo,N,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zhegst')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegst_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zhegst_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegv_c(itype,jobz,uplo,N,A,LDA,B,LDB,W,descT,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegst_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zhegst_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegv_c(itype,jobz,uplo,N,A,LDA,B,LDB,W,descT,Q,LDQ) &
           & bind(c, name='CHAMELEON_zhegv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegv_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            type(c_ptr), value :: W
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zhegv_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegvd_c(itype,jobz,uplo,N,A,LDA,B,LDB,W,descT,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegv_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       type(c_ptr), value :: W
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zhegv_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegvd_c(itype,jobz,uplo,N,A,LDA,B,LDB,W,descT,Q,LDQ) &
           & bind(c, name='CHAMELEON_zhegvd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegvd_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            type(c_ptr), value :: W
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zhegvd_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegvd_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       type(c_ptr), value :: W
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zhegvd_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zhemm_c(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC) &
+  interface
+     function CHAMELEON_zhemm_c(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zhemm')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhemm_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zhemm_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhemm_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zhemm_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zher2k_c(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
+  interface
+     function CHAMELEON_zher2k_c(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zher2k')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zher2k_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zher2k_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zher2k_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zher2k_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zherk_c(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC) &
+  interface
+     function CHAMELEON_zherk_c(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zherk')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zherk_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            real(kind=c_double), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zherk_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zherk_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       real(kind=c_double), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zherk_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zhetrd_c(jobz,uplo,N,A,LDA,D,E,descT,Q,LDQ) &
+  interface
+     function CHAMELEON_zhetrd_c(jobz,uplo,N,A,LDA,D,E,descT,Q,LDQ) &
           & bind(c, name='CHAMELEON_zhetrd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhetrd_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zhetrd_c
-      end interface
-
-      interface
-         function CHAMELEON_zlacpy_c(uplo,M,N,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhetrd_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zhetrd_c
+  end interface
+
+  interface
+     function CHAMELEON_zlacpy_c(uplo,M,N,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zlacpy')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlacpy_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zlacpy_c
-      end interface
-
-      interface
-         function CHAMELEON_zlange_c(norm,M,N,A,LDA,work) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlacpy_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zlacpy_c
+  end interface
+
+  interface
+     function CHAMELEON_zlange_c(norm,M,N,A,LDA,work) &
           & bind(c, name='CHAMELEON_zlange')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlange_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlange_c
-      end interface
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlange_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlange_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zlanhe_c(norm,uplo,N,A,LDA,work) &
+  interface
+     function CHAMELEON_zlanhe_c(norm,uplo,N,A,LDA,work) &
           & bind(c, name='CHAMELEON_zlanhe')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlanhe_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlanhe_c
-      end interface
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlanhe_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlanhe_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zlansy_c(norm,uplo,N,A,LDA,work) &
+  interface
+     function CHAMELEON_zlansy_c(norm,uplo,N,A,LDA,work) &
           & bind(c, name='CHAMELEON_zlansy')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlansy_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlansy_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaset_c(uplo,M,N,alpha,beta,A,LDA) &
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlansy_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlansy_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaset_c(uplo,M,N,alpha,beta,A,LDA) &
           & bind(c, name='CHAMELEON_zlaset')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaset_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            complex(kind=c_double_complex), value :: alpha
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zlaset_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswp_c(N,A,LDA,K1,K2,IPIV,INCX) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaset_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       complex(kind=c_double_complex), value :: alpha
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zlaset_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswp_c(N,A,LDA,K1,K2,IPIV,INCX) &
           & bind(c, name='CHAMELEON_zlaswp')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswp_c
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-          end function CHAMELEON_zlaswp_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswpc_c(N,A,LDA,K1,K2,IPIV,INCX) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswp_c
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+     end function CHAMELEON_zlaswp_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswpc_c(N,A,LDA,K1,K2,IPIV,INCX) &
           & bind(c, name='CHAMELEON_zlaswpc')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswpc_c
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-          end function CHAMELEON_zlaswpc_c
-      end interface
-
-      interface
-         function CHAMELEON_zlauum_c(uplo,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswpc_c
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+     end function CHAMELEON_zlaswpc_c
+  end interface
+
+  interface
+     function CHAMELEON_zlauum_c(uplo,N,A,LDA) &
           & bind(c, name='CHAMELEON_zlauum')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlauum_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zlauum_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlauum_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zlauum_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zplghe_c(bump,uplo,N,A,LDA,seed) &
+  interface
+     function CHAMELEON_zplghe_c(bump,uplo,N,A,LDA,seed) &
           & bind(c, name='CHAMELEON_zplghe')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplghe_c
-            real(kind=c_double), value :: bump
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplghe_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplghe_c
+       real(kind=c_double), value :: bump
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplghe_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zplgsy_c(bump,uplo,N,A,LDA,seed) &
+  interface
+     function CHAMELEON_zplgsy_c(bump,uplo,N,A,LDA,seed) &
           & bind(c, name='CHAMELEON_zplgsy')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplgsy_c
-            complex(kind=c_double_complex), value :: bump
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplgsy_c
-      end interface
-
-      interface
-         function CHAMELEON_zplrnt_c(M,N,A,LDA,seed) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplgsy_c
+       complex(kind=c_double_complex), value :: bump
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplgsy_c
+  end interface
+
+  interface
+     function CHAMELEON_zplrnt_c(M,N,A,LDA,seed) &
           & bind(c, name='CHAMELEON_zplrnt')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplrnt_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplrnt_c
-      end interface
-
-      interface
-         function CHAMELEON_zposv_c(uplo,N,NRHS,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplrnt_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplrnt_c
+  end interface
+
+  interface
+     function CHAMELEON_zposv_c(uplo,N,NRHS,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zposv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zposv_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zposv_c
-      end interface
-
-      interface
-         function CHAMELEON_zsysv_c(uplo,N,NRHS,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zposv_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zposv_c
+  end interface
+
+  interface
+     function CHAMELEON_zsysv_c(uplo,N,NRHS,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zsysv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsysv_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zsysv_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrf_c(uplo,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsysv_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zsysv_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrf_c(uplo,N,A,LDA) &
           & bind(c, name='CHAMELEON_zpotrf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrf_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zpotrf_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrf_c(uplo,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrf_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zpotrf_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrf_c(uplo,N,A,LDA) &
           & bind(c, name='CHAMELEON_zsytrf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrf_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zsytrf_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotri_c(uplo,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrf_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zsytrf_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotri_c(uplo,N,A,LDA) &
           & bind(c, name='CHAMELEON_zpotri')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotri_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_zpotri_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrs_c(uplo,N,NRHS,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotri_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_zpotri_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrs_c(uplo,N,NRHS,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zpotrs')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrs_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zpotrs_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrs_c(uplo,N,NRHS,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrs_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zpotrs_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrs_c(uplo,N,NRHS,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_zsytrs')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrs_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zsytrs_c
-      end interface
-
-      interface
-         function CHAMELEON_zsymm_c(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrs_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zsytrs_c
+  end interface
+
+  interface
+     function CHAMELEON_zsymm_c(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zsymm')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsymm_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zsymm_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyr2k_c(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsymm_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zsymm_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyr2k_c(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zsyr2k')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyr2k_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zsyr2k_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyrk_c(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyr2k_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zsyr2k_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyrk_c(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC) &
           & bind(c, name='CHAMELEON_zsyrk')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyrk_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            integer(kind=c_int), value :: LDC
-          end function CHAMELEON_zsyrk_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrmm_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyrk_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       integer(kind=c_int), value :: LDC
+     end function CHAMELEON_zsyrk_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrmm_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_ztrmm')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrmm_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_ztrmm_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsm_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrmm_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_ztrmm_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsm_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_ztrsm')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsm_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_ztrsm_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmpl_c(N,NRHS,A,LDA,descL,IPIV,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsm_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_ztrsm_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmpl_c(N,NRHS,A,LDA,descL,IPIV,B,LDB) &
           & bind(c, name='CHAMELEON_ztrsmpl')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmpl_c
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descL
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_ztrsmpl_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmrv_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmpl_c
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descL
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_ztrsmpl_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmrv_c(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB) &
           & bind(c, name='CHAMELEON_ztrsmrv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmrv_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: NRHS
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_ztrsmrv_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrtri_c(uplo,diag,N,A,LDA) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmrv_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: NRHS
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_ztrsmrv_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrtri_c(uplo,diag,N,A,LDA) &
           & bind(c, name='CHAMELEON_ztrtri')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrtri_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: diag
-            integer(kind=c_int), value :: N
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-          end function CHAMELEON_ztrtri_c
-      end interface
-
-      interface
-         function CHAMELEON_zunglq_c(M,N,K,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrtri_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: diag
+       integer(kind=c_int), value :: N
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+     end function CHAMELEON_ztrtri_c
+  end interface
+
+  interface
+     function CHAMELEON_zunglq_c(M,N,K,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zunglq')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunglq_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zunglq_c
-      end interface
-
-      interface
-         function CHAMELEON_zungqr_c(M,N,K,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunglq_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zunglq_c
+  end interface
+
+  interface
+     function CHAMELEON_zungqr_c(M,N,K,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zungqr')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zungqr_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zungqr_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmlq_c(side,trans,M,N,K,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zungqr_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zungqr_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmlq_c(side,trans,M,N,K,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zunmlq')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmlq_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zunmlq_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmqr_c(side,trans,M,N,K,A,LDA,descT,B,LDB) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmlq_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zunmlq_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmqr_c(side,trans,M,N,K,A,LDA,descT,B,LDB) &
           & bind(c, name='CHAMELEON_zunmqr')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmqr_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            integer(kind=c_int), value :: K
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: LDA
-            type(c_ptr), value :: descT
-            type(c_ptr), value :: B
-            integer(kind=c_int), value :: LDB
-          end function CHAMELEON_zunmqr_c
-      end interface
-
-    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-    !  FORTRAN API - math functions (native interface)
-    !
-      interface
-         function CHAMELEON_zgebrd_Tile_c(A,D,E,T) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmqr_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       integer(kind=c_int), value :: K
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: LDA
+       type(c_ptr), value :: descT
+       type(c_ptr), value :: B
+       integer(kind=c_int), value :: LDB
+     end function CHAMELEON_zunmqr_c
+  end interface
+
+  !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  !  FORTRAN API - math functions (native interface)
+  !
+  interface
+     function CHAMELEON_zgebrd_Tile_c(A,D,E,T) &
           & bind(c, name='CHAMELEON_zgebrd_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgebrd_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: T
-          end function CHAMELEON_zgebrd_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqf_Tile_c(A,T) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgebrd_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: T
+     end function CHAMELEON_zgebrd_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqf_Tile_c(A,T) &
           & bind(c, name='CHAMELEON_zgelqf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqf_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-          end function CHAMELEON_zgelqf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqs_Tile_c(A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqf_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+     end function CHAMELEON_zgelqf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqs_Tile_c(A,T,B) &
           & bind(c, name='CHAMELEON_zgelqs_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqs_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgelqs_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgels_Tile_c(trans,A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqs_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgelqs_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgels_Tile_c(trans,A,T,B) &
           & bind(c, name='CHAMELEON_zgels_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgels_Tile_c
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgels_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgemm_Tile_c(transA,transB,alpha,A,B,beta,C) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgels_Tile_c
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgels_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgemm_Tile_c(transA,transB,alpha,A,B,beta,C) &
           & bind(c, name='CHAMELEON_zgemm_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgemm_Tile_c
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: transB
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zgemm_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrf_Tile_c(A,T) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgemm_Tile_c
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: transB
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zgemm_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrf_Tile_c(A,T) &
           & bind(c, name='CHAMELEON_zgeqrf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrf_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-          end function CHAMELEON_zgeqrf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrs_Tile_c(A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrf_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+     end function CHAMELEON_zgeqrf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrs_Tile_c(A,T,B) &
           & bind(c, name='CHAMELEON_zgeqrs_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrs_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgeqrs_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_Tile_c(A,IPIV,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrs_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgeqrs_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_Tile_c(A,IPIV,B) &
           & bind(c, name='CHAMELEON_zgesv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgesv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_incpiv_Tile_c(A,L,IPIV,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgesv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_incpiv_Tile_c(A,L,IPIV,B) &
           & bind(c, name='CHAMELEON_zgesv_incpiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgesv_incpiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesvd_Tile_c(jobu,jobvt,A,S,U,VT,T) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgesv_incpiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesvd_Tile_c(jobu,jobvt,A,S,U,VT,T) &
           & bind(c, name='CHAMELEON_zgesvd_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesvd_Tile_c
-            integer(kind=c_int), value :: jobu
-            integer(kind=c_int), value :: jobvt
-            type(c_ptr), value :: A
-            type(c_ptr), value :: S
-            type(c_ptr), value :: U
-            type(c_ptr), value :: VT
-            type(c_ptr), value :: T
-          end function CHAMELEON_zgesvd_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_Tile_c(A,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesvd_Tile_c
+       integer(kind=c_int), value :: jobu
+       integer(kind=c_int), value :: jobvt
+       type(c_ptr), value :: A
+       type(c_ptr), value :: S
+       type(c_ptr), value :: U
+       type(c_ptr), value :: VT
+       type(c_ptr), value :: T
+     end function CHAMELEON_zgesvd_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_Tile_c(A,IPIV) &
           & bind(c, name='CHAMELEON_zgetrf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetrf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_incpiv_Tile_c(A,L,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetrf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_incpiv_Tile_c(A,L,IPIV) &
           & bind(c, name='CHAMELEON_zgetrf_incpiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetrf_incpiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_nopiv_Tile_c(A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetrf_incpiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_nopiv_Tile_c(A) &
           & bind(c, name='CHAMELEON_zgetrf_nopiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_Tile_c
-            type(c_ptr), value :: A
-          end function CHAMELEON_zgetrf_nopiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetri_Tile_c(A,IPIV) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_Tile_c
+       type(c_ptr), value :: A
+     end function CHAMELEON_zgetrf_nopiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetri_Tile_c(A,IPIV) &
           & bind(c, name='CHAMELEON_zgetri_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetri_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-          end function CHAMELEON_zgetri_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_Tile_c(trans,A,IPIV,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetri_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+     end function CHAMELEON_zgetri_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_Tile_c(trans,A,IPIV,B) &
           & bind(c, name='CHAMELEON_zgetrs_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_Tile_c
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgetrs_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_incpiv_Tile_c(A,L,IPIV,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_Tile_c
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgetrs_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_incpiv_Tile_c(A,L,IPIV,B) &
           & bind(c, name='CHAMELEON_zgetrs_incpiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-          end function CHAMELEON_zgetrs_incpiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zheev_Tile_c(jobz,uplo,A,W,T,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+     end function CHAMELEON_zgetrs_incpiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zheev_Tile_c(jobz,uplo,A,W,T,Q,LDQ) &
           & bind(c, name='CHAMELEON_zheev_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheev_Tile_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zheev_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zheevd_Tile_c(jobz,uplo,A,W,T,Q,LDQ) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheev_Tile_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zheev_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zheevd_Tile_c(jobz,uplo,A,W,T,Q,LDQ) &
           & bind(c, name='CHAMELEON_zheevd_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheevd_Tile_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zheevd_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegst_Tile_c(itype,uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheevd_Tile_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zheevd_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegst_Tile_c(itype,uplo,A,B) &
           & bind(c, name='CHAMELEON_zhegst_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegst_Tile_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zhegst_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegv_Tile_c(itype,jobz,uplo,A,B,W,T,Q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegst_Tile_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zhegst_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegv_Tile_c(itype,jobz,uplo,A,B,W,T,Q) &
           & bind(c, name='CHAMELEON_zhegv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegv_Tile_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-          end function CHAMELEON_zhegv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegvd_Tile_c(itype,jobz,uplo,A,B,W,T,Q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegv_Tile_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+     end function CHAMELEON_zhegv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegvd_Tile_c(itype,jobz,uplo,A,B,W,T,Q) &
           & bind(c, name='CHAMELEON_zhegvd_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegvd_Tile_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-          end function CHAMELEON_zhegvd_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegvd_Tile_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+     end function CHAMELEON_zhegvd_Tile_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zhemm_Tile_c(side,uplo,alpha,A,B,beta,C) &
+  interface
+     function CHAMELEON_zhemm_Tile_c(side,uplo,alpha,A,B,beta,C) &
           & bind(c, name='CHAMELEON_zhemm_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhemm_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zhemm_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhemm_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zhemm_Tile_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zher2k_Tile_c(uplo,trans,alpha,A,B,beta,C) &
+  interface
+     function CHAMELEON_zher2k_Tile_c(uplo,trans,alpha,A,B,beta,C) &
           & bind(c, name='CHAMELEON_zher2k_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zher2k_Tile_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zher2k_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zher2k_Tile_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zher2k_Tile_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zherk_Tile_c(uplo,trans,alpha,A,beta,C) &
+  interface
+     function CHAMELEON_zherk_Tile_c(uplo,trans,alpha,A,beta,C) &
           & bind(c, name='CHAMELEON_zherk_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zherk_Tile_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            real(kind=c_double), value :: alpha
-            type(c_ptr), value :: A
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zherk_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zherk_Tile_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       real(kind=c_double), value :: alpha
+       type(c_ptr), value :: A
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zherk_Tile_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zhetrd_Tile_c(jobz,uplo,A,D,E,T,Q,LDQ) &
+  interface
+     function CHAMELEON_zhetrd_Tile_c(jobz,uplo,A,D,E,T,Q,LDQ) &
           & bind(c, name='CHAMELEON_zhetrd_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhetrd_Tile_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-          end function CHAMELEON_zhetrd_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlacpy_Tile_c(uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhetrd_Tile_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+     end function CHAMELEON_zhetrd_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlacpy_Tile_c(uplo,A,B) &
           & bind(c, name='CHAMELEON_zlacpy_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlacpy_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zlacpy_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlange_Tile_c(norm,A,work) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlacpy_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zlacpy_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlange_Tile_c(norm,A,work) &
           & bind(c, name='CHAMELEON_zlange_Tile')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlange_Tile_c
-            integer(kind=c_int), value :: norm
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlange_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlange_Tile_c
+       integer(kind=c_int), value :: norm
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlange_Tile_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zlanhe_Tile_c(norm,uplo,A,work) &
+  interface
+     function CHAMELEON_zlanhe_Tile_c(norm,uplo,A,work) &
           & bind(c, name='CHAMELEON_zlanhe_Tile')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlanhe_Tile_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlanhe_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlanhe_Tile_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlanhe_Tile_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zlansy_Tile_c(norm,uplo,A,work) &
+  interface
+     function CHAMELEON_zlansy_Tile_c(norm,uplo,A,work) &
           & bind(c, name='CHAMELEON_zlansy_Tile')
-            use iso_c_binding
-            implicit none
-            real(kind=c_double) :: CHAMELEON_zlansy_Tile_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-          end function CHAMELEON_zlansy_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaset_Tile_c(uplo,alpha,beta,A) &
+       use iso_c_binding
+       implicit none
+       real(kind=c_double) :: CHAMELEON_zlansy_Tile_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+     end function CHAMELEON_zlansy_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaset_Tile_c(uplo,alpha,beta,A) &
           & bind(c, name='CHAMELEON_zlaset_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaset_Tile_c
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: A
-          end function CHAMELEON_zlaset_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswp_Tile_c(A,K1,K2,IPIV,INCX) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaset_Tile_c
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: A
+     end function CHAMELEON_zlaset_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswp_Tile_c(A,K1,K2,IPIV,INCX) &
           & bind(c, name='CHAMELEON_zlaswp_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswp_Tile_c
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-          end function CHAMELEON_zlaswp_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswpc_Tile_c(A,K1,K2,IPIV,INCX) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswp_Tile_c
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+     end function CHAMELEON_zlaswp_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswpc_Tile_c(A,K1,K2,IPIV,INCX) &
           & bind(c, name='CHAMELEON_zlaswpc_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswpc_Tile_c
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-          end function CHAMELEON_zlaswpc_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zlauum_Tile_c(uplo,A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswpc_Tile_c
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+     end function CHAMELEON_zlaswpc_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zlauum_Tile_c(uplo,A) &
           & bind(c, name='CHAMELEON_zlauum_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlauum_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-          end function CHAMELEON_zlauum_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlauum_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+     end function CHAMELEON_zlauum_Tile_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zplghe_Tile_c(bump,uplo,A,seed) &
+  interface
+     function CHAMELEON_zplghe_Tile_c(bump,uplo,A,seed) &
           & bind(c, name='CHAMELEON_zplghe_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplghe_Tile_c
-            real(kind=c_double), value :: bump
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplghe_Tile_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplghe_Tile_c
+       real(kind=c_double), value :: bump
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplghe_Tile_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zplgsy_Tile_c(bump,uplo,A,seed) &
+  interface
+     function CHAMELEON_zplgsy_Tile_c(bump,uplo,A,seed) &
           & bind(c, name='CHAMELEON_zplgsy_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplgsy_Tile_c
-            complex(kind=c_double_complex), value :: bump
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplgsy_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zplrnt_Tile_c(A,seed) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplgsy_Tile_c
+       complex(kind=c_double_complex), value :: bump
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplgsy_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zplrnt_Tile_c(A,seed) &
           & bind(c, name='CHAMELEON_zplrnt_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplrnt_Tile_c
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-          end function CHAMELEON_zplrnt_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zposv_Tile_c(uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplrnt_Tile_c
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+     end function CHAMELEON_zplrnt_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zposv_Tile_c(uplo,A,B) &
           & bind(c, name='CHAMELEON_zposv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zposv_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zposv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsysv_Tile_c(uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zposv_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zposv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsysv_Tile_c(uplo,A,B) &
           & bind(c, name='CHAMELEON_zsysv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsysv_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zsysv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrf_Tile_c(uplo,A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsysv_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zsysv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrf_Tile_c(uplo,A) &
           & bind(c, name='CHAMELEON_zpotrf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrf_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-          end function CHAMELEON_zpotrf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrf_Tile_c(uplo,A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrf_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+     end function CHAMELEON_zpotrf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrf_Tile_c(uplo,A) &
           & bind(c, name='CHAMELEON_zsytrf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrf_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-          end function CHAMELEON_zsytrf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotri_Tile_c(uplo,A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrf_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+     end function CHAMELEON_zsytrf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotri_Tile_c(uplo,A) &
           & bind(c, name='CHAMELEON_zpotri_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotri_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-          end function CHAMELEON_zpotri_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrs_Tile_c(uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotri_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+     end function CHAMELEON_zpotri_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrs_Tile_c(uplo,A,B) &
           & bind(c, name='CHAMELEON_zpotrs_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrs_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zpotrs_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrs_Tile_c(uplo,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrs_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zpotrs_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrs_Tile_c(uplo,A,B) &
           & bind(c, name='CHAMELEON_zsytrs_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrs_Tile_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_zsytrs_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsymm_Tile_c(side,uplo,alpha,A,B,beta,C) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrs_Tile_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_zsytrs_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsymm_Tile_c(side,uplo,alpha,A,B,beta,C) &
           & bind(c, name='CHAMELEON_zsymm_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsymm_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zsymm_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyr2k_Tile_c(uplo,trans,alpha,A,B,beta,C) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsymm_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zsymm_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyr2k_Tile_c(uplo,trans,alpha,A,B,beta,C) &
           & bind(c, name='CHAMELEON_zsyr2k_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyr2k_Tile_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zsyr2k_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyrk_Tile_c(uplo,trans,alpha,A,beta,C) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyr2k_Tile_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zsyr2k_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyrk_Tile_c(uplo,trans,alpha,A,beta,C) &
           & bind(c, name='CHAMELEON_zsyrk_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyrk_Tile_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-          end function CHAMELEON_zsyrk_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrmm_Tile_c(side,uplo,transA,diag,alpha,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyrk_Tile_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+     end function CHAMELEON_zsyrk_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrmm_Tile_c(side,uplo,transA,diag,alpha,A,B) &
           & bind(c, name='CHAMELEON_ztrmm_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrmm_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_ztrmm_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsm_Tile_c(side,uplo,transA,diag,alpha,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrmm_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_ztrmm_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsm_Tile_c(side,uplo,transA,diag,alpha,A,B) &
           & bind(c, name='CHAMELEON_ztrsm_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsm_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_ztrsm_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmpl_Tile_c(A,L,IPIV,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsm_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_ztrsm_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmpl_Tile_c(A,L,IPIV,B) &
           & bind(c, name='CHAMELEON_ztrsmpl_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmpl_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-          end function CHAMELEON_ztrsmpl_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmrv_Tile_c(side,uplo,transA,diag,alpha,A,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmpl_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+     end function CHAMELEON_ztrsmpl_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmrv_Tile_c(side,uplo,transA,diag,alpha,A,B) &
           & bind(c, name='CHAMELEON_ztrsmrv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmrv_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-          end function CHAMELEON_ztrsmrv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrtri_Tile_c(uplo,diag,A) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmrv_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+     end function CHAMELEON_ztrsmrv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrtri_Tile_c(uplo,diag,A) &
           & bind(c, name='CHAMELEON_ztrtri_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrtri_Tile_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: diag
-            type(c_ptr), value :: A
-          end function CHAMELEON_ztrtri_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zunglq_Tile_c(A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrtri_Tile_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: diag
+       type(c_ptr), value :: A
+     end function CHAMELEON_ztrtri_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zunglq_Tile_c(A,T,B) &
           & bind(c, name='CHAMELEON_zunglq_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunglq_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zunglq_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zungqr_Tile_c(A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunglq_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zunglq_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zungqr_Tile_c(A,T,B) &
           & bind(c, name='CHAMELEON_zungqr_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zungqr_Tile_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zungqr_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmlq_Tile_c(side,trans,A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zungqr_Tile_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zungqr_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmlq_Tile_c(side,trans,A,T,B) &
           & bind(c, name='CHAMELEON_zunmlq_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmlq_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zunmlq_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmqr_Tile_c(side,trans,A,T,B) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmlq_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zunmlq_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmqr_Tile_c(side,trans,A,T,B) &
           & bind(c, name='CHAMELEON_zunmqr_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmqr_Tile_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-          end function CHAMELEON_zunmqr_Tile_c
-      end interface
-
-    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-    !  FORTRAN API - math functions (asynchronous interface)
-    !
-      interface
-         function CHAMELEON_zgebrd_Tile_Async_c(A,D,E,T,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmqr_Tile_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+     end function CHAMELEON_zunmqr_Tile_c
+  end interface
+
+  !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  !  FORTRAN API - math functions (asynchronous interface)
+  !
+  interface
+     function CHAMELEON_zgebrd_Tile_Async_c(A,D,E,T,sequence,request) &
           & bind(c, name='CHAMELEON_zgebrd_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgebrd_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: T
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgebrd_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqf_Tile_Async_c(A,T,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgebrd_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: T
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgebrd_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqf_Tile_Async_c(A,T,sequence,request) &
           & bind(c, name='CHAMELEON_zgelqf_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqf_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgelqf_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgelqs_Tile_Async_c(A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqf_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgelqf_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgelqs_Tile_Async_c(A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgelqs_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgelqs_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgelqs_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgels_Tile_Async_c(trans,A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgelqs_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgelqs_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgels_Tile_Async_c(trans,A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgels_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgels_Tile_Async_c
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgels_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgemm_Tile_Async_c(transA,transB,alpha,A,B,beta,C,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgels_Tile_Async_c
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgels_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgemm_Tile_Async_c(transA,transB,alpha,A,B,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zgemm_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgemm_Tile_Async_c
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: transB
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgemm_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrf_Tile_Async_c(A,T,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgemm_Tile_Async_c
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: transB
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgemm_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrf_Tile_Async_c(A,T,sequence,request) &
           & bind(c, name='CHAMELEON_zgeqrf_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrf_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgeqrf_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgeqrs_Tile_Async_c(A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrf_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgeqrf_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgeqrs_Tile_Async_c(A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgeqrs_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgeqrs_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgeqrs_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_Tile_Async_c(A,IPIV,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgeqrs_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgeqrs_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_Tile_Async_c(A,IPIV,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgesv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgesv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesv_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgesv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesv_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgesv_incpiv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgesv_incpiv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgesvd_Tile_Async_c(jobu,jobvt,A,S,U,VT,T,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesv_incpiv_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgesv_incpiv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgesvd_Tile_Async_c(jobu,jobvt,A,S,U,VT,T,sequence,request) &
           & bind(c, name='CHAMELEON_zgesvd_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgesvd_Tile_Async_c
-            integer(kind=c_int), value :: jobu
-            integer(kind=c_int), value :: jobvt
-            type(c_ptr), value :: A
-            type(c_ptr), value :: S
-            type(c_ptr), value :: U
-            type(c_ptr), value :: VT
-            type(c_ptr), value :: T
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgesvd_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_Tile_Async_c(A,IPIV,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgesvd_Tile_Async_c
+       integer(kind=c_int), value :: jobu
+       integer(kind=c_int), value :: jobvt
+       type(c_ptr), value :: A
+       type(c_ptr), value :: S
+       type(c_ptr), value :: U
+       type(c_ptr), value :: VT
+       type(c_ptr), value :: T
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgesvd_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_Tile_Async_c(A,IPIV,sequence,request) &
           & bind(c, name='CHAMELEON_zgetrf_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetrf_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_incpiv_Tile_Async_c(A,L,IPIV,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetrf_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_incpiv_Tile_Async_c(A,L,IPIV,sequence,request) &
           & bind(c, name='CHAMELEON_zgetrf_incpiv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetrf_incpiv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrf_nopiv_Tile_Async_c(A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_incpiv_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetrf_incpiv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrf_nopiv_Tile_Async_c(A,sequence,request) &
           & bind(c, name='CHAMELEON_zgetrf_nopiv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetrf_nopiv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetri_Tile_Async_c(A,IPIV,W,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrf_nopiv_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetrf_nopiv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetri_Tile_Async_c(A,IPIV,W,sequence,request) &
           & bind(c, name='CHAMELEON_zgetri_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetri_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: W
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetri_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_Tile_Async_c(trans,A,IPIV,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetri_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: W
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetri_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_Tile_Async_c(trans,A,IPIV,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgetrs_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_Tile_Async_c
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetrs_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zgetrs_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_Tile_Async_c
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetrs_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zgetrs_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request) &
           & bind(c, name='CHAMELEON_zgetrs_incpiv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zgetrs_incpiv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zheev_Tile_Async_c(jobz,uplo,A,W,T,Q,LDQ,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zgetrs_incpiv_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zgetrs_incpiv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zheev_Tile_Async_c(jobz,uplo,A,W,T,Q,LDQ,sequence,request) &
           & bind(c, name='CHAMELEON_zheev_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheev_Tile_Async_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zheev_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zheevd_Tile_Async_c(jobz,uplo,A,W,T,Q,LDQ,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheev_Tile_Async_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zheev_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zheevd_Tile_Async_c(jobz,uplo,A,W,T,Q,LDQ,sequence,request) &
           & bind(c, name='CHAMELEON_zheevd_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zheevd_Tile_Async_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zheevd_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegst_Tile_Async_c(itype,uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zheevd_Tile_Async_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zheevd_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegst_Tile_Async_c(itype,uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zhegst_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegst_Tile_Async_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zhegst_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegv_Tile_Async_c(itype,jobz,uplo,A,B,W,T,Q,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegst_Tile_Async_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zhegst_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegv_Tile_Async_c(itype,jobz,uplo,A,B,W,T,Q,sequence,request) &
           & bind(c, name='CHAMELEON_zhegv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegv_Tile_Async_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zhegv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zhegvd_Tile_Async_c(itype,jobz,uplo,A,B,W,T,Q,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegv_Tile_Async_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zhegv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zhegvd_Tile_Async_c(itype,jobz,uplo,A,B,W,T,Q,sequence,request) &
           & bind(c, name='CHAMELEON_zhegvd_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhegvd_Tile_Async_c
-            integer(kind=c_int), value :: itype
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: W
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zhegvd_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhegvd_Tile_Async_c
+       integer(kind=c_int), value :: itype
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: W
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zhegvd_Tile_Async_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zhemm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request) &
+  interface
+     function CHAMELEON_zhemm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zhemm_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhemm_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zhemm_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhemm_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zhemm_Tile_Async_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zher2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request) &
+  interface
+     function CHAMELEON_zher2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zher2k_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zher2k_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zher2k_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zher2k_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zher2k_Tile_Async_c
+  end interface
 #endif
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zherk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request) &
+  interface
+     function CHAMELEON_zherk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zherk_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zherk_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            real(kind=c_double), value :: alpha
-            type(c_ptr), value :: A
-            real(kind=c_double), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zherk_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zherk_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       real(kind=c_double), value :: alpha
+       type(c_ptr), value :: A
+       real(kind=c_double), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zherk_Tile_Async_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zhetrd_Tile_Async_c(jobz,uplo,A,D,E,T,Q,LDQ,sequence,request) &
+  interface
+     function CHAMELEON_zhetrd_Tile_Async_c(jobz,uplo,A,D,E,T,Q,LDQ,sequence,request) &
           & bind(c, name='CHAMELEON_zhetrd_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zhetrd_Tile_Async_c
-            integer(kind=c_int), value :: jobz
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: D
-            type(c_ptr), value :: E
-            type(c_ptr), value :: T
-            type(c_ptr), value :: Q
-            integer(kind=c_int), value :: LDQ
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zhetrd_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlacpy_Tile_Async_c(uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zhetrd_Tile_Async_c
+       integer(kind=c_int), value :: jobz
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: D
+       type(c_ptr), value :: E
+       type(c_ptr), value :: T
+       type(c_ptr), value :: Q
+       integer(kind=c_int), value :: LDQ
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zhetrd_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlacpy_Tile_Async_c(uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zlacpy_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlacpy_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlacpy_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlange_Tile_Async_c(norm,A,work,value,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlacpy_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlacpy_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlange_Tile_Async_c(norm,A,work,value,sequence,request) &
           & bind(c, name='CHAMELEON_zlange_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlange_Tile_Async_c
-            integer(kind=c_int), value :: norm
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-            type(c_ptr), value :: value
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlange_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlange_Tile_Async_c
+       integer(kind=c_int), value :: norm
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+       type(c_ptr), value :: value
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlange_Tile_Async_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zlanhe_Tile_Async_c(norm,uplo,A,work,value,sequence,request) &
+  interface
+     function CHAMELEON_zlanhe_Tile_Async_c(norm,uplo,A,work,value,sequence,request) &
           & bind(c, name='CHAMELEON_zlanhe_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlanhe_Tile_Async_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-            type(c_ptr), value :: value
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlanhe_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlanhe_Tile_Async_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+       type(c_ptr), value :: value
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlanhe_Tile_Async_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zlansy_Tile_Async_c(norm,uplo,A,work,value,sequence,request) &
+  interface
+     function CHAMELEON_zlansy_Tile_Async_c(norm,uplo,A,work,value,sequence,request) &
           & bind(c, name='CHAMELEON_zlansy_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlansy_Tile_Async_c
-            integer(kind=c_int), value :: norm
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: work
-            type(c_ptr), value :: value
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlansy_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaset_Tile_Async_c(uplo,alpha,beta,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlansy_Tile_Async_c
+       integer(kind=c_int), value :: norm
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: work
+       type(c_ptr), value :: value
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlansy_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaset_Tile_Async_c(uplo,alpha,beta,A,sequence,request) &
           & bind(c, name='CHAMELEON_zlaset_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaset_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlaset_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswp_Tile_Async_c(A,K1,K2,IPIV,INCX,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaset_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlaset_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswp_Tile_Async_c(A,K1,K2,IPIV,INCX,sequence,request) &
           & bind(c, name='CHAMELEON_zlaswp_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswp_Tile_Async_c
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlaswp_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlaswpc_Tile_Async_c(A,K1,K2,IPIV,INCX,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswp_Tile_Async_c
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlaswp_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlaswpc_Tile_Async_c(A,K1,K2,IPIV,INCX,sequence,request) &
           & bind(c, name='CHAMELEON_zlaswpc_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlaswpc_Tile_Async_c
-            type(c_ptr), value :: A
-            integer(kind=c_int), value :: K1
-            integer(kind=c_int), value :: K2
-            type(c_ptr), value :: IPIV
-            integer(kind=c_int), value :: INCX
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlaswpc_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zlauum_Tile_Async_c(uplo,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlaswpc_Tile_Async_c
+       type(c_ptr), value :: A
+       integer(kind=c_int), value :: K1
+       integer(kind=c_int), value :: K2
+       type(c_ptr), value :: IPIV
+       integer(kind=c_int), value :: INCX
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlaswpc_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zlauum_Tile_Async_c(uplo,A,sequence,request) &
           & bind(c, name='CHAMELEON_zlauum_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zlauum_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zlauum_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zlauum_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zlauum_Tile_Async_c
+  end interface
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      interface
-         function CHAMELEON_zplghe_Tile_Async_c(bump,uplo,A,seed,sequence,request) &
+  interface
+     function CHAMELEON_zplghe_Tile_Async_c(bump,uplo,A,seed,sequence,request) &
           & bind(c, name='CHAMELEON_zplghe_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplghe_Tile_Async_c
-            real(kind=c_double), value :: bump
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zplghe_Tile_Async_c
-      end interface
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplghe_Tile_Async_c
+       real(kind=c_double), value :: bump
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zplghe_Tile_Async_c
+  end interface
 #endif
 
-      interface
-         function CHAMELEON_zplgsy_Tile_Async_c(bump,uplo,A,seed,sequence,request) &
+  interface
+     function CHAMELEON_zplgsy_Tile_Async_c(bump,uplo,A,seed,sequence,request) &
           & bind(c, name='CHAMELEON_zplgsy_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplgsy_Tile_Async_c
-            complex(kind=c_double_complex), value :: bump
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zplgsy_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zplrnt_Tile_Async_c(A,seed,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplgsy_Tile_Async_c
+       complex(kind=c_double_complex), value :: bump
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zplgsy_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zplrnt_Tile_Async_c(A,seed,sequence,request) &
           & bind(c, name='CHAMELEON_zplrnt_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zplrnt_Tile_Async_c
-            type(c_ptr), value :: A
-            integer(kind=c_long_long), value :: seed
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zplrnt_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zposv_Tile_Async_c(uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zplrnt_Tile_Async_c
+       type(c_ptr), value :: A
+       integer(kind=c_long_long), value :: seed
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zplrnt_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zposv_Tile_Async_c(uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zposv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zposv_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zposv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsysv_Tile_Async_c(uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zposv_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zposv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsysv_Tile_Async_c(uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zsysv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsysv_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsysv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrf_Tile_Async_c(uplo,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsysv_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsysv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrf_Tile_Async_c(uplo,A,sequence,request) &
           & bind(c, name='CHAMELEON_zpotrf_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrf_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zpotrf_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrf_Tile_Async_c(uplo,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrf_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zpotrf_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrf_Tile_Async_c(uplo,A,sequence,request) &
           & bind(c, name='CHAMELEON_zsytrf_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrf_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsytrf_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotri_Tile_Async_c(uplo,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrf_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsytrf_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotri_Tile_Async_c(uplo,A,sequence,request) &
           & bind(c, name='CHAMELEON_zpotri_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotri_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zpotri_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zpotrs_Tile_Async_c(uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotri_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zpotri_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zpotrs_Tile_Async_c(uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zpotrs_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zpotrs_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zpotrs_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsytrs_Tile_Async_c(uplo,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zpotrs_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zpotrs_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsytrs_Tile_Async_c(uplo,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_zsytrs_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsytrs_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsytrs_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsymm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsytrs_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsytrs_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsymm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zsymm_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsymm_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsymm_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyr2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsymm_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsymm_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyr2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zsyr2k_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyr2k_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsyr2k_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zsyrk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyr2k_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsyr2k_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zsyrk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request) &
           & bind(c, name='CHAMELEON_zsyrk_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zsyrk_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: trans
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            complex(kind=c_double_complex), value :: beta
-            type(c_ptr), value :: C
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zsyrk_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrmm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zsyrk_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: trans
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       complex(kind=c_double_complex), value :: beta
+       type(c_ptr), value :: C
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zsyrk_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrmm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_ztrmm_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrmm_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_ztrmm_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrmm_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_ztrmm_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_ztrsm_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsm_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_ztrsm_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmpl_Tile_Async_c(A,L,IPIV,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsm_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_ztrsm_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmpl_Tile_Async_c(A,L,IPIV,B,sequence,request) &
           & bind(c, name='CHAMELEON_ztrsmpl_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmpl_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: L
-            type(c_ptr), value :: IPIV
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_ztrsmpl_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrsmrv_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmpl_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: L
+       type(c_ptr), value :: IPIV
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_ztrsmpl_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrsmrv_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request) &
           & bind(c, name='CHAMELEON_ztrsmrv_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrsmrv_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: transA
-            integer(kind=c_int), value :: diag
-            complex(kind=c_double_complex), value :: alpha
-            type(c_ptr), value :: A
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_ztrsmrv_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_ztrtri_Tile_Async_c(uplo,diag,A,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrsmrv_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: transA
+       integer(kind=c_int), value :: diag
+       complex(kind=c_double_complex), value :: alpha
+       type(c_ptr), value :: A
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_ztrsmrv_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_ztrtri_Tile_Async_c(uplo,diag,A,sequence,request) &
           & bind(c, name='CHAMELEON_ztrtri_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_ztrtri_Tile_Async_c
-            integer(kind=c_int), value :: uplo
-            integer(kind=c_int), value :: diag
-            type(c_ptr), value :: A
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_ztrtri_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zunglq_Tile_Async_c(A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_ztrtri_Tile_Async_c
+       integer(kind=c_int), value :: uplo
+       integer(kind=c_int), value :: diag
+       type(c_ptr), value :: A
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_ztrtri_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zunglq_Tile_Async_c(A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zunglq_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunglq_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zunglq_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zungqr_Tile_Async_c(A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunglq_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zunglq_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zungqr_Tile_Async_c(A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zungqr_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zungqr_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zungqr_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmlq_Tile_Async_c(side,trans,A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zungqr_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zungqr_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmlq_Tile_Async_c(side,trans,A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zunmlq_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmlq_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zunmlq_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_zunmqr_Tile_Async_c(side,trans,A,T,B,sequence,request) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmlq_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zunmlq_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_zunmqr_Tile_Async_c(side,trans,A,T,B,sequence,request) &
           & bind(c, name='CHAMELEON_zunmqr_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_zunmqr_Tile_Async_c
-            integer(kind=c_int), value :: side
-            integer(kind=c_int), value :: trans
-            type(c_ptr), value :: A
-            type(c_ptr), value :: T
-            type(c_ptr), value :: B
-            type(c_ptr), value :: sequence
-            type(c_ptr), value :: request
-          end function CHAMELEON_zunmqr_Tile_Async_c
-      end interface
-
-    !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-    !  FORTRAN API - workspace allocation
-    !
-      interface
-         function CHAMELEON_Alloc_Workspace_zgebrd_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_zunmqr_Tile_Async_c
+       integer(kind=c_int), value :: side
+       integer(kind=c_int), value :: trans
+       type(c_ptr), value :: A
+       type(c_ptr), value :: T
+       type(c_ptr), value :: B
+       type(c_ptr), value :: sequence
+       type(c_ptr), value :: request
+     end function CHAMELEON_zunmqr_Tile_Async_c
+  end interface
+
+  !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  !  FORTRAN API - workspace allocation
+  !
+  interface
+     function CHAMELEON_Alloc_Workspace_zgebrd_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgebrd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgebrd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgebrd_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgeev_c(N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgebrd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgebrd_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgeev_c(N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgeev')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeev_c
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgeev_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgehrd_c(N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeev_c
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgeev_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgehrd_c(N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgehrd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgehrd_c
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgehrd_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgelqf_c(M,N,T,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgehrd_c
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgehrd_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgelqf_c(M,N,T,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgelqf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgelqf_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: T ! T is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgelqf_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgelqf_Tile_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgelqf_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: T ! T is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgelqf_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgelqf_Tile_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgelqf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgelqf_Tile_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgelqf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgels_c(M,N,T,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgelqf_Tile_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgelqf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgels_c(M,N,T,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgels')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgels_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: T ! T is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgels_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgels_Tile_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgels_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: T ! T is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgels_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgels_Tile_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgels_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgels_Tile_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgels_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgeqrf_c(M,N,T,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgels_Tile_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgels_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgeqrf_c(M,N,T,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgeqrf')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeqrf_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: T ! T is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgeqrf_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeqrf_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: T ! T is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgeqrf_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgeqrf_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgesv_incpiv_c(N,descL,IPIV,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgesv_incpiv_c(N,descL,IPIV,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgesv_incpiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesv_incpiv_c
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descL ! descL is **, so pass by reference
-            type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgesv_incpiv_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c(N,descL,IPIV,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesv_incpiv_c
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descL ! descL is **, so pass by reference
+       type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgesv_incpiv_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c(N,descL,IPIV,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descL ! descL is **, so pass by reference
-            type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgesvd_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descL ! descL is **, so pass by reference
+       type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgesvd_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgesvd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesvd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgesvd_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c(M,N,descL,IPIV,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgesvd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgesvd_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c(M,N,descL,IPIV,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgetrf_incpiv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descL ! descL is **, so pass by reference
-            type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c(N,descL,IPIV,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descL ! descL is **, so pass by reference
+       type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c(N,descL,IPIV,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descL ! descL is **, so pass by reference
-            type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c(A,W) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descL ! descL is **, so pass by reference
+       type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c(A,W) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zgetri_Tile_Async')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c
-            type(c_ptr), value :: A
-            type(c_ptr), value :: W
-          end function CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zheev_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c
+       type(c_ptr), value :: A
+       type(c_ptr), value :: W
+     end function CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zheev_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zheev')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zheev_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zheev_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zheevd_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zheev_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zheev_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zheevd_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zheevd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zheevd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zheevd_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zhegv_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zheevd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zheevd_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zhegv_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zhegv')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhegv_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zhegv_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zhegvd_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhegv_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zhegv_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zhegvd_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zhegvd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhegvd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zhegvd_c
-      end interface
-
-      interface
-         function CHAMELEON_Alloc_Workspace_zhetrd_c(M,N,descT,p,q) &
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhegvd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zhegvd_c
+  end interface
+
+  interface
+     function CHAMELEON_Alloc_Workspace_zhetrd_c(M,N,descT,p,q) &
           & bind(c, name='CHAMELEON_Alloc_Workspace_zhetrd')
-            use iso_c_binding
-            implicit none
-            integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhetrd_c
-            integer(kind=c_int), value :: M
-            integer(kind=c_int), value :: N
-            type(c_ptr) :: descT ! descT is **, so pass by reference
-            integer(kind=c_int), value :: p
-            integer(kind=c_int), value :: q
-          end function CHAMELEON_Alloc_Workspace_zhetrd_c
-      end interface
-
-  contains
-
-       subroutine CHAMELEON_zgebrd(M,N,A,LDA,D,E,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgebrd_c(M,N,c_loc(A),LDA,c_loc(D),c_loc(E),T)
-      end subroutine CHAMELEON_zgebrd
-
-      subroutine CHAMELEON_zgelqf(M,N,A,LDA,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqf_c(M,N,c_loc(A),LDA,T)
-      end subroutine CHAMELEON_zgelqf
-
-      subroutine CHAMELEON_zgelqs(M,N,NRHS,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqs_c(M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zgelqs
-
-      subroutine CHAMELEON_zgels(trans,M,N,NRHS,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: trans
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgels_c(trans,M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zgels
-
-      subroutine CHAMELEON_zgemm(transA,transB,M,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: transB
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         info = CHAMELEON_zgemm_c(transA,transB,M,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zgemm
-
-      subroutine CHAMELEON_zgeqrf(M,N,A,LDA,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrf_c(M,N,c_loc(A),LDA,T)
-      end subroutine CHAMELEON_zgeqrf
-
-      subroutine CHAMELEON_zgeqrs(M,N,NRHS,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrs_c(M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zgeqrs
-
-      subroutine CHAMELEON_zgesv(N,NRHS,A,LDA,IPIV,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zgesv_c(N,NRHS,c_loc(A),LDA,c_loc(IPIV),c_loc(B),LDB)
-      end subroutine CHAMELEON_zgesv
-
-      subroutine CHAMELEON_zgesv_incpiv(N,NRHS,A,LDA,L,IPIV,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesv_incpiv_c(N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
-      end subroutine CHAMELEON_zgesv_incpiv
-
-      subroutine CHAMELEON_zgesvd(jobu,jobvt,M,N,A,LDA,S,U,LDU,VT,LDVT,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDU
-         integer(kind=c_int), intent(in) :: LDVT
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: jobu
-         integer(kind=c_int), intent(in) :: jobvt
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(out), target :: U(LDU,*)
-         complex(kind=c_double_complex), intent(out), target :: VT(LDVT,*)
-         real(kind=c_double), intent(out), target :: S(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesvd_c(jobu,jobvt,M,N,c_loc(A),LDA,c_loc(S),c_loc(U),LDU,c_loc(VT),LDVT,T)
-      end subroutine CHAMELEON_zgesvd
-
-      subroutine CHAMELEON_zgetrf(M,N,A,LDA,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zgetrf_c(M,N,c_loc(A),LDA,c_loc(IPIV))
-      end subroutine CHAMELEON_zgetrf
-
-      subroutine CHAMELEON_zgetrf_incpiv(M,N,A,LDA,L,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_incpiv_c(M,N,c_loc(A),LDA,L,IPIV)
-      end subroutine CHAMELEON_zgetrf_incpiv
-
-      subroutine CHAMELEON_zgetrf_nopiv(M,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zgetrf_nopiv_c(M,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_zgetrf_nopiv
-
-      subroutine CHAMELEON_zgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zgetrs_c(trans,N,NRHS,c_loc(A),LDA,c_loc(IPIV),c_loc(B),LDB)
-      end subroutine CHAMELEON_zgetrs
-
-      subroutine CHAMELEON_zgetrs_incpiv(trans,N,NRHS,A,LDA,L,IPIV,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: trans
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrs_incpiv_c(trans,N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
-      end subroutine CHAMELEON_zgetrs_incpiv
+       use iso_c_binding
+       implicit none
+       integer(kind=c_int) :: CHAMELEON_Alloc_Workspace_zhetrd_c
+       integer(kind=c_int), value :: M
+       integer(kind=c_int), value :: N
+       type(c_ptr) :: descT ! descT is **, so pass by reference
+       integer(kind=c_int), value :: p
+       integer(kind=c_int), value :: q
+     end function CHAMELEON_Alloc_Workspace_zhetrd_c
+  end interface
+
+contains
+
+  subroutine CHAMELEON_zgebrd(M,N,A,LDA,D,E,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgebrd_c(M,N,c_loc(A),LDA,c_loc(D),c_loc(E),T)
+  end subroutine CHAMELEON_zgebrd
+
+  subroutine CHAMELEON_zgelqf(M,N,A,LDA,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqf_c(M,N,c_loc(A),LDA,T)
+  end subroutine CHAMELEON_zgelqf
+
+  subroutine CHAMELEON_zgelqs(M,N,NRHS,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqs_c(M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zgelqs
+
+  subroutine CHAMELEON_zgels(trans,M,N,NRHS,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: trans
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgels_c(trans,M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zgels
+
+  subroutine CHAMELEON_zgemm(transA,transB,M,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: transB
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    info = CHAMELEON_zgemm_c(transA,transB,M,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zgemm
+
+  subroutine CHAMELEON_zgeqrf(M,N,A,LDA,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrf_c(M,N,c_loc(A),LDA,T)
+  end subroutine CHAMELEON_zgeqrf
+
+  subroutine CHAMELEON_zgeqrs(M,N,NRHS,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrs_c(M,N,NRHS,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zgeqrs
+
+  subroutine CHAMELEON_zgesv(N,NRHS,A,LDA,IPIV,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zgesv_c(N,NRHS,c_loc(A),LDA,c_loc(IPIV),c_loc(B),LDB)
+  end subroutine CHAMELEON_zgesv
+
+  subroutine CHAMELEON_zgesv_incpiv(N,NRHS,A,LDA,L,IPIV,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesv_incpiv_c(N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
+  end subroutine CHAMELEON_zgesv_incpiv
+
+  subroutine CHAMELEON_zgesvd(jobu,jobvt,M,N,A,LDA,S,U,LDU,VT,LDVT,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDU
+    integer(kind=c_int), intent(in) :: LDVT
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: jobu
+    integer(kind=c_int), intent(in) :: jobvt
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(out), target :: U(LDU,*)
+    complex(kind=c_double_complex), intent(out), target :: VT(LDVT,*)
+    real(kind=c_double), intent(out), target :: S(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesvd_c(jobu,jobvt,M,N,c_loc(A),LDA,c_loc(S),c_loc(U),LDU,c_loc(VT),LDVT,T)
+  end subroutine CHAMELEON_zgesvd
+
+  subroutine CHAMELEON_zgetrf(M,N,A,LDA,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zgetrf_c(M,N,c_loc(A),LDA,c_loc(IPIV))
+  end subroutine CHAMELEON_zgetrf
+
+  subroutine CHAMELEON_zgetrf_incpiv(M,N,A,LDA,L,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_incpiv_c(M,N,c_loc(A),LDA,L,IPIV)
+  end subroutine CHAMELEON_zgetrf_incpiv
+
+  subroutine CHAMELEON_zgetrf_nopiv(M,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zgetrf_nopiv_c(M,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_zgetrf_nopiv
+
+  subroutine CHAMELEON_zgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zgetrs_c(trans,N,NRHS,c_loc(A),LDA,c_loc(IPIV),c_loc(B),LDB)
+  end subroutine CHAMELEON_zgetrs
+
+  subroutine CHAMELEON_zgetrs_incpiv(trans,N,NRHS,A,LDA,L,IPIV,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: trans
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrs_incpiv_c(trans,N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
+  end subroutine CHAMELEON_zgetrs_incpiv
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zhemm(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         info = CHAMELEON_zhemm_c(side,uplo,M,N,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zhemm
-
-      subroutine CHAMELEON_zherk(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         real(kind=c_double), intent(in) :: alpha
-         real(kind=c_double), intent(in) :: beta
-         info = CHAMELEON_zherk_c(uplo,trans,N,K,alpha,c_loc(A),LDA,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zherk
-
-      subroutine CHAMELEON_zher2k(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         real(kind=c_double), intent(in) :: beta
-         info = CHAMELEON_zher2k_c(uplo,trans,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zher2k
+  subroutine CHAMELEON_zhemm(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    info = CHAMELEON_zhemm_c(side,uplo,M,N,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zhemm
+
+  subroutine CHAMELEON_zherk(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    real(kind=c_double), intent(in) :: alpha
+    real(kind=c_double), intent(in) :: beta
+    info = CHAMELEON_zherk_c(uplo,trans,N,K,alpha,c_loc(A),LDA,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zherk
+
+  subroutine CHAMELEON_zher2k(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    real(kind=c_double), intent(in) :: beta
+    info = CHAMELEON_zher2k_c(uplo,trans,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zher2k
 #endif
 
-      subroutine CHAMELEON_zheev(jobz,uplo,N,A,LDA,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDQ
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         real(kind=c_double), intent(out), target :: W(*)
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zheev_c(jobz,uplo,N,c_loc(A),LDA,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zheev
-
-      subroutine CHAMELEON_zheevd(jobz,uplo,N,A,LDA,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDQ
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         real(kind=c_double), intent(out), target :: W(*)
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zheevd_c(jobz,uplo,N,c_loc(A),LDA,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zheevd
-
-      subroutine CHAMELEON_zhegv(itype,jobz,uplo,N,A,LDA,B,LDB,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDQ
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         real(kind=c_double), intent(out), target :: W(*)
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegv_c(itype,jobz,uplo,N,c_loc(A),LDA,c_loc(B),LDB,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zhegv
-
-      subroutine CHAMELEON_zhegvd(itype,jobz,uplo,N,A,LDA,B,LDB,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDQ
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         real(kind=c_double), intent(out), target :: W(*)
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegvd_c(itype,jobz,uplo,N,c_loc(A),LDA,c_loc(B),LDB,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zhegvd
-
-      subroutine CHAMELEON_zhegst(itype,uplo,N,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zhegst_c(itype,uplo,N,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_zhegst
-
-      subroutine CHAMELEON_zhetrd(jobz,uplo,N,A,LDA,D,E,descT,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDQ
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: descT ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(inout), target :: Q(LDQ,*)
-         info = CHAMELEON_zhetrd_c(jobz,uplo,N,c_loc(A),LDA,c_loc(D),c_loc(E),descT,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zhetrd
-
-      function CHAMELEON_zlange(norm,M,N,A,LDA,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlange
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         CHAMELEON_zlange = CHAMELEON_zlange_c(norm,M,N,c_loc(A),LDA,c_loc(work))
-      end function CHAMELEON_zlange
+  subroutine CHAMELEON_zheev(jobz,uplo,N,A,LDA,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDQ
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    real(kind=c_double), intent(out), target :: W(*)
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zheev_c(jobz,uplo,N,c_loc(A),LDA,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zheev
+
+  subroutine CHAMELEON_zheevd(jobz,uplo,N,A,LDA,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDQ
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    real(kind=c_double), intent(out), target :: W(*)
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zheevd_c(jobz,uplo,N,c_loc(A),LDA,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zheevd
+
+  subroutine CHAMELEON_zhegv(itype,jobz,uplo,N,A,LDA,B,LDB,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDQ
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    real(kind=c_double), intent(out), target :: W(*)
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegv_c(itype,jobz,uplo,N,c_loc(A),LDA,c_loc(B),LDB,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zhegv
+
+  subroutine CHAMELEON_zhegvd(itype,jobz,uplo,N,A,LDA,B,LDB,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDQ
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    real(kind=c_double), intent(out), target :: W(*)
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegvd_c(itype,jobz,uplo,N,c_loc(A),LDA,c_loc(B),LDB,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zhegvd
+
+  subroutine CHAMELEON_zhegst(itype,uplo,N,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zhegst_c(itype,uplo,N,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_zhegst
+
+  subroutine CHAMELEON_zhetrd(jobz,uplo,N,A,LDA,D,E,descT,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDQ
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: descT ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(inout), target :: Q(LDQ,*)
+    info = CHAMELEON_zhetrd_c(jobz,uplo,N,c_loc(A),LDA,c_loc(D),c_loc(E),descT,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zhetrd
+
+  function CHAMELEON_zlange(norm,M,N,A,LDA,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlange
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    CHAMELEON_zlange = CHAMELEON_zlange_c(norm,M,N,c_loc(A),LDA,c_loc(work))
+  end function CHAMELEON_zlange
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      function CHAMELEON_zlanhe(norm,uplo,N,A,LDA,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlanhe
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         CHAMELEON_zlanhe = CHAMELEON_zlanhe_c(norm,uplo,N,c_loc(A),LDA,c_loc(work))
-      end function CHAMELEON_zlanhe
+  function CHAMELEON_zlanhe(norm,uplo,N,A,LDA,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlanhe
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    CHAMELEON_zlanhe = CHAMELEON_zlanhe_c(norm,uplo,N,c_loc(A),LDA,c_loc(work))
+  end function CHAMELEON_zlanhe
 #endif
 
-      function CHAMELEON_zlansy(norm,uplo,N,A,LDA,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlansy
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         CHAMELEON_zlansy = CHAMELEON_zlansy_c(norm,uplo,N,c_loc(A),LDA,c_loc(work))
-      end function CHAMELEON_zlansy
-
-      subroutine CHAMELEON_zlaswp(N,A,LDA,K1,K2,IPIV,INCX,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zlaswp_c(N,c_loc(A),LDA,K1,K2,c_loc(IPIV),INCX)
-      end subroutine CHAMELEON_zlaswp
-
-      subroutine CHAMELEON_zlauum(uplo,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zlauum_c(uplo,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_zlauum
+  function CHAMELEON_zlansy(norm,uplo,N,A,LDA,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlansy
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    CHAMELEON_zlansy = CHAMELEON_zlansy_c(norm,uplo,N,c_loc(A),LDA,c_loc(work))
+  end function CHAMELEON_zlansy
+
+  subroutine CHAMELEON_zlaswp(N,A,LDA,K1,K2,IPIV,INCX,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zlaswp_c(N,c_loc(A),LDA,K1,K2,c_loc(IPIV),INCX)
+  end subroutine CHAMELEON_zlaswp
+
+  subroutine CHAMELEON_zlauum(uplo,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zlauum_c(uplo,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_zlauum
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zplghe(bump,uplo,N,A,LDA,seed,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_long_long), intent(in) :: seed
-         complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
-         info = CHAMELEON_zplghe_c(bump,N,c_loc(A),LDA,seed)
-       end subroutine CHAMELEON_zplghe
+  subroutine CHAMELEON_zplghe(bump,uplo,N,A,LDA,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_long_long), intent(in) :: seed
+    complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
+    info = CHAMELEON_zplghe_c(bump,N,c_loc(A),LDA,seed)
+  end subroutine CHAMELEON_zplghe
 #endif
 
-      subroutine CHAMELEON_zplgsy(bump,uplo,N,A,LDA,seed,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_long_long), intent(in) :: seed
-         complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
-         info = CHAMELEON_zplgsy_c(bump,N,c_loc(A),LDA,seed)
-      end subroutine CHAMELEON_zplgsy
-       
-      subroutine CHAMELEON_zplrnt(M,N,A,LDA,seed,info) 
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_long_long), intent(in) :: seed
-         complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
-         info = CHAMELEON_zplrnt_c(M,N,c_loc(A),LDA,seed)
-      end subroutine CHAMELEON_zplrnt
-       
-      subroutine CHAMELEON_zposv(uplo,N,NRHS,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zposv_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_zposv
-
-      subroutine CHAMELEON_zpotrf(uplo,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zpotrf_c(uplo,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_zpotrf
-
-      subroutine CHAMELEON_zsytrf(uplo,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zsytrf_c(uplo,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_zsytrf
-
-      subroutine CHAMELEON_zpotri(uplo,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zpotri_c(uplo,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_zpotri
-
-      subroutine CHAMELEON_zpotrs(uplo,N,NRHS,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zpotrs_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_zpotrs
-
-      subroutine CHAMELEON_zsytrs(uplo,N,NRHS,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zsytrs_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_zsytrs
-
-      subroutine CHAMELEON_zsymm(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         info = CHAMELEON_zsymm_c(side,uplo,M,N,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zsymm
-
-      subroutine CHAMELEON_zsyrk(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         info = CHAMELEON_zsyrk_c(uplo,trans,N,K,alpha,c_loc(A),LDA,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zsyrk
-
-      subroutine CHAMELEON_zsyr2k(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: LDC
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
-         complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
-         info = CHAMELEON_zsyr2k_c(uplo,trans,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
-      end subroutine CHAMELEON_zsyr2k
-
-      subroutine CHAMELEON_ztrmm(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_ztrmm_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_ztrmm
-
-      subroutine CHAMELEON_ztrsm(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_ztrsm_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_ztrsm
-
-      subroutine CHAMELEON_ztrsmpl(N,NRHS,A,LDA,L,IPIV,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_ztrsmpl_c(N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
-      end subroutine CHAMELEON_ztrsmpl
-
-      subroutine CHAMELEON_ztrtri(uplo,diag,N,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_ztrtri_c(uplo,diag,N,c_loc(A),LDA)
-      end subroutine CHAMELEON_ztrtri
-
-      subroutine CHAMELEON_zunglq(M,N,K,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
-         info = CHAMELEON_zunglq_c(M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zunglq
-
-      subroutine CHAMELEON_zungqr(M,N,K,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
-         info = CHAMELEON_zungqr_c(M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zungqr
-
-      subroutine CHAMELEON_zunmlq(side,trans,M,N,K,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zunmlq_c(side,trans,M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zunmlq
-
-      subroutine CHAMELEON_zunmqr(side,trans,M,N,K,A,LDA,T,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in) :: K
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_zunmqr_c(side,trans,M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
-      end subroutine CHAMELEON_zunmqr
-
-      subroutine CHAMELEON_zgecfi(m,n,A,fin,imb,inb,fout,omb,onb,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(inout), target :: A(*)
-         integer(kind=c_int), intent(in) :: fin
-         integer(kind=c_int), intent(in) :: fout
-         integer(kind=c_int), intent(in) :: imb
-         integer(kind=c_int), intent(in) :: inb
-         integer(kind=c_int), intent(in) :: omb
-         integer(kind=c_int), intent(in) :: onb
-         integer(kind=c_int), intent(in) :: m
-         integer(kind=c_int), intent(in) :: n
-         info = CHAMELEON_zgecfi_c(m,n,c_loc(A),fin,imb,inb,fout,omb,onb)
-      end subroutine CHAMELEON_zgecfi
-
-      subroutine CHAMELEON_zgetmi(m,n,A,fin,mb,nb,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(inout), target :: A(*)
-         integer(kind=c_int), intent(in) :: fin
-         integer(kind=c_int), intent(in) :: mb
-         integer(kind=c_int), intent(in) :: nb
-         integer(kind=c_int), intent(in) :: m
-         integer(kind=c_int), intent(in) :: n
-         info = CHAMELEON_zgetmi_c(m,n,c_loc(A),fin,mb,nb)
-      end subroutine CHAMELEON_zgetmi
-
-      subroutine CHAMELEON_zgetri(N,A,LDA,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zgetri_c(N,c_loc(A),LDA,c_loc(IPIV))
-      end subroutine CHAMELEON_zgetri
-
-      subroutine CHAMELEON_zlacpy(uplo,M,N,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
-         info = CHAMELEON_zlacpy_c(uplo,M,N,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_zlacpy
-
-      subroutine CHAMELEON_zlaset(uplo,M,N,alpha,beta,A,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zlaset_c(uplo,M,N,alpha,beta,c_loc(A),LDA)
-      end subroutine CHAMELEON_zlaset
-
-      subroutine CHAMELEON_zlaswpc(N,A,LDA,K1,K2,IPIV,INCX,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: N
-         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
-         info = CHAMELEON_zlaswpc_c(N,c_loc(A),LDA,K1,K2,c_loc(IPIV),INCX)
-      end subroutine CHAMELEON_zlaswpc
-
-      subroutine CHAMELEON_ztrsmrv(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDA
-         integer(kind=c_int), intent(in) :: LDB
-         integer(kind=c_int), intent(in) :: N
-         integer(kind=c_int), intent(in) :: NRHS
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
-         complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
-         info = CHAMELEON_ztrsmrv_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
-      end subroutine CHAMELEON_ztrsmrv
-
-      subroutine CHAMELEON_zgebrd_Tile(A,D,E,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgebrd_Tile_c(A,c_loc(D),c_loc(E),T)
-      end subroutine CHAMELEON_zgebrd_Tile
-
-      subroutine CHAMELEON_zgelqf_Tile(A,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqf_Tile_c(A,T)
-      end subroutine CHAMELEON_zgelqf_Tile
-
-      subroutine CHAMELEON_zgelqs_Tile(A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqs_Tile_c(A,T,B)
-      end subroutine CHAMELEON_zgelqs_Tile
-
-      subroutine CHAMELEON_zgels_Tile(trans,A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgels_Tile_c(trans,A,T,B)
-      end subroutine CHAMELEON_zgels_Tile
-
-      subroutine CHAMELEON_zgemm_Tile(transA,transB,alpha,A,B,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: transB
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgemm_Tile_c(transA,transB,alpha,A,B,beta,C)
-      end subroutine CHAMELEON_zgemm_Tile
-
-      subroutine CHAMELEON_zgeqrf_Tile(A,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrf_Tile_c(A,T)
-      end subroutine CHAMELEON_zgeqrf_Tile
-
-      subroutine CHAMELEON_zgeqrs_Tile(A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrs_Tile_c(A,T,B)
-      end subroutine CHAMELEON_zgeqrs_Tile
-
-      subroutine CHAMELEON_zgesv_Tile(A,IPIV,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesv_Tile_c(A,c_loc(IPIV),B)
-      end subroutine CHAMELEON_zgesv_Tile
-
-      subroutine CHAMELEON_zgesv_incpiv_Tile(A,L,IPIV,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesv_incpiv_Tile_c(A,L,IPIV,B)
-      end subroutine CHAMELEON_zgesv_incpiv_Tile
-
-      subroutine CHAMELEON_zgesvd_Tile(jobu,jobvt,A,S,U,VT,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobu
-         integer(kind=c_int), intent(in) :: jobvt
-         real(kind=c_double), intent(out), target :: S(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: U ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: VT ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesvd_Tile_c(jobu,jobvt,A,c_loc(S),U,VT,T)
-      end subroutine CHAMELEON_zgesvd_Tile
-
-      subroutine CHAMELEON_zgetrf_Tile(A,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_Tile_c(A,c_loc(IPIV))
-      end subroutine CHAMELEON_zgetrf_Tile
-
-      subroutine CHAMELEON_zgetrf_incpiv_Tile(A,L,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_incpiv_Tile_c(A,L,IPIV)
-      end subroutine CHAMELEON_zgetrf_incpiv_Tile
-
-      subroutine CHAMELEON_zgetrf_nopiv_Tile(A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_nopiv_Tile_c(A)
-      end subroutine CHAMELEON_zgetrf_nopiv_Tile
-
-      subroutine CHAMELEON_zgetrs_Tile(trans,A,IPIV,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrs_Tile_c(trans,A,c_loc(IPIV),B)
-      end subroutine CHAMELEON_zgetrs_Tile
-
-      subroutine CHAMELEON_zgetrs_incpiv_Tile(A,L,IPIV,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrs_incpiv_Tile_c(A,L,IPIV,B)
-      end subroutine CHAMELEON_zgetrs_incpiv_Tile
+  subroutine CHAMELEON_zplgsy(bump,uplo,N,A,LDA,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_long_long), intent(in) :: seed
+    complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
+    info = CHAMELEON_zplgsy_c(bump,N,c_loc(A),LDA,seed)
+  end subroutine CHAMELEON_zplgsy
+
+  subroutine CHAMELEON_zplrnt(M,N,A,LDA,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_long_long), intent(in) :: seed
+    complex(kind=c_double_complex), intent(out), target :: A(LDA,*)
+    info = CHAMELEON_zplrnt_c(M,N,c_loc(A),LDA,seed)
+  end subroutine CHAMELEON_zplrnt
+
+  subroutine CHAMELEON_zposv(uplo,N,NRHS,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zposv_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_zposv
+
+  subroutine CHAMELEON_zpotrf(uplo,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zpotrf_c(uplo,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_zpotrf
+
+  subroutine CHAMELEON_zsytrf(uplo,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zsytrf_c(uplo,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_zsytrf
+
+  subroutine CHAMELEON_zpotri(uplo,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zpotri_c(uplo,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_zpotri
+
+  subroutine CHAMELEON_zpotrs(uplo,N,NRHS,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zpotrs_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_zpotrs
+
+  subroutine CHAMELEON_zsytrs(uplo,N,NRHS,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zsytrs_c(uplo,N,NRHS,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_zsytrs
+
+  subroutine CHAMELEON_zsymm(side,uplo,M,N,alpha,A,LDA,B,LDB,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    info = CHAMELEON_zsymm_c(side,uplo,M,N,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zsymm
+
+  subroutine CHAMELEON_zsyrk(uplo,trans,N,K,alpha,A,LDA,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    info = CHAMELEON_zsyrk_c(uplo,trans,N,K,alpha,c_loc(A),LDA,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zsyrk
+
+  subroutine CHAMELEON_zsyr2k(uplo,trans,N,K,alpha,A,LDA,B,LDB,beta,C,LDC,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: LDC
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(in), target :: B(LDB,*)
+    complex(kind=c_double_complex), intent(inout), target :: C(LDC,*)
+    info = CHAMELEON_zsyr2k_c(uplo,trans,N,K,alpha,c_loc(A),LDA,c_loc(B),LDB,beta,c_loc(C),LDC)
+  end subroutine CHAMELEON_zsyr2k
+
+  subroutine CHAMELEON_ztrmm(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_ztrmm_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_ztrmm
+
+  subroutine CHAMELEON_ztrsm(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_ztrsm_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_ztrsm
+
+  subroutine CHAMELEON_ztrsmpl(N,NRHS,A,LDA,L,IPIV,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    type(c_ptr), value :: L    ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_ztrsmpl_c(N,NRHS,c_loc(A),LDA,L,IPIV,c_loc(B),LDB)
+  end subroutine CHAMELEON_ztrsmpl
+
+  subroutine CHAMELEON_ztrtri(uplo,diag,N,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_ztrtri_c(uplo,diag,N,c_loc(A),LDA)
+  end subroutine CHAMELEON_ztrtri
+
+  subroutine CHAMELEON_zunglq(M,N,K,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
+    info = CHAMELEON_zunglq_c(M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zunglq
+
+  subroutine CHAMELEON_zungqr(M,N,K,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
+    info = CHAMELEON_zungqr_c(M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zungqr
+
+  subroutine CHAMELEON_zunmlq(side,trans,M,N,K,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zunmlq_c(side,trans,M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zunmlq
+
+  subroutine CHAMELEON_zunmqr(side,trans,M,N,K,A,LDA,T,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in) :: K
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_zunmqr_c(side,trans,M,N,K,c_loc(A),LDA,T,c_loc(B),LDB)
+  end subroutine CHAMELEON_zunmqr
+
+  subroutine CHAMELEON_zgecfi(m,n,A,fin,imb,inb,fout,omb,onb,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(inout), target :: A(*)
+    integer(kind=c_int), intent(in) :: fin
+    integer(kind=c_int), intent(in) :: fout
+    integer(kind=c_int), intent(in) :: imb
+    integer(kind=c_int), intent(in) :: inb
+    integer(kind=c_int), intent(in) :: omb
+    integer(kind=c_int), intent(in) :: onb
+    integer(kind=c_int), intent(in) :: m
+    integer(kind=c_int), intent(in) :: n
+    info = CHAMELEON_zgecfi_c(m,n,c_loc(A),fin,imb,inb,fout,omb,onb)
+  end subroutine CHAMELEON_zgecfi
+
+  subroutine CHAMELEON_zgetmi(m,n,A,fin,mb,nb,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(inout), target :: A(*)
+    integer(kind=c_int), intent(in) :: fin
+    integer(kind=c_int), intent(in) :: mb
+    integer(kind=c_int), intent(in) :: nb
+    integer(kind=c_int), intent(in) :: m
+    integer(kind=c_int), intent(in) :: n
+    info = CHAMELEON_zgetmi_c(m,n,c_loc(A),fin,mb,nb)
+  end subroutine CHAMELEON_zgetmi
+
+  subroutine CHAMELEON_zgetri(N,A,LDA,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zgetri_c(N,c_loc(A),LDA,c_loc(IPIV))
+  end subroutine CHAMELEON_zgetri
+
+  subroutine CHAMELEON_zlacpy(uplo,M,N,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(out), target :: B(LDB,*)
+    info = CHAMELEON_zlacpy_c(uplo,M,N,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_zlacpy
+
+  subroutine CHAMELEON_zlaset(uplo,M,N,alpha,beta,A,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zlaset_c(uplo,M,N,alpha,beta,c_loc(A),LDA)
+  end subroutine CHAMELEON_zlaset
+
+  subroutine CHAMELEON_zlaswpc(N,A,LDA,K1,K2,IPIV,INCX,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: N
+    complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+    info = CHAMELEON_zlaswpc_c(N,c_loc(A),LDA,K1,K2,c_loc(IPIV),INCX)
+  end subroutine CHAMELEON_zlaswpc
+
+  subroutine CHAMELEON_ztrsmrv(side,uplo,transA,diag,N,NRHS,alpha,A,LDA,B,LDB,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDA
+    integer(kind=c_int), intent(in) :: LDB
+    integer(kind=c_int), intent(in) :: N
+    integer(kind=c_int), intent(in) :: NRHS
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in), target :: A(LDA,*)
+    complex(kind=c_double_complex), intent(inout), target :: B(LDB,*)
+    info = CHAMELEON_ztrsmrv_c(side,uplo,transA,diag,N,NRHS,alpha,c_loc(A),LDA,c_loc(B),LDB)
+  end subroutine CHAMELEON_ztrsmrv
+
+  subroutine CHAMELEON_zgebrd_Tile(A,D,E,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgebrd_Tile_c(A,c_loc(D),c_loc(E),T)
+  end subroutine CHAMELEON_zgebrd_Tile
+
+  subroutine CHAMELEON_zgelqf_Tile(A,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqf_Tile_c(A,T)
+  end subroutine CHAMELEON_zgelqf_Tile
+
+  subroutine CHAMELEON_zgelqs_Tile(A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqs_Tile_c(A,T,B)
+  end subroutine CHAMELEON_zgelqs_Tile
+
+  subroutine CHAMELEON_zgels_Tile(trans,A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgels_Tile_c(trans,A,T,B)
+  end subroutine CHAMELEON_zgels_Tile
+
+  subroutine CHAMELEON_zgemm_Tile(transA,transB,alpha,A,B,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: transB
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgemm_Tile_c(transA,transB,alpha,A,B,beta,C)
+  end subroutine CHAMELEON_zgemm_Tile
+
+  subroutine CHAMELEON_zgeqrf_Tile(A,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrf_Tile_c(A,T)
+  end subroutine CHAMELEON_zgeqrf_Tile
+
+  subroutine CHAMELEON_zgeqrs_Tile(A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrs_Tile_c(A,T,B)
+  end subroutine CHAMELEON_zgeqrs_Tile
+
+  subroutine CHAMELEON_zgesv_Tile(A,IPIV,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesv_Tile_c(A,c_loc(IPIV),B)
+  end subroutine CHAMELEON_zgesv_Tile
+
+  subroutine CHAMELEON_zgesv_incpiv_Tile(A,L,IPIV,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesv_incpiv_Tile_c(A,L,IPIV,B)
+  end subroutine CHAMELEON_zgesv_incpiv_Tile
+
+  subroutine CHAMELEON_zgesvd_Tile(jobu,jobvt,A,S,U,VT,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobu
+    integer(kind=c_int), intent(in) :: jobvt
+    real(kind=c_double), intent(out), target :: S(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: U ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: VT ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesvd_Tile_c(jobu,jobvt,A,c_loc(S),U,VT,T)
+  end subroutine CHAMELEON_zgesvd_Tile
+
+  subroutine CHAMELEON_zgetrf_Tile(A,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_Tile_c(A,c_loc(IPIV))
+  end subroutine CHAMELEON_zgetrf_Tile
+
+  subroutine CHAMELEON_zgetrf_incpiv_Tile(A,L,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_incpiv_Tile_c(A,L,IPIV)
+  end subroutine CHAMELEON_zgetrf_incpiv_Tile
+
+  subroutine CHAMELEON_zgetrf_nopiv_Tile(A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_nopiv_Tile_c(A)
+  end subroutine CHAMELEON_zgetrf_nopiv_Tile
+
+  subroutine CHAMELEON_zgetrs_Tile(trans,A,IPIV,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrs_Tile_c(trans,A,c_loc(IPIV),B)
+  end subroutine CHAMELEON_zgetrs_Tile
+
+  subroutine CHAMELEON_zgetrs_incpiv_Tile(A,L,IPIV,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrs_incpiv_Tile_c(A,L,IPIV,B)
+  end subroutine CHAMELEON_zgetrs_incpiv_Tile
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zhemm_Tile(side,uplo,alpha,A,B,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhemm_Tile_c(side,uplo,alpha,A,B,beta,C)
-      end subroutine CHAMELEON_zhemm_Tile
-
-      subroutine CHAMELEON_zherk_Tile(uplo,trans,alpha,A,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(in) :: alpha
-         real(kind=c_double), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zherk_Tile_c(uplo,trans,alpha,A,beta,C)
-      end subroutine CHAMELEON_zherk_Tile
-
-      subroutine CHAMELEON_zher2k_Tile(uplo,trans,alpha,A,B,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         real(kind=c_double), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zher2k_Tile_c(uplo,trans,alpha,A,B,beta,C)
-      end subroutine CHAMELEON_zher2k_Tile
+  subroutine CHAMELEON_zhemm_Tile(side,uplo,alpha,A,B,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhemm_Tile_c(side,uplo,alpha,A,B,beta,C)
+  end subroutine CHAMELEON_zhemm_Tile
+
+  subroutine CHAMELEON_zherk_Tile(uplo,trans,alpha,A,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(in) :: alpha
+    real(kind=c_double), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zherk_Tile_c(uplo,trans,alpha,A,beta,C)
+  end subroutine CHAMELEON_zherk_Tile
+
+  subroutine CHAMELEON_zher2k_Tile(uplo,trans,alpha,A,B,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    real(kind=c_double), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zher2k_Tile_c(uplo,trans,alpha,A,B,beta,C)
+  end subroutine CHAMELEON_zher2k_Tile
 #endif
 
-      subroutine CHAMELEON_zheev_Tile(jobz,uplo,A,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         info = CHAMELEON_zheev_Tile_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zheev_Tile
-
-      subroutine CHAMELEON_zheevd_Tile(jobz,uplo,A,W,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         info = CHAMELEON_zheevd_Tile_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zheevd_Tile
-
-      subroutine CHAMELEON_zhegv_Tile(itype,jobz,uplo,A,B,W,T,Q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegv_Tile_c(itype,jobz,uplo,A,B,c_loc(W),T,Q)
-      end subroutine CHAMELEON_zhegv_Tile
-
-      subroutine CHAMELEON_zhegvd_Tile(itype,jobz,uplo,A,B,W,T,Q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegvd_Tile_c(itype,jobz,uplo,A,B,c_loc(W),T,Q)
-      end subroutine CHAMELEON_zhegvd_Tile
-
-      subroutine CHAMELEON_zhegst_Tile(itype,uplo,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegst_Tile_c(itype,uplo,A,B)
-      end subroutine CHAMELEON_zhegst_Tile
-
-      subroutine CHAMELEON_zhetrd_Tile(jobz,uplo,A,D,E,T,Q,LDQ,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
-         info = CHAMELEON_zhetrd_Tile_c(jobz,uplo,A,c_loc(D),c_loc(E),T,c_loc(Q),LDQ)
-      end subroutine CHAMELEON_zhetrd_Tile
-
-      function CHAMELEON_zlange_Tile(norm,A,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlange_Tile
-         integer(kind=c_int), intent(in) :: norm
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         real(kind=c_double), intent(inout), target :: work(*)
-         CHAMELEON_zlange_Tile = CHAMELEON_zlange_Tile_c(norm,A,c_loc(work))
-       end function CHAMELEON_zlange_Tile
+  subroutine CHAMELEON_zheev_Tile(jobz,uplo,A,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    info = CHAMELEON_zheev_Tile_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zheev_Tile
+
+  subroutine CHAMELEON_zheevd_Tile(jobz,uplo,A,W,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    info = CHAMELEON_zheevd_Tile_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zheevd_Tile
+
+  subroutine CHAMELEON_zhegv_Tile(itype,jobz,uplo,A,B,W,T,Q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegv_Tile_c(itype,jobz,uplo,A,B,c_loc(W),T,Q)
+  end subroutine CHAMELEON_zhegv_Tile
+
+  subroutine CHAMELEON_zhegvd_Tile(itype,jobz,uplo,A,B,W,T,Q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegvd_Tile_c(itype,jobz,uplo,A,B,c_loc(W),T,Q)
+  end subroutine CHAMELEON_zhegvd_Tile
+
+  subroutine CHAMELEON_zhegst_Tile(itype,uplo,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegst_Tile_c(itype,uplo,A,B)
+  end subroutine CHAMELEON_zhegst_Tile
+
+  subroutine CHAMELEON_zhetrd_Tile(jobz,uplo,A,D,E,T,Q,LDQ,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ,*)
+    info = CHAMELEON_zhetrd_Tile_c(jobz,uplo,A,c_loc(D),c_loc(E),T,c_loc(Q),LDQ)
+  end subroutine CHAMELEON_zhetrd_Tile
+
+  function CHAMELEON_zlange_Tile(norm,A,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlange_Tile
+    integer(kind=c_int), intent(in) :: norm
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    real(kind=c_double), intent(inout), target :: work(*)
+    CHAMELEON_zlange_Tile = CHAMELEON_zlange_Tile_c(norm,A,c_loc(work))
+  end function CHAMELEON_zlange_Tile
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      function CHAMELEON_zlanhe_Tile(norm,uplo,A,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlanhe_Tile
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         CHAMELEON_zlanhe_Tile = CHAMELEON_zlanhe_Tile_c(norm,uplo,A,c_loc(work))
-      end function CHAMELEON_zlanhe_Tile
+  function CHAMELEON_zlanhe_Tile(norm,uplo,A,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlanhe_Tile
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    CHAMELEON_zlanhe_Tile = CHAMELEON_zlanhe_Tile_c(norm,uplo,A,c_loc(work))
+  end function CHAMELEON_zlanhe_Tile
 #endif
 
-      function CHAMELEON_zlansy_Tile(norm,uplo,A,work)
-         use iso_c_binding
-         implicit none
-         real(kind=c_double) :: CHAMELEON_zlansy_Tile
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         CHAMELEON_zlansy_Tile = CHAMELEON_zlansy_Tile_c(norm,uplo,A,c_loc(work))
-      end function CHAMELEON_zlansy_Tile
-
-      subroutine CHAMELEON_zlaswp_Tile(A,K1,K2,IPIV,INCX,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaswp_Tile_c(A,K1,K2,c_loc(IPIV),INCX)
-      end subroutine CHAMELEON_zlaswp_Tile
-
-      subroutine CHAMELEON_zlauum_Tile(uplo,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlauum_Tile_c(uplo,A)
-      end subroutine CHAMELEON_zlauum_Tile
+  function CHAMELEON_zlansy_Tile(norm,uplo,A,work)
+    use iso_c_binding
+    implicit none
+    real(kind=c_double) :: CHAMELEON_zlansy_Tile
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    CHAMELEON_zlansy_Tile = CHAMELEON_zlansy_Tile_c(norm,uplo,A,c_loc(work))
+  end function CHAMELEON_zlansy_Tile
+
+  subroutine CHAMELEON_zlaswp_Tile(A,K1,K2,IPIV,INCX,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaswp_Tile_c(A,K1,K2,c_loc(IPIV),INCX)
+  end subroutine CHAMELEON_zlaswp_Tile
+
+  subroutine CHAMELEON_zlauum_Tile(uplo,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlauum_Tile_c(uplo,A)
+  end subroutine CHAMELEON_zlauum_Tile
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zplghe_Tile(bump,uplo,A,seed,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplghe_Tile_c(bump,A,seed)
-      end subroutine CHAMELEON_zplghe_Tile
+  subroutine CHAMELEON_zplghe_Tile(bump,uplo,A,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplghe_Tile_c(bump,A,seed)
+  end subroutine CHAMELEON_zplghe_Tile
 #endif
 
-      subroutine CHAMELEON_zplgsy_Tile(bump,uplo,A,seed,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplgsy_Tile_c(bump,A,seed)
-      end subroutine CHAMELEON_zplgsy_Tile
-       
-      subroutine CHAMELEON_zplrnt_Tile(A,seed,info) 
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplrnt_Tile_c(A,seed)
-      end subroutine CHAMELEON_zplrnt_Tile
-       
-      subroutine CHAMELEON_zposv_Tile(uplo,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zposv_Tile_c(uplo,A,B)
-      end subroutine CHAMELEON_zposv_Tile
-
-      subroutine CHAMELEON_zpotrf_Tile(uplo,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotrf_Tile_c(uplo,A)
-      end subroutine CHAMELEON_zpotrf_Tile
-
-      subroutine CHAMELEON_zsytrf_Tile(uplo,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsytrf_Tile_c(uplo,A)
-      end subroutine CHAMELEON_zsytrf_Tile
-
-      subroutine CHAMELEON_zpotri_Tile(uplo,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotri_Tile_c(uplo,A)
-      end subroutine CHAMELEON_zpotri_Tile
-
-      subroutine CHAMELEON_zpotrs_Tile(uplo,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotrs_Tile_c(uplo,A,B)
-      end subroutine CHAMELEON_zpotrs_Tile
-
-      subroutine CHAMELEON_zsytrs_Tile(uplo,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsytrs_Tile_c(uplo,A,B)
-      end subroutine CHAMELEON_zsytrs_Tile
-
-      subroutine CHAMELEON_zsymm_Tile(side,uplo,alpha,A,B,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsymm_Tile_c(side,uplo,alpha,A,B,beta,C)
-      end subroutine CHAMELEON_zsymm_Tile
-
-      subroutine CHAMELEON_zsyrk_Tile(uplo,trans,alpha,A,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsyrk_Tile_c(uplo,trans,alpha,A,beta,C)
-      end subroutine CHAMELEON_zsyrk_Tile
-
-      subroutine CHAMELEON_zsyr2k_Tile(uplo,trans,alpha,A,B,beta,C,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsyr2k_Tile_c(uplo,trans,alpha,A,B,beta,C)
-      end subroutine CHAMELEON_zsyr2k_Tile
-
-      subroutine CHAMELEON_ztrmm_Tile(side,uplo,transA,diag,alpha,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrmm_Tile_c(side,uplo,transA,diag,alpha,A,B)
-      end subroutine CHAMELEON_ztrmm_Tile
-
-      subroutine CHAMELEON_ztrsm_Tile(side,uplo,transA,diag,alpha,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsm_Tile_c(side,uplo,transA,diag,alpha,A,B)
-      end subroutine CHAMELEON_ztrsm_Tile
-
-      subroutine CHAMELEON_ztrsmpl_Tile(A,L,IPIV,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsmpl_Tile_c(A,L,IPIV,B)
-      end subroutine CHAMELEON_ztrsmpl_Tile
-
-      subroutine CHAMELEON_ztrtri_Tile(uplo,diag,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrtri_Tile_c(uplo,diag,A)
-      end subroutine CHAMELEON_ztrtri_Tile
-
-      subroutine CHAMELEON_zunglq_Tile(A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunglq_Tile_c(A,T,B)
-      end subroutine CHAMELEON_zunglq_Tile
-
-      subroutine CHAMELEON_zungqr_Tile(A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zungqr_Tile_c(A,T,B)
-      end subroutine CHAMELEON_zungqr_Tile
-
-      subroutine CHAMELEON_zunmlq_Tile(side,trans,A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunmlq_Tile_c(side,trans,A,T,B)
-      end subroutine CHAMELEON_zunmlq_Tile
-
-      subroutine CHAMELEON_zunmqr_Tile(side,trans,A,T,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunmqr_Tile_c(side,trans,A,T,B)
-      end subroutine CHAMELEON_zunmqr_Tile
-
-      subroutine CHAMELEON_zgetri_Tile(A,IPIV,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetri_Tile_c(A,c_loc(IPIV))
-      end subroutine CHAMELEON_zgetri_Tile
-
-      subroutine CHAMELEON_zlacpy_Tile(uplo,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlacpy_Tile_c(uplo,A,B)
-      end subroutine CHAMELEON_zlacpy_Tile
-
-      subroutine CHAMELEON_zlaset_Tile(uplo,alpha,beta,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaset_Tile_c(uplo,alpha,beta,A)
-      end subroutine CHAMELEON_zlaset_Tile
-
-      subroutine CHAMELEON_zlaswpc_Tile(A,K1,K2,IPIV,INCX,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaswpc_Tile_c(A,K1,K2,c_loc(IPIV),INCX)
-      end subroutine CHAMELEON_zlaswpc_Tile
-
-      subroutine CHAMELEON_ztrsmrv_Tile(side,uplo,transA,diag,alpha,A,B,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsmrv_Tile_c(side,uplo,transA,diag,alpha,A,B)
-      end subroutine CHAMELEON_ztrsmrv_Tile
-
-      subroutine CHAMELEON_zgetri_Tile_Async(A,IPIV,W,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: W ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetri_Tile_Async_c(A,c_loc(IPIV),W,sequence,request)
-      end subroutine CHAMELEON_zgetri_Tile_Async
-
-      subroutine CHAMELEON_zlange_Tile_Async(norm,A,work,value,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int) :: info
-         real(kind=c_double), intent(out), target :: value
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlange_Tile_Async_c(norm,A,c_loc(work),c_loc(value),sequence,request)
-      end subroutine CHAMELEON_zlange_Tile_Async
-
-      subroutine CHAMELEON_zlansy_Tile_Async(norm,uplo,A,work,value,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int) :: info
-         real(kind=c_double), intent(out), target :: value
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlansy_Tile_Async_c(norm,uplo,A,c_loc(work),c_loc(value),sequence,request)
-      end subroutine CHAMELEON_zlansy_Tile_Async
-
-      subroutine CHAMELEON_zgebrd_Tile_Async(A,D,E,T,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgebrd_Tile_Async_c(A,c_loc(D),c_loc(E),T,sequence,request)
-      end subroutine CHAMELEON_zgebrd_Tile_Async
-
-      subroutine CHAMELEON_zgecfi_Async(m,n,A,fin,imb,inb,fout,omb,onb,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(inout), target :: A(*)
-         integer(kind=c_int), intent(in) :: fin
-         integer(kind=c_int), intent(in) :: fout
-         integer(kind=c_int), intent(in) :: imb
-         integer(kind=c_int), intent(in) :: inb
-         integer(kind=c_int), intent(in) :: omb
-         integer(kind=c_int), intent(in) :: onb
-         integer(kind=c_int), intent(in) :: m
-         integer(kind=c_int), intent(in) :: n
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgecfi_Async_c(m,n,c_loc(A),fin,imb,inb,fout,omb,onb,sequence,request)
-      end subroutine CHAMELEON_zgecfi_Async
-
-      subroutine CHAMELEON_zgelqf_Tile_Async(A,T,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqf_Tile_Async_c(A,T,sequence,request)
-      end subroutine CHAMELEON_zgelqf_Tile_Async
-
-      subroutine CHAMELEON_zgelqs_Tile_Async(A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgelqs_Tile_Async_c(A,T,B,sequence,request)
-      end subroutine CHAMELEON_zgelqs_Tile_Async
-
-      subroutine CHAMELEON_zgels_Tile_Async(trans,A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgels_Tile_Async_c(trans,A,T,B,sequence,request)
-      end subroutine CHAMELEON_zgels_Tile_Async
-
-      subroutine CHAMELEON_zgemm_Tile_Async(transA,transB,alpha,A,B,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: transB
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgemm_Tile_Async_c(transA,transB,alpha,A,B,beta,C,sequence,request)
-      end subroutine CHAMELEON_zgemm_Tile_Async
-
-      subroutine CHAMELEON_zgeqrf_Tile_Async(A,T,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrf_Tile_Async_c(A,T,sequence,request)
-      end subroutine CHAMELEON_zgeqrf_Tile_Async
-
-      subroutine CHAMELEON_zgeqrs_Tile_Async(A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgeqrs_Tile_Async_c(A,T,B,sequence,request)
-      end subroutine CHAMELEON_zgeqrs_Tile_Async
-
-      subroutine CHAMELEON_zgesv_Tile_Async(A,IPIV,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesv_Tile_Async_c(A,c_loc(IPIV),B,sequence,request)
-      end subroutine CHAMELEON_zgesv_Tile_Async
-
-      subroutine CHAMELEON_zgesv_incpiv_Tile_Async(A,L,IPIV,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesv_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request)
-      end subroutine CHAMELEON_zgesv_incpiv_Tile_Async
-
-      subroutine CHAMELEON_zgesvd_Tile_Async(jobu,jobvt,A,S,U,VT,T,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobu
-         integer(kind=c_int), intent(in) :: jobvt
-         real(kind=c_double), intent(out), target :: S(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: U ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: VT ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgesvd_Tile_Async_c(jobu,jobvt,A,c_loc(S),U,VT,T,sequence,request)
-      end subroutine CHAMELEON_zgesvd_Tile_Async
-
-      subroutine CHAMELEON_zgetmi_Async(m,n,A,fin,mb,nb,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(inout), target :: A(*)
-         integer(kind=c_int), intent(in) :: fin
-         integer(kind=c_int), intent(in) :: mb
-         integer(kind=c_int), intent(in) :: nb
-         integer(kind=c_int), intent(in) :: m
-         integer(kind=c_int), intent(in) :: n
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetmi_Async_c(m,n,c_loc(A),fin,mb,nb,sequence,request)
-      end subroutine CHAMELEON_zgetmi_Async
-
-      subroutine CHAMELEON_zgetrf_Tile_Async(A,IPIV,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(out), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_Tile_Async_c(A,c_loc(IPIV),sequence,request)
-      end subroutine CHAMELEON_zgetrf_Tile_Async
-
-      subroutine CHAMELEON_zgetrf_incpiv_Tile_Async(A,L,IPIV,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_incpiv_Tile_Async_c(A,L,IPIV,sequence,request)
-      end subroutine CHAMELEON_zgetrf_incpiv_Tile_Async
-
-      subroutine CHAMELEON_zgetrf_nopiv_Tile_Async(A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrf_nopiv_Tile_Async_c(A,sequence,request)
-      end subroutine CHAMELEON_zgetrf_nopiv_Tile_Async
-
-      subroutine CHAMELEON_zgetrs_Tile_Async(trans,A,IPIV,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrs_Tile_Async_c(trans,A,c_loc(IPIV),B,sequence,request)
-      end subroutine CHAMELEON_zgetrs_Tile_Async
-
-      subroutine CHAMELEON_zgetrs_incpiv_Tile_Async(A,L,IPIV,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zgetrs_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request)
-      end subroutine CHAMELEON_zgetrs_incpiv_Tile_Async
+  subroutine CHAMELEON_zplgsy_Tile(bump,uplo,A,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplgsy_Tile_c(bump,A,seed)
+  end subroutine CHAMELEON_zplgsy_Tile
+
+  subroutine CHAMELEON_zplrnt_Tile(A,seed,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplrnt_Tile_c(A,seed)
+  end subroutine CHAMELEON_zplrnt_Tile
+
+  subroutine CHAMELEON_zposv_Tile(uplo,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zposv_Tile_c(uplo,A,B)
+  end subroutine CHAMELEON_zposv_Tile
+
+  subroutine CHAMELEON_zpotrf_Tile(uplo,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotrf_Tile_c(uplo,A)
+  end subroutine CHAMELEON_zpotrf_Tile
+
+  subroutine CHAMELEON_zsytrf_Tile(uplo,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsytrf_Tile_c(uplo,A)
+  end subroutine CHAMELEON_zsytrf_Tile
+
+  subroutine CHAMELEON_zpotri_Tile(uplo,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotri_Tile_c(uplo,A)
+  end subroutine CHAMELEON_zpotri_Tile
+
+  subroutine CHAMELEON_zpotrs_Tile(uplo,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotrs_Tile_c(uplo,A,B)
+  end subroutine CHAMELEON_zpotrs_Tile
+
+  subroutine CHAMELEON_zsytrs_Tile(uplo,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsytrs_Tile_c(uplo,A,B)
+  end subroutine CHAMELEON_zsytrs_Tile
+
+  subroutine CHAMELEON_zsymm_Tile(side,uplo,alpha,A,B,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsymm_Tile_c(side,uplo,alpha,A,B,beta,C)
+  end subroutine CHAMELEON_zsymm_Tile
+
+  subroutine CHAMELEON_zsyrk_Tile(uplo,trans,alpha,A,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsyrk_Tile_c(uplo,trans,alpha,A,beta,C)
+  end subroutine CHAMELEON_zsyrk_Tile
+
+  subroutine CHAMELEON_zsyr2k_Tile(uplo,trans,alpha,A,B,beta,C,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsyr2k_Tile_c(uplo,trans,alpha,A,B,beta,C)
+  end subroutine CHAMELEON_zsyr2k_Tile
+
+  subroutine CHAMELEON_ztrmm_Tile(side,uplo,transA,diag,alpha,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrmm_Tile_c(side,uplo,transA,diag,alpha,A,B)
+  end subroutine CHAMELEON_ztrmm_Tile
+
+  subroutine CHAMELEON_ztrsm_Tile(side,uplo,transA,diag,alpha,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsm_Tile_c(side,uplo,transA,diag,alpha,A,B)
+  end subroutine CHAMELEON_ztrsm_Tile
+
+  subroutine CHAMELEON_ztrsmpl_Tile(A,L,IPIV,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsmpl_Tile_c(A,L,IPIV,B)
+  end subroutine CHAMELEON_ztrsmpl_Tile
+
+  subroutine CHAMELEON_ztrtri_Tile(uplo,diag,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrtri_Tile_c(uplo,diag,A)
+  end subroutine CHAMELEON_ztrtri_Tile
+
+  subroutine CHAMELEON_zunglq_Tile(A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunglq_Tile_c(A,T,B)
+  end subroutine CHAMELEON_zunglq_Tile
+
+  subroutine CHAMELEON_zungqr_Tile(A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zungqr_Tile_c(A,T,B)
+  end subroutine CHAMELEON_zungqr_Tile
+
+  subroutine CHAMELEON_zunmlq_Tile(side,trans,A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunmlq_Tile_c(side,trans,A,T,B)
+  end subroutine CHAMELEON_zunmlq_Tile
+
+  subroutine CHAMELEON_zunmqr_Tile(side,trans,A,T,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunmqr_Tile_c(side,trans,A,T,B)
+  end subroutine CHAMELEON_zunmqr_Tile
+
+  subroutine CHAMELEON_zgetri_Tile(A,IPIV,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetri_Tile_c(A,c_loc(IPIV))
+  end subroutine CHAMELEON_zgetri_Tile
+
+  subroutine CHAMELEON_zlacpy_Tile(uplo,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlacpy_Tile_c(uplo,A,B)
+  end subroutine CHAMELEON_zlacpy_Tile
+
+  subroutine CHAMELEON_zlaset_Tile(uplo,alpha,beta,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaset_Tile_c(uplo,alpha,beta,A)
+  end subroutine CHAMELEON_zlaset_Tile
+
+  subroutine CHAMELEON_zlaswpc_Tile(A,K1,K2,IPIV,INCX,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaswpc_Tile_c(A,K1,K2,c_loc(IPIV),INCX)
+  end subroutine CHAMELEON_zlaswpc_Tile
+
+  subroutine CHAMELEON_ztrsmrv_Tile(side,uplo,transA,diag,alpha,A,B,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsmrv_Tile_c(side,uplo,transA,diag,alpha,A,B)
+  end subroutine CHAMELEON_ztrsmrv_Tile
+
+  subroutine CHAMELEON_zgetri_Tile_Async(A,IPIV,W,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: W ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetri_Tile_Async_c(A,c_loc(IPIV),W,sequence,request)
+  end subroutine CHAMELEON_zgetri_Tile_Async
+
+  subroutine CHAMELEON_zlange_Tile_Async(norm,A,work,value,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int) :: info
+    real(kind=c_double), intent(out), target :: value
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlange_Tile_Async_c(norm,A,c_loc(work),c_loc(value),sequence,request)
+  end subroutine CHAMELEON_zlange_Tile_Async
+
+  subroutine CHAMELEON_zlansy_Tile_Async(norm,uplo,A,work,value,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int) :: info
+    real(kind=c_double), intent(out), target :: value
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlansy_Tile_Async_c(norm,uplo,A,c_loc(work),c_loc(value),sequence,request)
+  end subroutine CHAMELEON_zlansy_Tile_Async
+
+  subroutine CHAMELEON_zgebrd_Tile_Async(A,D,E,T,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgebrd_Tile_Async_c(A,c_loc(D),c_loc(E),T,sequence,request)
+  end subroutine CHAMELEON_zgebrd_Tile_Async
+
+  subroutine CHAMELEON_zgecfi_Async(m,n,A,fin,imb,inb,fout,omb,onb,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(inout), target :: A(*)
+    integer(kind=c_int), intent(in) :: fin
+    integer(kind=c_int), intent(in) :: fout
+    integer(kind=c_int), intent(in) :: imb
+    integer(kind=c_int), intent(in) :: inb
+    integer(kind=c_int), intent(in) :: omb
+    integer(kind=c_int), intent(in) :: onb
+    integer(kind=c_int), intent(in) :: m
+    integer(kind=c_int), intent(in) :: n
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgecfi_Async_c(m,n,c_loc(A),fin,imb,inb,fout,omb,onb,sequence,request)
+  end subroutine CHAMELEON_zgecfi_Async
+
+  subroutine CHAMELEON_zgelqf_Tile_Async(A,T,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqf_Tile_Async_c(A,T,sequence,request)
+  end subroutine CHAMELEON_zgelqf_Tile_Async
+
+  subroutine CHAMELEON_zgelqs_Tile_Async(A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgelqs_Tile_Async_c(A,T,B,sequence,request)
+  end subroutine CHAMELEON_zgelqs_Tile_Async
+
+  subroutine CHAMELEON_zgels_Tile_Async(trans,A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgels_Tile_Async_c(trans,A,T,B,sequence,request)
+  end subroutine CHAMELEON_zgels_Tile_Async
+
+  subroutine CHAMELEON_zgemm_Tile_Async(transA,transB,alpha,A,B,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: transB
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgemm_Tile_Async_c(transA,transB,alpha,A,B,beta,C,sequence,request)
+  end subroutine CHAMELEON_zgemm_Tile_Async
+
+  subroutine CHAMELEON_zgeqrf_Tile_Async(A,T,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrf_Tile_Async_c(A,T,sequence,request)
+  end subroutine CHAMELEON_zgeqrf_Tile_Async
+
+  subroutine CHAMELEON_zgeqrs_Tile_Async(A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgeqrs_Tile_Async_c(A,T,B,sequence,request)
+  end subroutine CHAMELEON_zgeqrs_Tile_Async
+
+  subroutine CHAMELEON_zgesv_Tile_Async(A,IPIV,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesv_Tile_Async_c(A,c_loc(IPIV),B,sequence,request)
+  end subroutine CHAMELEON_zgesv_Tile_Async
+
+  subroutine CHAMELEON_zgesv_incpiv_Tile_Async(A,L,IPIV,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesv_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request)
+  end subroutine CHAMELEON_zgesv_incpiv_Tile_Async
+
+  subroutine CHAMELEON_zgesvd_Tile_Async(jobu,jobvt,A,S,U,VT,T,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobu
+    integer(kind=c_int), intent(in) :: jobvt
+    real(kind=c_double), intent(out), target :: S(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: U ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: VT ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgesvd_Tile_Async_c(jobu,jobvt,A,c_loc(S),U,VT,T,sequence,request)
+  end subroutine CHAMELEON_zgesvd_Tile_Async
+
+  subroutine CHAMELEON_zgetmi_Async(m,n,A,fin,mb,nb,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(inout), target :: A(*)
+    integer(kind=c_int), intent(in) :: fin
+    integer(kind=c_int), intent(in) :: mb
+    integer(kind=c_int), intent(in) :: nb
+    integer(kind=c_int), intent(in) :: m
+    integer(kind=c_int), intent(in) :: n
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetmi_Async_c(m,n,c_loc(A),fin,mb,nb,sequence,request)
+  end subroutine CHAMELEON_zgetmi_Async
+
+  subroutine CHAMELEON_zgetrf_Tile_Async(A,IPIV,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(out), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_Tile_Async_c(A,c_loc(IPIV),sequence,request)
+  end subroutine CHAMELEON_zgetrf_Tile_Async
+
+  subroutine CHAMELEON_zgetrf_incpiv_Tile_Async(A,L,IPIV,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_incpiv_Tile_Async_c(A,L,IPIV,sequence,request)
+  end subroutine CHAMELEON_zgetrf_incpiv_Tile_Async
+
+  subroutine CHAMELEON_zgetrf_nopiv_Tile_Async(A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrf_nopiv_Tile_Async_c(A,sequence,request)
+  end subroutine CHAMELEON_zgetrf_nopiv_Tile_Async
+
+  subroutine CHAMELEON_zgetrs_Tile_Async(trans,A,IPIV,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrs_Tile_Async_c(trans,A,c_loc(IPIV),B,sequence,request)
+  end subroutine CHAMELEON_zgetrs_Tile_Async
+
+  subroutine CHAMELEON_zgetrs_incpiv_Tile_Async(A,L,IPIV,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zgetrs_incpiv_Tile_Async_c(A,L,IPIV,B,sequence,request)
+  end subroutine CHAMELEON_zgetrs_incpiv_Tile_Async
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zhemm_Tile_Async(side,uplo,alpha,A,B,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhemm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request)
-      end subroutine CHAMELEON_zhemm_Tile_Async
-
-      subroutine CHAMELEON_zherk_Tile_Async(uplo,trans,alpha,A,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(in) :: alpha
-         real(kind=c_double), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zherk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request)
-      end subroutine CHAMELEON_zherk_Tile_Async
-
-      subroutine CHAMELEON_zher2k_Tile_Async(uplo,trans,alpha,A,B,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         real(kind=c_double), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zher2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request)
-      end subroutine CHAMELEON_zher2k_Tile_Async
+  subroutine CHAMELEON_zhemm_Tile_Async(side,uplo,alpha,A,B,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhemm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request)
+  end subroutine CHAMELEON_zhemm_Tile_Async
+
+  subroutine CHAMELEON_zherk_Tile_Async(uplo,trans,alpha,A,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(in) :: alpha
+    real(kind=c_double), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zherk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request)
+  end subroutine CHAMELEON_zherk_Tile_Async
+
+  subroutine CHAMELEON_zher2k_Tile_Async(uplo,trans,alpha,A,B,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    real(kind=c_double), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zher2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request)
+  end subroutine CHAMELEON_zher2k_Tile_Async
 #endif
 
-      subroutine CHAMELEON_zheev_Tile_Async(jobz,uplo,A,W,T,Q,LDQ,sequence,request,info) 
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zheev_Tile_Async_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ,sequence,request)
-      end subroutine CHAMELEON_zheev_Tile_Async
-
-      subroutine CHAMELEON_zheevd_Tile_Async(jobz,uplo,A,W,T,Q,LDQ,sequence,request,info) 
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zheevd_Tile_Async_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ,sequence,request)
-      end subroutine CHAMELEON_zheevd_Tile_Async
-
-      subroutine CHAMELEON_zhegv_Tile_Async(itype,jobz,uplo,A,B,W,T,Q,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegv_Tile_Async_c(itype,jobz,uplo,A,B,c_loc(W),T,Q,sequence,request)
-      end subroutine CHAMELEON_zhegv_Tile_Async
-
-      subroutine CHAMELEON_zhegvd_Tile_Async(itype,jobz,uplo,A,B,W,T,Q,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         real(kind=c_double), intent(out), target :: W(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegvd_Tile_Async_c(itype,jobz,uplo,A,B,c_loc(W),T,Q,sequence,request)
-      end subroutine CHAMELEON_zhegvd_Tile_Async
-
-      subroutine CHAMELEON_zhegst_Tile_Async(itype,uplo,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: itype
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhegst_Tile_Async_c(itype,uplo,A,B,sequence,request)
-      end subroutine CHAMELEON_zhegst_Tile_Async
-
-      subroutine CHAMELEON_zhetrd_Tile_Async(jobz,uplo,A,D,E,T,Q,LDQ,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: jobz
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(in) :: LDQ
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         real(kind=c_double), intent(out), target :: D(*)
-         real(kind=c_double), intent(out), target :: E(*)
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zhetrd_Tile_Async_c(jobz,uplo,A,c_loc(D),c_loc(E),T,c_loc(Q),LDQ,sequence,request)
-      end subroutine CHAMELEON_zhetrd_Tile_Async
+  subroutine CHAMELEON_zheev_Tile_Async(jobz,uplo,A,W,T,Q,LDQ,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zheev_Tile_Async_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ,sequence,request)
+  end subroutine CHAMELEON_zheev_Tile_Async
+
+  subroutine CHAMELEON_zheevd_Tile_Async(jobz,uplo,A,W,T,Q,LDQ,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zheevd_Tile_Async_c(jobz,uplo,A,c_loc(W),T,c_loc(Q),LDQ,sequence,request)
+  end subroutine CHAMELEON_zheevd_Tile_Async
+
+  subroutine CHAMELEON_zhegv_Tile_Async(itype,jobz,uplo,A,B,W,T,Q,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegv_Tile_Async_c(itype,jobz,uplo,A,B,c_loc(W),T,Q,sequence,request)
+  end subroutine CHAMELEON_zhegv_Tile_Async
+
+  subroutine CHAMELEON_zhegvd_Tile_Async(itype,jobz,uplo,A,B,W,T,Q,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    real(kind=c_double), intent(out), target :: W(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: Q ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegvd_Tile_Async_c(itype,jobz,uplo,A,B,c_loc(W),T,Q,sequence,request)
+  end subroutine CHAMELEON_zhegvd_Tile_Async
+
+  subroutine CHAMELEON_zhegst_Tile_Async(itype,uplo,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: itype
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhegst_Tile_Async_c(itype,uplo,A,B,sequence,request)
+  end subroutine CHAMELEON_zhegst_Tile_Async
+
+  subroutine CHAMELEON_zhetrd_Tile_Async(jobz,uplo,A,D,E,T,Q,LDQ,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: jobz
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(in) :: LDQ
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    real(kind=c_double), intent(out), target :: D(*)
+    real(kind=c_double), intent(out), target :: E(*)
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    complex(kind=c_double_complex), intent(out), target :: Q(LDQ, *)
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zhetrd_Tile_Async_c(jobz,uplo,A,c_loc(D),c_loc(E),T,c_loc(Q),LDQ,sequence,request)
+  end subroutine CHAMELEON_zhetrd_Tile_Async
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zlanhe_Tile_Async(norm,uplo,A,work,value,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(inout), target :: work(*)
-         integer(kind=c_int), intent(in) :: norm
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_int), intent(out), target :: value
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlanhe_Tile_Async_c(norm,uplo,A,c_loc(work),c_loc(value),sequence,request)
-      end subroutine CHAMELEON_zlanhe_Tile_Async
+  subroutine CHAMELEON_zlanhe_Tile_Async(norm,uplo,A,work,value,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(inout), target :: work(*)
+    integer(kind=c_int), intent(in) :: norm
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_int), intent(out), target :: value
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlanhe_Tile_Async_c(norm,uplo,A,c_loc(work),c_loc(value),sequence,request)
+  end subroutine CHAMELEON_zlanhe_Tile_Async
 #endif
 
-      subroutine CHAMELEON_zlaswp_Tile_Async(A,K1,K2,IPIV,INCX,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaswp_Tile_Async_c(A,K1,K2,c_loc(IPIV),INCX,sequence,request)
-      end subroutine CHAMELEON_zlaswp_Tile_Async
-
-      subroutine CHAMELEON_zlauum_Tile_Async(uplo,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlauum_Tile_Async_c(uplo,A,sequence,request)
-      end subroutine CHAMELEON_zlauum_Tile_Async
+  subroutine CHAMELEON_zlaswp_Tile_Async(A,K1,K2,IPIV,INCX,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaswp_Tile_Async_c(A,K1,K2,c_loc(IPIV),INCX,sequence,request)
+  end subroutine CHAMELEON_zlaswp_Tile_Async
+
+  subroutine CHAMELEON_zlauum_Tile_Async(uplo,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlauum_Tile_Async_c(uplo,A,sequence,request)
+  end subroutine CHAMELEON_zlauum_Tile_Async
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine CHAMELEON_zplghe_Tile_Async(bump,uplo,A,seed,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         real(kind=c_double), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplghe_Tile_Async_c(bump,A,seed,sequence,request)
-      end subroutine CHAMELEON_zplghe_Tile_Async
+  subroutine CHAMELEON_zplghe_Tile_Async(bump,uplo,A,seed,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    real(kind=c_double), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplghe_Tile_Async_c(bump,A,seed,sequence,request)
+  end subroutine CHAMELEON_zplghe_Tile_Async
 #endif
 
-      subroutine CHAMELEON_zplgsy_Tile_Async(bump,uplo,A,seed,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         complex(kind=c_double_complex), intent(in) :: bump
-         integer(kind=c_int), intent(in) :: uplo
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplgsy_Tile_Async_c(bump,A,seed,sequence,request)
-      end subroutine CHAMELEON_zplgsy_Tile_Async
-       
-      subroutine CHAMELEON_zplrnt_Tile_Async(A,seed,sequence,request,info) 
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_long_long), intent(in) :: seed
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zplrnt_Tile_Async_c(A,seed,sequence,request)
-      end subroutine CHAMELEON_zplrnt_Tile_Async
-
-      subroutine CHAMELEON_zposv_Tile_Async(uplo,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zposv_Tile_Async_c(uplo,A,B,sequence,request)
-      end subroutine CHAMELEON_zposv_Tile_Async
-
-      subroutine CHAMELEON_zpotrf_Tile_Async(uplo,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotrf_Tile_Async_c(uplo,A,sequence,request)
-      end subroutine CHAMELEON_zpotrf_Tile_Async
-
-      subroutine CHAMELEON_zsytrf_Tile_Async(uplo,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsytrf_Tile_Async_c(uplo,A,sequence,request)
-      end subroutine CHAMELEON_zsytrf_Tile_Async
-
-      subroutine CHAMELEON_zpotri_Tile_Async(uplo,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotri_Tile_Async_c(uplo,A,sequence,request)
-      end subroutine CHAMELEON_zpotri_Tile_Async
-
-      subroutine CHAMELEON_zpotrs_Tile_Async(uplo,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zpotrs_Tile_Async_c(uplo,A,B,sequence,request)
-      end subroutine CHAMELEON_zpotrs_Tile_Async
-
-      subroutine CHAMELEON_zsytrs_Tile_Async(uplo,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsytrs_Tile_Async_c(uplo,A,B,sequence,request)
-      end subroutine CHAMELEON_zsytrs_Tile_Async
-
-      subroutine CHAMELEON_zsymm_Tile_Async(side,uplo,alpha,A,B,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsymm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request)
-      end subroutine CHAMELEON_zsymm_Tile_Async
-
-      subroutine CHAMELEON_zsyrk_Tile_Async(uplo,trans,alpha,A,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsyrk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request)
-      end subroutine CHAMELEON_zsyrk_Tile_Async
-
-      subroutine CHAMELEON_zsyr2k_Tile_Async(uplo,trans,alpha,A,B,beta,C,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: trans
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zsyr2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request)
-      end subroutine CHAMELEON_zsyr2k_Tile_Async
-
-      subroutine CHAMELEON_ztrmm_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrmm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
-      end subroutine CHAMELEON_ztrmm_Tile_Async
-
-      subroutine CHAMELEON_ztrsm_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
-      end subroutine CHAMELEON_ztrsm_Tile_Async
-
-      subroutine CHAMELEON_ztrsmpl_Tile_Async(A,L,IPIV,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsmpl_Tile_Async_c(A,L,IPIV,B,sequence,request)
-      end subroutine CHAMELEON_ztrsmpl_Tile_Async
-
-      subroutine CHAMELEON_ztrtri_Tile_Async(uplo,diag,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrtri_Tile_Async_c(uplo,diag,A,sequence,request)
-      end subroutine CHAMELEON_ztrtri_Tile_Async
-
-      subroutine CHAMELEON_zunglq_Tile_Async(A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunglq_Tile_Async_c(A,T,B,sequence,request)
-      end subroutine CHAMELEON_zunglq_Tile_Async
-
-      subroutine CHAMELEON_zungqr_Tile_Async(A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zungqr_Tile_Async_c(A,T,B,sequence,request)
-      end subroutine CHAMELEON_zungqr_Tile_Async
-
-      subroutine CHAMELEON_zunmlq_Tile_Async(side,trans,A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunmlq_Tile_Async_c(side,trans,A,T,B,sequence,request)
-      end subroutine CHAMELEON_zunmlq_Tile_Async
-
-      subroutine CHAMELEON_zunmqr_Tile_Async(side,trans,A,T,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: trans
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zunmqr_Tile_Async_c(side,trans,A,T,B,sequence,request)
-      end subroutine CHAMELEON_zunmqr_Tile_Async
-
-      subroutine CHAMELEON_zlacpy_Tile_Async(uplo,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlacpy_Tile_Async_c(uplo,A,B,sequence,request)
-      end subroutine CHAMELEON_zlacpy_Tile_Async
-
-      subroutine CHAMELEON_zlaset_Tile_Async(uplo,alpha,beta,A,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         complex(kind=c_double_complex), intent(in) :: beta
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaset_Tile_Async_c(uplo,alpha,beta,A,sequence,request)
-      end subroutine CHAMELEON_zlaset_Tile_Async
-
-      subroutine CHAMELEON_zlaswpc_Tile_Async(A,K1,K2,IPIV,INCX,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in), target :: IPIV(*)
-         integer(kind=c_int), intent(in) :: INCX
-         integer(kind=c_int), intent(in) :: K1
-         integer(kind=c_int), intent(in) :: K2
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zlaswpc_Tile_Async_c(A,K1,K2,c_loc(IPIV),INCX,sequence,request)
-      end subroutine CHAMELEON_zlaswpc_Tile_Async
-
-      subroutine CHAMELEON_ztrsmrv_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: diag
-         integer(kind=c_int), intent(in) :: side
-         integer(kind=c_int), intent(in) :: transA
-         integer(kind=c_int), intent(in) :: uplo
-         complex(kind=c_double_complex), intent(in) :: alpha
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_ztrsmrv_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
-      end subroutine CHAMELEON_ztrsmrv_Tile_Async
-
-      subroutine CHAMELEON_Alloc_Workspace_zgelqf(M,N,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         info = CHAMELEON_Alloc_Workspace_zgelqf_c(M,N,T)
-      end subroutine CHAMELEON_Alloc_Workspace_zgelqf
-
-      subroutine CHAMELEON_Alloc_Workspace_zgels(M,N,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         info = CHAMELEON_Alloc_Workspace_zgels_c(M,N,T)
-      end subroutine CHAMELEON_Alloc_Workspace_zgels
-
-      subroutine CHAMELEON_Alloc_Workspace_zgeqrf(M,N,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         info = CHAMELEON_Alloc_Workspace_zgeqrf_c(M,N,T)
-      end subroutine CHAMELEON_Alloc_Workspace_zgeqrf
-
-      subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv(N,L,IPIV,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-         type(c_ptr) :: L ! L is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgesv_incpiv_c(N,L,IPIV,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv
-
-      subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv(M,N,L,IPIV,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-         type(c_ptr) :: L ! L is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c(M,N,L,IPIV,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv
-
-      subroutine CHAMELEON_Alloc_Workspace_zgeev(N,T,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         info = CHAMELEON_Alloc_Workspace_zgeev_c(N,T)
-      end subroutine CHAMELEON_Alloc_Workspace_zgeev
-
-      subroutine CHAMELEON_Alloc_Workspace_zgebrd(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgebrd_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgebrd
-
-      subroutine CHAMELEON_Alloc_Workspace_zgehrd(N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgehrd_c(N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgehrd
-
-      subroutine CHAMELEON_Alloc_Workspace_zgesvd(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgesvd_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgesvd
-
-      subroutine CHAMELEON_Alloc_Workspace_zheev(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zheev_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zheev
-
-      subroutine CHAMELEON_Alloc_Workspace_zheevd(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zheevd_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zheevd
-
-      subroutine CHAMELEON_Alloc_Workspace_zhegv(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zhegv_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zhegv
-
-      subroutine CHAMELEON_Alloc_Workspace_zhegvd(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zhegvd_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zhegvd
-
-      subroutine CHAMELEON_Alloc_Workspace_zhetrd(M,N,T,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: T ! T is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zhetrd_c(M,N,T,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zhetrd
-
-      subroutine CHAMELEON_Alloc_Workspace_zgelqf_Tile(M,N,descT,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: descT ! descT is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgelqf_Tile_c(M,N,descT,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgelqf_Tile
-
-      subroutine CHAMELEON_Alloc_Workspace_zgels_Tile(M,N,descT,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: descT ! descT is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgels_Tile_c(M,N,descT,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgels_Tile
-
-      subroutine CHAMELEON_Alloc_Workspace_zgeqrf_Tile(M,N,descT,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: M
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: descT ! descT is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c(M,N,descT,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgeqrf_Tile
-
-      subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile(N,descL,IPIV,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-         type(c_ptr) :: descL ! descL is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c(N,descL,IPIV,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile
-
-      subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(N,descL,IPIV,p,q,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: N
-         type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
-         type(c_ptr) :: descL ! descL is **, so pass by reference
-         integer(kind=c_int), value :: p
-         integer(kind=c_int), value :: q
-         info = CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c(N,descL,IPIV,p,q)
-      end subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile
-
-      subroutine CHAMELEON_Alloc_Workspace_zgetri_Tile_Async(A,W,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         type(c_ptr), value :: W ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c(A,W)
-      end subroutine CHAMELEON_Alloc_Workspace_zgetri_Tile_Async
-
-      subroutine CHAMELEON_zLapack_to_Tile(Af77,LDA,A,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         complex(kind=c_double_complex), intent(in), target :: Af77(LDA,*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zLapack_to_Tile_c(c_loc(Af77),LDA,A)
-      end subroutine CHAMELEON_zLapack_to_Tile
-
-      subroutine CHAMELEON_zTile_to_Lapack(A,Af77,LDA,info)
-         use iso_c_binding
-         implicit none
-         integer(kind=c_int), intent(out) :: info
-         integer(kind=c_int), intent(in) :: LDA
-         complex(kind=c_double_complex), intent(out), target :: Af77(LDA,*)
-         type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
-         info = CHAMELEON_zTile_to_Lapack_c(A,c_loc(Af77),LDA)
-      end subroutine CHAMELEON_zTile_to_Lapack
+  subroutine CHAMELEON_zplgsy_Tile_Async(bump,uplo,A,seed,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    complex(kind=c_double_complex), intent(in) :: bump
+    integer(kind=c_int), intent(in) :: uplo
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplgsy_Tile_Async_c(bump,A,seed,sequence,request)
+  end subroutine CHAMELEON_zplgsy_Tile_Async
+
+  subroutine CHAMELEON_zplrnt_Tile_Async(A,seed,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_long_long), intent(in) :: seed
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zplrnt_Tile_Async_c(A,seed,sequence,request)
+  end subroutine CHAMELEON_zplrnt_Tile_Async
+
+  subroutine CHAMELEON_zposv_Tile_Async(uplo,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zposv_Tile_Async_c(uplo,A,B,sequence,request)
+  end subroutine CHAMELEON_zposv_Tile_Async
+
+  subroutine CHAMELEON_zpotrf_Tile_Async(uplo,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotrf_Tile_Async_c(uplo,A,sequence,request)
+  end subroutine CHAMELEON_zpotrf_Tile_Async
+
+  subroutine CHAMELEON_zsytrf_Tile_Async(uplo,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsytrf_Tile_Async_c(uplo,A,sequence,request)
+  end subroutine CHAMELEON_zsytrf_Tile_Async
+
+  subroutine CHAMELEON_zpotri_Tile_Async(uplo,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotri_Tile_Async_c(uplo,A,sequence,request)
+  end subroutine CHAMELEON_zpotri_Tile_Async
+
+  subroutine CHAMELEON_zpotrs_Tile_Async(uplo,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zpotrs_Tile_Async_c(uplo,A,B,sequence,request)
+  end subroutine CHAMELEON_zpotrs_Tile_Async
+
+  subroutine CHAMELEON_zsytrs_Tile_Async(uplo,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsytrs_Tile_Async_c(uplo,A,B,sequence,request)
+  end subroutine CHAMELEON_zsytrs_Tile_Async
+
+  subroutine CHAMELEON_zsymm_Tile_Async(side,uplo,alpha,A,B,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsymm_Tile_Async_c(side,uplo,alpha,A,B,beta,C,sequence,request)
+  end subroutine CHAMELEON_zsymm_Tile_Async
+
+  subroutine CHAMELEON_zsyrk_Tile_Async(uplo,trans,alpha,A,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsyrk_Tile_Async_c(uplo,trans,alpha,A,beta,C,sequence,request)
+  end subroutine CHAMELEON_zsyrk_Tile_Async
+
+  subroutine CHAMELEON_zsyr2k_Tile_Async(uplo,trans,alpha,A,B,beta,C,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: trans
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: C ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zsyr2k_Tile_Async_c(uplo,trans,alpha,A,B,beta,C,sequence,request)
+  end subroutine CHAMELEON_zsyr2k_Tile_Async
+
+  subroutine CHAMELEON_ztrmm_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrmm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
+  end subroutine CHAMELEON_ztrmm_Tile_Async
+
+  subroutine CHAMELEON_ztrsm_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsm_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
+  end subroutine CHAMELEON_ztrsm_Tile_Async
+
+  subroutine CHAMELEON_ztrsmpl_Tile_Async(A,L,IPIV,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: L ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: IPIV ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsmpl_Tile_Async_c(A,L,IPIV,B,sequence,request)
+  end subroutine CHAMELEON_ztrsmpl_Tile_Async
+
+  subroutine CHAMELEON_ztrtri_Tile_Async(uplo,diag,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrtri_Tile_Async_c(uplo,diag,A,sequence,request)
+  end subroutine CHAMELEON_ztrtri_Tile_Async
+
+  subroutine CHAMELEON_zunglq_Tile_Async(A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunglq_Tile_Async_c(A,T,B,sequence,request)
+  end subroutine CHAMELEON_zunglq_Tile_Async
+
+  subroutine CHAMELEON_zungqr_Tile_Async(A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zungqr_Tile_Async_c(A,T,B,sequence,request)
+  end subroutine CHAMELEON_zungqr_Tile_Async
+
+  subroutine CHAMELEON_zunmlq_Tile_Async(side,trans,A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunmlq_Tile_Async_c(side,trans,A,T,B,sequence,request)
+  end subroutine CHAMELEON_zunmlq_Tile_Async
+
+  subroutine CHAMELEON_zunmqr_Tile_Async(side,trans,A,T,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: trans
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: T ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zunmqr_Tile_Async_c(side,trans,A,T,B,sequence,request)
+  end subroutine CHAMELEON_zunmqr_Tile_Async
+
+  subroutine CHAMELEON_zlacpy_Tile_Async(uplo,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlacpy_Tile_Async_c(uplo,A,B,sequence,request)
+  end subroutine CHAMELEON_zlacpy_Tile_Async
+
+  subroutine CHAMELEON_zlaset_Tile_Async(uplo,alpha,beta,A,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    complex(kind=c_double_complex), intent(in) :: beta
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaset_Tile_Async_c(uplo,alpha,beta,A,sequence,request)
+  end subroutine CHAMELEON_zlaset_Tile_Async
+
+  subroutine CHAMELEON_zlaswpc_Tile_Async(A,K1,K2,IPIV,INCX,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in), target :: IPIV(*)
+    integer(kind=c_int), intent(in) :: INCX
+    integer(kind=c_int), intent(in) :: K1
+    integer(kind=c_int), intent(in) :: K2
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zlaswpc_Tile_Async_c(A,K1,K2,c_loc(IPIV),INCX,sequence,request)
+  end subroutine CHAMELEON_zlaswpc_Tile_Async
+
+  subroutine CHAMELEON_ztrsmrv_Tile_Async(side,uplo,transA,diag,alpha,A,B,sequence,request,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: diag
+    integer(kind=c_int), intent(in) :: side
+    integer(kind=c_int), intent(in) :: transA
+    integer(kind=c_int), intent(in) :: uplo
+    complex(kind=c_double_complex), intent(in) :: alpha
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: B ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: sequence ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: request ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_ztrsmrv_Tile_Async_c(side,uplo,transA,diag,alpha,A,B,sequence,request)
+  end subroutine CHAMELEON_ztrsmrv_Tile_Async
+
+  subroutine CHAMELEON_Alloc_Workspace_zgelqf(M,N,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    info = CHAMELEON_Alloc_Workspace_zgelqf_c(M,N,T)
+  end subroutine CHAMELEON_Alloc_Workspace_zgelqf
+
+  subroutine CHAMELEON_Alloc_Workspace_zgels(M,N,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    info = CHAMELEON_Alloc_Workspace_zgels_c(M,N,T)
+  end subroutine CHAMELEON_Alloc_Workspace_zgels
+
+  subroutine CHAMELEON_Alloc_Workspace_zgeqrf(M,N,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    info = CHAMELEON_Alloc_Workspace_zgeqrf_c(M,N,T)
+  end subroutine CHAMELEON_Alloc_Workspace_zgeqrf
+
+  subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv(N,L,IPIV,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+    type(c_ptr) :: L ! L is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgesv_incpiv_c(N,L,IPIV,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv
+
+  subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv(M,N,L,IPIV,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+    type(c_ptr) :: L ! L is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgetrf_incpiv_c(M,N,L,IPIV,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv
+
+  subroutine CHAMELEON_Alloc_Workspace_zgeev(N,T,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    info = CHAMELEON_Alloc_Workspace_zgeev_c(N,T)
+  end subroutine CHAMELEON_Alloc_Workspace_zgeev
+
+  subroutine CHAMELEON_Alloc_Workspace_zgebrd(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgebrd_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgebrd
+
+  subroutine CHAMELEON_Alloc_Workspace_zgehrd(N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgehrd_c(N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgehrd
+
+  subroutine CHAMELEON_Alloc_Workspace_zgesvd(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgesvd_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgesvd
+
+  subroutine CHAMELEON_Alloc_Workspace_zheev(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zheev_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zheev
+
+  subroutine CHAMELEON_Alloc_Workspace_zheevd(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zheevd_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zheevd
+
+  subroutine CHAMELEON_Alloc_Workspace_zhegv(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zhegv_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zhegv
+
+  subroutine CHAMELEON_Alloc_Workspace_zhegvd(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zhegvd_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zhegvd
+
+  subroutine CHAMELEON_Alloc_Workspace_zhetrd(M,N,T,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: T ! T is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zhetrd_c(M,N,T,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zhetrd
+
+  subroutine CHAMELEON_Alloc_Workspace_zgelqf_Tile(M,N,descT,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: descT ! descT is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgelqf_Tile_c(M,N,descT,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgelqf_Tile
+
+  subroutine CHAMELEON_Alloc_Workspace_zgels_Tile(M,N,descT,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: descT ! descT is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgels_Tile_c(M,N,descT,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgels_Tile
+
+  subroutine CHAMELEON_Alloc_Workspace_zgeqrf_Tile(M,N,descT,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: M
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: descT ! descT is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgeqrf_Tile_c(M,N,descT,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgeqrf_Tile
+
+  subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile(N,descL,IPIV,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+    type(c_ptr) :: descL ! descL is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile_c(N,descL,IPIV,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile
+
+  subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(N,descL,IPIV,p,q,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: N
+    type(c_ptr) :: IPIV ! IPIV is **, so pass by reference
+    type(c_ptr) :: descL ! descL is **, so pass by reference
+    integer(kind=c_int), value :: p
+    integer(kind=c_int), value :: q
+    info = CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile_c(N,descL,IPIV,p,q)
+  end subroutine CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile
+
+  subroutine CHAMELEON_Alloc_Workspace_zgetri_Tile_Async(A,W,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    type(c_ptr), value :: W ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_Alloc_Workspace_zgetri_Tile_Async_c(A,W)
+  end subroutine CHAMELEON_Alloc_Workspace_zgetri_Tile_Async
+
+  subroutine CHAMELEON_zLapack_to_Tile(Af77,LDA,A,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    complex(kind=c_double_complex), intent(in), target :: Af77(LDA,*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zLapack_to_Tile_c(c_loc(Af77),LDA,A)
+  end subroutine CHAMELEON_zLapack_to_Tile
+
+  subroutine CHAMELEON_zTile_to_Lapack(A,Af77,LDA,info)
+    use iso_c_binding
+    implicit none
+    integer(kind=c_int), intent(out) :: info
+    integer(kind=c_int), intent(in) :: LDA
+    complex(kind=c_double_complex), intent(out), target :: Af77(LDA,*)
+    type(c_ptr), value :: A ! Arg managed by CHAMELEON: opaque to Fortran
+    info = CHAMELEON_zTile_to_Lapack_c(A,c_loc(Af77),LDA)
+  end subroutine CHAMELEON_zTile_to_Lapack
 
 end module chameleon_z
diff --git a/control/chameleon_zf90_wrappers.F90 b/control/chameleon_zf90_wrappers.F90
index b1a957ddb9cc8640f802437704465fd44dbceb65..bb99becc1622d50a741fe78350685d5ae0bebe74 100644
--- a/control/chameleon_zf90_wrappers.F90
+++ b/control/chameleon_zf90_wrappers.F90
@@ -1,24 +1,42 @@
 !!!
 !
+! @file chameleon_zf90_wrappers.F90
+!
+!  CHAMELEON fortran wrapper for BLAS and LAPACK subroutines.
+!  CHAMELEON is a software package provided by Univ. of Tennessee,
+!  Univ. of California Berkeley and Univ. of Colorado Denver
+!
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Numerical Algorithm Group
+! @author Mathieu Faverge
+! @author Emmanuel Agullo
+! @author Cedric Castagnede
+! @date 2011-09-15
+! @precisions normal z -> c d s
+!
+!
 ! -- Inria
 ! -- (C) Copyright 2012
 !
 ! This software is a computer program whose purpose is to process
 ! Matrices Over Runtime Systems @ Exascale (MORSE). More information
 ! can be found on the following website: http://www.inria.fr/en/teams/morse.
-! 
+!
 ! This software is governed by the CeCILL-B license under French law and
-! abiding by the rules of distribution of free software.  You can  use, 
+! abiding by the rules of distribution of free software.  You can  use,
 ! modify and/ or redistribute the software under the terms of the CeCILL-B
 ! license as circulated by CEA, CNRS and INRIA at the following URL
-! "http://www.cecill.info". 
-! 
+! "http://www.cecill.info".
+!
 ! As a counterpart to the access to the source code and  rights to copy,
 ! modify and redistribute granted by the license, users are provided only
 ! with a limited warranty  and the software's author,  the holder of the
 ! economic rights,  and the successive licensors  have only  limited
-! liability. 
-! 
+! liability.
+!
 ! In this respect, the user's attention is drawn to the risks associated
 ! with loading,  using,  modifying and/or developing or reproducing the
 ! software by the user in light of its specific status of free software,
@@ -26,18 +44,18 @@
 ! therefore means  that it is reserved for developers  and  experienced
 ! professionals having in-depth computer knowledge. Users are therefore
 ! encouraged to load and test the software's suitability as regards their
-! requirements in conditions enabling the security of their systems and/or 
-! data to be ensured and,  more generally, to use and operate it in the 
-! same conditions as regards security. 
-! 
+! requirements in conditions enabling the security of their systems and/or
+! data to be ensured and,  more generally, to use and operate it in the
+! same conditions as regards security.
+!
 ! The fact that you are presently reading this means that you have had
 ! knowledge of the CeCILL-B license and that you accept its terms.
 !
 !!!
-
+!
 !
 !     Copyright © 2011 The Numerical Algorithms Group Ltd. All rights reserved.
-!   
+!
 !     Redistribution and use in source and binary forms, with or without
 !     modification, are permitted provided that the following conditions are
 !     met:
@@ -50,7 +68,7 @@
 !     - Neither the name of the copyright holders nor the names of its
 !       contributors may be used to endorse or promote products derived from
 !       this software without specific prior written permission.
-!     
+!
 !     This software is provided by the copyright holders and contributors "as
 !     is" and any express or implied warranties, including, but not limited
 !     to, the implied warranties of merchantability and fitness for a
@@ -64,21 +82,6 @@
 !     software, even if advised of the possibility of such damage.
 !
 !
-!
-!
-!  CHAMELEON fortran wrapper for BLAS and LAPACK subroutines.
-!  CHAMELEON is a software package provided by Univ. of Tennessee,
-!  Univ. of California Berkeley and Univ. of Colorado Denver
-!
-! @version 1.0.0
-! @author Numerical Algorithm Group
-! @author Mathieu Faverge
-! @author Emmanuel Agullo
-! @author Cedric Castagnede
-! @date 2011-09-15
-! @precisions normal z -> c d s
-!
-!
 ! Wrappers to CHAMELEON functions are provided for the following BLAS
 ! subroutines since the CHAMELEON and BLAS interfaces match exactly:
 ! ZGEMM  CHAMELEON_zgemm
@@ -111,785 +114,785 @@
 ! ZLASET CHAMELEON_zlaset
 #define PRECISION_z
 
-      subroutine chameleon_wrap_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(out) :: INFO
-            integer, intent(out), target :: IPIV(*)
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZGESV"
-            call CHAMELEON_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZGESV
+subroutine chameleon_wrap_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(out) :: INFO
+  integer, intent(out), target :: IPIV(*)
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZGESV"
+  call CHAMELEON_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+end subroutine chameleon_wrap_ZGESV
 
-      subroutine chameleon_wrap_ZGETRF(M,N,A,LDA,IPIV,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            integer, intent(out), target :: IPIV(*)
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZGETRF"
-            call CHAMELEON_ZGETRF(M,N,A,LDA,IPIV,INFO)
-      end subroutine chameleon_wrap_ZGETRF
+subroutine chameleon_wrap_ZGETRF(M,N,A,LDA,IPIV,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  integer, intent(out), target :: IPIV(*)
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZGETRF"
+  call CHAMELEON_ZGETRF(M,N,A,LDA,IPIV,INFO)
+end subroutine chameleon_wrap_ZGETRF
 
-      subroutine chameleon_wrap_ZGETRS(TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(in), target :: IPIV(*)
-            integer, intent(out) :: INFO
-            character, intent(in) :: TRANS
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_TRANS
-            if(TRANS=='N' .or. TRANS=='n')then
-               local_TRANS = ChamNoTrans
-            else if(TRANS=='T' .or. TRANS=='t')then
-               local_TRANS = ChamTrans
-            else if(TRANS=='C' .or. TRANS=='c')then
-               local_TRANS = ChamConjTrans
-            else
-               local_TRANS = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZGETRS"
-            call CHAMELEON_ZGETRS(local_TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZGETRS
+subroutine chameleon_wrap_ZGETRS(TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(in), target :: IPIV(*)
+  integer, intent(out) :: INFO
+  character, intent(in) :: TRANS
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_TRANS
+  if(TRANS=='N' .or. TRANS=='n')then
+     local_TRANS = ChamNoTrans
+  else if(TRANS=='T' .or. TRANS=='t')then
+     local_TRANS = ChamTrans
+  else if(TRANS=='C' .or. TRANS=='c')then
+     local_TRANS = ChamConjTrans
+  else
+     local_TRANS = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZGETRS"
+  call CHAMELEON_ZGETRS(local_TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+end subroutine chameleon_wrap_ZGETRS
 
-      subroutine chameleon_wrap_ZHEGST(ITYPE,UPLO,N,A,LDA,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: ITYPE
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZHEGST"
-            call CHAMELEON_ZHEGST(ITYPE,local_UPLO,N,A,LDA,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZHEGST
+subroutine chameleon_wrap_ZHEGST(ITYPE,UPLO,N,A,LDA,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: ITYPE
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZHEGST"
+  call CHAMELEON_ZHEGST(ITYPE,local_UPLO,N,A,LDA,B,LDB,INFO)
+end subroutine chameleon_wrap_ZHEGST
 
-      subroutine chameleon_wrap_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: INCX
-            integer, intent(in) :: K1
-            integer, intent(in) :: K2
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(in), target :: IPIV(*)
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_ret
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZLASWP"
-            call CHAMELEON_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX,local_ret)
-      end subroutine chameleon_wrap_ZLASWP
+subroutine chameleon_wrap_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: INCX
+  integer, intent(in) :: K1
+  integer, intent(in) :: K2
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(in), target :: IPIV(*)
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_ret
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZLASWP"
+  call CHAMELEON_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX,local_ret)
+end subroutine chameleon_wrap_ZLASWP
 
-      subroutine chameleon_wrap_ZLAUUM(UPLO,N,A,LDA,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZLAUUM"
-            call CHAMELEON_ZLAUUM(local_UPLO,N,A,LDA,INFO)
-      end subroutine chameleon_wrap_ZLAUUM
+subroutine chameleon_wrap_ZLAUUM(UPLO,N,A,LDA,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZLAUUM"
+  call CHAMELEON_ZLAUUM(local_UPLO,N,A,LDA,INFO)
+end subroutine chameleon_wrap_ZLAUUM
 
-      subroutine chameleon_wrap_ZPOSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZPOSV"
-            call CHAMELEON_ZPOSV(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZPOSV
+subroutine chameleon_wrap_ZPOSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZPOSV"
+  call CHAMELEON_ZPOSV(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+end subroutine chameleon_wrap_ZPOSV
 
-      subroutine chameleon_wrap_ZSYSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZSYSV"
-            call CHAMELEON_ZSYSV(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZSYSV
+subroutine chameleon_wrap_ZSYSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZSYSV"
+  call CHAMELEON_ZSYSV(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+end subroutine chameleon_wrap_ZSYSV
 
-      subroutine chameleon_wrap_ZPOTRF(UPLO,N,A,LDA,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZPOTRF"
-            call CHAMELEON_ZPOTRF(local_UPLO,N,A,LDA,INFO)
-      end subroutine chameleon_wrap_ZPOTRF
+subroutine chameleon_wrap_ZPOTRF(UPLO,N,A,LDA,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZPOTRF"
+  call CHAMELEON_ZPOTRF(local_UPLO,N,A,LDA,INFO)
+end subroutine chameleon_wrap_ZPOTRF
 
-      subroutine chameleon_wrap_ZSYTRF(UPLO,N,A,LDA,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZSYTRF"
-            call CHAMELEON_ZSYTRF(local_UPLO,N,A,LDA,INFO)
-      end subroutine chameleon_wrap_ZSYTRF
+subroutine chameleon_wrap_ZSYTRF(UPLO,N,A,LDA,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZSYTRF"
+  call CHAMELEON_ZSYTRF(local_UPLO,N,A,LDA,INFO)
+end subroutine chameleon_wrap_ZSYTRF
 
-      subroutine chameleon_wrap_ZPOTRI(UPLO,N,A,LDA,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZPOTRI"
-            call CHAMELEON_ZPOTRI(local_UPLO,N,A,LDA,INFO)
-      end subroutine chameleon_wrap_ZPOTRI
+subroutine chameleon_wrap_ZPOTRI(UPLO,N,A,LDA,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZPOTRI"
+  call CHAMELEON_ZPOTRI(local_UPLO,N,A,LDA,INFO)
+end subroutine chameleon_wrap_ZPOTRI
 
-      subroutine chameleon_wrap_ZPOTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZPOTRS"
-            call CHAMELEON_ZPOTRS(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZPOTRS
+subroutine chameleon_wrap_ZPOTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZPOTRS"
+  call CHAMELEON_ZPOTRS(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+end subroutine chameleon_wrap_ZPOTRS
 
-      subroutine chameleon_wrap_ZSYTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: N
-            integer, intent(in) :: NRHS
-            integer, intent(out) :: INFO
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZSYTRS"
-            call CHAMELEON_ZSYTRS(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
-      end subroutine chameleon_wrap_ZSYTRS
+subroutine chameleon_wrap_ZSYTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: N
+  integer, intent(in) :: NRHS
+  integer, intent(out) :: INFO
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZSYTRS"
+  call CHAMELEON_ZSYTRS(local_UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+end subroutine chameleon_wrap_ZSYTRS
 
-      subroutine chameleon_wrap_ZTRTRI(UPLO,DIAG,N,A,LDA,INFO)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: N
-            integer, intent(out) :: INFO
-            character, intent(in) :: DIAG
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_DIAG
-            integer :: local_UPLO
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(DIAG=='U' .or. DIAG=='u')then
-               local_DIAG = ChamUnit
-            else if(DIAG=='N' .or. DIAG=='n')then
-               local_DIAG = ChamNonUnit
-            else
-               local_DIAG = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
-            ! write(*,*) " Calling CHAMELEON_ZTRTRI"
-            call CHAMELEON_ZTRTRI(local_UPLO,local_DIAG,N,A,LDA,INFO)
-      end subroutine chameleon_wrap_ZTRTRI
+subroutine chameleon_wrap_ZTRTRI(UPLO,DIAG,N,A,LDA,INFO)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: N
+  integer, intent(out) :: INFO
+  character, intent(in) :: DIAG
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_DIAG
+  integer :: local_UPLO
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(DIAG=='U' .or. DIAG=='u')then
+     local_DIAG = ChamUnit
+  else if(DIAG=='N' .or. DIAG=='n')then
+     local_DIAG = ChamNonUnit
+  else
+     local_DIAG = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,INFO)
+  ! write(*,*) " Calling CHAMELEON_ZTRTRI"
+  call CHAMELEON_ZTRTRI(local_UPLO,local_DIAG,N,A,LDA,INFO)
+end subroutine chameleon_wrap_ZTRTRI
 
-      subroutine chameleon_wrap_ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: K
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: LDC
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: TRANSA
-            character, intent(in) :: TRANSB
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            integer :: local_TRANSA
-            integer :: local_TRANSB
-            integer :: local_ret
-            if(TRANSA=='N' .or. TRANSA=='n')then
-               local_TRANSA = ChamNoTrans
-            else if(TRANSA=='T' .or. TRANSA=='t')then
-               local_TRANSA = ChamTrans
-            else if(TRANSA=='C' .or. TRANSA=='c')then
-               local_TRANSA = ChamConjTrans
-            else
-               local_TRANSA = -1
-            end if
-            if(TRANSB=='N' .or. TRANSB=='n')then
-               local_TRANSB = ChamNoTrans
-            else if(TRANSB=='T' .or. TRANSB=='t')then
-               local_TRANSB = ChamTrans
-            else if(TRANSB=='C' .or. TRANSB=='c')then
-               local_TRANSB = ChamConjTrans
-            else
-               local_TRANSB = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZGEMM"
-            call CHAMELEON_ZGEMM(local_TRANSA,local_TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZGEMM
+subroutine chameleon_wrap_ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: K
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: LDC
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: TRANSA
+  character, intent(in) :: TRANSB
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  integer :: local_TRANSA
+  integer :: local_TRANSB
+  integer :: local_ret
+  if(TRANSA=='N' .or. TRANSA=='n')then
+     local_TRANSA = ChamNoTrans
+  else if(TRANSA=='T' .or. TRANSA=='t')then
+     local_TRANSA = ChamTrans
+  else if(TRANSA=='C' .or. TRANSA=='c')then
+     local_TRANSA = ChamConjTrans
+  else
+     local_TRANSA = -1
+  end if
+  if(TRANSB=='N' .or. TRANSB=='n')then
+     local_TRANSB = ChamNoTrans
+  else if(TRANSB=='T' .or. TRANSB=='t')then
+     local_TRANSB = ChamTrans
+  else if(TRANSB=='C' .or. TRANSB=='c')then
+     local_TRANSB = ChamConjTrans
+  else
+     local_TRANSB = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZGEMM"
+  call CHAMELEON_ZGEMM(local_TRANSA,local_TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZGEMM
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine chameleon_wrap_ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: LDC
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: SIDE
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            integer :: local_SIDE
-            integer :: local_UPLO
-            integer :: local_ret
-            if(SIDE=='L' .or. SIDE=='l')then
-               local_SIDE = ChamLeft
-            else if(SIDE=='R' .or. SIDE=='r')then
-               local_SIDE = ChamRight
-            else
-               local_SIDE = -1
-            end if
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZHEMM"
-            call CHAMELEON_ZHEMM(local_SIDE,local_UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZHEMM
+subroutine chameleon_wrap_ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: LDC
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: SIDE
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  integer :: local_SIDE
+  integer :: local_UPLO
+  integer :: local_ret
+  if(SIDE=='L' .or. SIDE=='l')then
+     local_SIDE = ChamLeft
+  else if(SIDE=='R' .or. SIDE=='r')then
+     local_SIDE = ChamRight
+  else
+     local_SIDE = -1
+  end if
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZHEMM"
+  call CHAMELEON_ZHEMM(local_SIDE,local_UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZHEMM
 
-      subroutine chameleon_wrap_ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: K
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: LDC
-            integer, intent(in) :: N
-            character, intent(in) :: TRANS
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            double precision, intent(in) :: BETA
-            integer :: local_TRANS
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANS=='N' .or. TRANS=='n')then
-               local_TRANS = ChamNoTrans
-            else if(TRANS=='T' .or. TRANS=='t')then
-               local_TRANS = ChamTrans
-            else if(TRANS=='C' .or. TRANS=='c')then
-               local_TRANS = ChamConjTrans
-            else
-               local_TRANS = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZHER2K"
-            call CHAMELEON_ZHER2K(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZHER2K
+subroutine chameleon_wrap_ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: K
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: LDC
+  integer, intent(in) :: N
+  character, intent(in) :: TRANS
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  double precision, intent(in) :: BETA
+  integer :: local_TRANS
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANS=='N' .or. TRANS=='n')then
+     local_TRANS = ChamNoTrans
+  else if(TRANS=='T' .or. TRANS=='t')then
+     local_TRANS = ChamTrans
+  else if(TRANS=='C' .or. TRANS=='c')then
+     local_TRANS = ChamConjTrans
+  else
+     local_TRANS = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZHER2K"
+  call CHAMELEON_ZHER2K(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZHER2K
 
-      subroutine chameleon_wrap_ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: K
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDC
-            integer, intent(in) :: N
-            character, intent(in) :: TRANS
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            double precision, intent(in) :: ALPHA
-            double precision, intent(in) :: BETA
-            integer :: local_TRANS
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANS=='N' .or. TRANS=='n')then
-               local_TRANS = ChamNoTrans
-            else if(TRANS=='T' .or. TRANS=='t')then
-               local_TRANS = ChamTrans
-            else if(TRANS=='C' .or. TRANS=='c')then
-               local_TRANS = ChamConjTrans
-            else
-               local_TRANS = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZHERK"
-            call CHAMELEON_ZHERK(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZHERK
+subroutine chameleon_wrap_ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: K
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDC
+  integer, intent(in) :: N
+  character, intent(in) :: TRANS
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  double precision, intent(in) :: ALPHA
+  double precision, intent(in) :: BETA
+  integer :: local_TRANS
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANS=='N' .or. TRANS=='n')then
+     local_TRANS = ChamNoTrans
+  else if(TRANS=='T' .or. TRANS=='t')then
+     local_TRANS = ChamTrans
+  else if(TRANS=='C' .or. TRANS=='c')then
+     local_TRANS = ChamConjTrans
+  else
+     local_TRANS = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZHERK"
+  call CHAMELEON_ZHERK(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZHERK
 #endif
 
-      subroutine chameleon_wrap_ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: LDC
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: SIDE
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            integer :: local_SIDE
-            integer :: local_UPLO
-            integer :: local_ret
-            if(SIDE=='L' .or. SIDE=='l')then
-               local_SIDE = ChamLeft
-            else if(SIDE=='R' .or. SIDE=='r')then
-               local_SIDE = ChamRight
-            else
-               local_SIDE = -1
-            end if
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZSYMM"
-            call CHAMELEON_ZSYMM(local_SIDE,local_UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZSYMM
+subroutine chameleon_wrap_ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: LDC
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: SIDE
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  integer :: local_SIDE
+  integer :: local_UPLO
+  integer :: local_ret
+  if(SIDE=='L' .or. SIDE=='l')then
+     local_SIDE = ChamLeft
+  else if(SIDE=='R' .or. SIDE=='r')then
+     local_SIDE = ChamRight
+  else
+     local_SIDE = -1
+  end if
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZSYMM"
+  call CHAMELEON_ZSYMM(local_SIDE,local_UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZSYMM
 
-      subroutine chameleon_wrap_ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: K
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: LDC
-            integer, intent(in) :: N
-            character, intent(in) :: TRANS
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(in), target :: B(LDB,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            integer :: local_TRANS
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANS=='N' .or. TRANS=='n')then
-               local_TRANS = ChamNoTrans
-            else if(TRANS=='T' .or. TRANS=='t')then
-               local_TRANS = ChamTrans
-            else if(TRANS=='C' .or. TRANS=='c')then
-               local_TRANS = ChamConjTrans
-            else
-               local_TRANS = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZSYR2K"
-            call CHAMELEON_ZSYR2K(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZSYR2K
+subroutine chameleon_wrap_ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: K
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: LDC
+  integer, intent(in) :: N
+  character, intent(in) :: TRANS
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(in), target :: B(LDB,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  integer :: local_TRANS
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANS=='N' .or. TRANS=='n')then
+     local_TRANS = ChamNoTrans
+  else if(TRANS=='T' .or. TRANS=='t')then
+     local_TRANS = ChamTrans
+  else if(TRANS=='C' .or. TRANS=='c')then
+     local_TRANS = ChamConjTrans
+  else
+     local_TRANS = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZSYR2K"
+  call CHAMELEON_ZSYR2K(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZSYR2K
 
-      subroutine chameleon_wrap_ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: K
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDC
-            integer, intent(in) :: N
-            character, intent(in) :: TRANS
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: C(LDC,*)
-            integer :: local_TRANS
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANS=='N' .or. TRANS=='n')then
-               local_TRANS = ChamNoTrans
-            else if(TRANS=='T' .or. TRANS=='t')then
-               local_TRANS = ChamTrans
-            else if(TRANS=='C' .or. TRANS=='c')then
-               local_TRANS = ChamConjTrans
-            else
-               local_TRANS = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZSYRK"
-            call CHAMELEON_ZSYRK(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC,local_ret)
-      end subroutine chameleon_wrap_ZSYRK
+subroutine chameleon_wrap_ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: K
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDC
+  integer, intent(in) :: N
+  character, intent(in) :: TRANS
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: C(LDC,*)
+  integer :: local_TRANS
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANS=='N' .or. TRANS=='n')then
+     local_TRANS = ChamNoTrans
+  else if(TRANS=='T' .or. TRANS=='t')then
+     local_TRANS = ChamTrans
+  else if(TRANS=='C' .or. TRANS=='c')then
+     local_TRANS = ChamConjTrans
+  else
+     local_TRANS = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZSYRK"
+  call CHAMELEON_ZSYRK(local_UPLO,local_TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC,local_ret)
+end subroutine chameleon_wrap_ZSYRK
 
-      subroutine chameleon_wrap_ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: DIAG
-            character, intent(in) :: SIDE
-            character, intent(in) :: TRANSA
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_DIAG
-            integer :: local_SIDE
-            integer :: local_TRANSA
-            integer :: local_UPLO
-            integer :: local_ret
-            if(SIDE=='L' .or. SIDE=='l')then
-               local_SIDE = ChamLeft
-            else if(SIDE=='R' .or. SIDE=='r')then
-               local_SIDE = ChamRight
-            else
-               local_SIDE = -1
-            end if
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANSA=='N' .or. TRANSA=='n')then
-               local_TRANSA = ChamNoTrans
-            else if(TRANSA=='T' .or. TRANSA=='t')then
-               local_TRANSA = ChamTrans
-            else if(TRANSA=='C' .or. TRANSA=='c')then
-               local_TRANSA = ChamConjTrans
-            else
-               local_TRANSA = -1
-            end if
-            if(DIAG=='U' .or. DIAG=='u')then
-               local_DIAG = ChamUnit
-            else if(DIAG=='N' .or. DIAG=='n')then
-               local_DIAG = ChamNonUnit
-            else
-               local_DIAG = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZTRMM"
-            call CHAMELEON_ZTRMM(local_SIDE,local_UPLO,local_TRANSA,local_DIAG,M,N,ALPHA,A,LDA,B,LDB,local_ret)
-      end subroutine chameleon_wrap_ZTRMM
+subroutine chameleon_wrap_ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: DIAG
+  character, intent(in) :: SIDE
+  character, intent(in) :: TRANSA
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_DIAG
+  integer :: local_SIDE
+  integer :: local_TRANSA
+  integer :: local_UPLO
+  integer :: local_ret
+  if(SIDE=='L' .or. SIDE=='l')then
+     local_SIDE = ChamLeft
+  else if(SIDE=='R' .or. SIDE=='r')then
+     local_SIDE = ChamRight
+  else
+     local_SIDE = -1
+  end if
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANSA=='N' .or. TRANSA=='n')then
+     local_TRANSA = ChamNoTrans
+  else if(TRANSA=='T' .or. TRANSA=='t')then
+     local_TRANSA = ChamTrans
+  else if(TRANSA=='C' .or. TRANSA=='c')then
+     local_TRANSA = ChamConjTrans
+  else
+     local_TRANSA = -1
+  end if
+  if(DIAG=='U' .or. DIAG=='u')then
+     local_DIAG = ChamUnit
+  else if(DIAG=='N' .or. DIAG=='n')then
+     local_DIAG = ChamNonUnit
+  else
+     local_DIAG = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZTRMM"
+  call CHAMELEON_ZTRMM(local_SIDE,local_UPLO,local_TRANSA,local_DIAG,M,N,ALPHA,A,LDA,B,LDB,local_ret)
+end subroutine chameleon_wrap_ZTRMM
 
-      subroutine chameleon_wrap_ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: DIAG
-            character, intent(in) :: SIDE
-            character, intent(in) :: TRANSA
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(inout), target :: B(LDB,*)
-            integer :: local_DIAG
-            integer :: local_SIDE
-            integer :: local_TRANSA
-            integer :: local_UPLO
-            integer :: local_ret
-            if(SIDE=='L' .or. SIDE=='l')then
-               local_SIDE = ChamLeft
-            else if(SIDE=='R' .or. SIDE=='r')then
-               local_SIDE = ChamRight
-            else
-               local_SIDE = -1
-            end if
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if(TRANSA=='N' .or. TRANSA=='n')then
-               local_TRANSA = ChamNoTrans
-            else if(TRANSA=='T' .or. TRANSA=='t')then
-               local_TRANSA = ChamTrans
-            else if(TRANSA=='C' .or. TRANSA=='c')then
-               local_TRANSA = ChamConjTrans
-            else
-               local_TRANSA = -1
-            end if
-            if(DIAG=='U' .or. DIAG=='u')then
-               local_DIAG = ChamUnit
-            else if(DIAG=='N' .or. DIAG=='n')then
-               local_DIAG = ChamNonUnit
-            else
-               local_DIAG = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZTRSM"
-            call CHAMELEON_ZTRSM(local_SIDE,local_UPLO,local_TRANSA,local_DIAG,M,N,ALPHA,A,LDA,B,LDB,local_ret)
-      end subroutine chameleon_wrap_ZTRSM
+subroutine chameleon_wrap_ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: DIAG
+  character, intent(in) :: SIDE
+  character, intent(in) :: TRANSA
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(inout), target :: B(LDB,*)
+  integer :: local_DIAG
+  integer :: local_SIDE
+  integer :: local_TRANSA
+  integer :: local_UPLO
+  integer :: local_ret
+  if(SIDE=='L' .or. SIDE=='l')then
+     local_SIDE = ChamLeft
+  else if(SIDE=='R' .or. SIDE=='r')then
+     local_SIDE = ChamRight
+  else
+     local_SIDE = -1
+  end if
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if(TRANSA=='N' .or. TRANSA=='n')then
+     local_TRANSA = ChamNoTrans
+  else if(TRANSA=='T' .or. TRANSA=='t')then
+     local_TRANSA = ChamTrans
+  else if(TRANSA=='C' .or. TRANSA=='c')then
+     local_TRANSA = ChamConjTrans
+  else
+     local_TRANSA = -1
+  end if
+  if(DIAG=='U' .or. DIAG=='u')then
+     local_DIAG = ChamUnit
+  else if(DIAG=='N' .or. DIAG=='n')then
+     local_DIAG = ChamNonUnit
+  else
+     local_DIAG = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZTRSM"
+  call CHAMELEON_ZTRSM(local_SIDE,local_UPLO,local_TRANSA,local_DIAG,M,N,ALPHA,A,LDA,B,LDB,local_ret)
+end subroutine chameleon_wrap_ZTRSM
 
-      subroutine chameleon_wrap_ZLACPY(UPLO,M,N,A,LDA,B,LDB)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: LDB
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in), target :: A(LDA,*)
-            complex(kind=wp), intent(out), target :: B(LDB,*)
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZLACPY"
-            call CHAMELEON_ZLACPY(local_UPLO,M,N,A,LDA,B,LDB,local_ret)
-      end subroutine chameleon_wrap_ZLACPY
+subroutine chameleon_wrap_ZLACPY(UPLO,M,N,A,LDA,B,LDB)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: LDB
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in), target :: A(LDA,*)
+  complex(kind=wp), intent(out), target :: B(LDB,*)
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZLACPY"
+  call CHAMELEON_ZLACPY(local_UPLO,M,N,A,LDA,B,LDB,local_ret)
+end subroutine chameleon_wrap_ZLACPY
 
-      subroutine chameleon_wrap_ZLASET(UPLO,M,N,ALPHA,BETA,A,LDA)
-            use iso_c_binding
-            use chameleon
-            implicit none
-            integer, parameter :: wp = kind(0.0d0)
-            integer, intent(in) :: LDA
-            integer, intent(in) :: M
-            integer, intent(in) :: N
-            character, intent(in) :: UPLO
-            complex(kind=wp), intent(in) :: ALPHA
-            complex(kind=wp), intent(in) :: BETA
-            complex(kind=wp), intent(inout), target :: A(LDA,*)
-            integer :: local_UPLO
-            integer :: local_ret
-            if(UPLO=='U' .or. UPLO=='u')then
-               local_UPLO = ChamUpper
-            else if(UPLO=='L' .or. UPLO=='l')then
-               local_UPLO = ChamLower
-            else
-               local_UPLO = -1
-            end if
-            if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
-            ! write(*,*) " Calling CHAMELEON_ZLASET"
-            call CHAMELEON_ZLASET(local_UPLO,M,N,ALPHA,BETA,A,LDA,local_ret)
-      end subroutine chameleon_wrap_ZLASET
+subroutine chameleon_wrap_ZLASET(UPLO,M,N,ALPHA,BETA,A,LDA)
+  use iso_c_binding
+  use chameleon
+  implicit none
+  integer, parameter :: wp = kind(0.0d0)
+  integer, intent(in) :: LDA
+  integer, intent(in) :: M
+  integer, intent(in) :: N
+  character, intent(in) :: UPLO
+  complex(kind=wp), intent(in) :: ALPHA
+  complex(kind=wp), intent(in) :: BETA
+  complex(kind=wp), intent(inout), target :: A(LDA,*)
+  integer :: local_UPLO
+  integer :: local_ret
+  if(UPLO=='U' .or. UPLO=='u')then
+     local_UPLO = ChamUpper
+  else if(UPLO=='L' .or. UPLO=='l')then
+     local_UPLO = ChamLower
+  else
+     local_UPLO = -1
+  end if
+  if (.not. chameleon_initialized) call chameleon_init(24,local_ret)
+  ! write(*,*) " Calling CHAMELEON_ZLASET"
+  call CHAMELEON_ZLASET(local_UPLO,M,N,ALPHA,BETA,A,LDA,local_ret)
+end subroutine chameleon_wrap_ZLASET
diff --git a/control/chameleonwinthread.c b/control/chameleonwinthread.c
deleted file mode 100644
index 25d53b19d253abef675615505cab0f83fc3df0cf..0000000000000000000000000000000000000000
--- a/control/chameleonwinthread.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/**
- *
- * @file chameleonwinthread.c
- *
- * @copyright 2009-2014 The University of Tennessee and The University of
- *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
- *                      Univ. Bordeaux. All rights reserved.
- *
- ***
- *
- * @brief Chameleon windows threads interface
- *
- * @version 1.0.0
- * @author Piotr Luszczek
- * @author Cedric Castagnede
- * @date 2012-09-15
- *
- */
-#include "control/chameleonwinthread.h"
-
-#include <limits.h>
-
-/** this is needed to get a declaration for _beginthreadex() */
-#include <process.h>
-
-#include <stdio.h>
-#include <chameleon.h>
-
-CRITICAL_SECTION chameleonwinthread_static_initializer_check_lock;
-static int chameleonwinthread_initialized = 0;
-
-CHAMELEON_DLLPORT unsigned int CHAMELEON_CDECL pthread_self_id(void) {
-  return GetCurrentThreadId();
-}
-
-CHAMELEON_DLLPORT pthread_t CHAMELEON_CDECL pthread_self(void) {
-  pthread_t pt;
-
-  pt.hThread = GetCurrentThread();
-  pt.uThId = GetCurrentThreadId();
-  return pt;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_equal(pthread_t thread1, pthread_t thread2) {
-  if (thread1.uThId == thread2.uThId) // && thread1.hThread == thread2.hThread)
-    return 1;
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t * attr) {
-  *mutex =
-  CreateMutex( NULL,  /** no security atributes */
-               FALSE, /** not owned (initialy) by the creating thread */
-               NULL   /** no name provided: cannot be shared between processes */
-  );
-
-  return 0;
-}
-
-static int pthread_mutex_check_for_static_initialization( pthread_mutex_t *mutex ) {
-    int retval = 0;
-    /* This should be called once to initialize some structures */
-    if ( chameleonwinthread_initialized == 0 ) {
-        InitializeCriticalSection( &chameleonwinthread_static_initializer_check_lock );
-        chameleonwinthread_initialized = 1;
-    }
-    EnterCriticalSection( &chameleonwinthread_static_initializer_check_lock );
-    if ( *mutex == PTHREAD_MUTEX_INITIALIZER )
-        retval = pthread_mutex_init( mutex, NULL );
-    LeaveCriticalSection( &chameleonwinthread_static_initializer_check_lock );
-    return retval;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_lock(pthread_mutex_t *mutex) {
-  DWORD rv;
-
-  if ( *mutex == PTHREAD_MUTEX_INITIALIZER ) pthread_mutex_check_for_static_initialization( mutex );
-  rv = WaitForSingleObject( *mutex, INFINITE );
-  switch (rv) {
-    case WAIT_OBJECT_0: /** the wait was succesful */
-      return 0;
-    case WAIT_FAILED: /** the wait failed */
-      return -1;
-    case WAIT_ABANDONED: /** thread killed during the wait */
-      return -1;
-    case WAIT_TIMEOUT: /** impossible because of INFINITE */
-      return -1;
-    default:
-      return -1;
-  }
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_trylock(pthread_mutex_t *mutex) {
-  DWORD rv;
-
-  if ( *mutex == PTHREAD_MUTEX_INITIALIZER ) pthread_mutex_check_for_static_initialization( mutex );
-  rv = WaitForSingleObject( *mutex, 0 );
-  switch (rv) {
-    case WAIT_OBJECT_0: /** the wait was succesful */
-      return 0;
-    case WAIT_FAILED: /** the wait failed */
-      return -1;
-    case WAIT_ABANDONED: /** thread killed during the wait */
-      return -1;
-    case WAIT_TIMEOUT: /** impossible because of INFINITE */
-      return -1;
-    default:
-      return -1;
-  }
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_unlock(pthread_mutex_t *mutex) {
-  if (! ReleaseMutex( *mutex ))
-    return -1;
-
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_destroy(pthread_mutex_t *mutex) {
-  CloseHandle( *mutex );
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_init(pthread_attr_t *attr) {
-  *attr = 1;
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_destroy(pthread_attr_t *attr) {
-  *attr = 0;
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_setscope(pthread_attr_t *attr, int scope) {
-  if (*attr != 1)
-    return -1;
-
-  if (scope != PTHREAD_SCOPE_SYSTEM)
-    return -1;
-
-  return 0;
-}
-
-void *(*CHAMELEON_realThStart)(void *);
-
-/*
-  This function is only called to have a proxy that is compatible with WINAPI.
- */
-unsigned WINAPI CHAMELEON_winThStart(void *arg) {
-  CHAMELEON_realThStart( arg );
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start) (void *), void *arg) {
-
-  /* this assumes that the threads call the same function, always; it also assumes there
-     is no race condition while assigning a pointer and using it from within threads
-     (this assumption is fulfilled by creating the new thread in suspended state) */
-  CHAMELEON_realThStart = start;
-
-  thread->hThread = (HANDLE)_beginthreadex(
-    NULL, /* default security */
-    0, /* stack size: use the size of calling thread */
-    CHAMELEON_winThStart,
-    arg,
-    CREATE_SUSPENDED,
-    /*0,*/   /* the thread will run immedietally (rather than get suspended) */
-    &thread->uThId );
-
-  /* We need to make sure that _beginthreadex() returns to the parent thread first
-     so we can safely fill up the members of the pthread_t structure without possible
-     race conditions. If the new thread is created in supsended state we eliminate
-     the race condition but now we have to resume the new thread. */
-  ResumeThread( thread->hThread );
-
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_join(pthread_t thread, void **value_ptr) {
-  WaitForSingleObject( thread.hThread, INFINITE );
-  CloseHandle( thread.hThread );
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) {
-  InitializeCriticalSection( &cond->cs );
-  cond->hSem = CreateSemaphore( NULL, /* no security attributes */
-    0, /* initial count */
-    LONG_MAX, /* maximum count*/
-    NULL ); /* unnamed semaphore */
-  cond->hEvt = CreateEvent( NULL, /* no security attributes */
-    FALSE, /* reset to not-singaled automatically */
-    FALSE, /* set initial status to not-signaled */
-    NULL ); /* unnamed event */
-  cond->waitCount = 0;
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_destroy(pthread_cond_t *cond) {
-  DeleteCriticalSection( &cond->cs );
-  CloseHandle( cond->hSem );
-  CloseHandle( cond->hEvt );
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) {
-  int last;
-
-  if ( *mutex == PTHREAD_MUTEX_INITIALIZER ) pthread_mutex_check_for_static_initialization( mutex );
-
-  /* Avoid race condition on waiting thread counter. */
-  EnterCriticalSection(&cond->cs);
-  cond->waitCount++;
-  LeaveCriticalSection(&cond->cs);
-
-  /* Releases _atomically_ the mutex and wait on the semaphore until
-     pthread_cond_signal() or pthread_cond_broadcast() are called (by another thread). */
-  SignalObjectAndWait(*mutex, cond->hSem, INFINITE, FALSE);
-
-  /* Avoid race condition on waiting thread counter. */
-  EnterCriticalSection(&cond->cs);
-  cond->waitCount--; /* this thread doesn't wait any more */
-
-  /* if this is the last thread to have waited */
-  last = cond->waitCount == 0;
-
-  LeaveCriticalSection(&cond->cs);
-
-  /* If this thread is the last waiter thread during this particular broadcast
-     then let all the other threads proceed. */
-  if (last)
-    /* This call ensures that two things happen atomically: signaling the hEvt event and
-       waiting until "mutex" can be acquired. */
-    SignalObjectAndWait(cond->hEvt, *mutex, INFINITE, FALSE);
-  else
-    WaitForSingleObject(*mutex, INFINITE); /* Upon return, this thread has to own "mutex". */
-
-  return 0;
-}
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_broadcast(pthread_cond_t *cond) {
-  int more_waiters = 0;
-
-  /* This is needed to ensure exclusive access to "waitCount" */
-  EnterCriticalSection (&cond->cs);
-
-  if (cond->waitCount > 0) {
-    /* always are broadcasting - no need for pthread_cond_singal() case */
-    more_waiters = 1;
-  }
-
-  if (more_waiters) {
-    /* this will wake up all the waiters atomically at once. */
-    ReleaseSemaphore(cond->hSem, cond->waitCount, 0);
-
-    LeaveCriticalSection(&cond->cs);
-
-    /* Wait for all the awakened threads to acquire the counting semaphore. */
-    WaitForSingleObject(cond->hEvt, INFINITE);
-  } else
-    LeaveCriticalSection(&cond->cs);
-
-  return 0;
-}
-
-int pthread_conclevel;
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_setconcurrency (int level) {
-  pthread_conclevel = level;
-  return 0;
-}
diff --git a/control/chameleonwinthread.h b/control/chameleonwinthread.h
deleted file mode 100644
index 7c0cab771e563fea2178b7b72898333b07d680b3..0000000000000000000000000000000000000000
--- a/control/chameleonwinthread.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- *
- * @file chameleonwinthread.h
- *
- * @copyright 2009-2014 The University of Tennessee and The University of
- *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
- *                      Univ. Bordeaux. All rights reserved.
- *
- ***
- *
- * @brief Chameleon Windows thread interface header
- *
- * @version 1.0.0
- * @author Piotr Luszczek
- * @author Cedric Castagnede
- * @date 2012-09-15
- *
- */
-#ifndef CHAMELEONWINTHREAD_H
-#define CHAMELEONWINTHREAD_H
-
-#include <windows.h>
-
-/*
-typedef struct pthread_s {
-  HANDLE Hth;
-  unsigned IDth;
-  void *(*Fth) (void *);
-} pthread_t;
-*/
-typedef struct pthread_s {
-  HANDLE hThread;
-  unsigned int uThId;
-} pthread_t;
-
-typedef HANDLE pthread_mutex_t;
-typedef int pthread_mutexattr_t;
-typedef int pthread_attr_t;
-typedef int pthread_condattr_t;
-
-typedef struct pthread_cond_s {
-  HANDLE hSem;
-  HANDLE hEvt;
-  CRITICAL_SECTION cs;
-  int waitCount; /* waiting thread counter */
-} pthread_cond_t;
-
-typedef int pthread_attr_t;
-
-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)
-
-#define PTHREAD_SCOPE_SYSTEM 1
-
-#define CHAMELEON_DLLPORT
-#define CHAMELEON_CDECL __cdecl
-
-CHAMELEON_DLLPORT pthread_t CHAMELEON_CDECL pthread_self(void);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t * attr);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_destroy(pthread_mutex_t *mutex);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_lock(pthread_mutex_t *mutex);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_trylock(pthread_mutex_t *mutex);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_unlock(pthread_mutex_t *mutex);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_init(pthread_attr_t *attr);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_destroy(pthread_attr_t *attr);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_attr_setscope(pthread_attr_t *attr, int scope);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*start) (void *), void *arg);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_destroy(pthread_cond_t *cond);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_cond_broadcast(pthread_cond_t *cond);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_join(pthread_t thread, void **value_ptr);
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_equal(pthread_t thread1, pthread_t thread2);
-
-CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_setconcurrency (int);
-
-CHAMELEON_DLLPORT unsigned int CHAMELEON_CDECL pthread_self_id(void);
-
-#endif
diff --git a/control/common.h b/control/common.h
index 63b51d814c934de17fde27d4aa697ec109a42c1f..3c5dabf15d0529a852acb682838c0c8195a2e6ec 100644
--- a/control/common.h
+++ b/control/common.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -21,8 +21,8 @@
  *  CHAMELEON facilities of interest to both CHAMELEON core developer
  *  and also of interest to CHAMELEON community contributor.
  */
-#ifndef _CHAMELEON_COMMON_H_
-#define _CHAMELEON_COMMON_H_
+#ifndef _chameleon_common_h_
+#define _chameleon_common_h_
 
 
 #if defined( _WIN32 ) || defined( _WIN64 )
@@ -128,4 +128,4 @@ void chameleon_pclag2z(CHAM_context_t *chamctxt);
 }
 #endif
 
-#endif
+#endif /* _chameleon_common_h_ */
diff --git a/control/compute_z.h b/control/compute_z.h
index e99d83e57f2deb08c4a9099b8a959cb4571ea7c9..608077b23b296687064078887e984df3c74afcca 100644
--- a/control/compute_z.h
+++ b/control/compute_z.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -22,6 +22,9 @@
  * @precisions normal z -> c d s
  *
  */
+#ifndef _compute_z_h_
+#define _compute_z_h_
+
 /**
  *  LAPACK/Tile Descriptor accesses
  */
@@ -236,3 +239,5 @@ chameleon_ztile2lap_cleanup( CHAM_context_t *chamctxt, CHAM_desc_t *descAl, CHAM
     RUNTIME_desc_destroy( descAl );
     RUNTIME_desc_destroy( descAt );
 }
+
+#endif /* _compute_z_h_ */
diff --git a/control/context.c b/control/context.c
index 9f151be9088e561d05d78e57dbc80b1e774a67a3..384d473cd4bfe8fb603d5b98645fe783c29af58f 100644
--- a/control/context.c
+++ b/control/context.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -23,14 +23,6 @@
  * @brief Group routines exposed to users to handle options
  *
  */
-
-#include <stdlib.h>
-#if defined( _WIN32 ) || defined( _WIN64 )
-#include "control/chamctxtwinthread.h"
-#else
-#include <pthread.h>
-#endif
-
 #include "control/common.h"
 #include "control/auxiliary.h"
 #include "control/context.h"
diff --git a/control/context.h b/control/context.h
index 8c00a2f54fcbd631f5517bec77be8efd1d1eef3b..8abaa3e9993a85f7aacadb182eb2ef3dba5124e2 100644
--- a/control/context.h
+++ b/control/context.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -19,8 +19,8 @@
  * @date 2012-09-15
  *
  */
-#ifndef _CHAMELEON_CONTEXT_H_
-#define _CHAMELEON_CONTEXT_H_
+#ifndef _chameleon_context_h_
+#define _chameleon_context_h_
 
 #include "chameleon/struct.h"
 
@@ -33,10 +33,10 @@ extern "C" {
 
 CHAM_context_t* chameleon_context_create  ();
 CHAM_context_t* chameleon_context_self    ();
-int              chameleon_context_destroy ();
+int             chameleon_context_destroy ();
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif /* _chameleon_context_h_ */
diff --git a/control/control.c b/control/control.c
index 9a356bf47ec47da318cf217db8164d8b3cf0355f..c0657726ed1a9eb3e67bcef408ed68aa4f46838e 100644
--- a/control/control.c
+++ b/control/control.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/descriptor.c b/control/descriptor.c
index 739d1ed9fffea521d833de91ace4c56b5383a640..316c0244f804b6d71b94814ab078527ff07abdb7 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/descriptor.h b/control/descriptor.h
index ac7535e094b81c37743ab0306c2a3ddd6b2fe107..dcf688df2eb0e85b564ca3bc2b0899ed4cee2f18 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -18,8 +18,8 @@
  * @date 2012-09-15
  *
  */
-#ifndef _CHAMELEON_DESCRIPTOR_H_
-#define _CHAMELEON_DESCRIPTOR_H_
+#ifndef _chameleon_descriptor_h_
+#define _chameleon_descriptor_h_
 
 #include <assert.h>
 #include "chameleon/config.h"
@@ -246,4 +246,4 @@ inline static int chameleon_desc_islocal( const CHAM_desc_t *A, int m, int n )
 }
 #endif
 
-#endif
+#endif /* _chameleon_descriptor_h_ */
diff --git a/control/gkkleader.h b/control/gkkleader.h
index 6e4d17c18f37eb796dab48dee77ba99a91c59f6f..650d0111f8de189730b1efe3f5286c112a6e9799 100644
--- a/control/gkkleader.h
+++ b/control/gkkleader.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -19,8 +19,8 @@
  * and its fortran implementation.
  *
  */
-#ifndef GKKLEADERS_H
-#define GKKLEADERS_H
+#ifndef _gkkleader_h_
+#define _gkkleader_h_
 
 int  GKK_doublingtable(int x, int m, int emax, int *dt);
 int  GKK_modpow(int *dt, int e, int m);
@@ -39,4 +39,4 @@ void GKK_output_tables(int m, int n, int q, primedec_t *pr_q, int t,
 
 int  GKK_getLeaderNbr(int me, int ne, int *nleaders, int **leaders);
 
-#endif /* GKKLEADERS_H */
+#endif /* _gkkleader_h_ */
diff --git a/control/global.h b/control/global.h
index 07283e635a2fec20aa6de47823594419084b21ce..6cc15c981433e9eb0a10ba5ec983bfe897318399 100644
--- a/control/global.h
+++ b/control/global.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -22,14 +22,8 @@
  *  CHAMELEON internals of interest to CHAMELEON core developers, but not necessarily
  *  of interest to CHAMELEON community contributors.
  */
-#ifndef _CHAMELEON_GLOBAL_H_
-#define _CHAMELEON_GLOBAL_H_
-
-#if defined( _WIN32 ) || defined( _WIN64 )
-#include "control/chameleonwinthread.h"
-#else
-#include <pthread.h>
-#endif
+#ifndef _chameleon_global_h_
+#define _chameleon_global_h_
 
 /**
  *  Numerical operations
@@ -111,4 +105,4 @@
 #define CHAMELEON_FUNC_ZSYSV  75
 #define CHAMELEON_FUNC_CSYSV  76
 
-#endif
+#endif /* _chameleon_global_h_ */
diff --git a/control/primes.h b/control/primes.h
index a503df5de21094a0de9ee75d914649b9420a7427..37426628815366794e1f0b35f69b2e9fe4f0496f 100644
--- a/control/primes.h
+++ b/control/primes.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -20,8 +20,8 @@
  * and its fortran implementation.
  *
  */
-#ifndef PRIMES_H
-#define PRIMES_H
+#ifndef _primes_h_
+#define _primes_h_
 
 #define IMBALANCE_THRESHOLD 10
 #define PWR_MAXSIZE   32
@@ -55,4 +55,4 @@ int     minloc(int n, int *T);
 int64_t maxval(int n, int *T);
 int64_t sum   (int n, int *T);
 
-#endif /* PRIMES_H */
+#endif /* _primes_h_ */
diff --git a/control/tile.c b/control/tile.c
index 5cb9e166d6783d537b59b0e4b12d0d37aaad581a..960c88f5d198248c8458127d8bc8efc07466c301 100644
--- a/control/tile.c
+++ b/control/tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/workspace.c b/control/workspace.c
index e29a9358c70fa6a89973f9d14d0fbd92f029f11c..8f5814c318d154382b80fb01cee0bc7c812a566f 100644
--- a/control/workspace.c
+++ b/control/workspace.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/control/workspace.h b/control/workspace.h
index 32a8b63583e4b69930fd06a68ac2072b22fbf454..83b1c69473625a70189fe930475605adc6e1b655 100644
--- a/control/workspace.h
+++ b/control/workspace.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2010-11-15
  *
  */
-#ifndef _CHAMELEON_WORKSPACE_H_
-#define _CHAMELEON_WORKSPACE_H_
+#ifndef _chameleon_workspace_h_
+#define _chameleon_workspace_h_
 
 #ifdef __cplusplus
 extern "C" {
@@ -34,4 +34,4 @@ int chameleon_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc
 }
 #endif
 
-#endif
+#endif /* _chameleon_workspace_h_ */
diff --git a/control/workspace_z.c b/control/workspace_z.c
index 3b950a8610f1d63f4d1eb20d3d9c1a2b31cd1503..6009bac50438fc4002894ae79acc03be7d038441 100644
--- a/control/workspace_z.c
+++ b/control/workspace_z.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/CMakeLists.txt b/coreblas/CMakeLists.txt
index bf39d327190dc0bc128cf68f35d8764761755ff2..a85472b3e368de4a6cd8e2e22c2cffbd9a0c70cd 100644
--- a/coreblas/CMakeLists.txt
+++ b/coreblas/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/coreblas/compute/CMakeLists.txt b/coreblas/compute/CMakeLists.txt
index 9e758c418cc273d7c6b95b8d61fc860d1454e60e..c251739b4ee73b0a845228ae18ba7e9f56b4faae 100644
--- a/coreblas/compute/CMakeLists.txt
+++ b/coreblas/compute/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/coreblas/compute/core_dzasum.c b/coreblas/compute/core_dzasum.c
index 6ce517960e9717566403a5afed1b2fb014e7d86c..07cce2c8ea36ddb7744a1d21b965d45622858bd1 100644
--- a/coreblas/compute/core_dzasum.c
+++ b/coreblas/compute/core_dzasum.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zaxpy.c b/coreblas/compute/core_zaxpy.c
index 2d0a90e4f5a3215b48621eab4596f607e08b3d21..d3477032aaabbf4b96e086d2e70c6dc1bb8f92f4 100644
--- a/coreblas/compute/core_zaxpy.c
+++ b/coreblas/compute/core_zaxpy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgeadd.c b/coreblas/compute/core_zgeadd.c
index daf0feec61420d6c73dde29fea526d0b2dddda59..a85bec68ad82791840cb6bbb4c16f18ec4c64f13 100644
--- a/coreblas/compute/core_zgeadd.c
+++ b/coreblas/compute/core_zgeadd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgelqt.c b/coreblas/compute/core_zgelqt.c
index 3d1849b11ca8c2ee5591615bf1d22d7efab2787a..cb9f67b494d0d911c3eaedc2340980eb24921eb7 100644
--- a/coreblas/compute/core_zgelqt.c
+++ b/coreblas/compute/core_zgelqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgemm.c b/coreblas/compute/core_zgemm.c
index 461d6ce906b8cf18128add68c91ee4c94cfe909e..02dbe12d796be70c7a7344d31d0b6297eaa51652 100644
--- a/coreblas/compute/core_zgemm.c
+++ b/coreblas/compute/core_zgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgeqrt.c b/coreblas/compute/core_zgeqrt.c
index 9bed12cef28be40cc05da7a3782782eac1728ba2..76fcfdfc2ea9e9a273cd70a2e0a78bdfc3c6d26f 100644
--- a/coreblas/compute/core_zgeqrt.c
+++ b/coreblas/compute/core_zgeqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgesplit.c b/coreblas/compute/core_zgesplit.c
index b027ed23e0376a8d0ba58cf8667c24de4cd08b0b..5255442c522f938f0218b74ab7e7497268723aaf 100644
--- a/coreblas/compute/core_zgesplit.c
+++ b/coreblas/compute/core_zgesplit.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgessm.c b/coreblas/compute/core_zgessm.c
index 49be050163104cd7a3ed18cb8a8d5a403fa8d484..1182d61a3737e8cc1ebf077e83f140a556c3b879 100644
--- a/coreblas/compute/core_zgessm.c
+++ b/coreblas/compute/core_zgessm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgessq.c b/coreblas/compute/core_zgessq.c
index 2aee7eefc5bc4d8e233bfaad12bdaf092453cea0..55bbf091f25b2a1f5a2a8e8c4116cd12ac54f3d3 100644
--- a/coreblas/compute/core_zgessq.c
+++ b/coreblas/compute/core_zgessq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgetf2_nopiv.c b/coreblas/compute/core_zgetf2_nopiv.c
index c84a1162d718de07a28b59af61d0be6375a5df9f..91c313430f30aa8a1edcb395a5cb44de7789d3c3 100644
--- a/coreblas/compute/core_zgetf2_nopiv.c
+++ b/coreblas/compute/core_zgetf2_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgetrf.c b/coreblas/compute/core_zgetrf.c
index 336ff84daea0abf94bdaad1a685931e48f6f0ab8..c20a6b118220215ec06585f0f5a87f5da4fad7a9 100644
--- a/coreblas/compute/core_zgetrf.c
+++ b/coreblas/compute/core_zgetrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgetrf_incpiv.c b/coreblas/compute/core_zgetrf_incpiv.c
index 12cc372b7d8b3f9b94a3137619e733d5d364a55c..b47084b3cbf23a4ccad1ccdef1974a7c9dd2e0c7 100644
--- a/coreblas/compute/core_zgetrf_incpiv.c
+++ b/coreblas/compute/core_zgetrf_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zgetrf_nopiv.c b/coreblas/compute/core_zgetrf_nopiv.c
index ae7490dad7c6402e5ab2d97abf869d15b8848355..b7661ba5c260dc0352e6f2fd5024aa31cb86d56c 100644
--- a/coreblas/compute/core_zgetrf_nopiv.c
+++ b/coreblas/compute/core_zgetrf_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zhe2ge.c b/coreblas/compute/core_zhe2ge.c
index 37e9890b9784abfb8d3558f731c394d747c54155..5f8fa6c549e29661bf007e757009cd4a9da2170d 100644
--- a/coreblas/compute/core_zhe2ge.c
+++ b/coreblas/compute/core_zhe2ge.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zhemm.c b/coreblas/compute/core_zhemm.c
index fa049bb08295e656aad5e044a8acbfca677037a0..e05cadd4f1bc60a5fb6ab9fb685fd97c2af52ef2 100644
--- a/coreblas/compute/core_zhemm.c
+++ b/coreblas/compute/core_zhemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zher2k.c b/coreblas/compute/core_zher2k.c
index 6bfc8760167a3283ed726e9cfd4482fd538b75c7..ce7968cc3b303e954e9b6a8e1dfb8614c45cf3a8 100644
--- a/coreblas/compute/core_zher2k.c
+++ b/coreblas/compute/core_zher2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zherfb.c b/coreblas/compute/core_zherfb.c
index b7ecc65782ed9930d2ae33edccaa154692295904..d3653d55b79a6e3010bbae702ccb7180e7e3a6b3 100644
--- a/coreblas/compute/core_zherfb.c
+++ b/coreblas/compute/core_zherfb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zherk.c b/coreblas/compute/core_zherk.c
index 14befa5dbf0e9337b9a07a33222efdf8754a4377..3e782717e43197a6f1c02f29da24b3fa2de72fb2 100644
--- a/coreblas/compute/core_zherk.c
+++ b/coreblas/compute/core_zherk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zhessq.c b/coreblas/compute/core_zhessq.c
index 09db985710b4487c03679dbe40350b0ad1eb56fb..250962aba64c50ab0a611a318a6028ec43cdbe90 100644
--- a/coreblas/compute/core_zhessq.c
+++ b/coreblas/compute/core_zhessq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlacpy.c b/coreblas/compute/core_zlacpy.c
index 15f0a03995421045b034093ca1fe526088e89d2b..71c8e542c062ce4cfc87af6743bc4875d86598f5 100644
--- a/coreblas/compute/core_zlacpy.c
+++ b/coreblas/compute/core_zlacpy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlag2c.c b/coreblas/compute/core_zlag2c.c
index 3a147dc092be442050d76209b8a14b2d464650fa..2eefc9532ea0fa7ab589c3d556334f152198be21 100644
--- a/coreblas/compute/core_zlag2c.c
+++ b/coreblas/compute/core_zlag2c.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlange.c b/coreblas/compute/core_zlange.c
index 6359d947ad77544478097323ba616271a96c8c5f..c00c1d4765a815bfd3e83daf361f2ba4d04c5607 100644
--- a/coreblas/compute/core_zlange.c
+++ b/coreblas/compute/core_zlange.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlanhe.c b/coreblas/compute/core_zlanhe.c
index d4cbc7fd15f6031d42da4a05a595557f5ead61d3..bf7d206c91fe297652ae52e77f83e1b65d555d69 100644
--- a/coreblas/compute/core_zlanhe.c
+++ b/coreblas/compute/core_zlanhe.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlansy.c b/coreblas/compute/core_zlansy.c
index 703a8c71f77eb4456cee224f8c0370357aaf4505..3657dbf1fe8f82f756b7a3ae1d93de6106161e21 100644
--- a/coreblas/compute/core_zlansy.c
+++ b/coreblas/compute/core_zlansy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlantr.c b/coreblas/compute/core_zlantr.c
index 2eec1229b69066e5c3242c4ccb190b6f0967788d..d4f24af753c6a8e4738957bd99622d6f4a54a9c6 100644
--- a/coreblas/compute/core_zlantr.c
+++ b/coreblas/compute/core_zlantr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlaset.c b/coreblas/compute/core_zlaset.c
index 6c667f0d15d725cfbe0119416d31cca13e594a00..db4e8484791dd469e284a08f311e2b0772a37157 100644
--- a/coreblas/compute/core_zlaset.c
+++ b/coreblas/compute/core_zlaset.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlaset2.c b/coreblas/compute/core_zlaset2.c
index f07cea6fc51cfc8fa2cf8d83566df0eaca845ce2..95a5e643e817f06c24065faaa1d3e2dc5611c34a 100644
--- a/coreblas/compute/core_zlaset2.c
+++ b/coreblas/compute/core_zlaset2.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlatro.c b/coreblas/compute/core_zlatro.c
index 1c511dd0b741c1eaedfba4c8a43e40736a187385..2bdcbfc311199b37303e07beccd1bbfc61a8fd4c 100644
--- a/coreblas/compute/core_zlatro.c
+++ b/coreblas/compute/core_zlatro.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zlauum.c b/coreblas/compute/core_zlauum.c
index 59b37225c0df1f9c8fa3322ac68e652b8f7348e8..eba4450b6c52fcedce27c12d6ac30d115e8527d0 100644
--- a/coreblas/compute/core_zlauum.c
+++ b/coreblas/compute/core_zlauum.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zpamm.c b/coreblas/compute/core_zpamm.c
index 5da5615d96af42c769345a33015a42e68eec9d5b..35c8e049015a9aed8e55bf27b397d078717db1fe 100644
--- a/coreblas/compute/core_zpamm.c
+++ b/coreblas/compute/core_zpamm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zparfb.c b/coreblas/compute/core_zparfb.c
index 6dacf50491ab69772c9913a6d64b81af906c9179..5199173acfadea031f5d656407638c7b0e9a8c18 100644
--- a/coreblas/compute/core_zparfb.c
+++ b/coreblas/compute/core_zparfb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zpemv.c b/coreblas/compute/core_zpemv.c
index fd5467b8afae3161faeebf6807fb5bda3e0d4a34..62213c723b142898fc571557e49a7c95788521e9 100644
--- a/coreblas/compute/core_zpemv.c
+++ b/coreblas/compute/core_zpemv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zplghe.c b/coreblas/compute/core_zplghe.c
index 8db1d83b8c7149c8a2e794f462bacf10b176755f..f8ffd2bb0d30cdc73054aff83e65987ea0c77925 100644
--- a/coreblas/compute/core_zplghe.c
+++ b/coreblas/compute/core_zplghe.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zplgsy.c b/coreblas/compute/core_zplgsy.c
index bcf7f22f82474c5cfe65cc406224c19a519d263f..381a608495ed0ed1c646d1b709d662885c1c1eca 100644
--- a/coreblas/compute/core_zplgsy.c
+++ b/coreblas/compute/core_zplgsy.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zplrnt.c b/coreblas/compute/core_zplrnt.c
index a27fab67705fcae719a302bb386ed70560b70ef5..06a0ba741e88f2c4d99f187c00847c23bf0ca1aa 100644
--- a/coreblas/compute/core_zplrnt.c
+++ b/coreblas/compute/core_zplrnt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zpotrf.c b/coreblas/compute/core_zpotrf.c
index 1e818f19523d319a6e0e775acb24f4e2ee128a63..4dd8e8dfc904d958e792a88677d69355acb407b8 100644
--- a/coreblas/compute/core_zpotrf.c
+++ b/coreblas/compute/core_zpotrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zssssm.c b/coreblas/compute/core_zssssm.c
index 386c487dd8a92025d433b8c03e216d51e2e44af3..87d18d295cb546114672a6c4682b3810791870fe 100644
--- a/coreblas/compute/core_zssssm.c
+++ b/coreblas/compute/core_zssssm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zsymm.c b/coreblas/compute/core_zsymm.c
index 431d65c840888f9af472c1c3edef4eea08c4fa54..1252d48ab279f1390e28be7c403aa414b9adb8ff 100644
--- a/coreblas/compute/core_zsymm.c
+++ b/coreblas/compute/core_zsymm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zsyr2k.c b/coreblas/compute/core_zsyr2k.c
index af35387131def6d7971cdb479031881db12288f3..e3b1f132bb32e82296ec2b7b177abc4eb23c065e 100644
--- a/coreblas/compute/core_zsyr2k.c
+++ b/coreblas/compute/core_zsyr2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zsyrk.c b/coreblas/compute/core_zsyrk.c
index 665f06f6e68c47c5a81caad4c180946d920c8dd0..c821d366cdae66234b42ab526a141b7e42e9edd0 100644
--- a/coreblas/compute/core_zsyrk.c
+++ b/coreblas/compute/core_zsyrk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zsyssq.c b/coreblas/compute/core_zsyssq.c
index e44a0488281d1e940eac6211c6d2a48caa4ba49f..a2c19544b05dc575c9e818fdd1c520c52e0dbdd5 100644
--- a/coreblas/compute/core_zsyssq.c
+++ b/coreblas/compute/core_zsyssq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zsytf2_nopiv.c b/coreblas/compute/core_zsytf2_nopiv.c
index 4deca1664dcebca7266780bcf176933fd4b48c6f..a98424f446ccba7d832d7095617a94bf681f9c12 100644
--- a/coreblas/compute/core_zsytf2_nopiv.c
+++ b/coreblas/compute/core_zsytf2_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztplqt.c b/coreblas/compute/core_ztplqt.c
index f95ebd960259d9f83178ccbfa211da955093ed80..b2794dc6d5a5ad66de31889744430873bce2ac90 100644
--- a/coreblas/compute/core_ztplqt.c
+++ b/coreblas/compute/core_ztplqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztpmlqt.c b/coreblas/compute/core_ztpmlqt.c
index e4207a731637f6d66a31cb18f8b1b013cce4c80e..9eca91bd32cb8d73aa66952d6a817e8e9cf4dd07 100644
--- a/coreblas/compute/core_ztpmlqt.c
+++ b/coreblas/compute/core_ztpmlqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztpmqrt.c b/coreblas/compute/core_ztpmqrt.c
index b7c818e90d3b079b0b3985820974af092e4d1f8f..3b5721fc74be65d1d0b3e14668c3909b4a7fec55 100644
--- a/coreblas/compute/core_ztpmqrt.c
+++ b/coreblas/compute/core_ztpmqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztpqrt.c b/coreblas/compute/core_ztpqrt.c
index 46f430e7f923e08b65c7e9b46421eb05cdf006e6..ddfbb49ab5948f5a933bd513290ac1e64a6aa457 100644
--- a/coreblas/compute/core_ztpqrt.c
+++ b/coreblas/compute/core_ztpqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztradd.c b/coreblas/compute/core_ztradd.c
index 182c890c3a172624ba3b9e849726895211d9d7b2..831ad069eedc3939b66730b8ab3f2e736a746824 100644
--- a/coreblas/compute/core_ztradd.c
+++ b/coreblas/compute/core_ztradd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztrasm.c b/coreblas/compute/core_ztrasm.c
index 6af370ce0b4845d798a0c31d9bad58f4a0c6ef1c..86357d3fb6f1dc9175fb77ca4fa0aeff1411f2ce 100644
--- a/coreblas/compute/core_ztrasm.c
+++ b/coreblas/compute/core_ztrasm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztrmm.c b/coreblas/compute/core_ztrmm.c
index 43cf3aa020d937871f057e8404e76848fcc0cd72..ac3ea034e9fa4db4e38bab2e167fb421f60059fe 100644
--- a/coreblas/compute/core_ztrmm.c
+++ b/coreblas/compute/core_ztrmm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztrsm.c b/coreblas/compute/core_ztrsm.c
index 4096d06f459c58defec310b84af2a98a44e4c9e8..6158088d064b0d8291c389fbced0d504e93b5cc2 100644
--- a/coreblas/compute/core_ztrsm.c
+++ b/coreblas/compute/core_ztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztrssq.c b/coreblas/compute/core_ztrssq.c
index 7a128d5740fcfd82ec607303c97c5612a485042d..f01e63663267cb0c12529416ef7597c214078bc5 100644
--- a/coreblas/compute/core_ztrssq.c
+++ b/coreblas/compute/core_ztrssq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztrtri.c b/coreblas/compute/core_ztrtri.c
index 1fcdfd158b1da658523d7087cac0921b54f5d2ae..c815d322e259e308297cf8fa4dba533e40c4a32d 100644
--- a/coreblas/compute/core_ztrtri.c
+++ b/coreblas/compute/core_ztrtri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztslqt.c b/coreblas/compute/core_ztslqt.c
index 58c6b5e8b1797959c4bd29a75295177f3b092275..da5b27078042e1436a1f628612ae003d13a17be5 100644
--- a/coreblas/compute/core_ztslqt.c
+++ b/coreblas/compute/core_ztslqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztsmlq.c b/coreblas/compute/core_ztsmlq.c
index 15323bbff8ac94626816d4bc1e54678ca8262c08..a9324fa04fac4b04ae9676a59570b9f1ff4bf922 100644
--- a/coreblas/compute/core_ztsmlq.c
+++ b/coreblas/compute/core_ztsmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztsmlq_hetra1.c b/coreblas/compute/core_ztsmlq_hetra1.c
index 004e826b721f87e581bc394f6e52384df37516ce..ff712331781ce4679dc6331ff100a5f11b750fe6 100644
--- a/coreblas/compute/core_ztsmlq_hetra1.c
+++ b/coreblas/compute/core_ztsmlq_hetra1.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztsmqr.c b/coreblas/compute/core_ztsmqr.c
index a1d194e14639dccaa7d5f0d14b787a572bb63fa1..e4f6815814d4022358593c37b987885bdb0ccff4 100644
--- a/coreblas/compute/core_ztsmqr.c
+++ b/coreblas/compute/core_ztsmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztsmqr_hetra1.c b/coreblas/compute/core_ztsmqr_hetra1.c
index 7f763d06af687f770e0f56e366e2fd05aa1a53ec..cfba422e72ed6aac96fb75d6fc4f65aeffe5df05 100644
--- a/coreblas/compute/core_ztsmqr_hetra1.c
+++ b/coreblas/compute/core_ztsmqr_hetra1.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztsqrt.c b/coreblas/compute/core_ztsqrt.c
index 82b293cce27a5d619892b7c72947f2c64de7e76a..7564c4edffed7e8d96a2687b6a4354f13747efe9 100644
--- a/coreblas/compute/core_ztsqrt.c
+++ b/coreblas/compute/core_ztsqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_ztstrf.c b/coreblas/compute/core_ztstrf.c
index e2c9bc0073b269d1810aae10a8eb77e389194233..c0f5c9ecac6766b558262394314dcf1ddc642fe7 100644
--- a/coreblas/compute/core_ztstrf.c
+++ b/coreblas/compute/core_ztstrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zttlqt.c b/coreblas/compute/core_zttlqt.c
index 6abd97c435fbbc5e607023cb7ee56e22f4c3b282..db12242e334aadbea103eb05fc209cfce5450ae5 100644
--- a/coreblas/compute/core_zttlqt.c
+++ b/coreblas/compute/core_zttlqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zttmlq.c b/coreblas/compute/core_zttmlq.c
index 815cf872f75d1428a33aa28d0ca6d66ba77eb2c7..69a7004c6d9d9cd148766f822025fcdbe7f441a9 100644
--- a/coreblas/compute/core_zttmlq.c
+++ b/coreblas/compute/core_zttmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zttmqr.c b/coreblas/compute/core_zttmqr.c
index f7a9142d353de7eaa5d1f3cc6d9615d98b875301..9342ecbe385fffbe86faa234e04f83a9f899341d 100644
--- a/coreblas/compute/core_zttmqr.c
+++ b/coreblas/compute/core_zttmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  ***
  *
diff --git a/coreblas/compute/core_zttqrt.c b/coreblas/compute/core_zttqrt.c
index 3da97a4ec590921c5e01892468ec5230ca29b1af..c024dc9595a60cd5cf61757e78b4ec3d6f7ef5b7 100644
--- a/coreblas/compute/core_zttqrt.c
+++ b/coreblas/compute/core_zttqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zunmlq.c b/coreblas/compute/core_zunmlq.c
index e6f3b0f0e7db41d7d820ea26bb5b3ff2392bcbb0..c7ac26f5577764a7818fb8c47a16497dc1414316 100644
--- a/coreblas/compute/core_zunmlq.c
+++ b/coreblas/compute/core_zunmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/compute/core_zunmqr.c b/coreblas/compute/core_zunmqr.c
index 30e7ad3355ca7bfb2a82c8d1438d4a645daa6e76..59fb4c52591e570c78dc4a8b0d1a49175f52b980 100644
--- a/coreblas/compute/core_zunmqr.c
+++ b/coreblas/compute/core_zunmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  */
diff --git a/coreblas/compute/global.c b/coreblas/compute/global.c
index e8167a8bf6f80a42ea9e14a3ffedc17ba09632ec..bc953f6955b26007de7bba821cd19488e2790ba0 100644
--- a/coreblas/compute/global.c
+++ b/coreblas/compute/global.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/coreblas/eztrace_module/CMakeLists.txt b/coreblas/eztrace_module/CMakeLists.txt
index 75f29d677209fd3cdb069d558ca952bb7e7bdfe8..f8a5cb4948e36a07fc17dccc4487322cc8daa3c9 100644
--- a/coreblas/eztrace_module/CMakeLists.txt
+++ b/coreblas/eztrace_module/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/coreblas/include/CMakeLists.txt b/coreblas/include/CMakeLists.txt
index b2815ff671f0be3275d7fe54dd906a166a21a432..7154d279b159850ffa807f34732b1aef79cb4d94 100644
--- a/coreblas/include/CMakeLists.txt
+++ b/coreblas/include/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h
index 92b4bb8b245d60efdadb1ad69a3334fd4714d556..2779be04bd318a92c8813f5bbc2d4614b569bcae 100644
--- a/coreblas/include/coreblas.h
+++ b/coreblas/include/coreblas.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2010-11-15
  *
  */
-#ifndef _CORE_BLAS_H_
-#define _CORE_BLAS_H_
+#ifndef _coreblas_h_
+#define _coreblas_h_
 
 #include <stdio.h>
 #include <math.h>
@@ -85,4 +85,4 @@ int  get_coreblas_gemm3m_enabled( void );
 
 END_C_DECLS
 
-#endif
+#endif /* _coreblas_h_ */
diff --git a/coreblas/include/coreblas/cblas.h b/coreblas/include/coreblas/cblas.h
index 34368b0f1bc05a1c470c9ae5d39081937f66c7e2..66648c93637b4619cd5804c78cdd58b76ed9cfa6 100644
--- a/coreblas/include/coreblas/cblas.h
+++ b/coreblas/include/coreblas/cblas.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2012-09-15
  *
  */
-#ifndef CBLAS_H
-#define CBLAS_H
+#ifndef _cblas_h_
+#define _cblas_h_
 #include <stddef.h>
 
 /*
@@ -594,4 +594,4 @@ void cblas_xerbla(int p, const char *rout, const char *form, ...);
 #endif
 
 
-#endif
+#endif /* _cblas_h_ */
diff --git a/coreblas/include/coreblas/coreblas_z.h b/coreblas/include/coreblas/coreblas_z.h
index 22f9fbdb251c63826b459a488161ed500971a53b..126ca973184c2d7ea251d1898a824ba605cee0a5 100644
--- a/coreblas/include/coreblas/coreblas_z.h
+++ b/coreblas/include/coreblas/coreblas_z.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -24,8 +24,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef _CHAMELEON_CORE_ZBLAS_H_
-#define _CHAMELEON_CORE_ZBLAS_H_
+#ifndef _coreblas_z_h_
+#define _coreblas_z_h_
 
 /**
  *  Declarations of serial kernels - alphabetical order
@@ -399,4 +399,5 @@ int  CORE_zunmqr(cham_side_t side, cham_trans_t trans,
                  const CHAMELEON_Complex64_t *T, int LDT,
                  CHAMELEON_Complex64_t *C, int LDC,
                  CHAMELEON_Complex64_t *WORK, int LDWORK);
-#endif
+
+#endif /* _coreblas_z_h_ */
diff --git a/coreblas/include/coreblas/coreblas_zc.h b/coreblas/include/coreblas/coreblas_zc.h
index f792a58711091246c643a2acfd2db4a6179c670e..32f929a5e657690282fcb59c038fc02000ad50e1 100644
--- a/coreblas/include/coreblas/coreblas_zc.h
+++ b/coreblas/include/coreblas/coreblas_zc.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -23,8 +23,8 @@
  * @precisions mixed zc -> ds
  *
  */
-#ifndef _CHAMELEON_CORE_ZCBLAS_H_
-#define _CHAMELEON_CORE_ZCBLAS_H_
+#ifndef _coreblas_zc_h_
+#define _coreblas_zc_h_
 
 /**
  *  Declarations of serial kernels - alphabetical order
@@ -36,4 +36,4 @@ void CORE_zlag2c(int m, int n,
                  const CHAMELEON_Complex64_t *A, int lda,
                  CHAMELEON_Complex32_t *B, int ldb, int *info);
 
-#endif
+#endif /* _coreblas_zc_h_ */
diff --git a/coreblas/include/coreblas/lapacke.h b/coreblas/include/coreblas/lapacke.h
index dfc5e3c841939b44279627e07c7e29188062deea..98d7ee693ac553b48dbbadcd931e912b83bd77b5 100644
--- a/coreblas/include/coreblas/lapacke.h
+++ b/coreblas/include/coreblas/lapacke.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -47,8 +47,8 @@
 * Generated November, 2011
 */
 
-#ifndef _LAPACKE_H_
-#define _LAPACKE_H_
+#ifndef _lapacke_h_
+#define _lapacke_h_
 
 /*
 *  Turn on HAVE_LAPACK_CONFIG_H to redefine C-LAPACK datatypes
@@ -16458,4 +16458,4 @@ void LAPACK_ilaver( const lapack_int* vers_major, const lapack_int* vers_minor,
 }
 #endif /* __cplusplus */
 
-#endif /* _LAPACKE_H_ */
+#endif /* _lapacke_h_ */
diff --git a/coreblas/include/coreblas/lapacke_config.h b/coreblas/include/coreblas/lapacke_config.h
index 36dedcce09ecea38aa36e08854f4e32083152818..ccb678939f0175cb45a35d487e1da4aa068b6fa9 100644
--- a/coreblas/include/coreblas/lapacke_config.h
+++ b/coreblas/include/coreblas/lapacke_config.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -47,8 +47,8 @@
 * Generated May, 2011
 */
 
-#ifndef _LAPACKE_CONFIG_H_
-#define _LAPACKE_CONFIG_H_
+#ifndef _lapacke_config_h_
+#define _lapacke_config_h_
 
 #ifdef __cplusplus
 #if defined(LAPACK_COMPLEX_CPP)
@@ -132,4 +132,4 @@ lapack_complex_double lapack_make_complex_double( double re, double im );
 }
 #endif /* __cplusplus */
 
-#endif /* _LAPACKE_CONFIG_H_ */
+#endif /* _lapacke_config_h_ */
diff --git a/coreblas/include/coreblas/lapacke_mangling.h b/coreblas/include/coreblas/lapacke_mangling.h
index 6dde725bb2b2567bc75c45abdc6719cbe923dc8c..00e7bf63595da9aa57d55f5a7870e3f13ca56798 100644
--- a/coreblas/include/coreblas/lapacke_mangling.h
+++ b/coreblas/include/coreblas/lapacke_mangling.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -14,8 +14,8 @@
  * @version 1.0.0
  *
  */
-#ifndef LAPACK_HEADER_INCLUDED
-#define LAPACK_HEADER_INCLUDED
+#ifndef _lapacke_mangling_h_
+#define _lapacke_mangling_h_
 
 /* Mangling for Fortran global symbols without underscores. */
 #define LAPACK_GLOBAL(name,NAME) name##_
@@ -29,4 +29,4 @@
 /* Mangling for Fortran module symbols with underscores. */
 #define LAPACK_MODULE_(mod_name,name, mod_NAME,NAME) __##mod_name##_MOD_##name
 
-#endif
+#endif /* _lapacke_mangling_h_ */
diff --git a/cudablas/CMakeLists.txt b/cudablas/CMakeLists.txt
index bf39d327190dc0bc128cf68f35d8764761755ff2..a85472b3e368de4a6cd8e2e22c2cffbd9a0c70cd 100644
--- a/cudablas/CMakeLists.txt
+++ b/cudablas/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/cudablas/compute/CMakeLists.txt b/cudablas/compute/CMakeLists.txt
index 7822fdfc8baacf6907b909f6cb6256738dc11578..d9859a604616b7b4c8e79f7bc8a32238b68eca40 100644
--- a/cudablas/compute/CMakeLists.txt
+++ b/cudablas/compute/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/cudablas/compute/cuda_zgeadd.c b/cudablas/compute/cuda_zgeadd.c
index aedd54d08c12fa4767e4df9e8f7a60178dc27695..d7f86784ccf595180b3cff5e8af42ca4710d40d9 100644
--- a/cudablas/compute/cuda_zgeadd.c
+++ b/cudablas/compute/cuda_zgeadd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgelqt.c b/cudablas/compute/cuda_zgelqt.c
index 8eeaaf48a565e767db4968c3e35940ac1e203da6..b2e6d3da4d0eb8c7b1bb6ebef9e29ca5eced73b3 100644
--- a/cudablas/compute/cuda_zgelqt.c
+++ b/cudablas/compute/cuda_zgelqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgemerge.c b/cudablas/compute/cuda_zgemerge.c
index e6c90f8ebacc3a3608b00f51e29a65b9bf9f5601..889d6f333909aff6e5827d4b7d46bb64a13f68a3 100644
--- a/cudablas/compute/cuda_zgemerge.c
+++ b/cudablas/compute/cuda_zgemerge.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgemm.c b/cudablas/compute/cuda_zgemm.c
index bd8ebbc9997141278d7d290af124e67aba2cb54b..452b6fbfac5cd7f69fd29b6df3d380f0613e36a0 100644
--- a/cudablas/compute/cuda_zgemm.c
+++ b/cudablas/compute/cuda_zgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgeqrt.c b/cudablas/compute/cuda_zgeqrt.c
index e3d0d50f6797ab69752e362440b778f808e2ad35..2ba65a020c6f8caaf4a1fca369fc61a6403c944d 100644
--- a/cudablas/compute/cuda_zgeqrt.c
+++ b/cudablas/compute/cuda_zgeqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgessm.c b/cudablas/compute/cuda_zgessm.c
index be5bced5d36d234c0d4d5afca56734138ae56774..261033b892b46fafafdb953ac5851a0ef7a76677 100644
--- a/cudablas/compute/cuda_zgessm.c
+++ b/cudablas/compute/cuda_zgessm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zgetrf.c b/cudablas/compute/cuda_zgetrf.c
index 83e00a987f2f2327e02e67a683b5b69848b2033f..b236adecf1fe07ec8821ba93f13501878e15087f 100644
--- a/cudablas/compute/cuda_zgetrf.c
+++ b/cudablas/compute/cuda_zgetrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zhemm.c b/cudablas/compute/cuda_zhemm.c
index 06a4cda74bb74cefd46c4a162983d726ccd820ec..68a7c5c288f3193c34b856e5bdaa0a4be0f841b9 100644
--- a/cudablas/compute/cuda_zhemm.c
+++ b/cudablas/compute/cuda_zhemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zher2k.c b/cudablas/compute/cuda_zher2k.c
index ce5a09b277389667f048f2dcd47bcb876600bef2..063d5476f779375469330489e2a5cff9b4a31e1f 100644
--- a/cudablas/compute/cuda_zher2k.c
+++ b/cudablas/compute/cuda_zher2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zherfb.c b/cudablas/compute/cuda_zherfb.c
index 6a6025bf0badfc3414d6adcc3a7507da4e4991d8..a6e447807f8183a6f3036539d84aa51b9b314d64 100644
--- a/cudablas/compute/cuda_zherfb.c
+++ b/cudablas/compute/cuda_zherfb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zherk.c b/cudablas/compute/cuda_zherk.c
index 74cf9503e696c05b708ac1c6f13baafd7e337253..ecca775e5149a60d8f7965f33a5c62489f3336b1 100644
--- a/cudablas/compute/cuda_zherk.c
+++ b/cudablas/compute/cuda_zherk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zlarfb.c b/cudablas/compute/cuda_zlarfb.c
index 7cdeb41342e7e7d2d6df9f6239eba53bbccfe582..b44b22ca9225b87dae0bc7cacf0de17050a6a2ef 100644
--- a/cudablas/compute/cuda_zlarfb.c
+++ b/cudablas/compute/cuda_zlarfb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zlauum.c b/cudablas/compute/cuda_zlauum.c
index 9843320b31e356dc8a28d33554eeb2af2c57112d..77f4171811bdef765d12dead4a2daba57c19aad2 100644
--- a/cudablas/compute/cuda_zlauum.c
+++ b/cudablas/compute/cuda_zlauum.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zparfb.c b/cudablas/compute/cuda_zparfb.c
index d35dcbe9eccf888381e9403f0f184b3531a81c64..292ac3b647cebbee27d15f7336ed80a21c8de9b0 100644
--- a/cudablas/compute/cuda_zparfb.c
+++ b/cudablas/compute/cuda_zparfb.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zpotrf.c b/cudablas/compute/cuda_zpotrf.c
index 46361fe828904ab9f7c4b2c5fb137199205b90df..6ec760a47e5909e8fbefae3adcec4e648167fbe9 100644
--- a/cudablas/compute/cuda_zpotrf.c
+++ b/cudablas/compute/cuda_zpotrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zssssm.c b/cudablas/compute/cuda_zssssm.c
index e2fa8ea8dac06967448f928d154da1093f3f57fa..70f48047c7e58ac75b97e1ebc8b5f24c9ff88000 100644
--- a/cudablas/compute/cuda_zssssm.c
+++ b/cudablas/compute/cuda_zssssm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zsymm.c b/cudablas/compute/cuda_zsymm.c
index 230e3d203bd7f98709082ed379a4d8ee4872f660..aaad4efca9056d0b934e3d177e98efd82ed309cd 100644
--- a/cudablas/compute/cuda_zsymm.c
+++ b/cudablas/compute/cuda_zsymm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zsyr2k.c b/cudablas/compute/cuda_zsyr2k.c
index 25d755b85221d20ae765aa678fce6df1203ef1cd..12083cccd4a9766f686eef0eb9455bb48bc1dc4b 100644
--- a/cudablas/compute/cuda_zsyr2k.c
+++ b/cudablas/compute/cuda_zsyr2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zsyrk.c b/cudablas/compute/cuda_zsyrk.c
index d23629b19f9532206387aa96284b9261b3724f26..427a52fc01fafadbfe3703863b0d19d04d5558dc 100644
--- a/cudablas/compute/cuda_zsyrk.c
+++ b/cudablas/compute/cuda_zsyrk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztpmqrt.c b/cudablas/compute/cuda_ztpmqrt.c
index 8ddcee6b1b628218eadeb59d512cf980b5d0851e..58fef1c11939ff28c15523926022c696b72e0f70 100644
--- a/cudablas/compute/cuda_ztpmqrt.c
+++ b/cudablas/compute/cuda_ztpmqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztrmm.c b/cudablas/compute/cuda_ztrmm.c
index 674eafcdaa99a9d20b22851af3a2cf681d536cf1..390311e0834fd5b126f912b033b2dc5748c6b2e9 100644
--- a/cudablas/compute/cuda_ztrmm.c
+++ b/cudablas/compute/cuda_ztrmm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztrsm.c b/cudablas/compute/cuda_ztrsm.c
index 5fbc88e75c023a6552059f34ee63922c6c8b4414..e189aba628001218d2b32172450574459baa7f9e 100644
--- a/cudablas/compute/cuda_ztrsm.c
+++ b/cudablas/compute/cuda_ztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztrtri.c b/cudablas/compute/cuda_ztrtri.c
index f5de49eb1b48252c0261a8a79af05a84b7d820fe..8e5d335c87774f2ce586e6863d74c92988c4a978 100644
--- a/cudablas/compute/cuda_ztrtri.c
+++ b/cudablas/compute/cuda_ztrtri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztslqt.c b/cudablas/compute/cuda_ztslqt.c
index 40097ba02a2b0dc2764d2ed8a2eb720e7dfd695d..18d3758bc1a36036243f02ab1359c19797fc3493 100644
--- a/cudablas/compute/cuda_ztslqt.c
+++ b/cudablas/compute/cuda_ztslqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztsmlq.c b/cudablas/compute/cuda_ztsmlq.c
index ea34bf087142a76f0e3276f41b1f6ce3d9d1652a..7d2e3c4a3fbc19d5ec319991a9d56a537608016b 100644
--- a/cudablas/compute/cuda_ztsmlq.c
+++ b/cudablas/compute/cuda_ztsmlq.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztsmqr.c b/cudablas/compute/cuda_ztsmqr.c
index 7e68ac18bf7db6e2b06118e325cdd174942027e3..4b07b9b9ce16397eabf8e358d81b7499eeab2c39 100644
--- a/cudablas/compute/cuda_ztsmqr.c
+++ b/cudablas/compute/cuda_ztsmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztsqrt.c b/cudablas/compute/cuda_ztsqrt.c
index c2ce2aae65c7833f233be67dac481870e77b1b1b..c46bae9ef11438e55861885d94c35627eef5a619 100644
--- a/cudablas/compute/cuda_ztsqrt.c
+++ b/cudablas/compute/cuda_ztsqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_ztstrf.c b/cudablas/compute/cuda_ztstrf.c
index c51aff19af365325ce7273c4f6f323e7c64759c6..d46fd9c5c22859622f51960514ced58a2b415652 100644
--- a/cudablas/compute/cuda_ztstrf.c
+++ b/cudablas/compute/cuda_ztstrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zttmqr.c b/cudablas/compute/cuda_zttmqr.c
index 3100f53a65951537fe9ed6595a366cb0ec6b4b66..236405cdf080fd3c7941aa62426a70cde2e5d8f7 100644
--- a/cudablas/compute/cuda_zttmqr.c
+++ b/cudablas/compute/cuda_zttmqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  ***
  *
diff --git a/cudablas/compute/cuda_zunmlqt.c b/cudablas/compute/cuda_zunmlqt.c
index 77ad328e37cd9ce50d8eb9a84df64367dda5be95..dbb7e3f134a3738e7895ec1f73968320becc6640 100644
--- a/cudablas/compute/cuda_zunmlqt.c
+++ b/cudablas/compute/cuda_zunmlqt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cuda_zunmqrt.c b/cudablas/compute/cuda_zunmqrt.c
index e3a6b89a1b485a9fb0be2c50a095d9225e36b2c8..1160d0009d94cc73a7efb949e04c516a34c1e585 100644
--- a/cudablas/compute/cuda_zunmqrt.c
+++ b/cudablas/compute/cuda_zunmqrt.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/compute/cudaglobal.c b/cudablas/compute/cudaglobal.c
index 4a0fdbac95fe4112c72872cb3a62c99da650cb6e..edbfa36b2b0016206006e0ddea1a1ceecee8194f 100644
--- a/cudablas/compute/cudaglobal.c
+++ b/cudablas/compute/cudaglobal.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/cudablas/eztrace_module/CMakeLists.txt b/cudablas/eztrace_module/CMakeLists.txt
index 23082e1fd5d766319f8c640a7792395774a4518b..e15982a503468cd088ba5678594d341efa98875b 100644
--- a/cudablas/eztrace_module/CMakeLists.txt
+++ b/cudablas/eztrace_module/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/cudablas/include/CMakeLists.txt b/cudablas/include/CMakeLists.txt
index 34ec7d894e5ee1a8f7be414cbdc34b410f3b6376..273105a1e8feecc007bfb13d06cf58615a9238aa 100644
--- a/cudablas/include/CMakeLists.txt
+++ b/cudablas/include/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/cudablas/include/cudablas.h b/cudablas/include/cudablas.h
index 8326144f324f29fce7e9480f813fd0b0ee9eb767..22c0d6450c94ef8ead3d6749c1dbeded28fba0a8 100644
--- a/cudablas/include/cudablas.h
+++ b/cudablas/include/cudablas.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef _CUDA_BLAS_H_
-#define _CUDA_BLAS_H_
+#ifndef _cudablas_h_
+#define _cudablas_h_
 
 #include "chameleon/config.h"
 
@@ -102,4 +102,4 @@ extern int chameleon_cublas_constants[];
 
 END_C_DECLS
 
-#endif
+#endif /* _cudablas_h_ */
diff --git a/cudablas/include/cudablas/cudablas_z.h b/cudablas/include/cudablas/cudablas_z.h
index 3861eef2b6ebe35cb21a53b6bad45c4b6e59bc3c..8e96d463ca451c74b17f91c22c2b6c03a27a101e 100644
--- a/cudablas/include/cudablas/cudablas_z.h
+++ b/cudablas/include/cudablas/cudablas_z.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef _CHAMELEON_CUDA_ZBLAS_H_
-#define _CHAMELEON_CUDA_ZBLAS_H_
+#ifndef _cudablas_z_h_
+#define _cudablas_z_h_
 
 /**
  *  Declarations of cuda kernels - alphabetical order
@@ -44,4 +44,4 @@ int CUDA_zttmqr( cham_side_t side, cham_trans_t trans, int M1, int N1, int M2, i
 int CUDA_zunmlqt(cham_side_t side, cham_trans_t trans, int M, int N, int K, int IB, const cuDoubleComplex *A,    int LDA, const cuDoubleComplex *T,    int LDT, cuDoubleComplex *C,    int LDC, cuDoubleComplex *WORK, int LDWORK, CUBLAS_STREAM_PARAM );
 int CUDA_zunmqrt(cham_side_t side, cham_trans_t trans, int M, int N, int K, int IB, const cuDoubleComplex *A,    int LDA, const cuDoubleComplex *T,    int LDT, cuDoubleComplex *C,    int LDC, cuDoubleComplex *WORK, int LDWORK, CUBLAS_STREAM_PARAM );
 
-#endif
+#endif /* _cudablas_z_h_ */
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 0c43680a0b26fb44d442daaa698546e3e935ceaa..b023032b2e1dd53701f95e74132e25de8498df9f 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt
index 778391eb508dd762167c32717a94e1e80ef2e944..124b9ab5ce4922d1336a1cfb5dd71f98509fe6a4 100644
--- a/doc/doxygen/CMakeLists.txt
+++ b/doc/doxygen/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index c03fe5f027cc1e05dcc379951bfa0514a3733639..64baacbcab27622334cd26a2bf1adc09332e3852 100755
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
@@ -17,6 +17,7 @@
 #     Univ. of California Berkeley,
 #     Univ. of Colorado Denver.
 #
+#  @version 1.0.0
 #  @date 2014-10-17
 #
 ###
diff --git a/example/lapack_to_chameleon/CMakeLists.txt b/example/lapack_to_chameleon/CMakeLists.txt
index cb08bc97df70eca1848acb61e4fe9bb68c5c1f76..b85367037ea34b5325fe28860467d451b74acd40 100644
--- a/example/lapack_to_chameleon/CMakeLists.txt
+++ b/example/lapack_to_chameleon/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/example/lapack_to_chameleon/lapack_to_chameleon.h b/example/lapack_to_chameleon/lapack_to_chameleon.h
index 1d41e4d4fecbd13f4dd2bdc4fcb1f886241810c5..43b6352310118b58760ee7cf5af0d72eb68a6782 100644
--- a/example/lapack_to_chameleon/lapack_to_chameleon.h
+++ b/example/lapack_to_chameleon/lapack_to_chameleon.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef LAPACK_TO_CHAMELEON_H
-#define LAPACK_TO_CHAMELEON_H
+#ifndef _lapack_to_chameleon_h_
+#define _lapack_to_chameleon_h_
 
 #if defined( _WIN32 ) || defined( _WIN64 )
 #define int64_t __int64
@@ -66,4 +66,4 @@ static int startswith(const char *s, const char *prefix) {
 /* define some tools to time the program */
 #include <chameleon/timer.h>
 
-#endif /* LAPACK_TO_CHAMELEON_H */
+#endif /* _lapack_to_chameleon_h_ */
diff --git a/example/lapack_to_chameleon/step0.c b/example/lapack_to_chameleon/step0.c
index ecf7d076fe9f7b368cf135286a6ce74f00e0828f..e2da77da14fc09a4c33563fa9b92ea68357248bb 100644
--- a/example/lapack_to_chameleon/step0.c
+++ b/example/lapack_to_chameleon/step0.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step0.h b/example/lapack_to_chameleon/step0.h
index f3a4010f691a3d104634537ad2c90002081691ba..4d22f78936344388fef3cd094be71afeecbed630 100644
--- a/example/lapack_to_chameleon/step0.h
+++ b/example/lapack_to_chameleon/step0.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP0_H
-#define STEP0_H
+#ifndef _step0_h_
+#define _step0_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -242,4 +242,4 @@ static void CORE_dplrnt( int m, int n, double *A, int lda,
     }
 }
 
-#endif /* STEP0_H */
+#endif /* _step0_h_ */
diff --git a/example/lapack_to_chameleon/step1.c b/example/lapack_to_chameleon/step1.c
index d2e8eebf5812b9893a32d2668197a45cff61aef1..96511d058f4a53e121815a306033e090163418cd 100644
--- a/example/lapack_to_chameleon/step1.c
+++ b/example/lapack_to_chameleon/step1.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step1.h b/example/lapack_to_chameleon/step1.h
index 8918d55048be4ef8e1bf35e2648e2dbf70b45810..92673eb0ab4d4615aca2590d42e1db2e0efd32f7 100644
--- a/example/lapack_to_chameleon/step1.h
+++ b/example/lapack_to_chameleon/step1.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP1_H
-#define STEP1_H
+#ifndef _step1_h_
+#define _step1_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -119,4 +119,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* STEP1_H */
+#endif /* _step1_h_ */
diff --git a/example/lapack_to_chameleon/step2.c b/example/lapack_to_chameleon/step2.c
index 8344554bb5e4466f1e651f3f5aa4e8a1427072e3..3f16a7175454b1f92253e5ec8486d4baf2299b71 100644
--- a/example/lapack_to_chameleon/step2.c
+++ b/example/lapack_to_chameleon/step2.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step2.h b/example/lapack_to_chameleon/step2.h
index 0cd4fa0c8ecc61cce630e7a25e6acdd85b486b2c..383355257cf854aa4f2cd713ad13d31d07d096f4 100644
--- a/example/lapack_to_chameleon/step2.h
+++ b/example/lapack_to_chameleon/step2.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP2_H
-#define STEP2_H
+#ifndef _step2_h_
+#define _step2_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -119,4 +119,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* STEP2_H */
+#endif /* _step2_h_ */
diff --git a/example/lapack_to_chameleon/step3.c b/example/lapack_to_chameleon/step3.c
index 078b6127197cf6265e9eed879681bf195105a96c..7005b7c90f7dda53b8e39fabe1a5ba4db4dd95bb 100644
--- a/example/lapack_to_chameleon/step3.c
+++ b/example/lapack_to_chameleon/step3.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step3.h b/example/lapack_to_chameleon/step3.h
index d04d2d47b5c107fc4a47ecba259094588f9cfefe..edc2385a87688f336e04a50cf0fc9790f257b4e5 100644
--- a/example/lapack_to_chameleon/step3.h
+++ b/example/lapack_to_chameleon/step3.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP3_H
-#define STEP3_H
+#ifndef _step3_h_
+#define _step3_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -197,4 +197,4 @@ inline static int user_getrankof_zero(const CHAM_desc_t *A, int m, int n)
     return 0;
 }
 
-#endif /* STEP3_H */
+#endif /* _step3_h_ */
diff --git a/example/lapack_to_chameleon/step4.c b/example/lapack_to_chameleon/step4.c
index 3e4a1e15ff8a9bd1db5cfada44488036b0bb675a..7ed2847a37754a5d074fc5eed83b1564bf642053 100644
--- a/example/lapack_to_chameleon/step4.c
+++ b/example/lapack_to_chameleon/step4.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step4.h b/example/lapack_to_chameleon/step4.h
index 5571445be68b250ebb007a73c0556c10fed9af0d..eab5928cabd481d95d114479a53e608482cc60e5 100644
--- a/example/lapack_to_chameleon/step4.h
+++ b/example/lapack_to_chameleon/step4.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP4_H
-#define STEP4_H
+#ifndef _step4_h_
+#define _step4_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -119,4 +119,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* STEP4_H */
+#endif /* _step4_h_ */
diff --git a/example/lapack_to_chameleon/step5.c b/example/lapack_to_chameleon/step5.c
index 7793eda9ff1df531958c4ac741218961b2cb9a15..c9daf2ebfbbf60b00d7bbf5b11e1b2f35f50f35e 100644
--- a/example/lapack_to_chameleon/step5.c
+++ b/example/lapack_to_chameleon/step5.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step5.h b/example/lapack_to_chameleon/step5.h
index 7b335a0c103c681abc749c2cbf2010f464e68fb5..ab38168664495bd0cc15df4d4d41eb9f5044e598 100644
--- a/example/lapack_to_chameleon/step5.h
+++ b/example/lapack_to_chameleon/step5.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP5_H
-#define STEP5_H
+#ifndef _step5_h_
+#define _step5_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -134,4 +134,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* STEP5_H */
+#endif /* _step5_h_ */
diff --git a/example/lapack_to_chameleon/step6.c b/example/lapack_to_chameleon/step6.c
index 099ed4fcfd2ec8778f781c8469f3a8c4c4a9a866..03309a4b82dd09ae7a6a2207470fb5a0f641580e 100644
--- a/example/lapack_to_chameleon/step6.c
+++ b/example/lapack_to_chameleon/step6.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step6.h b/example/lapack_to_chameleon/step6.h
index 1190d73f9a21a98f2d7b9eed8f2e335ee79fc6d0..3893a87ab35d0777df5110ab578e61f8175ebfa4 100644
--- a/example/lapack_to_chameleon/step6.h
+++ b/example/lapack_to_chameleon/step6.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2014-10-29
  *
  */
-#ifndef STEP6_H
-#define STEP6_H
+#ifndef _step6_h_
+#define _step6_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -150,4 +150,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* STEP6_H */
+#endif /* _step6_h_ */
diff --git a/example/lapack_to_chameleon/step7.c b/example/lapack_to_chameleon/step7.c
index ee5437028aeb97b912d8e77a049577bc44b379b1..e688e3c7f62e86355fa7c40be823d73eb1daea28 100644
--- a/example/lapack_to_chameleon/step7.c
+++ b/example/lapack_to_chameleon/step7.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/lapack_to_chameleon/step7.h b/example/lapack_to_chameleon/step7.h
index d885eecddcb252ed486c6f976e2065720efb3e7d..7515ec8b5715898c66739083ee774baea06bfc78 100644
--- a/example/lapack_to_chameleon/step7.h
+++ b/example/lapack_to_chameleon/step7.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2016-09-05
  *
  */
-#ifndef step7_H
-#define step7_H
+#ifndef _step7_h_
+#define _step7_h_
 
 /* Common include for all steps of the tutorial */
 #include "lapack_to_chameleon.h"
@@ -177,4 +177,4 @@ static void print_header(char *prog_name, int * iparam) {
     return;
 }
 
-#endif /* step7_H */
+#endif /* _step7_h_ */
diff --git a/example/link_chameleon/CMakeLists.txt b/example/link_chameleon/CMakeLists.txt
index 13d1acd447a8f085db8a7d5d27659749679088ab..cbf4381eb13d417b922b2098b97d1ea0fc48d048 100644
--- a/example/link_chameleon/CMakeLists.txt
+++ b/example/link_chameleon/CMakeLists.txt
@@ -1,5 +1,26 @@
-### Main CMakeLists.txt for project link_chameleon
-
+###
+#
+# @file CMakeLists.txt
+#
+# @copyright 2009-2014 The University of Tennessee and The University of
+#                      Tennessee Research Foundation. All rights reserved.
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                      Univ. Bordeaux. All rights reserved.
+#
+###
+#
+#  @project CHAMELEON
+#  CHAMELEON is a software package provided by:
+#     Inria Bordeaux - Sud-Ouest,
+#     Univ. of Tennessee,
+#     King Abdullah Univesity of Science and Technology
+#     Univ. of California Berkeley,
+#     Univ. of Colorado Denver.
+#
+#  @version 1.0.0
+#  @date 2014-10-17
+#
+###
 cmake_minimum_required(VERSION 2.8)
 project(LINK_CHAMELEON Fortran C CXX)
 
diff --git a/example/link_chameleon/link_chameleon.c b/example/link_chameleon/link_chameleon.c
index b828331f90686680873e20f3ae51695caedcdb44..ff20e16a0c007e46436f202c66754a6921010e5b 100644
--- a/example/link_chameleon/link_chameleon.c
+++ b/example/link_chameleon/link_chameleon.c
@@ -1,3 +1,21 @@
+/**
+ *
+ * @file link_chameleon.c
+ *
+ * @copyright 2009-2014 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation. All rights reserved.
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ ***
+ *
+ * @brief Chameleon link_chameleon example
+ *
+ * @version 1.0.0
+ * @author Florent Pruvost
+ * @date 2014-10-29
+ *
+ */
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/example/link_chameleon/link_chameleon.f90 b/example/link_chameleon/link_chameleon.f90
index 2a5722ceda8725e7e3b8ded3fef798cfaf9e5ca1..e58eaf9da0c378df249a1888ad1118ec47844d27 100644
--- a/example/link_chameleon/link_chameleon.f90
+++ b/example/link_chameleon/link_chameleon.f90
@@ -1,4 +1,17 @@
-
+!!!
+!
+! @file link_chameleon.f90
+!
+!  CHAMELEON Fortran 90 interfaces using Fortran 2003 ISO C bindings
+!  CHAMELEON is a software package provided by Univ. of Tennessee,
+!  Univ. of California Berkeley and Univ. of Colorado Denver
+!
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Florent Pruvost
+! @date 2011-09-15
 program fortran_example
     implicit none
     include 'chameleon_fortran.h'
diff --git a/example/out_of_core/CMakeLists.txt b/example/out_of_core/CMakeLists.txt
index d597063160b9c8fc83d16e003c774ad216da53fe..0b39ead5f5e7c2b0ad0e5b325af16feb8cda777e 100644
--- a/example/out_of_core/CMakeLists.txt
+++ b/example/out_of_core/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/example/out_of_core/out_of_core.c b/example/out_of_core/out_of_core.c
index adbb4f9eac0e756c9170e29713626b55e0fa78c0..763a140f124a600f52f04d01b3c0e52eecd2df64 100644
--- a/example/out_of_core/out_of_core.c
+++ b/example/out_of_core/out_of_core.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/example/out_of_core/out_of_core.h b/example/out_of_core/out_of_core.h
index 5b9946941be2e14f315b724d6693eafeca71839a..c9bcea306b9b9be3c00cedd106f56f097fa283cd 100644
--- a/example/out_of_core/out_of_core.h
+++ b/example/out_of_core/out_of_core.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2016-08-23
  *
  */
-#ifndef OOC_H
-#define OOC_H
+#ifndef _out_of_core_h_
+#define _out_of_core_h_
 
 #include <math.h>
 #include <stdio.h>
@@ -193,4 +193,4 @@ print_o_direct_wont_work(void) {
                     "multiples of 4096. Tip : chose 'n' and 'nb' as both multiples of 32.\n");
 }
 
-#endif /* OOC_H */
+#endif /* _out_of_core_h_ */
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index b6aa282f10765d221a1144c7bb8061870058d88f..1ce56703ee5bdc7d4a2593e024cc2cc85fb9b592 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/include/chameleon.h b/include/chameleon.h
index 403e599bbf2b551faad89502b4b10e958012eced..e12a3c59372456184cacc8131358c2e7eaf67e17 100644
--- a/include/chameleon.h
+++ b/include/chameleon.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -19,8 +19,8 @@
  * @date 2012-09-15
  *
  */
-#ifndef _CHAMELEON_H_
-#define _CHAMELEON_H_
+#ifndef _chameleon_h_
+#define _chameleon_h_
 
 /* ****************************************************************************
  * CHAMELEON types and constants
@@ -137,4 +137,4 @@ int CHAMELEON_Sequence_Wait    (RUNTIME_sequence_t *sequence);
 
 END_C_DECLS
 
-#endif
+#endif /* _chameleon_h_ */
diff --git a/include/chameleon/chameleon_z.h b/include/chameleon/chameleon_z.h
index 326056c17238264bcd05d25c1e3bd90cf948f907..6d70544fb62dcbd57524eb2d4d0981d49b16c4b9 100644
--- a/include/chameleon/chameleon_z.h
+++ b/include/chameleon/chameleon_z.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -333,4 +333,4 @@ int CHAMELEON_zbuild_Tile_Async(cham_uplo_t uplo, CHAM_desc_t *A, void *user_dat
 
 END_C_DECLS
 
-#endif
+#endif /* _chameleon_z_h_ */
diff --git a/include/chameleon/chameleon_zc.h b/include/chameleon/chameleon_zc.h
index 46e1d19a0fd024c403ab679674e775759b7e31b0..511541394e0d8ec5326383bbd2e1514eb68184fd 100644
--- a/include/chameleon/chameleon_zc.h
+++ b/include/chameleon/chameleon_zc.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -52,4 +52,4 @@ BEGIN_C_DECLS
 
 END_C_DECLS
 
-#endif
+#endif /* _chameleon_zc_h_ */
diff --git a/include/chameleon/config.h.in b/include/chameleon/config.h.in
index b69ec92f8f6a4243aa862b579b667a10f836ec96..5edc1093ce3b70c6db269090fb99e85741021ae8 100644
--- a/include/chameleon/config.h.in
+++ b/include/chameleon/config.h.in
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/include/chameleon/constants.h b/include/chameleon/constants.h
index 6cd415fa5f04fc366c76fb142ea32263f656e30d..4e7e0eaa202bae01f369954d87f683204552d07e 100644
--- a/include/chameleon/constants.h
+++ b/include/chameleon/constants.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -224,4 +224,4 @@ typedef enum chameleon_translation_e {
 #define CHAMELEON_ERR_UNEXPECTED       -110
 #define CHAMELEON_ERR_SEQUENCE_FLUSHED -111
 
-#endif
+#endif /* _chameleon_constants_h_ */
diff --git a/include/chameleon/fortran.h b/include/chameleon/fortran.h
index 625818e96d70e0ee228612659d74747f1883362f..ad6fe9d64db1be50a38ae5b1fbb2c61f91655fd9 100644
--- a/include/chameleon/fortran.h
+++ b/include/chameleon/fortran.h
@@ -1,5 +1,21 @@
 !**
 !
+! @file chameleon_fortran.h
+! @brief Chameleon Fortran77 header
+!
+! @copyright 2009-2014 The University of Tennessee and The University of
+!                      Tennessee Research Foundation. All rights reserved.
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+!                      Univ. Bordeaux. All rights reserved.
+!
+! @version 1.0.0
+! @author Bilel Hadri
+! @author Mathieu Faverge
+! @author Cedric Castagnede
+! @date 2010-11-15
+!
+!**
+!
 ! -- Inria
 ! -- (C) Copyright 2012
 !
@@ -34,15 +50,6 @@
 ! knowledge of the CeCILL-B license and that you accept its terms.
 !
 !**
-!
-! @brief Chameleon Fortran77 header
-! @version 1.0.0
-! @author Bilel Hadri
-! @author Mathieu Faverge
-! @author Cedric Castagnede
-! @date 2010-11-15
-!
-!**
 
 !********************************************************************
 !   CHAMELEON constants - precisions
diff --git a/include/chameleon/runtime.h b/include/chameleon/runtime.h
index 88f73362b85dde8538369930c89fd5a08de730f8..9dde64b0a19ad5add0d7976972792e888f3de805 100644
--- a/include/chameleon/runtime.h
+++ b/include/chameleon/runtime.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/include/chameleon/runtime_struct.h b/include/chameleon/runtime_struct.h
index ff90e8854ecf062973b8e443c05e730056104da4..70df9e09d3a2dd3d7e2220715c6bc5cbfa5ba3fa 100644
--- a/include/chameleon/runtime_struct.h
+++ b/include/chameleon/runtime_struct.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/include/chameleon/simulate.h b/include/chameleon/simulate.h
index 06df2a8cf783c77370acf6717d455937749eb1fa..f91dce73e893910e3cfd60aed36acae08a6e846c 100644
--- a/include/chameleon/simulate.h
+++ b/include/chameleon/simulate.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -29,4 +29,4 @@
 #endif
 #endif
 
-#endif
+#endif /* _chameleon_simulate_h_ */
diff --git a/include/chameleon/struct.h b/include/chameleon/struct.h
index 8002d29d56efec199bee7008b1821aea345fd6dd..bc1fb9a05b2b16faa4ce4cb79712e056d01e5d2a 100644
--- a/include/chameleon/struct.h
+++ b/include/chameleon/struct.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/include/chameleon/tasks.h b/include/chameleon/tasks.h
index 31ffc09e52b6ce10a941d5316f1316c269a601bd..bb1794316b74504f8629d2fb3e9a40ac50d18879 100644
--- a/include/chameleon/tasks.h
+++ b/include/chameleon/tasks.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/include/chameleon/tasks_z.h b/include/chameleon/tasks_z.h
index 42e023d4537a52db6ef77fe0e64081303f0f3b3a..28aeaa1b889e0eb5fe16618b02d9bebd73de905a 100644
--- a/include/chameleon/tasks_z.h
+++ b/include/chameleon/tasks_z.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -462,4 +462,4 @@ void INSERT_TASK_zbuild( const RUNTIME_option_t *options,
                         const CHAM_desc_t *A, int Am, int An, int lda,
                         void *user_data, void* user_build_callback );
 
-#endif
+#endif /* _chameleon_tasks_z_h_ */
diff --git a/include/chameleon/tasks_zc.h b/include/chameleon/tasks_zc.h
index c53e7e225d9be8fc37f0123bf33f2857838212ef..bd66ffecccef2728e01ec72a0d33b8258e71b7fc 100644
--- a/include/chameleon/tasks_zc.h
+++ b/include/chameleon/tasks_zc.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -38,4 +38,4 @@ void INSERT_TASK_zlag2c( const RUNTIME_option_t *options,
                         CHAM_desc_t *A, int Am, int An, int lda,
                         CHAM_desc_t *B, int Bm, int Bn, int ldb );
 
-#endif
+#endif /* _chameleon_tasks_zc_h_ */
diff --git a/include/chameleon/timer.h b/include/chameleon/timer.h
index effb62205d027c0816b8dbfb89aa1cc81543980a..eabe2008d842c43e86b2072a33f9cc134880bebe 100644
--- a/include/chameleon/timer.h
+++ b/include/chameleon/timer.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  * @version 1.0.0
diff --git a/include/chameleon/types.h b/include/chameleon/types.h
index ed8fe86168dec8ac00e9af4c6f95bfb5c37ce71f..9985af472ae1a8b7a30f88e90f4e8d311d89351c 100644
--- a/include/chameleon/types.h
+++ b/include/chameleon/types.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -124,4 +124,4 @@ static inline int chameleon_min( int a, int b ) {
 
 END_C_DECLS
 
-#endif /* __CHAMELEON_H__ */
+#endif /* _chameleon_types_h_ */
diff --git a/plasma-conversion/callGeneration.bash b/plasma-conversion/callGeneration.bash
index 7f884f7b903744f8b825fcc921265a872cfc7140..705220abad4a1487e1ebe7f0289523b4c4b1f86a 100755
--- a/plasma-conversion/callGeneration.bash
+++ b/plasma-conversion/callGeneration.bash
@@ -5,7 +5,7 @@
 #
 # @copyright 2009-2015 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/plasma-conversion/insert-licence/chameleon_c.licence b/plasma-conversion/insert-licence/chameleon_c.licence
index 6bf465b1cf2505543ff5ef1c55fa298d1381bdeb..b6b9eedfa0c5874b6996c87d99393ed883c6eaaa 100644
--- a/plasma-conversion/insert-licence/chameleon_c.licence
+++ b/plasma-conversion/insert-licence/chameleon_c.licence
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  **/
diff --git a/plasma-conversion/insert-licence/chameleon_f.licence b/plasma-conversion/insert-licence/chameleon_f.licence
index 134cd15fa6de872dd93c392a2db3e01f92ff41f9..6ad6760cf890747d8c0c9825b1d146b233aeca17 100644
--- a/plasma-conversion/insert-licence/chameleon_f.licence
+++ b/plasma-conversion/insert-licence/chameleon_f.licence
@@ -2,7 +2,7 @@
 !
 ! @copyright 2009-2015 The University of Tennessee and The University
 !                      of Tennessee Research Foundation. All rights reserved.
-! @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+! @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 !                      Univ. Bordeaux. All rights reserved.
 !
 !!!
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index 39aa82e607f7c2bd2fe4d75d1223735eeb0831c2..f14ef4838888f5481b52774b5b63116825fc00d8 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/runtime/parsec/CMakeLists.txt b/runtime/parsec/CMakeLists.txt
index bf231d0cc2a24d66bd77a57a60659ece233443b4..de97e489c2d66dedc1aed5d28695d76dca5b67cc 100644
--- a/runtime/parsec/CMakeLists.txt
+++ b/runtime/parsec/CMakeLists.txt
@@ -1,10 +1,10 @@
 ###
 #
-# @file CMakeLists.txt
+# @file parsec/CMakeLists.txt
 #
 # @copyright 2009-2015 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/runtime/parsec/codelets/codelet_map.c b/runtime/parsec/codelets/codelet_map.c
index a2dab9a18c85f22b8e37822bdf3ef5ff60e63cfa..6e94bff1635d81c8b5dac7725222afb861a7e2a6 100644
--- a/runtime/parsec/codelets/codelet_map.c
+++ b/runtime/parsec/codelets/codelet_map.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file codelet_map.c
+ * @file parsec/codelet_map.c
  *
  * @copyright 2018-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
diff --git a/runtime/parsec/codelets/codelet_zasum.c b/runtime/parsec/codelets/codelet_zasum.c
index 4addc4753694d5639b2be23fb418f4ed9eddea9b..47621135647464925fc23f3a3b141d44348cbd82 100644
--- a/runtime/parsec/codelets/codelet_zasum.c
+++ b/runtime/parsec/codelets/codelet_zasum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zasum.c
+ * @file parsec/codelet_zasum.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zaxpy.c b/runtime/parsec/codelets/codelet_zaxpy.c
index 38877aa2f0e83f93df90736bae894a6a152f9e9f..d0d1c169a88bd5ac929573aae39826777ebc4ca8 100644
--- a/runtime/parsec/codelets/codelet_zaxpy.c
+++ b/runtime/parsec/codelets/codelet_zaxpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zaxpy.c
+ * @file parsec/codelet_zaxpy.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zbuild.c b/runtime/parsec/codelets/codelet_zbuild.c
index 36c8bc908a7d4186923ed2aa034e9c916ba55708..cd6c149e095c8e94de09c00f80d3679cf494bae8 100644
--- a/runtime/parsec/codelets/codelet_zbuild.c
+++ b/runtime/parsec/codelets/codelet_zbuild.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zbuild.c
+ * @file parsec/codelet_zbuild.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgeadd.c b/runtime/parsec/codelets/codelet_zgeadd.c
index aea836f74e7c1e7b95197ff1a4a5e7b7056bffe6..8e6074562f837fd8a3ecfa2e99097e1322d6bae4 100644
--- a/runtime/parsec/codelets/codelet_zgeadd.c
+++ b/runtime/parsec/codelets/codelet_zgeadd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeadd.c
+ * @file parsec/codelet_zgeadd.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgelqt.c b/runtime/parsec/codelets/codelet_zgelqt.c
index cd0fe83134bce84168c7bfbdb17abecd5410d6b0..1c4df97b60c0ed7e517b075f6c9de317f1171ad0 100644
--- a/runtime/parsec/codelets/codelet_zgelqt.c
+++ b/runtime/parsec/codelets/codelet_zgelqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgelqt.c
+ * @file parsec/codelet_zgelqt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgemm.c b/runtime/parsec/codelets/codelet_zgemm.c
index 6fbc63999e803cd5ee8a294b55065eb57cb3d98e..0bee481c62fd8857cff6ff748827ae5cf2bc9d43 100644
--- a/runtime/parsec/codelets/codelet_zgemm.c
+++ b/runtime/parsec/codelets/codelet_zgemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgemm.c
+ * @file parsec/codelet_zgemm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgeqrt.c b/runtime/parsec/codelets/codelet_zgeqrt.c
index b471528922227e5ec7d02e4a6861891b04a07cf7..16f516b26dd3836b8afa893d32366ee8650e54b7 100644
--- a/runtime/parsec/codelets/codelet_zgeqrt.c
+++ b/runtime/parsec/codelets/codelet_zgeqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeqrt.c
+ * @file parsec/codelet_zgeqrt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgessm.c b/runtime/parsec/codelets/codelet_zgessm.c
index 4257eccc1b92bd17bed8b11a20fac7b0ccabcbce..a5f60a9dc581d8f0d204e3cc27f06b2a1e6a6b15 100644
--- a/runtime/parsec/codelets/codelet_zgessm.c
+++ b/runtime/parsec/codelets/codelet_zgessm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessm.c
+ * @file parsec/codelet_zgessm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgessq.c b/runtime/parsec/codelets/codelet_zgessq.c
index 13a7727cc3a989c41af5fee1ccce89b9a50f0319..80cf62f1d54564725c100a340b764375a4f38a02 100644
--- a/runtime/parsec/codelets/codelet_zgessq.c
+++ b/runtime/parsec/codelets/codelet_zgessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessq.c
+ * @file parsec/codelet_zgessq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgetrf.c b/runtime/parsec/codelets/codelet_zgetrf.c
index d13b959f53f855376f339377f7e23c30459681d5..e5bb24dfb7495565ce87b35cf6820a066d66bd22 100644
--- a/runtime/parsec/codelets/codelet_zgetrf.c
+++ b/runtime/parsec/codelets/codelet_zgetrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf.c
+ * @file parsec/codelet_zgetrf.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
index d326342e12c25b4a007f24bd6f34130a9f01f240..26e7e4975ea9182767eb00b44d4300c26803376f 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_incpiv.c
+ * @file parsec/codelet_zgetrf_incpiv.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
index 6439294a04e1d77c22b613bafe39a626755b6f48..fab5ad59859270769625af8df16f02439d514f77 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_nopiv.c
+ * @file parsec/codelet_zgetrf_nopiv.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zhe2ge.c b/runtime/parsec/codelets/codelet_zhe2ge.c
index 45028733234404ca079994cc62746a28c7adc25f..1259af9d8b180b7498478c436566db2f45a24f4b 100644
--- a/runtime/parsec/codelets/codelet_zhe2ge.c
+++ b/runtime/parsec/codelets/codelet_zhe2ge.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhe2ge.c
+ * @file parsec/codelet_zhe2ge.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zhemm.c b/runtime/parsec/codelets/codelet_zhemm.c
index 213a01dc70dd81fcec74828f7f857ada8800d586..6dd1cb6b145e18457be2b59c307e216fb37b7947 100644
--- a/runtime/parsec/codelets/codelet_zhemm.c
+++ b/runtime/parsec/codelets/codelet_zhemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhemm.c
+ * @file parsec/codelet_zhemm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zher2k.c b/runtime/parsec/codelets/codelet_zher2k.c
index ec1f21d19043444d4c0239cdb74c27ce9a098af1..20bc122ea14a2ee4ddc38148f760b30b2dfda5d3 100644
--- a/runtime/parsec/codelets/codelet_zher2k.c
+++ b/runtime/parsec/codelets/codelet_zher2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zher2k.c
+ * @file parsec/codelet_zher2k.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zherfb.c b/runtime/parsec/codelets/codelet_zherfb.c
index 4873583648b38f4a7ffff020d9c86835c8f0c84a..8f6166e191f0339fc7f368331bc5ccbddc8eeb3d 100644
--- a/runtime/parsec/codelets/codelet_zherfb.c
+++ b/runtime/parsec/codelets/codelet_zherfb.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherfb.c
+ * @file parsec/codelet_zherfb.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zherk.c b/runtime/parsec/codelets/codelet_zherk.c
index 7d5bfd9fdec140f752010c17f22221c5e26f5884..131bcce7a260b264ee56d523b2a959eab3e2fef4 100644
--- a/runtime/parsec/codelets/codelet_zherk.c
+++ b/runtime/parsec/codelets/codelet_zherk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherk.c
+ * @file parsec/codelet_zherk.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zhessq.c b/runtime/parsec/codelets/codelet_zhessq.c
index 902026147682515222aac0278f2c16afa7808baa..0001a510349b3ec0d085ee61929e0d65f0357017 100644
--- a/runtime/parsec/codelets/codelet_zhessq.c
+++ b/runtime/parsec/codelets/codelet_zhessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhessq.c
+ * @file parsec/codelet_zhessq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlacpy.c b/runtime/parsec/codelets/codelet_zlacpy.c
index 3b5d251cbb7157ac8b8110bb41843187b416f8a5..2eb7d8719152a3735d2023acff28c5b37f32d9c6 100644
--- a/runtime/parsec/codelets/codelet_zlacpy.c
+++ b/runtime/parsec/codelets/codelet_zlacpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlacpy.c
+ * @file parsec/codelet_zlacpy.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlag2c.c b/runtime/parsec/codelets/codelet_zlag2c.c
index 1a12688297b73bc973ce8c9bba6eb5702da69e1b..6ceef5d6966ef00d24d9e4c75f219923f4c7c1cd 100644
--- a/runtime/parsec/codelets/codelet_zlag2c.c
+++ b/runtime/parsec/codelets/codelet_zlag2c.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlag2c.c
+ * @file parsec/codelet_zlag2c.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlange.c b/runtime/parsec/codelets/codelet_zlange.c
index e76fd80db4d9e9a737dae48484134b8873f7677c..89b5c0c8f59b5907fa476907ac1041ddd3d46fbc 100644
--- a/runtime/parsec/codelets/codelet_zlange.c
+++ b/runtime/parsec/codelets/codelet_zlange.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlange.c
+ * @file parsec/codelet_zlange.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlanhe.c b/runtime/parsec/codelets/codelet_zlanhe.c
index 26e7d8d8d04d24dfe81c1be3b0701e64608eec23..94fbdcd42418df38071c42f1a3af531afe1fe328 100644
--- a/runtime/parsec/codelets/codelet_zlanhe.c
+++ b/runtime/parsec/codelets/codelet_zlanhe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlanhe.c
+ * @file parsec/codelet_zlanhe.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlansy.c b/runtime/parsec/codelets/codelet_zlansy.c
index 07d7fd910e5107a4db5da04edf86658946a69122..65e0103b445db0479e16e77ce56b52823f797b3e 100644
--- a/runtime/parsec/codelets/codelet_zlansy.c
+++ b/runtime/parsec/codelets/codelet_zlansy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlansy.c
+ * @file parsec/codelet_zlansy.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlantr.c b/runtime/parsec/codelets/codelet_zlantr.c
index 2ae19669e93cc1ba07b717f47f7e88ef8f8f6c04..2b4456a6064ed1a86a37ef42fb8976e1ce586589 100644
--- a/runtime/parsec/codelets/codelet_zlantr.c
+++ b/runtime/parsec/codelets/codelet_zlantr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlantr.c
+ * @file parsec/codelet_zlantr.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlascal.c b/runtime/parsec/codelets/codelet_zlascal.c
index f2d5fe9d7274674f05b942183927cfe3eabb71ba..b7c3f103b7d83a524c83b4f10f96b1387972d457 100644
--- a/runtime/parsec/codelets/codelet_zlascal.c
+++ b/runtime/parsec/codelets/codelet_zlascal.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlascal.c
+ * @file parsec/codelet_zlascal.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlaset.c b/runtime/parsec/codelets/codelet_zlaset.c
index 440075a1ebed808e4346ed5763c2cf15e5820360..7562b7c52c9497d757f2a9f645ea3a419d800687 100644
--- a/runtime/parsec/codelets/codelet_zlaset.c
+++ b/runtime/parsec/codelets/codelet_zlaset.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset.c
+ * @file parsec/codelet_zlaset.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlaset2.c b/runtime/parsec/codelets/codelet_zlaset2.c
index 0086484aa8e20709ec5b33668acc5978a17fde30..2078c1603dbd007611e429af13ea1ea66f57936e 100644
--- a/runtime/parsec/codelets/codelet_zlaset2.c
+++ b/runtime/parsec/codelets/codelet_zlaset2.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset2.c
+ * @file parsec/codelet_zlaset2.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlatro.c b/runtime/parsec/codelets/codelet_zlatro.c
index 95aa1bce4a1622913ff82285d712d5c26e1123e3..055280383bb61b9f0ae6a0914fb359cb1cbd3c0c 100644
--- a/runtime/parsec/codelets/codelet_zlatro.c
+++ b/runtime/parsec/codelets/codelet_zlatro.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlatro.c
+ * @file parsec/codelet_zlatro.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zlauum.c b/runtime/parsec/codelets/codelet_zlauum.c
index b2420ffc52c977ba0b572a0194ef22bea733de70..49d4d4e1ad2b6b1b5fad73bc70431cea145c6357 100644
--- a/runtime/parsec/codelets/codelet_zlauum.c
+++ b/runtime/parsec/codelets/codelet_zlauum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlauum.c
+ * @file parsec/codelet_zlauum.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zpamm.c b/runtime/parsec/codelets/codelet_zpamm.c
index d611efe52f53592af945c509d67f61492730c298..4840d3c4c9c4a0c5d0ea6476365530912c169051 100644
--- a/runtime/parsec/codelets/codelet_zpamm.c
+++ b/runtime/parsec/codelets/codelet_zpamm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zpamm.c
+ * @file parsec/codelet_zpamm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zplghe.c b/runtime/parsec/codelets/codelet_zplghe.c
index 8d33409a40920b3e982b66a098a5f225f5d024b4..cf643bcd50a4b38f1cd908a27166f79eaac6234f 100644
--- a/runtime/parsec/codelets/codelet_zplghe.c
+++ b/runtime/parsec/codelets/codelet_zplghe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplghe.c
+ * @file parsec/codelet_zplghe.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zplgsy.c b/runtime/parsec/codelets/codelet_zplgsy.c
index b37464158a30b8c476157e06d47cda6119d433f0..3e6d99da441242e4a04172b4b62d11e167125c67 100644
--- a/runtime/parsec/codelets/codelet_zplgsy.c
+++ b/runtime/parsec/codelets/codelet_zplgsy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplgsy.c
+ * @file parsec/codelet_zplgsy.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zplrnt.c b/runtime/parsec/codelets/codelet_zplrnt.c
index c3a4e1d2c983b60bae81705796e3a224d343c39a..e84e00c0d14bd645c297b6bc1fb68f7b789ecc93 100644
--- a/runtime/parsec/codelets/codelet_zplrnt.c
+++ b/runtime/parsec/codelets/codelet_zplrnt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplrnt.c
+ * @file parsec/codelet_zplrnt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zplssq.c b/runtime/parsec/codelets/codelet_zplssq.c
index 8b4d4cd92f935a7ff0b75b5ca6b6aaae294b0107..59289b5411654b799a60dbcd820842419e9a059b 100644
--- a/runtime/parsec/codelets/codelet_zplssq.c
+++ b/runtime/parsec/codelets/codelet_zplssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplssq.c
+ * @file parsec/codelet_zplssq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zpotrf.c b/runtime/parsec/codelets/codelet_zpotrf.c
index 40caa4c84459c7d90de84719deb5d9c328af96a0..7f2fef67d59ebbf7d9c9f7de14ce340738d6776a 100644
--- a/runtime/parsec/codelets/codelet_zpotrf.c
+++ b/runtime/parsec/codelets/codelet_zpotrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zpotrf.c
+ * @file parsec/codelet_zpotrf.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zssssm.c b/runtime/parsec/codelets/codelet_zssssm.c
index 0132f8d75529780f70d4edd5c56caf1053cf7a37..d5ccbcefa549ffb7399dffa1905e08204e050704 100644
--- a/runtime/parsec/codelets/codelet_zssssm.c
+++ b/runtime/parsec/codelets/codelet_zssssm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zssssm.c
+ * @file parsec/codelet_zssssm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zsymm.c b/runtime/parsec/codelets/codelet_zsymm.c
index b8b22c0be999d01f574e59617e495081fdbd5374..13896c60263359161c655174b051e10c8c92d9d3 100644
--- a/runtime/parsec/codelets/codelet_zsymm.c
+++ b/runtime/parsec/codelets/codelet_zsymm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsymm.c
+ * @file parsec/codelet_zsymm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zsyr2k.c b/runtime/parsec/codelets/codelet_zsyr2k.c
index c946247644081516f65ac695ad2257bd6b24090a..c563ec04baf80550dc16d6f79e5e15a177b7d978 100644
--- a/runtime/parsec/codelets/codelet_zsyr2k.c
+++ b/runtime/parsec/codelets/codelet_zsyr2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyr2k.c
+ * @file parsec/codelet_zsyr2k.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zsyrk.c b/runtime/parsec/codelets/codelet_zsyrk.c
index 53edd1dd51c40bdc74e3be3d343acec57b9874cf..15eb1b87c8ac3571bdd429b0418d34e7982a436a 100644
--- a/runtime/parsec/codelets/codelet_zsyrk.c
+++ b/runtime/parsec/codelets/codelet_zsyrk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyrk.c
+ * @file parsec/codelet_zsyrk.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zsyssq.c b/runtime/parsec/codelets/codelet_zsyssq.c
index 0af91ab63effe6e0da76b990238a2284059590ea..2cf93e2bb35f53d4f0c6a2870b1ce32cb79e341b 100644
--- a/runtime/parsec/codelets/codelet_zsyssq.c
+++ b/runtime/parsec/codelets/codelet_zsyssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyssq.c
+ * @file parsec/codelet_zsyssq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
index 556416cad2ef7b0243f32adbed5f868927b3db31..6038f9f94b1002a81e4b6a8b657f24d90e4e6a38 100644
--- a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsytrf_nopiv.c
+ * @file parsec/codelet_zsytrf_nopiv.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztile_zero.c b/runtime/parsec/codelets/codelet_ztile_zero.c
index 62c779548b48c1198cff96df14aeaa492f50865a..e07175cb16591730697aad13b721354c36e9982d 100644
--- a/runtime/parsec/codelets/codelet_ztile_zero.c
+++ b/runtime/parsec/codelets/codelet_ztile_zero.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztile_zero.c
+ * @file parsec/codelet_ztile_zero.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztplqt.c b/runtime/parsec/codelets/codelet_ztplqt.c
index 78f93a6eca609bf2e404998e65695c19baf7cc42..3da524a420219a1befb61e46ab679342267061ae 100644
--- a/runtime/parsec/codelets/codelet_ztplqt.c
+++ b/runtime/parsec/codelets/codelet_ztplqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztplqt.c
+ * @file parsec/codelet_ztplqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztpmlqt.c b/runtime/parsec/codelets/codelet_ztpmlqt.c
index 5d11278a25273f43814bd537930300be21a14649..ce66b3e80c4a0286ab381d85e733a5a4a7af7754 100644
--- a/runtime/parsec/codelets/codelet_ztpmlqt.c
+++ b/runtime/parsec/codelets/codelet_ztpmlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmlqt.c
+ * @file parsec/codelet_ztpmlqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztpmqrt.c b/runtime/parsec/codelets/codelet_ztpmqrt.c
index 3d75cbdc49506b40c919f2907b82e8d15d33e42e..17311075812ee19749654e7f0c30217900825954 100644
--- a/runtime/parsec/codelets/codelet_ztpmqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpmqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmqrt.c
+ * @file parsec/codelet_ztpmqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztpqrt.c b/runtime/parsec/codelets/codelet_ztpqrt.c
index 7795873a017f9f46fec2518dde169c07b5e18fbf..ace7a3bf9df149ac89d5d34dd80334ce0c75b75d 100644
--- a/runtime/parsec/codelets/codelet_ztpqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpqrt.c
+ * @file parsec/codelet_ztpqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztradd.c b/runtime/parsec/codelets/codelet_ztradd.c
index 33a59dd72af88388b28ce943f3ced6dffe83d9c2..0fbe537a0e53c61ffa94a7b397477755b0cc754d 100644
--- a/runtime/parsec/codelets/codelet_ztradd.c
+++ b/runtime/parsec/codelets/codelet_ztradd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztradd.c
+ * @file parsec/codelet_ztradd.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztrasm.c b/runtime/parsec/codelets/codelet_ztrasm.c
index 390b2ca9a8ca608c3a0acca11ec3d2ffba1e08f4..25baa50df0799055240ef32b5fc3ec2794841b2d 100644
--- a/runtime/parsec/codelets/codelet_ztrasm.c
+++ b/runtime/parsec/codelets/codelet_ztrasm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrasm.c
+ * @file parsec/codelet_ztrasm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztrmm.c b/runtime/parsec/codelets/codelet_ztrmm.c
index 9b8769aa278aa64aaf067fdbfc973d7ef6cb7385..1f4ce41cd7d86c888ab6a5740beef19126b60d63 100644
--- a/runtime/parsec/codelets/codelet_ztrmm.c
+++ b/runtime/parsec/codelets/codelet_ztrmm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrmm.c
+ * @file parsec/codelet_ztrmm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztrsm.c b/runtime/parsec/codelets/codelet_ztrsm.c
index e7b135e81a6d4bacccdb13670550ffa94bec087f..e0c3676d8a811eb157c94bb4aa59c82f23a2f2e6 100644
--- a/runtime/parsec/codelets/codelet_ztrsm.c
+++ b/runtime/parsec/codelets/codelet_ztrsm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrsm.c
+ * @file parsec/codelet_ztrsm.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztrssq.c b/runtime/parsec/codelets/codelet_ztrssq.c
index ce7346e8c80a613772469e387fcfe76abdf8976a..18bfc229f23d6700cdb1eb666fc78f0fb9eaf1fe 100644
--- a/runtime/parsec/codelets/codelet_ztrssq.c
+++ b/runtime/parsec/codelets/codelet_ztrssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrssq.c
+ * @file parsec/codelet_ztrssq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztrtri.c b/runtime/parsec/codelets/codelet_ztrtri.c
index 3a8e8eb9dea557e8083ea960a7d963dce7ef7099..399128d2808d4fe943e6a3256e97cf68f91e7aba 100644
--- a/runtime/parsec/codelets/codelet_ztrtri.c
+++ b/runtime/parsec/codelets/codelet_ztrtri.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrtri.c
+ * @file parsec/codelet_ztrtri.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztslqt.c b/runtime/parsec/codelets/codelet_ztslqt.c
index 7f77c06d1939c2639ce33642218e516619ebdffa..89c8721131a948e63657ebbd08eea7c553dca5c2 100644
--- a/runtime/parsec/codelets/codelet_ztslqt.c
+++ b/runtime/parsec/codelets/codelet_ztslqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztslqt.c
+ * @file parsec/codelet_ztslqt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztsmlq.c b/runtime/parsec/codelets/codelet_ztsmlq.c
index da84611eaaaff29aa27281faa5292a060e64ee1f..56b86887aec4bcf6c3ad6685d6f027a40b188491 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq.c
+ * @file parsec/codelet_ztsmlq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
index 8f9eda5beb01a089216237c860491b05f167a330..dbc5cfef25e852b5e76b4af907e87b0925392495 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq_hetra1.c
+ * @file parsec/codelet_ztsmlq_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztsmqr.c b/runtime/parsec/codelets/codelet_ztsmqr.c
index e586540c165c18dbb3cea282139ea4fe3dba34ed..e8059bde8466f5957cd435dbc0e1a7b3b55714eb 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr.c
+ * @file parsec/codelet_ztsmqr.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
index 265a53d74576fb6b11e71e043516529077f79be3..70b97494c7aebb06d8820c9db75b1c6f0f304c28 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr_hetra1.c
+ * @file parsec/codelet_ztsmqr_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztsqrt.c b/runtime/parsec/codelets/codelet_ztsqrt.c
index a2b31fcea6c8036165361786ff1a4263a9b5ba7f..a8edb3c0fdf0562f9c374bdb2100919d6f825b97 100644
--- a/runtime/parsec/codelets/codelet_ztsqrt.c
+++ b/runtime/parsec/codelets/codelet_ztsqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsqrt.c
+ * @file parsec/codelet_ztsqrt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_ztstrf.c b/runtime/parsec/codelets/codelet_ztstrf.c
index cf63ad965ab3343535ebc8a435e303ae47451b0b..94ba994825c000cc8fc97c55b6a7a8f1d645874c 100644
--- a/runtime/parsec/codelets/codelet_ztstrf.c
+++ b/runtime/parsec/codelets/codelet_ztstrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztstrf.c
+ * @file parsec/codelet_ztstrf.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zttlqt.c b/runtime/parsec/codelets/codelet_zttlqt.c
index a927d981b5f5d14c9055e1dddfad8faeaaddbc46..1a72dd5cffefc3c4cc929558042fa10d5343aa33 100644
--- a/runtime/parsec/codelets/codelet_zttlqt.c
+++ b/runtime/parsec/codelets/codelet_zttlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttlqt.c
+ * @file parsec/codelet_zttlqt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zttmlq.c b/runtime/parsec/codelets/codelet_zttmlq.c
index f7d5a024fe3e8047b23ceaa32e1837eb6690cc25..b0788876c79e5197cbc30ffa4880b77a68531ff5 100644
--- a/runtime/parsec/codelets/codelet_zttmlq.c
+++ b/runtime/parsec/codelets/codelet_zttmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmlq.c
+ * @file parsec/codelet_zttmlq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zttmqr.c b/runtime/parsec/codelets/codelet_zttmqr.c
index a0f9de9d708f7a03181b218dbf2678a4737651e3..f8a8b8f6bc9fb415323554d7eb8efea1dab0725d 100644
--- a/runtime/parsec/codelets/codelet_zttmqr.c
+++ b/runtime/parsec/codelets/codelet_zttmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmqr.c
+ * @file parsec/codelet_zttmqr.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zttqrt.c b/runtime/parsec/codelets/codelet_zttqrt.c
index 05ae51e3a9679d0fd87e9c6ac33fd9af49545580..6b22180076622b164425b06089774675fc873cfb 100644
--- a/runtime/parsec/codelets/codelet_zttqrt.c
+++ b/runtime/parsec/codelets/codelet_zttqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttqrt.c
+ * @file parsec/codelet_zttqrt.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zunmlq.c b/runtime/parsec/codelets/codelet_zunmlq.c
index 5a0d1c846fd5bd148692ccba81518d61ad6e1fee..f37239ec75ddf9ac18c5bcec07f1e5515a6d50c3 100644
--- a/runtime/parsec/codelets/codelet_zunmlq.c
+++ b/runtime/parsec/codelets/codelet_zunmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmlq.c
+ * @file parsec/codelet_zunmlq.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/codelets/codelet_zunmqr.c b/runtime/parsec/codelets/codelet_zunmqr.c
index 855b7e3ddc46b6f492bceaf490e538792e655301..4eff289bef3ec5fdded57f2c6fe0de72f318b7df 100644
--- a/runtime/parsec/codelets/codelet_zunmqr.c
+++ b/runtime/parsec/codelets/codelet_zunmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmqr.c
+ * @file parsec/codelet_zunmqr.c
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index d0cf0c5080c3c8ebfc0015e8b7b6e22025f6c266..86b93c3f7a1f3a2f006f7fcae4ac5602210012c0 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_async.c
+ * @file parsec/runtime_async.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_context.c b/runtime/parsec/control/runtime_context.c
index e29a149f55c6b4da8b6b319ec166e0be34132a12..6762593839ed4144593b7e1c958ab61f9b249fb8 100644
--- a/runtime/parsec/control/runtime_context.c
+++ b/runtime/parsec/control/runtime_context.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_context.c
+ * @file parsec/runtime_context.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index 1e4567f3ac1d4439d0e2b31cfc17ad81158232ab..e42d59794897ae54386b221aa7f079cc6fb3ca9e 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_control.c
+ * @file parsec/runtime_control.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index 02c4119be1693cd388e73b25ecae218f7da72a9f..bbb52d3e0e77714f9657be6e611473d00a40b758 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_descriptor.c
+ * @file parsec/runtime_descriptor.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_options.c b/runtime/parsec/control/runtime_options.c
index 73ed66e8d6c7ae8c6ae48b5144ebc6490f4de716..635b4109eaea90ff4553f5f74264c787137deb8d 100644
--- a/runtime/parsec/control/runtime_options.c
+++ b/runtime/parsec/control/runtime_options.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_options.c
+ * @file parsec/runtime_options.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_profiling.c b/runtime/parsec/control/runtime_profiling.c
index 43ca3381efa2c967b33b8586a708a4a6a7a5fd9b..41a91576069dfb7e4fa9cfb912ad30768f50e059 100644
--- a/runtime/parsec/control/runtime_profiling.c
+++ b/runtime/parsec/control/runtime_profiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_profiling.c
+ * @file parsec/runtime_profiling.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_zlocality.c b/runtime/parsec/control/runtime_zlocality.c
index 674803efca0845012e11d6fd0de144458cbcfcfb..8ec032c010ac306fec2248f32cd0692c346bde01 100644
--- a/runtime/parsec/control/runtime_zlocality.c
+++ b/runtime/parsec/control/runtime_zlocality.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zlocality.c
+ * @file parsec/runtime_zlocality.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/control/runtime_zprofiling.c b/runtime/parsec/control/runtime_zprofiling.c
index 9288392155f32f99357c4ff5cff34adf615726e1..fcafda34cd05718fd43baaee8197db25ade4dd79 100644
--- a/runtime/parsec/control/runtime_zprofiling.c
+++ b/runtime/parsec/control/runtime_zprofiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zprofiling.c
+ * @file parsec/runtime_zprofiling.c
  *
  * @copyright 2012-2017 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/parsec/include/chameleon_parsec.h b/runtime/parsec/include/chameleon_parsec.h
index b518ca735307eb3897b2c5f49026f9cf4046a0fd..7fea9f987a9a4c5a7369977d575cfde9a28d17f2 100644
--- a/runtime/parsec/include/chameleon_parsec.h
+++ b/runtime/parsec/include/chameleon_parsec.h
@@ -1,6 +1,6 @@
 /**
  *
- * @file chameleon_parsec.h
+ * @file parsec/chameleon_parsec.h
  *
  * @copyright 2009-2015 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
@@ -17,8 +17,8 @@
  * @date 2018-02-06
  *
  */
-#ifndef _CHAMELEON_PARSEC_H_
-#define _CHAMELEON_PARSEC_H_
+#ifndef _chameleon_parsec_h_
+#define _chameleon_parsec_h_
 
 #include <parsec.h>
 #include <parsec/interfaces/superscalar/insert_function.h>
@@ -61,4 +61,4 @@ chameleon_parsec_get_arena_index(const CHAM_desc_t *desc) {
 
 #define RUNTIME_END_ACCESS_DECLARATION
 
-#endif /* _CHAMELEON_PARSEC_H_ */
+#endif /* _chameleon_parsec_h_ */
diff --git a/runtime/quark/CMakeLists.txt b/runtime/quark/CMakeLists.txt
index 40aad4924b4bdf36f7b96b4a7d21b6a68b9247dc..22284c1563cf2699b2844aa6548a9c9eee3a9e30 100644
--- a/runtime/quark/CMakeLists.txt
+++ b/runtime/quark/CMakeLists.txt
@@ -1,10 +1,10 @@
 ###
 #
-# @file CMakeLists.txt
+# @file quark/CMakeLists.txt
 #
 # @copyright 2009-2015 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/runtime/quark/codelets/codelet_map.c b/runtime/quark/codelets/codelet_map.c
index 9226be5d3470ee2386cc1cef381df58f31b4f13c..ef84d52d13d4c8b2855c273105b22f66543d79b8 100644
--- a/runtime/quark/codelets/codelet_map.c
+++ b/runtime/quark/codelets/codelet_map.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file codelet_map.c
+ * @file quark/codelet_map.c
  *
  * @copyright 2018-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
diff --git a/runtime/quark/codelets/codelet_zasum.c b/runtime/quark/codelets/codelet_zasum.c
index 68601ae4a31c0adf58f94f6f48d7a7589f2a9812..d3b354bca816d964c35896f966ed9e5d6727ffbc 100644
--- a/runtime/quark/codelets/codelet_zasum.c
+++ b/runtime/quark/codelets/codelet_zasum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zasum.c
+ * @file quark/codelet_zasum.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zaxpy.c b/runtime/quark/codelets/codelet_zaxpy.c
index 7969c8fc594248ad114126193943ddea2ea65ba1..5e8f0870ec4aff3ebfe03a8bca290e89c6a97371 100644
--- a/runtime/quark/codelets/codelet_zaxpy.c
+++ b/runtime/quark/codelets/codelet_zaxpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zaxpy.c
+ * @file quark/codelet_zaxpy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zbuild.c b/runtime/quark/codelets/codelet_zbuild.c
index 6232a86279af1a12503d970865c42296c76019bc..143f5daad442aaaeec0ee429fb0db5cc46242509 100644
--- a/runtime/quark/codelets/codelet_zbuild.c
+++ b/runtime/quark/codelets/codelet_zbuild.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zbuild.c
+ * @file quark/codelet_zbuild.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgeadd.c b/runtime/quark/codelets/codelet_zgeadd.c
index bc2f336c02e9dc129126a504bd839e2363e3b9c2..d3bc00507eee42821e7c8d59cebd42ea10ad8a29 100644
--- a/runtime/quark/codelets/codelet_zgeadd.c
+++ b/runtime/quark/codelets/codelet_zgeadd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeadd.c
+ * @file quark/codelet_zgeadd.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgelqt.c b/runtime/quark/codelets/codelet_zgelqt.c
index 6bf77625f7bdd4d3a3781bc075c8f78316ccd191..2f211934b5d7823059f99e5f6ef88e9652fd09e7 100644
--- a/runtime/quark/codelets/codelet_zgelqt.c
+++ b/runtime/quark/codelets/codelet_zgelqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgelqt.c
+ * @file quark/codelet_zgelqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgemm.c b/runtime/quark/codelets/codelet_zgemm.c
index f9025a9391f46ea10adce967cb129fe5d3a4f5c4..6d1f3415940ef66e288777be3d53775c1031afff 100644
--- a/runtime/quark/codelets/codelet_zgemm.c
+++ b/runtime/quark/codelets/codelet_zgemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgemm.c
+ * @file quark/codelet_zgemm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgeqrt.c b/runtime/quark/codelets/codelet_zgeqrt.c
index f4a68b1b00123d76c056322b3d15870bd8a63b44..7d06a97332a73c3fa9b2ac2813b44ff965e8e45e 100644
--- a/runtime/quark/codelets/codelet_zgeqrt.c
+++ b/runtime/quark/codelets/codelet_zgeqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeqrt.c
+ * @file quark/codelet_zgeqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgessm.c b/runtime/quark/codelets/codelet_zgessm.c
index 6d920ea8e814245d9e5e741c6bf1f7904d8605b3..cf5984093f0cc8da0ac4c1773533c341312a924a 100644
--- a/runtime/quark/codelets/codelet_zgessm.c
+++ b/runtime/quark/codelets/codelet_zgessm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessm.c
+ * @file quark/codelet_zgessm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgessq.c b/runtime/quark/codelets/codelet_zgessq.c
index d3b60d09d58c8d0c11425a8fe256a90267abdd33..00f0afa5444c2a93cba8eb0d480122e90fe13a47 100644
--- a/runtime/quark/codelets/codelet_zgessq.c
+++ b/runtime/quark/codelets/codelet_zgessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessq.c
+ * @file quark/codelet_zgessq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgetrf.c b/runtime/quark/codelets/codelet_zgetrf.c
index 021a2a8fc1cecad03781702e121c5355791298fc..b0e27d37a20c16a13a1b087e9d0d8eee2b28d764 100644
--- a/runtime/quark/codelets/codelet_zgetrf.c
+++ b/runtime/quark/codelets/codelet_zgetrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf.c
+ * @file quark/codelet_zgetrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgetrf_incpiv.c b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
index e12c22263747c9a5c3c8938e22de116847d27d3e..d0d06f7231cfd60bfd23ee04a056c168252616cc 100644
--- a/runtime/quark/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/quark/codelets/codelet_zgetrf_incpiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_incpiv.c
+ * @file quark/codelet_zgetrf_incpiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zgetrf_nopiv.c b/runtime/quark/codelets/codelet_zgetrf_nopiv.c
index ad90b65dd455f36cff7558b8be155e4789b177ae..572498dd27c820237097690d433bc564572c114b 100644
--- a/runtime/quark/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/quark/codelets/codelet_zgetrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_nopiv.c
+ * @file quark/codelet_zgetrf_nopiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zhe2ge.c b/runtime/quark/codelets/codelet_zhe2ge.c
index a2ea5d39f713a2cf8a2d0eba94d5a7bc42347083..f15ff4230dc917e620652723f2ad7ff5bf9ae553 100644
--- a/runtime/quark/codelets/codelet_zhe2ge.c
+++ b/runtime/quark/codelets/codelet_zhe2ge.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhe2ge.c
+ * @file quark/codelet_zhe2ge.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zhemm.c b/runtime/quark/codelets/codelet_zhemm.c
index 5e344d581e04cf8a1fdbaf6888ad7feac1eb52bf..50d27e8987a437dfe62eb5e784228953bcae9c6a 100644
--- a/runtime/quark/codelets/codelet_zhemm.c
+++ b/runtime/quark/codelets/codelet_zhemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhemm.c
+ * @file quark/codelet_zhemm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zher2k.c b/runtime/quark/codelets/codelet_zher2k.c
index d2f9c5448f6119d17d2c6cd3c5993c503f74f48e..e443776a24a4f17dfcf4c645776ea3bdb42571e2 100644
--- a/runtime/quark/codelets/codelet_zher2k.c
+++ b/runtime/quark/codelets/codelet_zher2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zher2k.c
+ * @file quark/codelet_zher2k.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zherfb.c b/runtime/quark/codelets/codelet_zherfb.c
index 9cd9c8590f8e8c4c4e6a7a354035581e67c3b16f..d86fc420287368b6991311e01fa93c81958da902 100644
--- a/runtime/quark/codelets/codelet_zherfb.c
+++ b/runtime/quark/codelets/codelet_zherfb.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherfb.c
+ * @file quark/codelet_zherfb.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zherk.c b/runtime/quark/codelets/codelet_zherk.c
index 0afec15fca1e591d4870be5bd92b48c02fdb91c3..c99a799704c0b1eec6f32a757af43120bbb7d171 100644
--- a/runtime/quark/codelets/codelet_zherk.c
+++ b/runtime/quark/codelets/codelet_zherk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherk.c
+ * @file quark/codelet_zherk.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zhessq.c b/runtime/quark/codelets/codelet_zhessq.c
index b2f26279c838bf8415a215ccb227832bd980f127..139f8fa25e15b90da2d2b89d39c034076a3f6bc0 100644
--- a/runtime/quark/codelets/codelet_zhessq.c
+++ b/runtime/quark/codelets/codelet_zhessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhessq.c
+ * @file quark/codelet_zhessq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlacpy.c b/runtime/quark/codelets/codelet_zlacpy.c
index 564ace156aa09e27a4d71376b56fb2b8975e7fcc..99a0dc89ab9d2eeee87d91d69a08670af7dfee46 100644
--- a/runtime/quark/codelets/codelet_zlacpy.c
+++ b/runtime/quark/codelets/codelet_zlacpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlacpy.c
+ * @file quark/codelet_zlacpy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlag2c.c b/runtime/quark/codelets/codelet_zlag2c.c
index 9e097eb26cf193ef0e0ca785a7cfda2e488ddc5b..7358e90951d87f51378b0eff66c0c2137a9b828e 100644
--- a/runtime/quark/codelets/codelet_zlag2c.c
+++ b/runtime/quark/codelets/codelet_zlag2c.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlag2c.c
+ * @file quark/codelet_zlag2c.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlange.c b/runtime/quark/codelets/codelet_zlange.c
index 02787e4b78bf50624091af7bf15bf892a988b0c8..d4d84d2e09dfc3a7a71ad57d3ce0a802cdb4d027 100644
--- a/runtime/quark/codelets/codelet_zlange.c
+++ b/runtime/quark/codelets/codelet_zlange.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlange.c
+ * @file quark/codelet_zlange.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlanhe.c b/runtime/quark/codelets/codelet_zlanhe.c
index 4924aa12021fda22e5d0fc227ac692f0e6098cc3..219436a9b689bedb2637c4cab7e2f23624d8c6d0 100644
--- a/runtime/quark/codelets/codelet_zlanhe.c
+++ b/runtime/quark/codelets/codelet_zlanhe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlanhe.c
+ * @file quark/codelet_zlanhe.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlansy.c b/runtime/quark/codelets/codelet_zlansy.c
index 201f9fbc7eb7f48c241094be45bbfeab645886c8..456946338bd624ae8d2e48ffdcde2780ee7ac363 100644
--- a/runtime/quark/codelets/codelet_zlansy.c
+++ b/runtime/quark/codelets/codelet_zlansy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlansy.c
+ * @file quark/codelet_zlansy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlantr.c b/runtime/quark/codelets/codelet_zlantr.c
index 7f22dbf392bcd0d38c331fc3e29c2db533c834fe..2b9907b1f79996343423ec654081797017aaec57 100644
--- a/runtime/quark/codelets/codelet_zlantr.c
+++ b/runtime/quark/codelets/codelet_zlantr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlantr.c
+ * @file quark/codelet_zlantr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlascal.c b/runtime/quark/codelets/codelet_zlascal.c
index 7635870fef5e74990ae759925c2e4a37f046d8f5..8c6e7956125c7c1254b86daa4dc3ffb521a90b80 100644
--- a/runtime/quark/codelets/codelet_zlascal.c
+++ b/runtime/quark/codelets/codelet_zlascal.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlascal.c
+ * @file quark/codelet_zlascal.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlaset.c b/runtime/quark/codelets/codelet_zlaset.c
index fba84a38b9d8aa2e62bec064fb86c7a5638a8dce..571f86f0688e3128a88fe9bee6725953c0511a63 100644
--- a/runtime/quark/codelets/codelet_zlaset.c
+++ b/runtime/quark/codelets/codelet_zlaset.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset.c
+ * @file quark/codelet_zlaset.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlaset2.c b/runtime/quark/codelets/codelet_zlaset2.c
index 35996de6831bf870fb7e8230927664be25c3406b..6fb209d70ff391d2cd4d3291dfd880f6f3752b18 100644
--- a/runtime/quark/codelets/codelet_zlaset2.c
+++ b/runtime/quark/codelets/codelet_zlaset2.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset2.c
+ * @file quark/codelet_zlaset2.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlatro.c b/runtime/quark/codelets/codelet_zlatro.c
index fd0b8855fce4c76789f197b29f98581d3c1be309..8875cd59dc97152cbba157f5e47b116dca08077d 100644
--- a/runtime/quark/codelets/codelet_zlatro.c
+++ b/runtime/quark/codelets/codelet_zlatro.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlatro.c
+ * @file quark/codelet_zlatro.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zlauum.c b/runtime/quark/codelets/codelet_zlauum.c
index 8e38e3482590b1ee39639095a5091ac8d3fe0ff5..b60a9685eff30b7d09363475fd66da0807be69a0 100644
--- a/runtime/quark/codelets/codelet_zlauum.c
+++ b/runtime/quark/codelets/codelet_zlauum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlauum.c
+ * @file quark/codelet_zlauum.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zpamm.c b/runtime/quark/codelets/codelet_zpamm.c
index 04b2062d023ea999bde9caf8bff0267423a101c4..1ab7d4e4e856b195903bacba0b967e9833772292 100644
--- a/runtime/quark/codelets/codelet_zpamm.c
+++ b/runtime/quark/codelets/codelet_zpamm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zpamm.c
+ * @file quark/codelet_zpamm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zplghe.c b/runtime/quark/codelets/codelet_zplghe.c
index eeca61938bec877e36d1b0a767a14624683d4a64..7b1028c83d77539eee2a5cbde33145da22d9edae 100644
--- a/runtime/quark/codelets/codelet_zplghe.c
+++ b/runtime/quark/codelets/codelet_zplghe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplghe.c
+ * @file quark/codelet_zplghe.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zplgsy.c b/runtime/quark/codelets/codelet_zplgsy.c
index 517df037eec342cc8c6236cc0c63354ea5a98f1e..f4fff3d81b34ca4524d4680db98c893cab310e77 100644
--- a/runtime/quark/codelets/codelet_zplgsy.c
+++ b/runtime/quark/codelets/codelet_zplgsy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplgsy.c
+ * @file quark/codelet_zplgsy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zplrnt.c b/runtime/quark/codelets/codelet_zplrnt.c
index 431af98876ae6f91ed45b9ab977d22136c71357b..8dc58fdebe73f067db8b9946a8996bbed6304741 100644
--- a/runtime/quark/codelets/codelet_zplrnt.c
+++ b/runtime/quark/codelets/codelet_zplrnt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplrnt.c
+ * @file quark/codelet_zplrnt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zplssq.c b/runtime/quark/codelets/codelet_zplssq.c
index c07d3d0ce565d71a0bd37baf9050aa58654435cd..8b7eb0870f56479c4e4719517eafcc6cbc9e5017 100644
--- a/runtime/quark/codelets/codelet_zplssq.c
+++ b/runtime/quark/codelets/codelet_zplssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplssq.c
+ * @file quark/codelet_zplssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zpotrf.c b/runtime/quark/codelets/codelet_zpotrf.c
index d9ee2cd5388fd463489e41cb50513d7ad9df5c2d..b2910da29d99ec5ecddcf54ce01ba0b4a54be950 100644
--- a/runtime/quark/codelets/codelet_zpotrf.c
+++ b/runtime/quark/codelets/codelet_zpotrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zpotrf.c
+ * @file quark/codelet_zpotrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zssssm.c b/runtime/quark/codelets/codelet_zssssm.c
index a6740f92763d95a8af5cd70992e266dd04dbccd6..ab1f6141b3d9f1fd0d45e579ac3b0a2ff25e5bea 100644
--- a/runtime/quark/codelets/codelet_zssssm.c
+++ b/runtime/quark/codelets/codelet_zssssm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zssssm.c
+ * @file quark/codelet_zssssm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zsymm.c b/runtime/quark/codelets/codelet_zsymm.c
index 646293192e09dd54fe350231661fdc15176822b6..1a784fcbce69c4c5a69ee27aafe18130b1f97f7e 100644
--- a/runtime/quark/codelets/codelet_zsymm.c
+++ b/runtime/quark/codelets/codelet_zsymm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsymm.c
+ * @file quark/codelet_zsymm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zsyr2k.c b/runtime/quark/codelets/codelet_zsyr2k.c
index d4193c4a549b5570095bdaccf27cb07ef03d965a..2111951b4f4af93ee92a7d7e9e1882345652ac98 100644
--- a/runtime/quark/codelets/codelet_zsyr2k.c
+++ b/runtime/quark/codelets/codelet_zsyr2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyr2k.c
+ * @file quark/codelet_zsyr2k.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zsyrk.c b/runtime/quark/codelets/codelet_zsyrk.c
index 1aa334633b21ba00930a6d1af6fa9e09f22428b6..4393ff64b20663e7178865e4ee7a680310484384 100644
--- a/runtime/quark/codelets/codelet_zsyrk.c
+++ b/runtime/quark/codelets/codelet_zsyrk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyrk.c
+ * @file quark/codelet_zsyrk.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zsyssq.c b/runtime/quark/codelets/codelet_zsyssq.c
index 4c56e8f247a2bf4f5764508b7e5ddc4a50c50b45..1c40b80b57cb3eb5d1cd687ec7e920d29db288c4 100644
--- a/runtime/quark/codelets/codelet_zsyssq.c
+++ b/runtime/quark/codelets/codelet_zsyssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyssq.c
+ * @file quark/codelet_zsyssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zsytrf_nopiv.c b/runtime/quark/codelets/codelet_zsytrf_nopiv.c
index 943c5725f583ff423567f93f590700a7a9eada47..34c6a0de17f874efbaf9ac5dfce50e944763af1f 100644
--- a/runtime/quark/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/quark/codelets/codelet_zsytrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsytrf_nopiv.c
+ * @file quark/codelet_zsytrf_nopiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztile_zero.c b/runtime/quark/codelets/codelet_ztile_zero.c
index 0c19378217af93f74fc315f4276f92961fbf04e4..68f52d47cecd4f1ec8e63bd392f396c51e768549 100644
--- a/runtime/quark/codelets/codelet_ztile_zero.c
+++ b/runtime/quark/codelets/codelet_ztile_zero.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztile_zero.c
+ * @file quark/codelet_ztile_zero.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztplqt.c b/runtime/quark/codelets/codelet_ztplqt.c
index fa718ba312c153fc71614af477a2d96cc1f0610f..5b3f15ab4527f3d753d3e74d1d65932f6ce84e34 100644
--- a/runtime/quark/codelets/codelet_ztplqt.c
+++ b/runtime/quark/codelets/codelet_ztplqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztplqt.c
+ * @file quark/codelet_ztplqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztpmlqt.c b/runtime/quark/codelets/codelet_ztpmlqt.c
index 3b2498a5f888d19c775d4a59df6ecb0a2cc87296..e82f40c4dbe58525926f2381eef3cea39fb6ccdc 100644
--- a/runtime/quark/codelets/codelet_ztpmlqt.c
+++ b/runtime/quark/codelets/codelet_ztpmlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmlqt.c
+ * @file quark/codelet_ztpmlqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztpmqrt.c b/runtime/quark/codelets/codelet_ztpmqrt.c
index d65cd8d4265de90bdacf1db12cc05ffedb028dcf..933ca3f1327d999f671f786002e6f559eb0130f8 100644
--- a/runtime/quark/codelets/codelet_ztpmqrt.c
+++ b/runtime/quark/codelets/codelet_ztpmqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmqrt.c
+ * @file quark/codelet_ztpmqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztpqrt.c b/runtime/quark/codelets/codelet_ztpqrt.c
index a9d21bda807528e9831b1f2083537d77dc00841a..50470ac8e806aed4479679a577629091f573b4cd 100644
--- a/runtime/quark/codelets/codelet_ztpqrt.c
+++ b/runtime/quark/codelets/codelet_ztpqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpqrt.c
+ * @file quark/codelet_ztpqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztradd.c b/runtime/quark/codelets/codelet_ztradd.c
index a505e1b17d0aed8014ad54828ae946e607457a51..3f7fc55106cbc5274e3a88b7f88997e53d1cc5db 100644
--- a/runtime/quark/codelets/codelet_ztradd.c
+++ b/runtime/quark/codelets/codelet_ztradd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztradd.c
+ * @file quark/codelet_ztradd.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztrasm.c b/runtime/quark/codelets/codelet_ztrasm.c
index ae01e0c2d0a024069555690faa0dbdde8909b748..7141901a9ecd6792e01f15d293ff7a538dee04e0 100644
--- a/runtime/quark/codelets/codelet_ztrasm.c
+++ b/runtime/quark/codelets/codelet_ztrasm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrasm.c
+ * @file quark/codelet_ztrasm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztrmm.c b/runtime/quark/codelets/codelet_ztrmm.c
index 1ccc97a6697f7cd49e0a2e21dc035a81dbe67542..975f3245acec99d216a47c647a921b08aa05354f 100644
--- a/runtime/quark/codelets/codelet_ztrmm.c
+++ b/runtime/quark/codelets/codelet_ztrmm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrmm.c
+ * @file quark/codelet_ztrmm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztrsm.c b/runtime/quark/codelets/codelet_ztrsm.c
index 7ac79c2f8812469cccd29434ee08e653f593b968..9319cc384b21f9c0db9899b113091d4fbe94d190 100644
--- a/runtime/quark/codelets/codelet_ztrsm.c
+++ b/runtime/quark/codelets/codelet_ztrsm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrsm.c
+ * @file quark/codelet_ztrsm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztrssq.c b/runtime/quark/codelets/codelet_ztrssq.c
index a98cfff8863d85d3da58225de4866e1d7307a1fd..0f35454ae1ff5c39435505ce180603f0cebf39b0 100644
--- a/runtime/quark/codelets/codelet_ztrssq.c
+++ b/runtime/quark/codelets/codelet_ztrssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrssq.c
+ * @file quark/codelet_ztrssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztrtri.c b/runtime/quark/codelets/codelet_ztrtri.c
index 5cafd8be0eb041e16c5f99a839e02a6aa6d957ad..16fbdbf0f3f330d22ab5ef7592b09705093a894a 100644
--- a/runtime/quark/codelets/codelet_ztrtri.c
+++ b/runtime/quark/codelets/codelet_ztrtri.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrtri.c
+ * @file quark/codelet_ztrtri.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztslqt.c b/runtime/quark/codelets/codelet_ztslqt.c
index 11811f15b0bd09991b16f1965a072d2eae47b8ed..be0068928653574dbccf1c581f16b6e8dd36a69a 100644
--- a/runtime/quark/codelets/codelet_ztslqt.c
+++ b/runtime/quark/codelets/codelet_ztslqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztslqt.c
+ * @file quark/codelet_ztslqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztsmlq.c b/runtime/quark/codelets/codelet_ztsmlq.c
index 11dc3da95584b4924a24e8aa0e9f0e441d4c0127..ba96ab742701e238aa6f7b286eee782512c17692 100644
--- a/runtime/quark/codelets/codelet_ztsmlq.c
+++ b/runtime/quark/codelets/codelet_ztsmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq.c
+ * @file quark/codelet_ztsmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztsmlq_hetra1.c b/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
index 0342ac314a91d755610118f398863128d2b162d6..bc94ca6995de4ee23b68ecc5bd9c834ccd76f6b3 100644
--- a/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/quark/codelets/codelet_ztsmlq_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq_hetra1.c
+ * @file quark/codelet_ztsmlq_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztsmqr.c b/runtime/quark/codelets/codelet_ztsmqr.c
index c6e003b7e3506c46f299839070a3c32cfeaecd9c..985097c1e0a52f01a587a67ed7afb5116b47df27 100644
--- a/runtime/quark/codelets/codelet_ztsmqr.c
+++ b/runtime/quark/codelets/codelet_ztsmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr.c
+ * @file quark/codelet_ztsmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztsmqr_hetra1.c b/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
index 60f56e73617399e3e17f9764726477348aa499bc..d01b716f0409a8cb1d5b1336ff105590055212ca 100644
--- a/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/quark/codelets/codelet_ztsmqr_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr_hetra1.c
+ * @file quark/codelet_ztsmqr_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztsqrt.c b/runtime/quark/codelets/codelet_ztsqrt.c
index 0f4a82d85f66467d245a7591d41fb0f9e1bad7eb..0f8873eae97f2fe6dbc43047a4fab5a073adc749 100644
--- a/runtime/quark/codelets/codelet_ztsqrt.c
+++ b/runtime/quark/codelets/codelet_ztsqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsqrt.c
+ * @file quark/codelet_ztsqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_ztstrf.c b/runtime/quark/codelets/codelet_ztstrf.c
index ce327fab1e1418d8355c5b88c4e7220872e2c217..6d1d51cedc3b34144e7f60e2f8dd7bb0bf3730ca 100644
--- a/runtime/quark/codelets/codelet_ztstrf.c
+++ b/runtime/quark/codelets/codelet_ztstrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztstrf.c
+ * @file quark/codelet_ztstrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zttlqt.c b/runtime/quark/codelets/codelet_zttlqt.c
index defa6c50ba297fdf724d320ae2f84de494267707..5c5f665ef01e32ce1dfc2cc61559e3531fd915e4 100644
--- a/runtime/quark/codelets/codelet_zttlqt.c
+++ b/runtime/quark/codelets/codelet_zttlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttlqt.c
+ * @file quark/codelet_zttlqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zttmlq.c b/runtime/quark/codelets/codelet_zttmlq.c
index e1ee9389893c924135c2ce0a415e315ac78c5427..0dac09c5e21570cbfa4f51c7d3c30e42accd5676 100644
--- a/runtime/quark/codelets/codelet_zttmlq.c
+++ b/runtime/quark/codelets/codelet_zttmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmlq.c
+ * @file quark/codelet_zttmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zttmqr.c b/runtime/quark/codelets/codelet_zttmqr.c
index bd5518d98fcbcdc6dada94969bb1f07495b3e2d0..72dad8ec6de960406c5e3520e902c244a1f4387e 100644
--- a/runtime/quark/codelets/codelet_zttmqr.c
+++ b/runtime/quark/codelets/codelet_zttmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmqr.c
+ * @file quark/codelet_zttmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zttqrt.c b/runtime/quark/codelets/codelet_zttqrt.c
index 6940f2742056d295ff16790cf81a0426d4bdaaa5..2537705a54f2ca3abd443550e3bf6f295d85d028 100644
--- a/runtime/quark/codelets/codelet_zttqrt.c
+++ b/runtime/quark/codelets/codelet_zttqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttqrt.c
+ * @file quark/codelet_zttqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zunmlq.c b/runtime/quark/codelets/codelet_zunmlq.c
index 3dcdc3d020a156bf29b98ba1384e8f693ee7da2e..730f46dc1d92b1e9ece290831a82bab27052fe6c 100644
--- a/runtime/quark/codelets/codelet_zunmlq.c
+++ b/runtime/quark/codelets/codelet_zunmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmlq.c
+ * @file quark/codelet_zunmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/codelets/codelet_zunmqr.c b/runtime/quark/codelets/codelet_zunmqr.c
index 11fcb357627177935f6bd472af7f3e7cfee50e3c..12e31e9c1dc72270943188c06e6e8f9b7056cae7 100644
--- a/runtime/quark/codelets/codelet_zunmqr.c
+++ b/runtime/quark/codelets/codelet_zunmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmqr.c
+ * @file quark/codelet_zunmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_async.c b/runtime/quark/control/runtime_async.c
index f4e07e12e156bce3d9e032112f2fe0421449435a..e28314f0df04b4cc2ff1571791ee2e66076d5cf2 100644
--- a/runtime/quark/control/runtime_async.c
+++ b/runtime/quark/control/runtime_async.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_async.c
+ * @file quark/runtime_async.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_context.c b/runtime/quark/control/runtime_context.c
index e6c387af673af222dd9caee0f1c9583b072cd4f9..e3e2cac3513c95d357c0cf8c7dab15c50dd5ffe5 100644
--- a/runtime/quark/control/runtime_context.c
+++ b/runtime/quark/control/runtime_context.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_context.c
+ * @file quark/runtime_context.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_control.c b/runtime/quark/control/runtime_control.c
index d1cb7729450dd3b8918e909af51550f9b8940f8d..4946631083e7ac7c3bdebe8c32a4c47ca8868552 100644
--- a/runtime/quark/control/runtime_control.c
+++ b/runtime/quark/control/runtime_control.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_control.c
+ * @file quark/runtime_control.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_descriptor.c b/runtime/quark/control/runtime_descriptor.c
index e03cf447ed3d28c566883e4b613249e3e9d5d54f..951f362c9d273b6e53b530bf6514a9d39ac331da 100644
--- a/runtime/quark/control/runtime_descriptor.c
+++ b/runtime/quark/control/runtime_descriptor.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_descriptor.c
+ * @file quark/runtime_descriptor.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_options.c b/runtime/quark/control/runtime_options.c
index fcdae9343e432e04ad6ca36944fd879fc8856623..c9a66a8ae03c2b11010e948e6ca8ef5f1f6d945a 100644
--- a/runtime/quark/control/runtime_options.c
+++ b/runtime/quark/control/runtime_options.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_options.c
+ * @file quark/runtime_options.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_profiling.c b/runtime/quark/control/runtime_profiling.c
index 55400cd19dd1b2dfacf1c60b02499a6db6ffca9a..44978c3faad855c7bb24663e3b2f788a47ac68d8 100644
--- a/runtime/quark/control/runtime_profiling.c
+++ b/runtime/quark/control/runtime_profiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_profiling.c
+ * @file quark/runtime_profiling.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_zlocality.c b/runtime/quark/control/runtime_zlocality.c
index dc93451d01b5a27867dfd2170767604a0f7f169e..10c61649ebf1417613221f4c53cfce14f3f920ad 100644
--- a/runtime/quark/control/runtime_zlocality.c
+++ b/runtime/quark/control/runtime_zlocality.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zlocality.c
+ * @file quark/runtime_zlocality.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/control/runtime_zprofiling.c b/runtime/quark/control/runtime_zprofiling.c
index d3d5e2e0e06fea766fa7f285866eddbff3647fcd..7d2e176a9b47724fa5f09a97faef60b6c1b3d931 100644
--- a/runtime/quark/control/runtime_zprofiling.c
+++ b/runtime/quark/control/runtime_zprofiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zprofiling.c
+ * @file quark/runtime_zprofiling.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/quark/include/chameleon_quark.h b/runtime/quark/include/chameleon_quark.h
index 65662677e4c631cb5152c137217cfc12e680739a..fac669ae05d427e14a8a09a4717a24ebc376e8b5 100644
--- a/runtime/quark/include/chameleon_quark.h
+++ b/runtime/quark/include/chameleon_quark.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file chameleon_quark.h
+ * @file quark/chameleon_quark.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef _CHAMELEON_QUARK_H_
-#define _CHAMELEON_QUARK_H_
+#ifndef _chameleon_quark_h_
+#define _chameleon_quark_h_
 
 #include <quark.h>
 #include "coreblas.h"
@@ -48,4 +48,4 @@ typedef struct quark_option_s {
 
 #define RUNTIME_END_ACCESS_DECLARATION
 
-#endif /* _CHAMELEON_QUARK_H_ */
+#endif /* _chameleon_quark_h_ */
diff --git a/runtime/quark/include/core_blas_dag.h b/runtime/quark/include/core_blas_dag.h
index 740d7b459b242c234e301065f6049ddb8c1739e5..fbee7539cdfcaa3066a71b5b85eb243a903325dc 100644
--- a/runtime/quark/include/core_blas_dag.h
+++ b/runtime/quark/include/core_blas_dag.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file core_blas_dag.h
+ * @file quark/core_blas_dag.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2010-11-15
  *
  */
-#ifndef _CHAMELEON_CORE_BLAS_DAG_H_
-#define _CHAMELEON_CORE_BLAS_DAG_H_
+#ifndef _core_blas_dag_h_
+#define _core_blas_dag_h_
 
 #if defined(QUARK_DOT_DAG_ENABLE) /* || 1 */
 #define DAG_SET_PROPERTIES( _name, _color )                            \
@@ -83,4 +83,4 @@
 #define DAG_CORE_UNMLQ      DAG_SET_PROPERTIES( "UNMLQ"     , "cyan"    )
 #define DAG_CORE_UNMQR      DAG_SET_PROPERTIES( "UNMQR"     , "cyan"    )
 
-#endif /* _CHAMELEON_CORE_BLAS_DAG_H_ */
+#endif /* _core_blas_dag_h_ */
diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index cce8225bd24195d14e475ddbdce6088bc667fafb..d25a9839bc4de2c83bbef8261234227eeb4fbd98 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -1,10 +1,10 @@
 ###
 #
-# @file CMakeLists.txt
+# @file starpu/CMakeLists.txt
 #
 # @copyright 2009-2015 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/runtime/starpu/codelets/codelet_map.c b/runtime/starpu/codelets/codelet_map.c
index d1fd41b73555267708b8a151612f65c4daa8f683..b3d2856e0b2740583dd65a5681073691195afb55 100644
--- a/runtime/starpu/codelets/codelet_map.c
+++ b/runtime/starpu/codelets/codelet_map.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file codelet_map.c
+ * @file starpu/codelet_map.c
  *
  * @copyright 2018-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
diff --git a/runtime/starpu/codelets/codelet_zasum.c b/runtime/starpu/codelets/codelet_zasum.c
index 266c42a0010472f73a8b94f0d498b8f0e0e0b07f..e8aa0aeca41392e2b01a298e82ef63886b61ad1b 100644
--- a/runtime/starpu/codelets/codelet_zasum.c
+++ b/runtime/starpu/codelets/codelet_zasum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zasum.c
+ * @file starpu/codelet_zasum.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zaxpy.c b/runtime/starpu/codelets/codelet_zaxpy.c
index 231cbef4afd8e32e8e5c4b9df0c325e1f9df4e66..0a35f27f4ffc5c4964cc39dbd004487d4c6ef998 100644
--- a/runtime/starpu/codelets/codelet_zaxpy.c
+++ b/runtime/starpu/codelets/codelet_zaxpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zaxpy.c
+ * @file starpu/codelet_zaxpy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zbuild.c b/runtime/starpu/codelets/codelet_zbuild.c
index 0d397b95e77330fff0d9fe486ab6fee727f0b820..4aa45bf5bc9900b6f996e0cb275d4339268d83be 100644
--- a/runtime/starpu/codelets/codelet_zbuild.c
+++ b/runtime/starpu/codelets/codelet_zbuild.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zbuild.c
+ * @file starpu/codelet_zbuild.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zcallback.c b/runtime/starpu/codelets/codelet_zcallback.c
index 1b227f403d28c110b1a82d0b6322672f5a19d4a5..c42035d967b99c896705c8341a70155e26678025 100644
--- a/runtime/starpu/codelets/codelet_zcallback.c
+++ b/runtime/starpu/codelets/codelet_zcallback.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zcallback.c
+ * @file starpu/codelet_zcallback.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgeadd.c b/runtime/starpu/codelets/codelet_zgeadd.c
index d6931853f9d7ffac23f227ae671d9271c7136454..29fd3d52331a80742c6fa4ed58264ab880506939 100644
--- a/runtime/starpu/codelets/codelet_zgeadd.c
+++ b/runtime/starpu/codelets/codelet_zgeadd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeadd.c
+ * @file starpu/codelet_zgeadd.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgelqt.c b/runtime/starpu/codelets/codelet_zgelqt.c
index d8eefe33a5cf890dbf106250b1e3de5fa10f1d22..8f09fe58e6f021637c179589b6362d0e731fa26b 100644
--- a/runtime/starpu/codelets/codelet_zgelqt.c
+++ b/runtime/starpu/codelets/codelet_zgelqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgelqt.c
+ * @file starpu/codelet_zgelqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgemm.c b/runtime/starpu/codelets/codelet_zgemm.c
index 0399a316baadbbb0b73608daee98eaf6fd804466..bc4e1fcc161e6a29bf06874522479656424260cb 100644
--- a/runtime/starpu/codelets/codelet_zgemm.c
+++ b/runtime/starpu/codelets/codelet_zgemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgemm.c
+ * @file starpu/codelet_zgemm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgeqrt.c b/runtime/starpu/codelets/codelet_zgeqrt.c
index e2be4bfcf2e7decd3c150fce1fdcdd4a58c1a536..6ad0db2bb7aa657a9fda55c84b0d421ad2aa99bb 100644
--- a/runtime/starpu/codelets/codelet_zgeqrt.c
+++ b/runtime/starpu/codelets/codelet_zgeqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgeqrt.c
+ * @file starpu/codelet_zgeqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgessm.c b/runtime/starpu/codelets/codelet_zgessm.c
index e6927322d5e9a5cbebb72acf082733d6a9dd86e3..8a85cb15aed7c1781fbb7836a7339d5ff0e40ab4 100644
--- a/runtime/starpu/codelets/codelet_zgessm.c
+++ b/runtime/starpu/codelets/codelet_zgessm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessm.c
+ * @file starpu/codelet_zgessm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgessq.c b/runtime/starpu/codelets/codelet_zgessq.c
index 55a41d89da466be1b8b776fd706cbbc2a510dd04..a9cdc2ff812c03338f9d45af2cfe8846163315db 100644
--- a/runtime/starpu/codelets/codelet_zgessq.c
+++ b/runtime/starpu/codelets/codelet_zgessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgessq.c
+ * @file starpu/codelet_zgessq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgetrf.c b/runtime/starpu/codelets/codelet_zgetrf.c
index bfdfc86e50e1f1c70ce3d6dbd757cb0ad504ea43..b6bf892c4c6d72c84165c67c2802f19a86d5ab14 100644
--- a/runtime/starpu/codelets/codelet_zgetrf.c
+++ b/runtime/starpu/codelets/codelet_zgetrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf.c
+ * @file starpu/codelet_zgetrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
index 7b78a48e886be82734fee12cb522158115dd1f53..4f08aa80d68afcd215eb38a607f6b7b4c372d05a 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_incpiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_incpiv.c
+ * @file starpu/codelet_zgetrf_incpiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
index 70e9c9d1bdfa74968009aa7c061bebd3174bb16f..f8297003c5a671e423c60198cb4f81f4179c0253 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zgetrf_nopiv.c
+ * @file starpu/codelet_zgetrf_nopiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zhe2ge.c b/runtime/starpu/codelets/codelet_zhe2ge.c
index e170e87248972cbe3a0aa3be47d237fe2412d8fc..ad36649b29378961599bff6e544dd3490cf76d4b 100644
--- a/runtime/starpu/codelets/codelet_zhe2ge.c
+++ b/runtime/starpu/codelets/codelet_zhe2ge.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhe2ge.c
+ * @file starpu/codelet_zhe2ge.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zhemm.c b/runtime/starpu/codelets/codelet_zhemm.c
index 6a45d97e5da9fa2aedd3e1ebad1655353d9ad1ae..c95d7e0127cde3045f8fd506e755a2766f8f31a7 100644
--- a/runtime/starpu/codelets/codelet_zhemm.c
+++ b/runtime/starpu/codelets/codelet_zhemm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhemm.c
+ * @file starpu/codelet_zhemm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zher2k.c b/runtime/starpu/codelets/codelet_zher2k.c
index b899b9f78b1d90833afd6ad8403a44d2bb385b9e..347e9a99f3f15c3d4b219e385cfd78125909d7d3 100644
--- a/runtime/starpu/codelets/codelet_zher2k.c
+++ b/runtime/starpu/codelets/codelet_zher2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zher2k.c
+ * @file starpu/codelet_zher2k.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zherfb.c b/runtime/starpu/codelets/codelet_zherfb.c
index b6a25151080282c9b2c4a8a9554941459303f9b1..2c98d9a05a684f8c2587d6a6cfcc2e1b290111cd 100644
--- a/runtime/starpu/codelets/codelet_zherfb.c
+++ b/runtime/starpu/codelets/codelet_zherfb.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherfb.c
+ * @file starpu/codelet_zherfb.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zherk.c b/runtime/starpu/codelets/codelet_zherk.c
index 9b97d5fbed2adb4b7da7c6dbc43271c42638d70c..e8b74b7adae681de7549225acd113f47fa9359ee 100644
--- a/runtime/starpu/codelets/codelet_zherk.c
+++ b/runtime/starpu/codelets/codelet_zherk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zherk.c
+ * @file starpu/codelet_zherk.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zhessq.c b/runtime/starpu/codelets/codelet_zhessq.c
index daace11ab8a8eee8131e95166555c0922fe083a5..c47e0871d113394d877f8e5ef4e5e82c2854c531 100644
--- a/runtime/starpu/codelets/codelet_zhessq.c
+++ b/runtime/starpu/codelets/codelet_zhessq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zhessq.c
+ * @file starpu/codelet_zhessq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlacpy.c b/runtime/starpu/codelets/codelet_zlacpy.c
index 2f53ed5dce281cf896bdb9d8b1894f7213f9778e..566c5a6408fbe48eb2dc766042df9bd903fc26f7 100644
--- a/runtime/starpu/codelets/codelet_zlacpy.c
+++ b/runtime/starpu/codelets/codelet_zlacpy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlacpy.c
+ * @file starpu/codelet_zlacpy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlag2c.c b/runtime/starpu/codelets/codelet_zlag2c.c
index 16b25e4efdf2d8c6872cfbe5dffc9cee6b2c9a14..a22ee407dd0f023d2c2a25a82eca2f57e6ff7ab5 100644
--- a/runtime/starpu/codelets/codelet_zlag2c.c
+++ b/runtime/starpu/codelets/codelet_zlag2c.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlag2c.c
+ * @file starpu/codelet_zlag2c.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlange.c b/runtime/starpu/codelets/codelet_zlange.c
index db2b10af669acf2242940e04b0585d402cce066b..a90de22caac82801eaf997139c0b91948f8eebbe 100644
--- a/runtime/starpu/codelets/codelet_zlange.c
+++ b/runtime/starpu/codelets/codelet_zlange.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlange.c
+ * @file starpu/codelet_zlange.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlanhe.c b/runtime/starpu/codelets/codelet_zlanhe.c
index 22016bd5f0ac49633193a218b1fed031d0e07291..d29b5b3d53be49d3d24b758c5139b5ea08aafa36 100644
--- a/runtime/starpu/codelets/codelet_zlanhe.c
+++ b/runtime/starpu/codelets/codelet_zlanhe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlanhe.c
+ * @file starpu/codelet_zlanhe.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlansy.c b/runtime/starpu/codelets/codelet_zlansy.c
index b791b234e05075e8a9ad57d619e5fa55cb57572d..6fd7cae043869316a5e8527c637f273815b4c261 100644
--- a/runtime/starpu/codelets/codelet_zlansy.c
+++ b/runtime/starpu/codelets/codelet_zlansy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlansy.c
+ * @file starpu/codelet_zlansy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlantr.c b/runtime/starpu/codelets/codelet_zlantr.c
index 9562bd72911e5d7323ed23bfb12a4d3ae264defd..b4a5da8051780a99d1c60fa53f0aa8d20ad74313 100644
--- a/runtime/starpu/codelets/codelet_zlantr.c
+++ b/runtime/starpu/codelets/codelet_zlantr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlantr.c
+ * @file starpu/codelet_zlantr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlascal.c b/runtime/starpu/codelets/codelet_zlascal.c
index edc937752525fd9912f7524010b92c1389e06d4f..883cd7163065a4d5ba3550522f03d9b6b5146ddb 100644
--- a/runtime/starpu/codelets/codelet_zlascal.c
+++ b/runtime/starpu/codelets/codelet_zlascal.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlascal.c
+ * @file starpu/codelet_zlascal.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlaset.c b/runtime/starpu/codelets/codelet_zlaset.c
index 44e8af066ef973a1dc69938f995cf3e6436eca38..ebeeacab4f1a2111e80dbbcb5a318a55e2e46a14 100644
--- a/runtime/starpu/codelets/codelet_zlaset.c
+++ b/runtime/starpu/codelets/codelet_zlaset.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset.c
+ * @file starpu/codelet_zlaset.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlaset2.c b/runtime/starpu/codelets/codelet_zlaset2.c
index 394e69da5f41bf46ac079766f1469194dc508bbe..2440e093cada8a91e4f3bf4f2cc7a14550e1a1bb 100644
--- a/runtime/starpu/codelets/codelet_zlaset2.c
+++ b/runtime/starpu/codelets/codelet_zlaset2.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlaset2.c
+ * @file starpu/codelet_zlaset2.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlatro.c b/runtime/starpu/codelets/codelet_zlatro.c
index fb9de682d05661b21942116b616d098e760e78ca..694045c1be7479ea73a8b00ab9df653ea9a6bcd9 100644
--- a/runtime/starpu/codelets/codelet_zlatro.c
+++ b/runtime/starpu/codelets/codelet_zlatro.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlatro.c
+ * @file starpu/codelet_zlatro.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zlauum.c b/runtime/starpu/codelets/codelet_zlauum.c
index e9296ba512039d50a24997e772f4f522c4bf416a..f8ceaa4bab6103d3b99468b35fdeef9670749ef7 100644
--- a/runtime/starpu/codelets/codelet_zlauum.c
+++ b/runtime/starpu/codelets/codelet_zlauum.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zlauum.c
+ * @file starpu/codelet_zlauum.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zplghe.c b/runtime/starpu/codelets/codelet_zplghe.c
index 065e237da53e92b9eaf74ea175e2c353b0b2f508..ae014c297e8a9bec69359c93aee8684cd488234d 100644
--- a/runtime/starpu/codelets/codelet_zplghe.c
+++ b/runtime/starpu/codelets/codelet_zplghe.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplghe.c
+ * @file starpu/codelet_zplghe.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zplgsy.c b/runtime/starpu/codelets/codelet_zplgsy.c
index ad0fe3be213c5abd1718f6ef954ead5c87783706..de00e603352526149032aa4982686d0af59dffb3 100644
--- a/runtime/starpu/codelets/codelet_zplgsy.c
+++ b/runtime/starpu/codelets/codelet_zplgsy.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplgsy.c
+ * @file starpu/codelet_zplgsy.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zplrnt.c b/runtime/starpu/codelets/codelet_zplrnt.c
index 4189f24bcaf9ab4f95f698a3a00e0947efac4c1b..24f7c9159e92127f9cfa76377a3073faa12b0cf0 100644
--- a/runtime/starpu/codelets/codelet_zplrnt.c
+++ b/runtime/starpu/codelets/codelet_zplrnt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplrnt.c
+ * @file starpu/codelet_zplrnt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zplssq.c b/runtime/starpu/codelets/codelet_zplssq.c
index 847004cc9a745105dfe40c309a2b856e07957c07..757f0ba6e15e42672c291d5d30e4b6c730e7e53f 100644
--- a/runtime/starpu/codelets/codelet_zplssq.c
+++ b/runtime/starpu/codelets/codelet_zplssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zplssq.c
+ * @file starpu/codelet_zplssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index fc55ced7abfab26e5fb94548ad59418903010fa1..3f62559a7ac23394687498c43a232e76905acb00 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zpotrf.c
+ * @file starpu/codelet_zpotrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zssssm.c b/runtime/starpu/codelets/codelet_zssssm.c
index b244374bc94d6c4b67eeee33ee027ff2a5c15cb7..e8bc5b42db06278e51ee0d3c9885f6dbfb96939d 100644
--- a/runtime/starpu/codelets/codelet_zssssm.c
+++ b/runtime/starpu/codelets/codelet_zssssm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zssssm.c
+ * @file starpu/codelet_zssssm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zsymm.c b/runtime/starpu/codelets/codelet_zsymm.c
index 122a79ebe86f0511d8fa4128988059ae644d063f..c559ed7cbcdd905f353c00349fb3c0ad66ce5ecc 100644
--- a/runtime/starpu/codelets/codelet_zsymm.c
+++ b/runtime/starpu/codelets/codelet_zsymm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsymm.c
+ * @file starpu/codelet_zsymm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zsyr2k.c b/runtime/starpu/codelets/codelet_zsyr2k.c
index a2d2288ed96d454d2c58caa5394842c674193c47..dc97ae43f318734b7d5545a41859be973a4d9bfd 100644
--- a/runtime/starpu/codelets/codelet_zsyr2k.c
+++ b/runtime/starpu/codelets/codelet_zsyr2k.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyr2k.c
+ * @file starpu/codelet_zsyr2k.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zsyrk.c b/runtime/starpu/codelets/codelet_zsyrk.c
index 9e58f28142e934c3fa99c54bd1e3a2dd06da6b41..7b29c0df4698ac2f33a0e9286b636ebf5a7237fb 100644
--- a/runtime/starpu/codelets/codelet_zsyrk.c
+++ b/runtime/starpu/codelets/codelet_zsyrk.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyrk.c
+ * @file starpu/codelet_zsyrk.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zsyssq.c b/runtime/starpu/codelets/codelet_zsyssq.c
index d8dd46c1bce0aead3d724ed5fb45ad9ce6416020..2e2ae7676cc456ab5ff078ad36e378dc6e9f2c49 100644
--- a/runtime/starpu/codelets/codelet_zsyssq.c
+++ b/runtime/starpu/codelets/codelet_zsyssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsyssq.c
+ * @file starpu/codelet_zsyssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zsytrf_nopiv.c b/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
index 7d29d1840d0f566623090e17a5b02ea0efa610a1..b1f741affa82fa9388a5b41d8d243d22215aa7cd 100644
--- a/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/starpu/codelets/codelet_zsytrf_nopiv.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zsytrf_nopiv.c
+ * @file starpu/codelet_zsytrf_nopiv.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztile_zero.c b/runtime/starpu/codelets/codelet_ztile_zero.c
index a7c5cbf11f09e5015294d5a3a816df215ab374dd..c59115b410222dd329cdd0b794ab72223b8f2ef8 100644
--- a/runtime/starpu/codelets/codelet_ztile_zero.c
+++ b/runtime/starpu/codelets/codelet_ztile_zero.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztile_zero.c
+ * @file starpu/codelet_ztile_zero.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztplqt.c b/runtime/starpu/codelets/codelet_ztplqt.c
index 58674171cb0ce139aac1be2b3f29da7e1e3ec16b..c2f771e69fd77a8b35e5c54c94b565b6a4aa7aba 100644
--- a/runtime/starpu/codelets/codelet_ztplqt.c
+++ b/runtime/starpu/codelets/codelet_ztplqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztplqt.c
+ * @file starpu/codelet_ztplqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztpmlqt.c b/runtime/starpu/codelets/codelet_ztpmlqt.c
index e961cbf10f2702c6c5c914e0838802f495a18dbc..714b45762488101d571b7ed4a7f1132a256d5301 100644
--- a/runtime/starpu/codelets/codelet_ztpmlqt.c
+++ b/runtime/starpu/codelets/codelet_ztpmlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmlqt.c
+ * @file starpu/codelet_ztpmlqt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  * @brief Chameleon ztpmlqt StarPU codelet
diff --git a/runtime/starpu/codelets/codelet_ztpmqrt.c b/runtime/starpu/codelets/codelet_ztpmqrt.c
index fe4e8dcc9657b0e0784b1c0f0c2a59cc507b6962..40f83ab2d137bfe6c9de11d58a4ad05307edb78e 100644
--- a/runtime/starpu/codelets/codelet_ztpmqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpmqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpmqrt.c
+ * @file starpu/codelet_ztpmqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  * @brief Chameleon ztpmqrt StarPU codelet
diff --git a/runtime/starpu/codelets/codelet_ztpqrt.c b/runtime/starpu/codelets/codelet_ztpqrt.c
index 9379836866abb2717642792ccce80668a602c01f..bfddf9d4b7859da85baf54fe12925fc797d6f5af 100644
--- a/runtime/starpu/codelets/codelet_ztpqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztpqrt.c
+ * @file starpu/codelet_ztpqrt.c
  *
  * @copyright 2009-2016 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztradd.c b/runtime/starpu/codelets/codelet_ztradd.c
index 247c83ae64e5f3d7ca68f13146801f0037551fa0..eef026f7be6f8d6d2e65c43d9ee229046552e0ae 100644
--- a/runtime/starpu/codelets/codelet_ztradd.c
+++ b/runtime/starpu/codelets/codelet_ztradd.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztradd.c
+ * @file starpu/codelet_ztradd.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztrasm.c b/runtime/starpu/codelets/codelet_ztrasm.c
index 488c1d238b59c1361c2e6067f7ece55b214ba301..4e0dc05a6db8eb62a2730f56abcc08edb70495ce 100644
--- a/runtime/starpu/codelets/codelet_ztrasm.c
+++ b/runtime/starpu/codelets/codelet_ztrasm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrasm.c
+ * @file starpu/codelet_ztrasm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztrmm.c b/runtime/starpu/codelets/codelet_ztrmm.c
index 50f1073646144a64ee5c4b3cf2a931174c6ffe36..de980740b101b708fbed15050f05c2c09e16c418 100644
--- a/runtime/starpu/codelets/codelet_ztrmm.c
+++ b/runtime/starpu/codelets/codelet_ztrmm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrmm.c
+ * @file starpu/codelet_ztrmm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztrsm.c b/runtime/starpu/codelets/codelet_ztrsm.c
index 8e281e53951bc31c778f3ac8696744dd5a774fa9..26efe78fd764876b08776db8a8a3677c4b02196e 100644
--- a/runtime/starpu/codelets/codelet_ztrsm.c
+++ b/runtime/starpu/codelets/codelet_ztrsm.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrsm.c
+ * @file starpu/codelet_ztrsm.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztrssq.c b/runtime/starpu/codelets/codelet_ztrssq.c
index c3e9646b460c34a4071aca57414b382039317065..aac4b9fbd963ba9a3bf67ff248d2b3729129c845 100644
--- a/runtime/starpu/codelets/codelet_ztrssq.c
+++ b/runtime/starpu/codelets/codelet_ztrssq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrssq.c
+ * @file starpu/codelet_ztrssq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztrtri.c b/runtime/starpu/codelets/codelet_ztrtri.c
index 823237a59bbea34e963e206966cb36e2cd6cbb7d..ae2f4253330dc7cea6158ab4fc42c36de0c694f1 100644
--- a/runtime/starpu/codelets/codelet_ztrtri.c
+++ b/runtime/starpu/codelets/codelet_ztrtri.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztrtri.c
+ * @file starpu/codelet_ztrtri.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztslqt.c b/runtime/starpu/codelets/codelet_ztslqt.c
index b014d170375507d2d59edf87d4f1559c4ff1b425..fd6c4338d1898ab5ff4db43d9d9479753f412787 100644
--- a/runtime/starpu/codelets/codelet_ztslqt.c
+++ b/runtime/starpu/codelets/codelet_ztslqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztslqt.c
+ * @file starpu/codelet_ztslqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztsmlq.c b/runtime/starpu/codelets/codelet_ztsmlq.c
index b3943f914e1f412ed55bfcb378cbaba6842ba0bf..5435ef66d46af15fef340b46ec4c555bc4780a15 100644
--- a/runtime/starpu/codelets/codelet_ztsmlq.c
+++ b/runtime/starpu/codelets/codelet_ztsmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq.c
+ * @file starpu/codelet_ztsmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c b/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
index 3c60b7dd1dc9c2847bf0dc192c73afb2faef2270..1d20f5a1e673d0b33acf44b0b63325fe83556cd4 100644
--- a/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/starpu/codelets/codelet_ztsmlq_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmlq_hetra1.c
+ * @file starpu/codelet_ztsmlq_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztsmqr.c b/runtime/starpu/codelets/codelet_ztsmqr.c
index 0d0e14dcc50fbf61faa034a045a3ca31e8bf7efa..575ae54b525765e7734fd90ce01e3b2a6125f07e 100644
--- a/runtime/starpu/codelets/codelet_ztsmqr.c
+++ b/runtime/starpu/codelets/codelet_ztsmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr.c
+ * @file starpu/codelet_ztsmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c b/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
index a38c21bd6e12e01d10d5c5c2c00080d63161a0de..93abedf3bfddad90e32e4f8eadc857e8c2726d27 100644
--- a/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/starpu/codelets/codelet_ztsmqr_hetra1.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztsmqr_hetra1.c
+ * @file starpu/codelet_ztsmqr_hetra1.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_ztsqrt.c b/runtime/starpu/codelets/codelet_ztsqrt.c
index f54f82b17e4d283a01653b6bcef242a084bafffd..ec25ee3bd08a8f4b10b0b95d03d4afa4c12e8e6b 100644
--- a/runtime/starpu/codelets/codelet_ztsqrt.c
+++ b/runtime/starpu/codelets/codelet_ztsqrt.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file codelet_ztsqrt.c
+ * @file starpu/codelet_ztsqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
diff --git a/runtime/starpu/codelets/codelet_ztstrf.c b/runtime/starpu/codelets/codelet_ztstrf.c
index b97bae2a92b2be90a431eabc9fd8b809d3dea19e..2b48cd3640a3b03d6baa3c364e2651e4cfa7c3b8 100644
--- a/runtime/starpu/codelets/codelet_ztstrf.c
+++ b/runtime/starpu/codelets/codelet_ztstrf.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_ztstrf.c
+ * @file starpu/codelet_ztstrf.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zttlqt.c b/runtime/starpu/codelets/codelet_zttlqt.c
index dc8c15e3788cf5daf0eb52de7ebfc6f4dfe4993d..136e5491e66ddc76c53c2ef961722ec84a69f83b 100644
--- a/runtime/starpu/codelets/codelet_zttlqt.c
+++ b/runtime/starpu/codelets/codelet_zttlqt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttlqt.c
+ * @file starpu/codelet_zttlqt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zttmlq.c b/runtime/starpu/codelets/codelet_zttmlq.c
index 8d40316cfbf99e86a9b13d3eff9f8a6f510f9def..6ae6b6da5afe6952fac5ce49a5c32faba55db073 100644
--- a/runtime/starpu/codelets/codelet_zttmlq.c
+++ b/runtime/starpu/codelets/codelet_zttmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmlq.c
+ * @file starpu/codelet_zttmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zttmqr.c b/runtime/starpu/codelets/codelet_zttmqr.c
index 2cc96b354f6f64d4da0ebd3a6cbd5cbf0327761a..545328c852eb6f160a9207822399661e43a7ef43 100644
--- a/runtime/starpu/codelets/codelet_zttmqr.c
+++ b/runtime/starpu/codelets/codelet_zttmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttmqr.c
+ * @file starpu/codelet_zttmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zttqrt.c b/runtime/starpu/codelets/codelet_zttqrt.c
index 6370770f0fa7e1cd380d2bc189deecf43cabaadf..ea8582f2e5d7c5db387834495fbcb34a4bab036f 100644
--- a/runtime/starpu/codelets/codelet_zttqrt.c
+++ b/runtime/starpu/codelets/codelet_zttqrt.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zttqrt.c
+ * @file starpu/codelet_zttqrt.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zunmlq.c b/runtime/starpu/codelets/codelet_zunmlq.c
index 114a4b75a89b375e4079aff8e91c5897f9fca3a4..f88df0756e1c235acb246e0ae7f83da08ce151ac 100644
--- a/runtime/starpu/codelets/codelet_zunmlq.c
+++ b/runtime/starpu/codelets/codelet_zunmlq.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmlq.c
+ * @file starpu/codelet_zunmlq.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/codelets/codelet_zunmqr.c b/runtime/starpu/codelets/codelet_zunmqr.c
index 72d83f59d3ab1867289071ede7d38d718c387d6f..e460449e78fe018e70db95108a7561bc94948c67 100644
--- a/runtime/starpu/codelets/codelet_zunmqr.c
+++ b/runtime/starpu/codelets/codelet_zunmqr.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file codelet_zunmqr.c
+ * @file starpu/codelet_zunmqr.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index c1b776c63a6e6edbb6812958169eb44943623731..231f2efb6b066847cf8e1ee796ad6fabc0ce6944 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_async.c
+ * @file starpu/runtime_async.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_context.c b/runtime/starpu/control/runtime_context.c
index 128841d2dabe2bd5b4fb7498fca26b7eab208162..71272e934c3f4d87cf400f556c6fa86bf33413fe 100644
--- a/runtime/starpu/control/runtime_context.c
+++ b/runtime/starpu/control/runtime_context.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_context.c
+ * @file starpu/runtime_context.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_control.c b/runtime/starpu/control/runtime_control.c
index 8b698faa7d1d6f5ac0db5ebcea2621ab9859ad74..96409c831b583bc1a513d691ef6538c32671f117 100644
--- a/runtime/starpu/control/runtime_control.c
+++ b/runtime/starpu/control/runtime_control.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_control.c
+ * @file starpu/runtime_control.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index c49978d8692a2158e5c800156a871d02de906116..8da522d2884cf63f4e766eec28c6f237d2910ecf 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file runtime_descriptor.c
+ * @file starpu/runtime_descriptor.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
diff --git a/runtime/starpu/control/runtime_options.c b/runtime/starpu/control/runtime_options.c
index 19d7689ba155c4620ad2a57e93f0211122a56491..a7a308326b5787eb76e3c0f16f40ca0e4c0cc44f 100644
--- a/runtime/starpu/control/runtime_options.c
+++ b/runtime/starpu/control/runtime_options.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_options.c
+ * @file starpu/runtime_options.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_profiling.c b/runtime/starpu/control/runtime_profiling.c
index 7c5f5b9c548573fe665d61c948c757502aa5c11c..7887e85c5fcf3c70072911e710ced237052cb9d6 100644
--- a/runtime/starpu/control/runtime_profiling.c
+++ b/runtime/starpu/control/runtime_profiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_profiling.c
+ * @file starpu/runtime_profiling.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_workspace.c b/runtime/starpu/control/runtime_workspace.c
index 35695a0e4e55eb92101fe916cb77a31ffce308c6..158c141174a4290cc37cb2e8619a52242e7d3c9e 100644
--- a/runtime/starpu/control/runtime_workspace.c
+++ b/runtime/starpu/control/runtime_workspace.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_workspace.c
+ * @file starpu/runtime_workspace.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_zlocality.c b/runtime/starpu/control/runtime_zlocality.c
index 1e2fd8616ba2eaca8ebfe41d642f6415401ce400..0b2a7bc282dd6d39e852cb6d2679367d8b213f31 100644
--- a/runtime/starpu/control/runtime_zlocality.c
+++ b/runtime/starpu/control/runtime_zlocality.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zlocality.c
+ * @file starpu/runtime_zlocality.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/control/runtime_zprofiling.c b/runtime/starpu/control/runtime_zprofiling.c
index cea4f6883fdba7e37b966e97efc38536c00f3bc8..82af2b32836b8e3d6400f17cadd86b8f4f02de00 100644
--- a/runtime/starpu/control/runtime_zprofiling.c
+++ b/runtime/starpu/control/runtime_zprofiling.c
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_zprofiling.c
+ * @file starpu/runtime_zprofiling.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in
index 7b8da64bfee38ca5a6fe6697435e5b648e6bca64..c7508388c74028bfb44aa4b851bc5758e40ce87d 100644
--- a/runtime/starpu/include/chameleon_starpu.h.in
+++ b/runtime/starpu/include/chameleon_starpu.h.in
@@ -1,10 +1,10 @@
 /**
  *
- * @file chameleon_starpu.h
+ * @file starpu/chameleon_starpu.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -18,8 +18,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef _CHAMELEON_STARPU_H_
-#define _CHAMELEON_STARPU_H_
+#ifndef _chameleon_starpu_h_
+#define _chameleon_starpu_h_
 
 #include "chameleon/config.h"
 
@@ -198,4 +198,4 @@ chameleon_starpu_data_iscached(const CHAM_desc_t *A, int m, int n)
 #define RUNTIME_END_ACCESS_DECLARATION          \
     RUNTIME_PRUNING_STATS_END_ACCESS_DECLARATION;
 
-#endif /* _CHAMELEON_STARPU_H_ */
+#endif /* _chameleon_starpu_h_ */
diff --git a/runtime/starpu/include/runtime_codelet_profile.h b/runtime/starpu/include/runtime_codelet_profile.h
index c9cbb5099c15d0896f7e0097c593a25ca78b4072..f918a473a4af060ebcaf703f33a6d39a6ac526f4 100644
--- a/runtime/starpu/include/runtime_codelet_profile.h
+++ b/runtime/starpu/include/runtime_codelet_profile.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_codelet_profile.h
+ * @file starpu/runtime_codelet_profile.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -18,8 +18,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef __CODELET_PROFILE_H__
-#define __CODELET_PROFILE_H__
+#ifndef _runtime_codelet_profile_h_
+#define _runtime_codelet_profile_h_
 
 #include <math.h>
 
@@ -74,4 +74,4 @@
     void cl_##name##_callback();                        \
     void profiling_display_##name##_info(void);
 
-#endif /* __CODELET_PROFILE_H__ */
+#endif /* _runtime_codelet_profile_h_ */
diff --git a/runtime/starpu/include/runtime_codelet_z.h b/runtime/starpu/include/runtime_codelet_z.h
index f4598fca76434345cdbfa9c269499062cac0b556..30b5f282db608afbb653daadf4b2c5159d2142be 100644
--- a/runtime/starpu/include/runtime_codelet_z.h
+++ b/runtime/starpu/include/runtime_codelet_z.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_codelet_z.h
+ * @file starpu/runtime_codelet_z.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -19,8 +19,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef _CODELETS_Z_H_
-#define _CODELETS_Z_H_
+#ifndef _runtime_codelet_z_h_
+#define _runtime_codelet_z_h_
 
 #include <stdio.h>
 #include "runtime_codelets.h"
@@ -134,4 +134,4 @@ ZCODELETS_HEADER(sytrf_nopiv)
 #endif
 ZCODELETS_HEADER(plgsy)
 
-#endif /* _CODELETS_Z_H_ */
+#endif /* _runtime_codelet_z_h_ */
diff --git a/runtime/starpu/include/runtime_codelets.h b/runtime/starpu/include/runtime_codelets.h
index 9c9d73bf4e6fbedac736ae8a773aa83bba3a36f9..5971d58cd5a621791d969febc305fb12cd6af5a9 100644
--- a/runtime/starpu/include/runtime_codelets.h
+++ b/runtime/starpu/include/runtime_codelets.h
@@ -1,10 +1,10 @@
  /**
  *
- * @file runtime_codelets.h
+ * @file starpu/runtime_codelets.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -18,8 +18,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef _CODELETS_H_
-#define _CODELETS_H_
+#ifndef _runtime_codelets_h_
+#define _runtime_codelets_h_
 
 #include "chameleon/config.h"
 #include "runtime_codelet_profile.h"
@@ -119,4 +119,4 @@
 
 CODELETS_HEADER(map);
 
-#endif /* _CODELETS_H_ */
+#endif /* _runtime_codelets_h_ */
diff --git a/runtime/starpu/include/runtime_profiling.h b/runtime/starpu/include/runtime_profiling.h
index 203c6fc4362ddc485e88ce4e300b6ef151bbaca1..ead440fc22e6dcb20cde339782e2aee66a37982f 100644
--- a/runtime/starpu/include/runtime_profiling.h
+++ b/runtime/starpu/include/runtime_profiling.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_profiling.h
+ * @file starpu/runtime_profiling.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -17,8 +17,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef _PROFILING_H_
-#define _PROFILING_H_
+#ifndef _runtime_profiling_h_
+#define _runtime_profiling_h_
 
 #ifdef CHAMELEON_ENABLE_PRUNING_STATS
 extern unsigned long RUNTIME_total_tasks;
@@ -51,4 +51,4 @@ void CHAMELEON_crestore_Model();
 void CHAMELEON_drestore_Model();
 void CHAMELEON_srestore_Model();
 
-#endif
+#endif /* _runtime_profiling_h_ */
diff --git a/runtime/starpu/include/runtime_workspace.h b/runtime/starpu/include/runtime_workspace.h
index 418e7324ea9985da3db7fdcd7ded9110e4f78ca1..1bd5ce0919875685d69dcdb03cab3eea9ec246ec 100644
--- a/runtime/starpu/include/runtime_workspace.h
+++ b/runtime/starpu/include/runtime_workspace.h
@@ -1,10 +1,10 @@
 /**
  *
- * @file runtime_workspace.h
+ * @file starpu/runtime_workspace.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -16,8 +16,8 @@
  * @date 2011-06-01
  *
  */
-#ifndef _CHAMELEON_STARPU_WORKSPACE_H_
-#define _CHAMELEON_STARPU_WORKSPACE_H_
+#ifndef _runtime_workspace_h_
+#define _runtime_workspace_h_
 
 /*
  * Allocate workspace in host memory: CPU for any worker
@@ -47,4 +47,4 @@ int   RUNTIME_starpu_ws_alloc   ( CHAMELEON_starpu_ws_t **workspace, size_t size
 int   RUNTIME_starpu_ws_free    ( CHAMELEON_starpu_ws_t  *workspace);
 void *RUNTIME_starpu_ws_getlocal( CHAMELEON_starpu_ws_t  *workspace);
 
-#endif /* _CHAMELEON_STARPU_WORKSPACE_H_ */
+#endif /* _runtime_workspace_h_ */
diff --git a/simucore/CMakeLists.txt b/simucore/CMakeLists.txt
index d660de78ccf6527d68e1da494242b1f8c8a85deb..6f1cd7311490a3850c464dacdf53adea4d92062b 100755
--- a/simucore/CMakeLists.txt
+++ b/simucore/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
@@ -17,6 +17,7 @@
 #     Univ. of California Berkeley,
 #     Univ. of Colorado Denver.
 #
+#  @version 1.0.0
 #  @date 2014-10-02
 #
 ###
diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
index df43187fe6930f2487c073c2142caa9917381238..f04b0eff6cf7771070e36fdd66a04d42b8dae2d7 100644
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/testing/lin/CMakeLists.txt b/testing/lin/CMakeLists.txt
index e8f05f7c7bf369784eb416c980eb3b726fb4af2b..d8dd82adbe9bb43d7247d39ec97ec8e30cc94d8e 100644
--- a/testing/lin/CMakeLists.txt
+++ b/testing/lin/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/testing/testing_zauxiliary.c b/testing/testing_zauxiliary.c
index e72302b276a5690230814636c5a60d2a92d487e7..06e983339532a0f53c3a4441a732f1b414f08cb6 100644
--- a/testing/testing_zauxiliary.c
+++ b/testing/testing_zauxiliary.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zauxiliary.h b/testing/testing_zauxiliary.h
index d7edc4a91a51958281f486abf69c901d1cbd523f..37910ddd17f19bc12994ec46a2b5a7c1636cac38 100644
--- a/testing/testing_zauxiliary.h
+++ b/testing/testing_zauxiliary.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -18,8 +18,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef TESTING_ZAUXILIARY_H
-#define TESTING_ZAUXILIARY_H
+#ifndef _testing_zauxiliary_h_
+#define _testing_zauxiliary_h_
 
 //#include "testing.h"
 
@@ -113,4 +113,4 @@ int testing_zcgesv(int argc, char **argv);
 int testing_zcungesv(int argc, char **argv);
 #endif
 
-#endif /* TESTINGS_H */
+#endif /* _testing_zauxiliary_h_ */
diff --git a/testing/testing_zgeadd.c b/testing/testing_zgeadd.c
index a29e2dde2dbf53e0fe90832a8fed1e16dd50d2ec..81f4fe0e87bb8bf0003f44d478304850ec017439 100644
--- a/testing/testing_zgeadd.c
+++ b/testing/testing_zgeadd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgels.c b/testing/testing_zgels.c
index bed7f63471d191ae53f0b2d9e6b0fc7524fab0ae..9abcde8cf3e5a46b807cb96a8ab68abf19d4aa76 100644
--- a/testing/testing_zgels.c
+++ b/testing/testing_zgels.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c
index 1acc21ba3867d72965eb0a27ae047ea93992f74a..67101b034580137d1a6318f9ffc2e1be03af5d2e 100644
--- a/testing/testing_zgels_hqr.c
+++ b/testing/testing_zgels_hqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgels_systolic.c b/testing/testing_zgels_systolic.c
index 517ef85f28f7fca09296921a2590045eb3675b57..53176ceecb6317b75c8942b30d98f0e5d98c0fd6 100644
--- a/testing/testing_zgels_systolic.c
+++ b/testing/testing_zgels_systolic.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index a46877522f7f620805c1705673bb892bca1decad..6a9be91dadf612473fbaf4bf3b137a13e91aae2c 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgeqrf_qdwh.c b/testing/testing_zgeqrf_qdwh.c
index c267f09da831bab924ed4bab5c9813dc627523fc..429657447d39ebdf8dbefbd78592d902ca0a721d 100644
--- a/testing/testing_zgeqrf_qdwh.c
+++ b/testing/testing_zgeqrf_qdwh.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgesv_incpiv.c b/testing/testing_zgesv_incpiv.c
index 0137870741325a4bfb475b674704bd45da16b548..d382a505375996552256dc6da204a91fb4c43a47 100644
--- a/testing/testing_zgesv_incpiv.c
+++ b/testing/testing_zgesv_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zgesvd.c b/testing/testing_zgesvd.c
index d587488dba6887918be484bbebebc9e992cdf8a4..fd60eacd25a82d66a1da2b7b14ce92c285045a47 100644
--- a/testing/testing_zgesvd.c
+++ b/testing/testing_zgesvd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zheevd.c b/testing/testing_zheevd.c
index f8512cf6955d7566e02ef2dfc09a8fb6a54d6a97..83ec273de60f7306e9ad6007f516b0b943a46361 100644
--- a/testing/testing_zheevd.c
+++ b/testing/testing_zheevd.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index a24428e348d5c8cdc6befea81dc8d0a4ec7808bf..b9d19d03a5e3d5ea2eaec5fa2ab2ae323f83b24f 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index 97d03b846ff899fe083c33ce7a31d3f141144a09..16e72cfed80e75d2350fc1ef3281f74b5e618c82 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index ca0928a73967b7e5142139935f00efb6a96c9d02..1563fa5714ab1c626e7030b16f52197cbe13ff42 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index 5aff7317778d37ad70541698c1f742b24c355b4e..864b1e4ce9e55a85c9050de07d475a790da86a9c 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zpemv.c b/testing/testing_zpemv.c
index d3e07a5cc1d49c5b3ae9c1aa90e44948aea80d41..6c44c6dec84fb9f39aa41885e73ca3c4037bf998 100644
--- a/testing/testing_zpemv.c
+++ b/testing/testing_zpemv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c
index 6b7a621cb28ec16ba11d0d2f1a550382bc859cd4..1c6835daeccc6152cc95ad3c1861436253d4d9df 100644
--- a/testing/testing_zposv.c
+++ b/testing/testing_zposv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c
index 6c5b0d0ee5bb98190bbe24298d4f9c3b2f5500fd..24f7d170fa48b53769df6a56de3218030fafea8b 100644
--- a/testing/testing_zpotri.c
+++ b/testing/testing_zpotri.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index 3d5cb74e0494728a13687d3fd813a6bde157ab4c..c2c7e25c2eb5f7aef9f3b18d3d8bb83f920c903a 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index 52f93685a0d32deb1e76afcb2672c1fdab409dce..f801117ea888418adeaf826a6a9bb56d972fd577 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index 64347e6392612f4c02005be365244c92ed00f44d..c3ebe8c33614ccd660be75233892b4de3ea73a3c 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index a548d3e846e29fffb750332142ad37b3f3e46749..07218469ddd02bf7f5f075b89e7f415e54c99b73 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index f23429aecce301f41e1c55157a8c4f82355c3cb4..74ce2fe555074cb2a774b0df4ee8079e280333aa 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/CMakeLists.txt b/timing/CMakeLists.txt
index 0ed0d3bdfaa6b36821fe6e0b61b49c6d8b5bc408..ace5653ac5ce455bc104f6faee6022d4742834e2 100644
--- a/timing/CMakeLists.txt
+++ b/timing/CMakeLists.txt
@@ -4,7 +4,7 @@
 #
 # @copyright 2009-2014 The University of Tennessee and The University of
 #                      Tennessee Research Foundation. All rights reserved.
-# @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+# @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
 #                      Univ. Bordeaux. All rights reserved.
 #
 ###
diff --git a/timing/flops.h b/timing/flops.h
index fa06811d9eb78137627f4556fd78bcf8d06e7327..f5f73d16b01dddd286790c637b35d865de4df019 100644
--- a/timing/flops.h
+++ b/timing/flops.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -28,16 +28,16 @@
  * All the formula are reported in the LAPACK Lawn 41:
  *     http://www.netlib.org/lapack/lawns/lawn41.ps
  */
-#ifndef _FLOPS_H_
-#define _FLOPS_H_
+#ifndef _flops_h_
+#define _flops_h_
 
 /**
  *           Generic formula coming from LAWN 41
  */
 
 /*
- * Level 2 BLAS 
- */  
+ * Level 2 BLAS
+ */
 #define FMULS_GEMV(__m, __n) ((double)(__m) * (double)(__n) + 2. * (double)(__m))
 #define FADDS_GEMV(__m, __n) ((double)(__m) * (double)(__n)                     )
 
@@ -47,7 +47,7 @@
 #define FADDS_HEMV FADDS_SYMV
 
 /*
- * Level 3 BLAS 
+ * Level 3 BLAS
  */
 #define FMULS_GEMM(__m, __n, __k) ((double)(__m) * (double)(__n) * (double)(__k))
 #define FADDS_GEMM(__m, __n, __k) ((double)(__m) * (double)(__n) * (double)(__k))
@@ -171,13 +171,13 @@
  */
 
 /*
- * Level 2 BLAS 
- */  
+ * Level 2 BLAS
+ */
 #define FLOPS_ZGEMV(__m, __n) (6. * FMULS_GEMV((__m), (__n)) + 2.0 * FADDS_GEMV((__m), (__n)) )
 #define FLOPS_CGEMV(__m, __n) (6. * FMULS_GEMV((__m), (__n)) + 2.0 * FADDS_GEMV((__m), (__n)) )
 #define FLOPS_DGEMV(__m, __n) (     FMULS_GEMV((__m), (__n)) +       FADDS_GEMV((__m), (__n)) )
 #define FLOPS_SGEMV(__m, __n) (     FMULS_GEMV((__m), (__n)) +       FADDS_GEMV((__m), (__n)) )
- 
+
 #define FLOPS_ZHEMV(__n) (6. * FMULS_HEMV((__n)) + 2.0 * FADDS_HEMV((__n)) )
 #define FLOPS_CHEMV(__n) (6. * FMULS_HEMV((__n)) + 2.0 * FADDS_HEMV((__n)) )
 
@@ -185,9 +185,9 @@
 #define FLOPS_CSYMV(__n) (6. * FMULS_SYMV((__n)) + 2.0 * FADDS_SYMV((__n)) )
 #define FLOPS_DSYMV(__n) (     FMULS_SYMV((__n)) +       FADDS_SYMV((__n)) )
 #define FLOPS_SSYMV(__n) (     FMULS_SYMV((__n)) +       FADDS_SYMV((__n)) )
- 
+
 /*
- * Level 3 BLAS 
+ * Level 3 BLAS
  */
 #define FLOPS_ZGEMM(__m, __n, __k) (6. * FMULS_GEMM((__m), (__n), (__k)) + 2.0 * FADDS_GEMM((__m), (__n), (__k)) )
 #define FLOPS_CGEMM(__m, __n, __k) (6. * FMULS_GEMM((__m), (__n), (__k)) + 2.0 * FADDS_GEMM((__m), (__n), (__k)) )
@@ -201,7 +201,7 @@
 #define FLOPS_CSYMM(__side, __m, __n) (6. * FMULS_SYMM(__side, (__m), (__n)) + 2.0 * FADDS_SYMM(__side, (__m), (__n)) )
 #define FLOPS_DSYMM(__side, __m, __n) (     FMULS_SYMM(__side, (__m), (__n)) +       FADDS_SYMM(__side, (__m), (__n)) )
 #define FLOPS_SSYMM(__side, __m, __n) (     FMULS_SYMM(__side, (__m), (__n)) +       FADDS_SYMM(__side, (__m), (__n)) )
- 
+
 #define FLOPS_ZHERK(__k, __n) (6. * FMULS_HERK((__k), (__n)) + 2.0 * FADDS_HERK((__k), (__n)) )
 #define FLOPS_CHERK(__k, __n) (6. * FMULS_HERK((__k), (__n)) + 2.0 * FADDS_HERK((__k), (__n)) )
 
@@ -209,7 +209,7 @@
 #define FLOPS_CSYRK(__k, __n) (6. * FMULS_SYRK((__k), (__n)) + 2.0 * FADDS_SYRK((__k), (__n)) )
 #define FLOPS_DSYRK(__k, __n) (     FMULS_SYRK((__k), (__n)) +       FADDS_SYRK((__k), (__n)) )
 #define FLOPS_SSYRK(__k, __n) (     FMULS_SYRK((__k), (__n)) +       FADDS_SYRK((__k), (__n)) )
- 
+
 #define FLOPS_ZHER2K(__k, __n) (6. * FMULS_HER2K((__k), (__n)) + 2.0 * FADDS_HER2K((__k), (__n)) )
 #define FLOPS_CHER2K(__k, __n) (6. * FMULS_HER2K((__k), (__n)) + 2.0 * FADDS_HER2K((__k), (__n)) )
 
@@ -217,17 +217,17 @@
 #define FLOPS_CSYR2K(__k, __n) (6. * FMULS_SYR2K((__k), (__n)) + 2.0 * FADDS_SYR2K((__k), (__n)) )
 #define FLOPS_DSYR2K(__k, __n) (     FMULS_SYR2K((__k), (__n)) +       FADDS_SYR2K((__k), (__n)) )
 #define FLOPS_SSYR2K(__k, __n) (     FMULS_SYR2K((__k), (__n)) +       FADDS_SYR2K((__k), (__n)) )
- 
+
 #define FLOPS_ZTRMM(__side, __m, __n) (6. * FMULS_TRMM(__side, (__m), (__n)) + 2.0 * FADDS_TRMM(__side, (__m), (__n)) )
 #define FLOPS_CTRMM(__side, __m, __n) (6. * FMULS_TRMM(__side, (__m), (__n)) + 2.0 * FADDS_TRMM(__side, (__m), (__n)) )
 #define FLOPS_DTRMM(__side, __m, __n) (     FMULS_TRMM(__side, (__m), (__n)) +       FADDS_TRMM(__side, (__m), (__n)) )
 #define FLOPS_STRMM(__side, __m, __n) (     FMULS_TRMM(__side, (__m), (__n)) +       FADDS_TRMM(__side, (__m), (__n)) )
- 
+
 #define FLOPS_ZTRSM(__side, __m, __n) (6. * FMULS_TRSM(__side, (__m), (__n)) + 2.0 * FADDS_TRSM(__side, (__m), (__n)) )
 #define FLOPS_CTRSM(__side, __m, __n) (6. * FMULS_TRSM(__side, (__m), (__n)) + 2.0 * FADDS_TRSM(__side, (__m), (__n)) )
 #define FLOPS_DTRSM(__side, __m, __n) (     FMULS_TRSM(__side, (__m), (__n)) +       FADDS_TRSM(__side, (__m), (__n)) )
 #define FLOPS_STRSM(__side, __m, __n) (     FMULS_TRSM(__side, (__m), (__n)) +       FADDS_TRSM(__side, (__m), (__n)) )
- 
+
 /*
  * Lapack
  */
@@ -355,4 +355,4 @@
 #define FMULS_LANGE(__m, __n) ((double)(__m) * (double)(__n))
 #define FADDS_LANGE(__m, __n) ((double)(__m) * (double)(__n))
 
-#endif /* _FLOPS_H_ */
+#endif /* _flops_h_ */
diff --git a/timing/time_zgelqf.c b/timing/time_zgelqf.c
index bdda31be5eb966d4465dcfe23cac2c6c621fc92d..e2c709b7009d9403af0f9ab6c301ebd95621b20d 100644
--- a/timing/time_zgelqf.c
+++ b/timing/time_zgelqf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgelqf_tile.c b/timing/time_zgelqf_tile.c
index 9fed6d255f17052041096cd9d235c56ea8c6e3a6..f79ee5a857662bfc3e2a5e2863582b4fdf6dd4af 100644
--- a/timing/time_zgelqf_tile.c
+++ b/timing/time_zgelqf_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgels.c b/timing/time_zgels.c
index 3fe4324cbe8f7724acfc56725845c4103e789328..77bbbe667091accf09b8c2c9539d76d2439c715d 100644
--- a/timing/time_zgels.c
+++ b/timing/time_zgels.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgels_tile.c b/timing/time_zgels_tile.c
index 90d6cd94adf22f5f2d8a42b2e6507fca633f9700..6e0d300fa252053914c6ed29d0065fa0b30769e2 100644
--- a/timing/time_zgels_tile.c
+++ b/timing/time_zgels_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgemm.c b/timing/time_zgemm.c
index c98086f19a231dfc76601eabb52d861ce71844ba..f48fe1826f7d356dfb071b51ac8e55c8f0ff481a 100644
--- a/timing/time_zgemm.c
+++ b/timing/time_zgemm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgemm_tile.c b/timing/time_zgemm_tile.c
index d83ca5194fd399a750748e3721925127778b7155..996b626d6a429beb905c124e7b5d9ed836df4708 100644
--- a/timing/time_zgemm_tile.c
+++ b/timing/time_zgemm_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgeqrf.c b/timing/time_zgeqrf.c
index a4b73351c0fde466b77114ef0804324135d0b206..70353b2ca1daea834c78b34cd4d80c721ddf83c2 100644
--- a/timing/time_zgeqrf.c
+++ b/timing/time_zgeqrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgeqrf_hqr.c b/timing/time_zgeqrf_hqr.c
index b160912ba4d9c3303d9b560b9c1000b11fd6f436..725597fa0b0256c9dc0071aca22a888adf0ce493 100644
--- a/timing/time_zgeqrf_hqr.c
+++ b/timing/time_zgeqrf_hqr.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgeqrf_hqr_tile.c b/timing/time_zgeqrf_hqr_tile.c
index a28b15aa4f6e01eed98f986bc023cc55178b0a00..2b30953e0062de9537d75423bc0cd32210fbfbed 100644
--- a/timing/time_zgeqrf_hqr_tile.c
+++ b/timing/time_zgeqrf_hqr_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgeqrf_tile.c b/timing/time_zgeqrf_tile.c
index 50d55ac304d146924db1a9c34b316aa3d277c735..b35782a698828c262c27b3630885bec1821880ca 100644
--- a/timing/time_zgeqrf_tile.c
+++ b/timing/time_zgeqrf_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgeqrs_tile.c b/timing/time_zgeqrs_tile.c
index 9b3d85d0770c1c920bd2640710c9f0c38c267a54..3018a74b2c5a7ab7d1db198bb10a08a4e6c96c12 100644
--- a/timing/time_zgeqrs_tile.c
+++ b/timing/time_zgeqrs_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgesv_incpiv.c b/timing/time_zgesv_incpiv.c
index 1d9084814eb8383f74ecfd6645baae41d7a5c966..b32c8a50e2146cddc5ca4a11b5a6c47915f982f7 100644
--- a/timing/time_zgesv_incpiv.c
+++ b/timing/time_zgesv_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgesv_incpiv_tile.c b/timing/time_zgesv_incpiv_tile.c
index 8b9676d1d488ecb65e2778fe4c36edf19bd49537..7bd220fdf4b8198c606743e90d050a2d0652e56b 100644
--- a/timing/time_zgesv_incpiv_tile.c
+++ b/timing/time_zgesv_incpiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgesv_nopiv.c b/timing/time_zgesv_nopiv.c
index 0dcbefeb8c3c9bc4305034de152339413436cc63..e5df487d461eb7ef759a2f1c5fbd820beac28817 100644
--- a/timing/time_zgesv_nopiv.c
+++ b/timing/time_zgesv_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgesv_nopiv_tile.c b/timing/time_zgesv_nopiv_tile.c
index 7082f642fa2d38e442f16028b26eb242005277a7..9ca418ad23bdb7c383d74b9c7a72370b24f1804e 100644
--- a/timing/time_zgesv_nopiv_tile.c
+++ b/timing/time_zgesv_nopiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgesvd_tile.c b/timing/time_zgesvd_tile.c
index aeba7f33ced1e066bb3bc14542fc563a7ec16773..0d3c39cc35f2e2192f20837c16480fc0e49a3c34 100644
--- a/timing/time_zgesvd_tile.c
+++ b/timing/time_zgesvd_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrf_incpiv.c b/timing/time_zgetrf_incpiv.c
index cc86539a0d7892995a29cc90d08acd7c134ea680..0f7c9c5b8b712c30f4997c84e645be67e7698267 100644
--- a/timing/time_zgetrf_incpiv.c
+++ b/timing/time_zgetrf_incpiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrf_incpiv_tile.c b/timing/time_zgetrf_incpiv_tile.c
index 041e685a0ec8740a0fe517b6504b2b30e69f2788..1e8f7a29acbb576aac419dc36fdce2a1359356c3 100644
--- a/timing/time_zgetrf_incpiv_tile.c
+++ b/timing/time_zgetrf_incpiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrf_nopiv.c b/timing/time_zgetrf_nopiv.c
index bcc29441c65ef0de974587f5b867b538c5fc11b6..c4597ed015061c925a7bea4b5ef6a92464ee99da 100644
--- a/timing/time_zgetrf_nopiv.c
+++ b/timing/time_zgetrf_nopiv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrf_nopiv_tile.c b/timing/time_zgetrf_nopiv_tile.c
index 9282742918569328d18e1c0e7a407422554a9282..1f09dc220d3767abf9fb7331dac0df39a67362b7 100644
--- a/timing/time_zgetrf_nopiv_tile.c
+++ b/timing/time_zgetrf_nopiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetri_tile.c b/timing/time_zgetri_tile.c
index f5f46655a5daaaf7d5fe97c96a9de34ede7b9bac..4c37f34ebe736be31db4784c4b4b40bf34531d0a 100644
--- a/timing/time_zgetri_tile.c
+++ b/timing/time_zgetri_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrs_incpiv_tile.c b/timing/time_zgetrs_incpiv_tile.c
index 5a2c69394aac749305775dc1c60461d7a32faf22..10d4203f11ce27cdd02d508e9dbe750599aa8a96 100644
--- a/timing/time_zgetrs_incpiv_tile.c
+++ b/timing/time_zgetrs_incpiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zgetrs_nopiv_tile.c b/timing/time_zgetrs_nopiv_tile.c
index ceeebeac6aeadbc702f8adee0e9ddc701d9f7760..661e4e9ae3caa759d45352bf440c796f9e8a6424 100644
--- a/timing/time_zgetrs_nopiv_tile.c
+++ b/timing/time_zgetrs_nopiv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zheevd_tile.c b/timing/time_zheevd_tile.c
index 15d37bf6a24f66773b4f020ebb7f937f4c3deddc..cb7bf1d0fcfc924ec0b5d5d07c2d3500165d78eb 100644
--- a/timing/time_zheevd_tile.c
+++ b/timing/time_zheevd_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zlange.c b/timing/time_zlange.c
index 85ef806b205bce2b7f8964067b7858d60db96208..da0d670a174e78aabf8dfb4621ce21a1039776e4 100644
--- a/timing/time_zlange.c
+++ b/timing/time_zlange.c
@@ -4,7 +4,7 @@
  *
  * @Copyright 2009-2014 The University of Tennessee and The University
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zlange_tile.c b/timing/time_zlange_tile.c
index 7991a936643ecc607a25ee0d7064f320d520464b..ddb74f321c0bbbd9f6b157b33dd6784ca49a82ff 100644
--- a/timing/time_zlange_tile.c
+++ b/timing/time_zlange_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zposv.c b/timing/time_zposv.c
index f6e1f462af5c12efd641068d5199c8d38a036265..f933c62281bd2a62f4e5c226baa9edfa20f61dc4 100644
--- a/timing/time_zposv.c
+++ b/timing/time_zposv.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zposv_tile.c b/timing/time_zposv_tile.c
index 83c5f74869e852f351d083480dc41261c1f2c59c..417873ddc317e96ee9900f3ededb2f9d82710732 100644
--- a/timing/time_zposv_tile.c
+++ b/timing/time_zposv_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zpotrf.c b/timing/time_zpotrf.c
index 38a454d1ccf8b1765fb3ef49b14f37e0f724fc17..d64178f97243551eea09a5898dfde4a5512408ad 100644
--- a/timing/time_zpotrf.c
+++ b/timing/time_zpotrf.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zpotrf_tile.c b/timing/time_zpotrf_tile.c
index 346d1cddcf2f881746a9ee3f9e62c20504391b6c..67e95738955c0575092566eeafbe94a21179f18c 100644
--- a/timing/time_zpotrf_tile.c
+++ b/timing/time_zpotrf_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zpotri_tile.c b/timing/time_zpotri_tile.c
index b46c838b0c544d5a176f6d9558386cb4880fd04a..192068d391cfcd2a07eb40306abee61b728bd068 100644
--- a/timing/time_zpotri_tile.c
+++ b/timing/time_zpotri_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zpotrs_tile.c b/timing/time_zpotrs_tile.c
index c72ddb1e175aa8292a5f1824fa6b921d1c9d52dd..6df7c5b2e7b67d2777630867890e32c6f542063b 100644
--- a/timing/time_zpotrs_tile.c
+++ b/timing/time_zpotrs_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c
index 44a43db2233da07be4bed73f6c1b2ae5a70b5895..28f7ab529922a78983da058c8b4387e1aaf0de0b 100644
--- a/timing/time_zsytrf_tile.c
+++ b/timing/time_zsytrf_tile.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/time_ztrsm.c b/timing/time_ztrsm.c
index ecd8792e61626aad207bee2f71f769b326523ba3..cb4a411b0214674dd06f2f32a9a963bf921852ad 100644
--- a/timing/time_ztrsm.c
+++ b/timing/time_ztrsm.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/timing.c b/timing/timing.c
index 1f2809c10c279248e57edfc6e074bf7f29bd6276..ad6c1b57c532bb8d6c0f5ded5a9c34e64741163d 100644
--- a/timing/timing.c
+++ b/timing/timing.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/timing.h b/timing/timing.h
index 6677e13d1e48ef18fe44a7bb9dce27881311169b..bd5c4b33dcc09510af500a8da508bf0601a0c8dc 100644
--- a/timing/timing.h
+++ b/timing/timing.h
@@ -4,14 +4,14 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  * @version 1.0.0
  *
  */
-#ifndef TIMING_H
-#define TIMING_H
+#ifndef _timing_h_
+#define _timing_h_
 
 typedef double chameleon_time_t;
 
@@ -240,4 +240,4 @@ enum dparam_timing {
     }                                           \
     *t_ = t;
 
-#endif /* TIMING_H */
+#endif /* _timing_h_ */
diff --git a/timing/timing_zauxiliary.c b/timing/timing_zauxiliary.c
index 36c5b613dae67a99e1164b4669576650dab04c2c..9fa3e969ed01d3e9628248b87e21771d886a0f53 100644
--- a/timing/timing_zauxiliary.c
+++ b/timing/timing_zauxiliary.c
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
diff --git a/timing/timing_zauxiliary.h b/timing/timing_zauxiliary.h
index e08d1c5c7a1fcbce7589188d9a042aafe1c770a0..7e3cca968e7d4185edf7468c772cff32d84ca46d 100644
--- a/timing/timing_zauxiliary.h
+++ b/timing/timing_zauxiliary.h
@@ -4,7 +4,7 @@
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
- * @copyright 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ * @copyright 2012-2018 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
  *                      Univ. Bordeaux. All rights reserved.
  *
  ***
@@ -13,8 +13,8 @@
  * @precisions normal z -> c d s
  *
  */
-#ifndef TIMING_ZAUXILIARY_H
-#define TIMING_ZAUXILIARY_H
+#ifndef _timing_zauxiliary_h_
+#define _timing_zauxiliary_h_
 
 int    z_check_orthogonality   (int M, int N, int LDQ, CHAMELEON_Complex64_t *Q);
 int    z_check_QRfactorization (int M, int N, CHAMELEON_Complex64_t *A1, CHAMELEON_Complex64_t *A2, int LDA, CHAMELEON_Complex64_t *Q);
@@ -41,4 +41,4 @@ int zcheck_inverse(int N, CHAMELEON_Complex64_t *A1, CHAMELEON_Complex64_t *A2,
                          int LDA, cham_uplo_t uplo, double *rnorm, double *anorm, double *ainvnorm);
 
 
-#endif /* TIMING_ZAUXILIARY_H */
+#endif /* _timing_zauxiliary_h_ */
diff --git a/tools/check_header.sh b/tools/check_header.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e4e3ead8e33a759f0afbc79cad785ff509f49d06
--- /dev/null
+++ b/tools/check_header.sh
@@ -0,0 +1,187 @@
+#
+#  @file check_header.sh
+#
+#  @copyright 2016-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+#                       Univ. Bordeaux. All rights reserved.
+#
+#  @version 6.0.0
+#  @author Mathieu Faverge
+#  @date 2017-06-24
+#
+# This script check that basic informations is present and correct in
+# headers of source files.
+#
+#!/bin/sh
+header=1
+
+print_header()
+{
+    if [ $header -ne 0 ]
+    then
+        echo "------ $1 --------"
+        header=0
+    fi
+}
+
+check_header_file()
+{
+    filename=$1
+    basename=`basename $filename .in`
+
+    if [ "$basename" != "CMakeLists.txt" ]
+    then
+        toto=`grep " @file $basename" $filename`
+        if [ $? -ne 0 ]
+        then
+            toto=`grep " @file .*/$basename" $filename`
+        fi
+        if [ $? -ne 0 ]
+        then
+            toto=`grep " @file chameleon_$basename" $filename`
+        fi
+
+        if [ $? -ne 0 ]
+        then
+            print_header $filename
+            echo -n "@file line missing or incorrect:"; grep "@file" $filename; echo ""
+        fi
+    fi
+}
+
+check_header_copyright()
+{
+    filename=$1
+    basename=`basename $filename`
+
+    toto=`grep -E " @copyright [0-9]{4}-2018 Bordeaux INP" $filename`
+    if [ $? -ne 0 ]
+    then
+        toto=`grep -E " @copyright 2018      Bordeaux INP" $filename`
+    fi
+
+    if [ $? -ne 0 ]
+    then
+        print_header $filename
+        echo -n "@copyright line missing or incorrect:"; grep "@copyright" $filename; echo "";
+    fi
+}
+
+check_header_version()
+{
+    filename=$1
+    basename=`basename $filename`
+
+    toto=`grep -E " @version [0-9]\.[0-9]\.[0-9]" $filename`
+    if [ $? -ne 0 ]
+    then
+        print_header $filename
+        echo -n "@version line missing or incorrect:"; grep "@version" $filename; echo "";
+    fi
+}
+
+check_header_author()
+{
+    filename=$1
+    basename=`basename $filename`
+
+    toto=`grep -E " @author " $filename`
+    if [ $? -ne 0 ]
+    then
+        print_header $filename
+        echo "@author line missing";
+    fi
+}
+
+check_header_date()
+{
+    filename=$1
+    basename=`basename $filename`
+
+    toto=`grep -E " @date [0-9]{4}-[01][0-9]-[0-3][0-9]" $filename`
+    if [ $? -ne 0 ]
+    then
+        print_header $filename
+        echo -n "@date line missing or incorrect"; grep "@date" $filename; echo "";
+    fi
+}
+
+check_header_define()
+{
+    filename=$1
+    basename=`basename $filename`
+
+    case $basename in
+        *.h)
+            n=`basename $basename .h | awk '{print tolower($0)}'`
+
+            macro="_${n}_h_"
+            err=0
+
+            toto=`grep "#ifndef .*$macro" $filename`
+            ret=$?
+            err=$((err + ret))
+
+            if [ $ret -eq 0 ]
+            then
+                macro=`grep "#ifndef" $filename | sed 's/#ifndef //'`
+            fi
+            toto=`grep "#define $macro" $filename`
+            ret=$?
+            err=$((err + ret))
+
+            toto=`grep "#endif /\* $macro \*/" $filename`
+            ret=$?
+            err=$((err + ret))
+
+            if [ $err -ne 0 ]
+            then
+                print_header $filename
+                grep "#ifndef" $filename
+                grep "#define" $filename
+                grep "#endif"  $filename
+            fi
+            ;;
+        *)
+    esac
+
+}
+
+#
+# Check that the given source file contains
+#
+# @file filename
+# @copyright
+# @version
+# @date
+#
+check_header()
+{
+    header=1
+    check_header_file $1
+    check_header_copyright $1
+    check_header_version $1
+#    check_header_author $1
+#    check_header_date $1
+    check_header_define $1
+}
+
+#
+# Check headers
+#
+files=`git ls-files | grep -v "^\." | grep -v ".*\.md" | grep -v LICENSE | grep -v ".*\.cmake" | grep -v "testing/lin" | grep -v doc/ | grep -v CTest | grep -v cblas.h | grep -v lapacke.h | grep -v "simucore/perfmodels/\.starpu" | grep -v "\.org"`
+
+if [ $# -gt 0 ]
+then
+    files=$*
+fi
+
+for f in $files
+do
+    #echo $f
+    if [ -d $f ]
+    then
+        continue;
+    fi
+
+    check_header $f
+done